DE102021119090A1 - Einrichtung und verfahren für energieeffiziente kernspannungsauswahl - Google Patents

Einrichtung und verfahren für energieeffiziente kernspannungsauswahl Download PDF

Info

Publication number
DE102021119090A1
DE102021119090A1 DE102021119090.8A DE102021119090A DE102021119090A1 DE 102021119090 A1 DE102021119090 A1 DE 102021119090A1 DE 102021119090 A DE102021119090 A DE 102021119090A DE 102021119090 A1 DE102021119090 A1 DE 102021119090A1
Authority
DE
Germany
Prior art keywords
core
processor
processor core
cores
power
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
DE102021119090.8A
Other languages
English (en)
Inventor
Noor Mubeen
Ashraf H. Wadaa
Andrey Gabdulin
Russell Fenger
Deepak Samuel Kirubakaran
Marc Torrant
Ryan Thompson
Georgina Saborio Dobles
Lingjing ZENG
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 DE102021119090A1 publication Critical patent/DE102021119090A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Prozessorkern-Energieeffizienz-Kerneinstufungsschema ähnlich eines bevorzugten Kerns in einem Mehrkernprozessorsystem. Der bevorzugte Kern ist der energieeffiziente Kern, der es einem SoC ermöglicht, den Kern mit der niedrigsten Vmin für Energieeffizienz zu verwenden. Solche Vmin-Werte können während der HVM in geeigneten Registern fusioniert oder in NVM gespeichert werden. Ein OS-Scheduler erreicht eine optimale Energieperformanz unter Verwendung der Kerneinstufungsinformationen, um bestimmte Anwendungen auf dem Kern mit der niedrigsten Vmin zu planen. Ein Bootstrap-Fluss identifiziert einen Bootstrap-Prozessorkern (BSP) als den energieeffizientesten Kern des SoC und weist diesem Kern den niedrigsten APIC-ID-Wert gemäß der niedrigsten Vmin zu. Beim Lesen der Fuses oder des NVM berechnet und stuft der Mikrocode/das BIOS die Kerne ein. Von daher berechnet und stuft Mikrocode/das BIOS Kern-APIC-IDs basierend auf Effizienz um LFM-Frequenzen herum ein. Basierend auf den berechneten und eingestuften Kernen transferiert der Mikrocode oder das BIOS die BSP-Eigentümerschaft zu dem effizientesten Kern.

Description

  • PRIORITÄTSANSPRUCH
  • Die vorliegende Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung mit der Seriennummer 63/069,622 mit dem Titel „ENERGY-EFFICIENT CORE VOLTAGE SELECTION APPARATUS AND METHOD“, eingereicht am 24. August 2020, die durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
  • HINTERGRUND
  • Für eingeschaltete spannungsfrequenzgesteuerte Domänen, wie etwa Zentralverarbeitungseinheit (CPU: Central Processing Unit), Grafikverarbeitungseinheit (GPU: Graphics Processing Unit) und andere IP(Intellectual Property)-Blöcke in einem System-on-Chip (SoC), unterscheidet sich die minimal anwendbare Spannung der Leistungsversorgung bei jeder Betriebsfrequenz. Diese Spannung wird hier als Vmin bezeichnet. Unterhalb eines solchen Vmin-Werts ist die digitale Transistorlogik fehleranfällig und daher wird die Schaltung als nicht funktionsfähig angesehen. Eine solche Vmin wird im Herstellungstestprozess durch Massenherstellung (High Volume Manufacturing - HVM) bestimmt. Die Vmin-Spannung kann durch andere Siliziumattribute, wie etwa inverse thermische Abhängigkeit (Inverse Thermal Dependence - ITD), beeinflusst werden. Innerhalb desselben Wafers kann sich der Vmin-Wert von Die zu Die unterscheiden oder innerhalb eines Die sich von Prozessorkern zu Prozessorkern unterscheiden.
  • Figurenliste
  • Ein umfassenderes Verständnis der Ausführungsformen der Offenbarung geht aus der folgenden ausführlichen Beschreibung und aus den beigefügten Zeichnungen verschiedener Ausführungsformen der Offenbarung hervor, die jedoch nicht so aufgefasst werden sollten, dass sie die Offenbarung auf die spezifischen Ausführungsformen beschränken, sondern lediglich zur Erläuterung und zum Verständnis dienen.
    • 1 veranschaulicht einen Satz von grafischen Darstellungen, die einen Vmin-Abweichungsbereich für verschiedene Frequenzbins und für die Anzahl von Prozessorkernen in einem System-on-Chip (SoC) zeigen.
    • 2 veranschaulicht ein Histogramm, das eine durchschnittliche Frequenzverteilung bei realer Nutzung zeigt.
    • 3 veranschaulicht ein Array von relativer Vmin pro Prozessorkern, pro Frequenz für verschiedene p-Zustände.
    • 4 veranschaulicht eine grafische Darstellung, die zeigt, dass Vmin-Differenzen nach ITD-Anwendung greifbar sind.
    • 5 veranschaulicht ein Einstufungsschema zum Übersetzen des Arrays von Vmin pro Kern von 3 in ein Einstufungsarray pro p-Zustand gemäß manchen Ausführungsformen.
    • 6 veranschaulicht ein Prozessorsystem mit einer Einrichtung oder einem Mechanismus zur energieeffizienten Kernspannungsauswahl gemäß manchen Ausführungsformen.
    • 7 veranschaulicht ein Flussdiagramm für energieeffiziente Bootstrap-Prozessor(BSP)-Auswahl, Interrupt-Routing und/oder -Versorgung und Niedrignutzungs-Thread-Scheduling basierend auf Vmin gemäß manchen Ausführungsformen.
    • 8 veranschaulicht einen Boot-Fluss unterhalb eines Betriebssystems(OS)-Handoff für effiziente/s Interrupt-Routing/-Versorgung und OS-spezifische Kern-Parking-Vorteile gemäß manchen Ausführungsformen.
    • 9 veranschaulicht eine Smart-Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit Firmware für energieeffiziente/s Interrupt-Routing/-Versorgung und Niedrignutzungs-Thread-Scheduling basierend auf Vmin gemäß manchen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In Mehrprozessor(MP)-Systemen verbrauchen aktive Prozessorkerne derzeit kumulativ höhere Leistung als sonst notwendig ist, um jeden der Prozessorkerne mit ihrer jeweiligen Pro-Kern-Vmin-Spannung zu betreiben. Dies beruht auf folgenden Gründen. Erstens weisen die meisten Plattformen keine Pro-Prozessorkern-Spannungsregler(VR)-Steuerdomäne auf. Zum Beispiel kann der VR-Ausgang und somit die Steuerung über zwei oder mehr Prozessorkerne gebündelt sein. Zweitens wird für PCPS-Plattformen (PCPS: Per-Core Performance State - Pro-Kern-Performanzzustand) eine Differenzfrequenz von Operationen über Kerne erlaubt. Jedoch wird die höhere der Spannung (Maximum unter Kern-Vmin) als die Vmin für das SoC bei einer beliebigen gegebenen Frequenz realisiert. Drittens steht für Plattformen, die eine Pro-Kern-Spannungsdomäne unterstützen, die Pro-Kern-Vmin als HVM-Merkmal möglicherweise nicht zur Verfügung.
  • Verschiedene Ausführungsformen nutzen Vmin-Differenzen über Prozessorkerne aus, um letztendlich optimale Batterielebensdauer und -ansprechempfindlichkeit zu liefern. Basierend auf statistischen Daten wird beobachtet, dass die differenzielle Vmin für niederfrequente Arbeitslasten mit niedrigerer Leistung zum Beispiel in der Größenordnung von ungefähr 30 mV liegen kann. Für eine reale Batterielebensdauer, die Arbeitslasten beeinflusst, kann sich dies zum Beispiel auf bis zu etwa 8 % Einsparung an SoC-Leistung umsetzen. Manche Ausführungsformen verwenden ein Prozessorkern-Energieeffizienz-Kerneinstufungsschema. Dies gleicht einem bevorzugten Kernansatz in einem Mehrkern-Prozessorsystem. Der bevorzugte Kern ist hier jedoch der energieeffiziente Kern, der es dem SoC ermöglicht, den Kern mit der geringsten Vmin für die Energieeffizienz zu verwenden. Die Gewinne sind spezifisch für Szenarien mit geringem Leistungsverbrauch. Solche Vmin-Werte können während des HVM-Prozesses in geeigneten Registern gespeichert werden. Vmin-Werte können zum Beispiel in Fuses, nichtflüchtigem Speicher (NVM), programmierbaren Registern usw. gespeichert werden. In manchen Ausführungsformen kann ein Betriebssystem(OS)-Scheduler eine optimale Energieperformanz unter Verwendung der Kerneinstufungsinformationen erreichen, um gewisse Anwendungen auf dem Kern mit der niedrigsten Vmin zu planen.
  • Manche Ausführungsformen stellen einen Mechanismus bereit, um die durchschnittliche Leistung des SoC zu senken, indem eine Kern-zu-Kern-Vmin-Variation ausgenutzt wird, die von einer HVM-Prozesslogikänderung ausgeht, um die Differenz in Fuses (oder irgendeinem geeigneten nichtflüchtigen Speicher), die Pro-Kern-Vmin-Werte speichern, zu erfassen. Basierend auf dieser Siliziumneuheit kann, wenn bei oder nahe einem Niederfrequenzmodus (LFM: Low Frequency Mode) und effizienten Frequenzen (Pe) gearbeitet wird, eine niedrigere Leistung für das SoC erreicht werden. Eine effiziente Frequenz im LFM-Bereich beträgt beispielsweise von 400 MHz bis 1 GHz. Dies ist für reale Nutzungsszenarien relevant, da Telemetriedaten eine hohe Residenz in niedrigeren Frequenzbereichen angeben. In manchen Ausführungsformen legt das SoC Energieeffizienzinformationen in einem niedrigeren oder anderen spezifischen Frequenzbereich, wie zutreffend pro Kern, dem OS dar. In einigen Ausführungsformen wird das OS mit energiebewussten Scheduling-Schemen aktiviert, die Vmin-Erwägungen einbeziehen (z. B. effizienter Kern zur Bearbeitung von Niedrignutzungs-Interrupt und Deferred-Procedure-Call(DPC)-Versorgung).
  • Prozessor-DPC-Zeit ist die Zeit, zu der ein Prozessor DPCs empfangen und versorgt hat. DPCs sind Interrupts, die mit einer niedrigeren Priorität laufen als Standard-Interrupts. Prozentuale DPC-Zeit ist eine Komponente von prozentualer privilegierter Zeit, da DPCs in einem privilegierten Modus ausgeführt werden. Falls eine hohe prozentuale DPC-Zeit aufrechterhalten wird, kann es einen Prozessorengpass oder ein anwendungs- oder hardwarebezogenes Problem geben, das die Gesamtsystemperformanz signifikant verringern kann.
  • Es gibt viele technische Effekte der verschiedenen Ausführungsformen. Zum Beispiel involviert das energieeffiziente Kernspannungsauswahlschema keinen Kompromiss oder Trade-Off für die Performanz in dem Prozess des Verringerns der durchschnittlichen Leistung. Im Gegenteil hilft das Auswählen einer optimalen Vmin dabei, die Performanz von höherer Turboresidenz in gewissen Szenarien zu verbessern. Das Schema verschiedener Ausführungsformen nutzt Siliziumcharakteristikgüte in einem HVM-Prozess aus, um letztendlich einen Wettbewerbsvorteil zu liefern, der sogar als Out-of-Box einsetzbar sein kann, ohne Softwareänderungen zu erfordern. Das Schema nutzt einen HVM-Prozess aus, der gut etablierte Mittel aufweist, um eine solche Pro-Kern-Differenzierung in Vmin zu identifizieren. Das Schema behält die Kompatibilität gegenüber Belastbarkeits- und Zuverlässigkeitsanforderungen des SoC bei. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • In der folgenden Beschreibung werden zahlreiche Einzelheiten besprochen, um eine genauere Erläuterung von Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Für den Fachmann ist allerdings ersichtlich, dass Ausführungsformen der vorliegenden Offenbarung ohne diese spezifischen Details ausgeübt werden können. In anderen Fällen sind wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform, statt im Detail, gezeigt, um zu vermeiden, dass Ausführungsformen der vorliegenden Offenbarung unklar gemacht werden.
  • Es ist zu beachten, dass Signale in den entsprechenden Zeichnungen der Ausführungsformen durch Linien repräsentiert werden. Einige Linien können dicker sein, um Signalpfade mit mehr Bestandteilen anzugeben, und/oder können Pfeile an einem oder mehreren Enden aufweisen, um eine primäre Informationsflussrichtung anzugeben. Derartige Angaben sollen nicht einschränkend sein. Vielmehr werden die Linien in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet, um ein einfacheres Verständnis einer Schaltung oder einer Logikeinheit zu ermöglichen. Jegliches repräsentierte Signal, wie durch Designvorgaben oder -präferenzen vorgegeben, kann tatsächlich ein oder mehrere Signale umfassen, die in jeder Richtung laufen können und mit einer beliebigen geeigneten Art von Signalschema implementiert werden können.
  • 1 veranschaulicht einen Satz von grafischen Diagrammen 100, die einen Vmin-Bereich für verschiedene Frequenzbins und für die Anzahl von Prozessorkernen in einem System-on-Chip (SoC) zeigen. Ein Beispiel für das SoC ist unter Bezugnahme auf 9 beschrieben. Wieder unter Bezugnahme auf 1 beschreiben verschiedene Ausführungsformen ein Merkmal, das eine neuere Quelle für Leistungseinsparung durch Kombinieren eines Hardwaremerkmals von Pro-Kern-Vmin zusammen mit Software-Scheduling-Optimierungen abgreift. Der Satz von grafischen Darstellungen 100 veranschaulicht eine grafische Darstellung 101, die einen Bereich von Abweichungen in Vmin für verschiedene Frequenzbins in einem SoC zeigt, wie unter Verwendung einer Massenherstellung bestimmt. Die grafische Darstellung 102-Plot veranschaulicht Statistiken bezüglich Vmin-Spannen, die bei signifikanten Einheiten erreichbar sind. Die Balken der Spannen in der grafischen Darstellung 102 zeigen eine Durchführbarkeit einer Reduzierung von bis zu 30 mV bei der Untergrenzen-Vmin bei 800 MHz. Diese Spanne verjüngt sich vom Niederfrequenzmodus(LFM)-Bereich (1,8 GHz) weg. Ein ähnlicher Trend ist im Turbogebiet zu beobachten.
  • 2 veranschaulicht ein Histogramm 200, das eine durchschnittliche Frequenzverteilung zeigt. Chip-Verkäufer und Betriebssystementwickler (z. B. Intel bzw. Microsoft) sammeln und assimilieren Telemetriedaten von den realen Einsätzen. Bei einem Beispiel handelt es sich bei der Datenquelle um Microsoft-Inbox-Datenkollektoren auf Windows®- und Microsoft®-Surface-Vorrichtungen. In einem Fall geben Daten, die basierend auf einem Abtastraum von 700 oder mehr realen Vorrichtungen gesammelt werden, an, dass die medianen Nutzungsniveaus weniger als 70 % betragen, wobei sich auf Background Activity Monitor (BAM - Hintergrundaktivitätsüberwachung) basierende Arbeitslasten kumulativ über mehr als 10 % erstrecken. Die Einsicht in Niedrigleistungs-Hintergrundaktivität ist deutlich höher als die Annahmen basierend auf Labordaten. Das Windows-Betriebssystem (OS) verfolgt und markiert Hintergrundaktivität zur Laufzeit und gibt der Plattform an, die QoS-Niveaus (QoS: Quality of Service - Dienstgüte) zu senken. Gegenwärtig wird dies auch in eine Laufzeit-Obergrenze am p-Zustand umgesetzt, zum Beispiel innerhalb von 1,5 GHz für den Prozessor.
  • Angesichts dieser Telemetrieindikatoren verwenden manche Ausführungsformen Pro-Kern-Vmin-Spannungen für einen p-Zustand unter 1,5 GHz, um die Energieeffizienz zu verbessern. Obwohl verschiedene Ausführungsformen auf das Turbogebiet erweiterbar sind, sind die hierin beschriebenen Ausführungsformen und ihre Ergebnisse um LFM-gebundene, die Batterielebensdauer beeinflussende Arbeitslasten zentriert.
  • Die momentane dynamische Leistung eines Prozessors ist in diesem Fall proportional zur Frequenz und entsprechenden Spannung (Vcc) quadriert (näherungsweise). In einer Mehrkernumgebung setzen derzeit alle Kerne eine gemeinsame Vmin bei einem gegebenen p-Zustand ein. Das Einsetzen einer Vmin pro Kern kann jedoch zu einer niedrigsten Vmin führen, die zum Beispiel im LFM-Gebiet bis zu 30 mV gesenkt wird. Das Einsetzen einer Vmin pro Kern kann eine bis zu 8 %-ige Einsparung zum Beispiel für Hintergrundaktivität umsetzen, weil im Vergleich zur Verwendung einer einzigen Vmin für alle Kerne eine niedrigere Vmin realisiert werden kann.
  • Unterstützt durch HVM-Statistiken, setzt das folgende Experiment dies in tatsächliche Vorteile bei der SoC-Leistung um. Hier wird die Spannungsfrequenz(VF)-Kurve aktualisiert, um ein Delta zu erzeugen, das die Vorteile einer Pro-Kern-Vmin angibt. Bei einem Beispiel sind VF-Vorteile auf ein konservatives 1,3 GHz beschränkt. Es wird angemerkt, dass idealerweise die aktualisierte VF um eine beobachtete Spanne verringert werden sollte. Um jedoch Systeminstabilität und -abstürze zu vermeiden, wird das Delta umgekehrt, ohne viel auf eine relative prozentuale Nutzenanalyse zu achten. Ferner legt der simulierte Aufbau die neue Spannung an Kerne an. Dies ist ein idealer Vorteil, der realisiert werden kann, wenn das softwarebasierte Scheduling koordiniert, den besten (energieeffizienten) Kern als zu dem OS durch die Hardware-Fähigkeitseinstufung von Kernen ausgesetzt auszuwählen.
  • In manchen Ausführungsformen werden Fuse(s) oder nichtflüchtiger Speicher mit Pro-Kern-Vmin als Teil eines Massenherstellung(HVM)-Prozesses und assoziierter Tooling-Änderungen aktualisiert oder programmiert. Daher wird eine neue Vmin pro Kern qualifiziert. In diesem HVM-Aufbau werden mehrere Arbeitslasten mit niedriger Leistung und/oder niedriger QoS auf den Kernen ausgeführt und die Vmin pro Kern aufgezeichnet. In einigen Ausführungsformen wird die Pro-Kern-Vmin über beliebige geeignete Kommunikationsmedien (z. B. Internet) zu Firmware übertragen, anstelle oder zusätzlich zum Lesen von Fuses oder NVM. Beispiele für NVM beinhalten ferroelektrischen Speicher, Phasenwechselspeicher, magnetischen Speicher, resistiven Speicher, Flash-Speicher usw.
  • Die Ergebnisse in Tabelle 1 basieren auf drei Geo-Mittel-Bewertungen auf einer Computerplattform. Tabelle 1
    Arbeitslast-Szenario SoC-Leistungsreduktion (%)
    VPB lokal (HoBL) 2,89 %
    HoBL-Produktivität 2,72 %
    EEMBC-Browsing 6,04 %
    HoBL-Anzeige in Ruhezustand 5,19 %
    Hintergrund-Cinebench(CB)-ST 8,92 %
    Hintergrund-CB-MT 4,04 %
    Hintergrund-Defender (Windows Defender Scan) 5,10 %
  • Wie erwartet, verbessert sich der Vorteil (z. B. prozentuale Einsparungen) für Hintergrundaktivität. Die obigen Ergebnisse liegen ohne Software-Scheduling-Änderungen vor und nehmen eine gemeinsame VF-Kurve über Kerne hinweg an. Die Softwareänderungen werden in alternativen Lösungsoptionen betrachtet, die hierin beschrieben sind.
  • 3 veranschaulicht ein Array 300 von Vmin pro Kern, pro Frequenz für verschiedene p-Zustände. 3 stellt mustercodierte Werte dar, die pro p-Zustandszeile interpretiert werden. P-Zustände sind Zustände zur Optimierung der Spannung und CPU-Frequenz während des Betriebs. Während der Ausführung von Code können das Betriebssystem und die CPU den Leistungsverbrauch durch unterschiedliche p-Zustände (Performanzzustände) optimieren. In Abhängigkeit von den Anforderungen wird eine CPU mit unterschiedlichen Frequenzen betrieben. P0 ist die höchste Frequenz (wahrscheinlich mit der höchsten Spannung).
  • HVM programmiert die VF-Fuses bzw. den nichtflüchtigen Speicher mit Vmin-Werten. Beispielsweise können die mustercodierten Werte ein 5-Punkt-Tupel von {P-Zustand, Vmin} sein. Herstellungstestflüsse bestimmen typischerweise die beste Vmin pro Frequenz für einen gegebenen Teil (z. B. SoC mit mehreren Kernen). Wenn Pro-Kern-Vmin in HVM aktiviert ist, werden die relativen Vmin-Delta-Fuses (oder NVM) auch für Pro-Kern-Vmin programmiert.
  • 4 veranschaulicht eine grafische Darstellung 400, die zeigt, dass Vmin-Differenzen nach ITD-Anwendung (IDT: Inverse Thermal Dependence - inverse thermische Abhängigkeit) greifbar sind. Ein zusätzlicher gepufferter Wert (Schutzband) kann auf die Vmin aus verschiedenen Gründen angewendet werden, wie etwa LTEC (Low Temperature Effect Compensation - Tieftemperatureffektkompensation) zur Laufzeit und langfristig als RSR (Reliability Stress Requirement - Zuverlässigkeitsbelastbarkeitsanforderung). Die ITD berücksichtigt den Zusammenhang zwischen Die-Temperatur und erwarteten Vcc-Werten. Die Vmin mit angewendeter IDT greift hier jedoch nicht in die verschiedenen Ausführungsformen ein, da das Pro-Kern(Pro-p-Zustand)-Vmin-Delta nach ITD-Erwägungen immer noch anwendbar ist. Ferner ist die ITD-Variation über Kerne im Gegensatz zu einer Vmin-Variation für einen gegebenen p-Zustand klein (z. B. weniger als 2 % Varianzkoeffizient in dem interessierenden Gebiet).
  • 5 veranschaulicht ein Einstufungsschema 500 zum Übersetzen des Arrays von Vmin pro Kern von 3 in ein Einstufungsarray pro p-Zustand gemäß manchen Ausführungsformen. In manchen Ausführungsformen wird eine zusätzliche Routine während eines HVM-Prozesses hinzugefügt, die die unterschiedlichen Vmin über relevante Kern- und/oder Spannungsdomänen des Prozessors vergleicht und ein oder mehrere geeignete Register mit diesen relativen Einstufungsinformationen aktualisiert. Zum Beispiel Zuweisen eines sequenziellen Satzes von Einstufungen für einen homogenen Satz von Kernen, die sich unter unabhängigen Spannungsdomänen befinden. Je nach Prozessortopologie kann eine weitere vielfachen- oder hierarchieunabhängige Einstufung erstellt werden. (z. B. unterschiedlicher Satz von Einstufungen für Prozessorkerne in einem Multiprozessor gegenüber Atomprozessoren usw.).
  • Damit das Software-Scheduling einen energieeffizienten (EE) Kern nutzt, muss der Software-Scheduler wissen, welcher Kern aus der relativen EE-Einstufung unter Kernen bei einem gegebenen p-Zustand ausgewählt werden soll. Bei einem Beispiel kann Intel-Architektur-ISA-Erweiterungsprogrammierung für Software-Scheduling verwendet werden. Eine solche Abstraktion ist in der Hardware(HW)-Rückkopplungsstruktur von Tabelle 2 beschrieben. Tabelle 2
    Byte-Offset Größe (Bytes) Feldname Beschreibung
    0 1 Performanzfähigkeit Performanzfähigkeit ist ein 8-Bit-Wert (0... 255), der den relativen Leistungspegel eines logischen Prozessors spezifiziert. Höhere Werte geben eine höhere Performanz an; ein niedrigster Leistungspegel von 0 gibt eine Empfehlung t0 an, dass das OS keine Software-Threads auf ihm aus Performanzgründen planen soll, die durch das OS auf 0 initialisiert werden.
    1 1 Energieeffizienz(EE)-Fähigkeit Energieeffizienzfähigkeit ist ein 8-Bit-Wert (0... 255), der den relativen Energieeffizienzgrad eines logischen Prozessors spezifiziert. Höhere Werte deuten auf eine höhere Energieeffizienz hin. Die niedrigste Energieeffizienzfähigkeit von 0 gibt dem OS eine Empfehlung an, aus Effizienzgründen keine Software-Threads darauf zu planen. Initialisiert durch das OS auf 0.
  • Aus dem Energieeffizienzfähigkeitsfeld kann die Pro-Kern-Vmin ermittelt werden. Insbesondere gibt es eine Pro-Kern-Struktur, die sowohl mit Performanzfähigkeit als auch mit EE-Fähigkeit initialisiert ist. Die Performanzfähigkeit ist ein Indikator für Performant-Kerneinstufungen (nahe Turbo), während die EE-Fähigkeit für eine feste Frequenz näher am LFM aufgelistet ist. Die EE-Fähigkeitsfrequenz ist eine direkte Funktion einer effizienten Frequenz für Niedrigleistungsszenarien, auch als Pe bekannt. Um die Kompatibilität mit der bestehenden Definition in dem öffentlichen Programmierreferenzdokument beizubehalten, kann das HVM-definierte (in NVM fusionierte oder gespeicherte) Einstufungsschema gelesen und in bestehende HW-Rückkopplungsregister übersetzt werden, gemäß manchen Ausführungsformen.
  • 5 fasst das Einstufungsschema zusammen, wobei die Mustercodes von 3 in der Pro-Kern-, Pro-p-Zustand-Vmin-Tabelle in der Pro-Kern-, Pro-p-Zustand-Einstufungstabelle widergespiegelt sind. Die Einstufungsfunktion soll plattformspezifisch sein. Dies liegt an Pro-Plattform-Attributen wie etwa relative Instruction-per-Cycle(IPC - Anweisungen pro Zyklus)-Gewinne verschiedener Prozessorkerne usw. Die Einstufung kann unter Verwendung einer Funktion bestimmt werden. Nachfolgend werden solche Generations-Einstufungsfunktionsargumente ausgedrückt. F ( Vmin _ Gr o ¨ ßte , Vmin _ Kleinste , Vmin _ dieserKern , p Zustand , relativ IPC )
    Figure DE102021119090A1_0001
  • Wobei p-Zustand, relativ-IPC Hardware-Guided-Scheduling(HGS - hardwaregesteuertes Scheduling)-Argumente sind, während Vmin_Größte, Vmin Kleinste, Vmin_dieserKern zusätzliche Argumente sind, die hinzugefügt werden, um eine Pro-Kern-Einstufung zu bestimmen. Je höher die Nummer ist, desto höher ist die Einstufung, was einen besseren EE-Kern impliziert. Die Argumente beziehen sich hier auf Abhängigkeit von relativ-IPC und p-Zustand der bestehenden/initialen Version von HGS.
  • 6 veranschaulicht ein Prozessorsystem 600 mit einer Einrichtung oder einem Mechanismus zur energieeffizienten Kernspannungsauswahl gemäß manchen Ausführungsformen. Das Prozessorsystem 600 umfasst einen Prozessor 601, der mit einem Betriebssystem (OS) 602 gekoppelt ist. Der Prozessor 601 umfasst einen oder mehrere Prozessoren 603 (einzeln als Prozessoren 603_10 bis 603_1N und 603_20 bis 603_2N bezeichnet, wobei ,N‘ eine Zahl ist), ein Fabric 604, das den Prozessor 603, einen Speicher 605, eine Speichersteuerung 610 und eine Speicher-Bitübertragungsschicht (MEM-PHY) 611 verbindet. In manchen Ausführungsformen ist jeder Prozessor 603 ein Die, ein Dielet oder ein Chiplet. Hier verweist der Ausdruck „Die“ allgemein auf ein einziges kontinuierliches Stück Halbleitermaterial (z. B. Silizium), in dem sich Transistoren oder andere Komponenten, die einen Prozessorkern bilden, befinden können. Mehrkernprozessoren können zwei oder mehr Prozessoren auf einem einzigen Die aufweisen, alternativ können aber die zwei oder mehr Prozessoren auf zwei oder mehr jeweiligen Dies bereitgestellt sein. Jeder Die verfügt über eine dedizierte Leistungssteuerung oder Leistungssteuereinheit(p-Einheit)-Leistungssteuerung oder eine Leistungssteuereinheit (p-Einheit), die dynamisch oder statisch als Supervisor oder Supervisand konfiguriert werden kann. Bei manchen Beispielen weisen Dies die gleiche Größe und Funktionalität auf, d. h. sind symmetrische Kerne. Die Dies können aber auch asymmetrisch sein. Manche Dies weisen zum Beispiel eine andere Größe und/oder Funktion als andere Dies auf. Jeder Prozessor 603 kann auch ein Dielet oder Chiplet sein. Hier verweist der Begriff „Dielet“ oder „Chiplet“ allgemein auf einen physisch unterschiedlichen Halbleiter-Die, der typischerweise auf eine Weise mit einem angrenzenden Die verbunden ist, die es dem Fabric über eine Die-Grenze hinweg ermöglicht, wie ein einzelnes Fabric anstatt als zwei unterschiedliche Fabrics zu fungieren. Somit können zumindest manche Dies Dielets sein. Jeder Dielet kann eine oder mehrere p-Einheiten beinhalten, die dynamisch oder statisch als ein Supervisor, Supervisand oder beides konfiguriert sein können.
  • In manchen Ausführungsformen ist das Fabric 604 eine Sammlung von Interconnects oder ein einzelnes Interconnect, das es den verschiedenen Dies ermöglicht, miteinander zu kommunizieren. Hier verweist der Begriff „Fabric“ allgemein auf einen Kommunikationsmechanismus mit einem bekannten Satz von Quellen, Zielen, Routing-Regeln, Topologie und anderen Eigenschaften. Die Quellen und Ziele können eine beliebige Art von Datenbearbeitungsfunktionseinheit, wie etwa Leistungsverwaltungseinheiten, sein. Fabrics können zweidimensional entlang einer x-y-Ebene eines Die aufgespannt sein und/oder dreidimensional (3D) entlang einer x-y-z-Ebene eines Stapels von vertikal und horizontal angeordneten Dies aufgespannt sein. Ein einzelnes Fabric kann mehrere Dies überspannen. Ein Fabric kann eine beliebige Topologie annehmen, wie etwa Mesh-Topologie, Sterntopologie, Daisy-Chain-Topologie. Ein Fabric kann Teil eines Netzwerk-on-Chip (NoC) mit mehreren Agenten sein. Diese Agenten können eine beliebige Funktionseinheit sein.
  • In manchen Ausführungsformen kann jeder Prozessor 603 eine Anzahl von Prozessorkernen beinhalten. Ein solches Beispiel ist unter Bezugnahme auf den Prozessor 603 10 veranschaulicht. In diesem Beispiel beinhaltet der Prozessor 603_10 mehrere Prozessorkerne 606-1 bis 606-M, wobei M eine Zahl ist. Der Einfachheit halber wird ein Prozessorkern mit der allgemeinen Bezeichnung 606 bezeichnet. Hier verweist der Begriff „Prozessorkern“ allgemein auf eine unabhängige Ausführungseinheit, die jeweils einen Programm-Thread parallel zu anderen Kernen ausführen kann. Ein Prozessorkern kann eine dedizierte Leistungssteuerung oder Leistungssteuereinheit (p-Einheit) beinhalten, die dynamisch oder statisch als ein Supervisor oder Supervisand konfiguriert sein kann. Diese dedizierte p-Einheit wird in manchen Beispielen auch als autonome p-Einheit bezeichnet. In manchen Beispielen besitzen alle Prozessorkerne die gleiche Größe und Funktionalität, d. h. sind symmetrische Kerne. Prozessorkerne können aber auch asymmetrisch sein.
  • Zum Beispiel weisen manche Prozessorkerne eine andere Größe und/oder Funktion als andere Prozessorkerne auf. Ein Prozessorkern kann ein virtueller Prozessorkern oder ein physischer Prozessorkern sein. Der Prozessor 603_10 kann einen integrierten Spannungsregler (IVR) 607, eine Leistungssteuereinheit (p-Einheit) 608, eine Phasenregelschleife (PLL) und/oder eine Frequenzregelschleife (FLL) 609 beinhalten. Die verschiedenen Blöcke des Prozessors 603 10 können über eine Schnittstelle oder ein Fabric gekoppelt sein. Hier bezieht sich der Begriff „Interconnect“ auf einen Kommunikationslink oder Kommunikationskanal zwischen zwei oder mehr Punkten oder Knoten. Sie kann einen oder mehrere separate Leitungspfade, wie etwa Drähte, Vias, Wellenleiter, passive Komponenten und/oder aktive Komponenten, umfassen. Es kann auch ein Fabric umfassen. In manchen Ausführungsformen ist die p-Einheit 608 über eine Schnittstelle mit dem OS 602 gekoppelt. Hier verweist der Begriff „Schnittstelle“ allgemein auf Software und/oder Hardware, die zum Kommunizieren mit einem Interconnect verwendet werden. Eine Schnittstelle kann Logik und einen E/A-Treiber/-Empfänger zum Senden und Empfangen von Daten über das Interconnect oder einen oder mehrere Drähte beinhalten.
  • In manchen Ausführungsformen ist jeder Prozessor 603 über einen Spannungsregler mit einer Leistungsversorgung gekoppelt. Der Spannungsregler kann sich innerhalb des Prozessorsystems 601 (z. B. auf dem Package des Prozessorsystems 601) oder außerhalb des Prozessorsystems 601 befinden. In manchen Ausführungsformen beinhaltet jeder Prozessor 603 den IVR 607, der eine primäre geregelte Spannung von dem Spannungsregler des Prozessorsystems 601 empfängt und eine Betriebsspannung für die Agenten des Prozessors 603 erzeugt. Die Agenten des Prozessors 603 sind die verschiedenen Komponenten des Prozessors 603 einschließlich Kerne 606, IVR 607, p-Einheit 608, PLL/FLL 609 usw.
  • Dementsprechend kann eine Implementierung des IVR 607 eine feinkörnige Steuerung der Spannung und somit Leistung und Performanz jedes einzelnen Kerns 606 ermöglichen. Von daher kann jeder Kern 606 bei einer unabhängigen Spannung und Frequenz arbeiten, was eine große Flexibilität ermöglicht und weite Möglichkeiten zum Ausgleichen des Leistungsverbrauchs mit Performanz bietet. In manchen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs das Gruppieren von Komponenten in separate Leistungsebenen, sodass Leistung durch den IVR geregelt und nur diesen Komponenten in der Gruppe zugeführt wird. Zum Beispiel kann jeder Kern 606 einen IVR zum Verwalten der Leistungsversorgung zu diesem Kern beinhalten, wobei dieser IVR die Eingangsleistungsversorgung von dem geregelten Ausgang des IVR 607 oder dem Spannungsregler des Prozessorsystems 601 empfängt. Während der Leistungsverwaltung kann eine gegebene Leistungsdomäne eines IVR heruntergefahren oder ausgeschaltet werden, wenn der Prozessorkern 606 in einen gewissen Niedrigleistungszustand versetzt wird, während eine andere Leistungsdomäne eines anderen IVR aktiv bleibt, oder vollständig mit Leistung versorgt bleibt. Von daher kann ein IVR eine gewisse Domäne eines Logik- oder Prozessorkerns 606 steuern. Hier verweist der Begriff „Domäne“ allgemein auf einen logischen oder physischen Umfang, der ähnliche Eigenschaften (z. B. Versorgungsspannung, Betriebsfrequenz, Art von Schaltungen oder Logik und/oder Arbeitslasttyp) aufweist und/oder durch einen bestimmten Agenten gesteuert wird. Eine Domäne kann zum Beispiel eine Gruppe von Logikeinheiten oder Funktionseinheiten sein, die durch einen bestimmten Supervisor gesteuert werden. Eine Domäne kann auch als Autonomous Perimeter (AP - autonomer Perimeter) bezeichnet werden. Eine Domäne kann ein gesamtes System-on-Chip (SoC) oder ein Teil des SoC sein und wird durch eine p-Einheit reguliert.
  • In manchen Ausführungsformen beinhaltet jeder Prozessor 603 seine eigene p-Einheit 608. Die p-Einheit 608 steuert die Leistung und/oder Performanz des Prozessors 603. Die p-Einheit 608 kann Leistung und/oder Performanz (z. B. IPC, Frequenz) jedes einzelnen Kerns 606 steuern. In verschiedenen Ausführungsformen ist die p-Einheit 608 jedes Prozessors 603 über das Fabric 604 gekoppelt. Von daher kommunizieren die p-Einheiten 608 jedes Prozessors 603 miteinander und mit dem OS 602, um den optimalen Leistungszustand des Prozessorsystems 601 durch Steuern von Leistungszuständen einzelner Kerne 606 in ihrer Domäne zu bestimmen.
  • Die p-Einheit 608 kann eine Schaltungsanordnung einschließlich Hardware, Software und/oder Firmware zum Durchführen von Leistungsverwaltungsoperationen in Bezug auf den Prozessor 603 beinhalten. In manchen Ausführungsformen liefert die p-Einheit 608 Steuerinformationen an den Spannungsregler des Prozessorsystems 601 über eine Schnittstelle, um zu bewirken, dass der Spannungsregler die angemessene geregelte Spannung erzeugt. In manchen Ausführungsformen stellt die p-Einheit 608 Steuerinformationen an IVRs der Kerne 606 über eine andere Schnittstelle bereit, um die erzeugte Betriebsspannung zu steuern (oder um zu bewirken, dass ein entsprechender IVR in einem Niedrigleistungsmodus deaktiviert wird). In manchen Ausführungsformen kann die p-Einheit 608 eine Vielzahl von Leistungsverwaltungslogikeinheiten beinhalten, um eine hardwarebasierte Leistungsverwaltung durchzuführen. Eine solche Leistungsverwaltung kann vollständig prozessorgesteuert sein (z. B. durch verschiedene Prozessorhardware, und die durch Arbeitslast und/oder Leistung, thermische oder andere Prozessoreinschränkungen ausgelöst werden kann) und/oder die Leistungsverwaltung kann als Reaktion auf externe Quellen (wie etwa eine Plattform oder Leistungsverwaltungsquelle oder Systemsoftware) durchgeführt werden. In manchen Ausführungsformen ist die p-Einheit 608 als ein Mikrocontroller implementiert.
  • Der Mikrocontroller kann ein eingebetteter Mikrocontroller sein, der eine dedizierte Steuerung ist, oder als Universalsteuerung. In manchen Ausführungsformen ist die p-Einheit 608 als eine Steuerlogik implementiert, die dazu konfiguriert ist, ihren eigenen dedizierten Leistungsverwaltungscode, hier als pCode bezeichnet, auszuführen. In manchen Ausführungsformen können Leistungsverwaltungsoperationen, die durch die p-Einheit 608 durchzuführen sind, extern zu einem Prozessor 603 implementiert werden, wie etwa mittels einer separaten integrierten Leistungsverwaltungsschaltung (PMIC: Power Management Integrated Circuit) 613 oder einer anderen Komponente außerhalb des Prozessorsystems 601. In noch anderen Ausführungsformen können Leistungsverwaltungsoperationen, die durch die p-Einheit 608 durchzuführen sind, innerhalb eines BIOS oder einer anderen Systemsoftware implementiert werden. In manchen Ausführungsformen kann die p-Einheit 608 eines Prozessors 603 eine Rolle eines Supervisors oder Supervisanden übernehmen.
  • Hier verweist der Begriff „Supervisor“ allgemein auf eine Leistungssteuerungs- oder Leistungsverwaltungseinheit (eine „p-Einheit“), die leistungs- und performanzbezogene Parameter für eine oder mehrere assoziierte Leistungsdomänen überwacht und verwaltet, entweder allein oder in Zusammenarbeit mit einer oder mehreren anderen p-Einheiten. Leistungs-/performanzbezogene Parameter können unter anderem Domänenleistung, Plattformleistung, Spannung, Spannungsdomänenstrom, Die-Strom, Lastleitung, Temperatur, Vorrichtungslatenz, Nutzung, Taktfrequenz, Verarbeitungseffizienz, Strom-/zukünftige Arbeitslastinformationen und andere Parameter beinhalten. Sie können neue Leistungs- oder Performanzparameter (Grenzen, Durchschnittsbetrieb usw.) für die eine oder die mehreren Domänen bestimmen. Diese Parameter können dann über ein oder mehrere Fabrics und/oder Interconnects an Supervisand-p-Einheiten oder direkt an gesteuerte oder überwachte Entitäten, wie etwa VR oder Taktdrosselsteuerregister, kommuniziert werden. Ein Supervisor erfährt die Arbeitslast (gegenwärtig und zukünftig) eines oder mehrerer Dies, Leistungsmessungen des einen oder der mehreren Dies und andere Parameter (z. B. Plattformebenenleistungsgrenzen) und bestimmt neue Leistungsgrenzen für den einen oder die mehreren Dies. Diese Leistungsgrenzen werden dann durch Supervisor-p-Einheiten über ein oder mehrere Fabrics und/oder Interconnects an die Supervisand-p-Einheiten kommuniziert. In Beispielen, in denen ein Die eine p-Einheit aufweist, wird eine Supervisor(Svor)-p-Einheit auch als Supervisor-Die bezeichnet.
  • Hier verweist der Begriff „Supervisand“ allgemein auf eine Leistungssteuerungs- oder Leistungsverwaltungseinheit (eine „p-Einheit“), die leistungs- und performanzbezogene Parameter für eine oder mehrere assoziierte Leistungsdomänen überwacht und verwaltet, entweder alleine oder in Zusammenarbeit mit einer oder mehreren anderen p-Einheiten, und Anweisungen von einem Supervisor zum Einstellen von Leistungs- und/oder Performanzparametern (z. B. Versorgungsspannung, Betriebsfrequenz, Maximalstrom, Drosselschwelle usw.) für seine assoziierte Leistungsdomäne empfängt. In Beispielen, in denen ein Die eine p-Einheit aufweist, kann eine Supervisand(Svee)-p-Einheit auch als Supervisand-Die bezeichnet werden. Es wird angemerkt, dass eine p-Einheit entweder als eine Svor-, eine Svee- oder beides, eine Svor/Svee-p-Einheit, dienen kann.
  • In verschiedenen Ausführungsformen führt die p-Einheit 608 eine Firmware (als pCode bezeichnet) aus, die mit dem OS 602 kommuniziert. In verschiedenen Ausführungsformen beinhaltet jeder Prozessor 603 eine PLL oder FLL 609, die einen Takt von der p-Einheit 608 und einen Eingangstakt (oder Referenztakt) für jeden Kern 606 erzeugt. Die Kerne 606 können eine unabhängige Takterzeugungsschaltungsanordnung, wie etwa eine oder mehrere PLLs, zum unabhängigen Steuern der Betriebsfrequenz jedes Kerns 606 beinhalten oder damit assoziiert sein. In manchen Ausführungsformen verwaltet die Speichersteuerung (MC) 610 Lese- und/oder Schreiboperationen mit einem oder mehreren Speichermodulen 612. Die Speichermodule 612 sind über die Speicher-Bitübertragungsschicht (MEM-PHY) 611 mit dem Prozessor 601 gekoppelt.
  • In einigen Ausführungsformen umfasst das Prozessorsystem 601 Fuses oder NVM, die Vmin pro Prozessorkern 606 unter den mehreren Prozessorkernen speichern. In verschiedenen Ausführungsformen führt die p-Einheit 608 eine Firmware (pCode) aus, um jeden Prozessorkern 606 gemäß der Vmin pro Prozessorkern einzustufen; und einen Bootstrap-Prozessor einem Prozessorkern mit einer höchsten Einstufung zuzuweisen. In manchen Ausführungsformen plant das OS 602 Interrupts oder versorgt Niedrignutzungs-Aufgaben auf dem Prozessorkern, der die höchste Einstufung aufweist. In manchen Ausführungsformen weist die Firmware eingestufte Prozessorkern-Advanced-Processor-Interrupt-Controller(APIC)-Identifikationen (IDs) zu. In manchen Ausführungsformen teilt die Firmware die eingestuften APIC-IDs der Prozessorkerne mit dem OS 602. In manchen Ausführungsformen teilt die Firmware die eingestuften APIC-IDs über eine Advanced-Configuration-and-Power-Interface(ACPI)-Tabelle. ACPI ist eine Industriespezifikation für die effiziente Handhabung des Leistungsverbrauchs in Desktop- und mobilen Computern. ACPI spezifiziert, wie das Basis-Eingabe/Ausgabe-System, Betriebssystem und Peripherievorrichtungen eines Computers über die Leistungsnutzung miteinander kommunizieren. In manchen Ausführungsformen umfasst die ACPI-Tabelle eine Multiple-APIC-Description-Tabelle (MADT). Die MADT beschreibt alle Interrupt-Steuerungen im System. Sie kann zur Aufzählung der aktuell verfügbaren Prozessoren bzw. Kerne verwendet werden. In manchen Ausführungsformen stuft die Firmware jeden Prozessorkern 606 basierend auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum ein.
  • 7 veranschaulicht ein Flussdiagramm 700 eines/einer energieeffizienten Interrupt-Routing und/oder -Versorgung und Niedrignutzungs-Thread-Scheduling basierend auf Vmin gemäß manchen Ausführungsformen. Die Einstufung kann durch µCode(Microcode)-Firmware initialisiert werden. Ein Beispiel für eine µCode-Firmware ist pCode, der von einer Leistungsverwaltungseinheit (Power Management Unit; PMU oder p-Einheit) ausgeführt wird. Zusätzlich dazu ist durch Unterstützen eines Interrupt-Mechanismus, wie in der Hardware(HW)-Rückkopplungsinfrastruktur definiert, eine Laufzeitaktualisierung möglich. Ein solcher Mechanismus ist nützlich, wenn manche Kerne offline sind oder andere Langzeitereignisse, wie etwa RSR-basierte (RSR: Reliability Stress Restrictor - Zuverlässigkeitsbelastbarkeitsbegrenzung) VF-Kerne auf eine neue, aber vordefinierte VF-Kurve umschalten. Manche Computerplattformen sind ausgestattet, um vorprogrammiert auf eine unterschiedliche VF-Kurve überzugehen, wenn sie über mehrere Jahre Gebrauch hinweg verschleißen und die alte VF-Kurve nicht mehr geeignet ist.
  • Obwohl verschiedene Blöcke hierin in einer bestimmten Reihenfolge gezeigt sind, kann die Reihenfolge modifiziert werden. Zum Beispiel können manche Blöcke oder Operationen vor anderen durchgeführt werden, während manche Blöcke oder Operationen parallel durchgeführt werden. Die Blöcke können durch Hardware, Software oder eine Kombination von Hardware und Software durchgeführt werden. In verschiedenen Ausführungsformen wird der Bootstrap-Fluss modifiziert, um den Bootstrap-Prozessorkern (BSP) zu identifizieren. Der BSP übernimmt Initialisierungsprozeduren für das Gesamtsystem. Diese Prozeduren beinhalten Identifizieren von Eigenschaften der Systemlogik, Prüfen der Integrität des Speichers, Starten der verbleibenden Prozessoren und Laden des Betriebssystems in den Speicher. Der BSP ist als der energieeffizienteste Kern des SoC markiert und erhält den niedrigsten APIC(Advanced Processor Interrupt Controller)-ID-(Identifikation)-Wert. Der APIC-ID-Wert spezifiziert einen Zielprozessor zum Empfangen eines Interrupts, das im logischen Zielmodus in einer lokalen x2APIC geliefert wird. Es handelt sich dabei um einen hardwaremäßig initialisierten 32-Bit-Wert. Obwohl die APIC-ID ein Intel-Architektur-Begriff ist, kann eine ähnliche Funktion in anderen Prozessorarchitekturen auch verwendet werden, um einen Bootstrap-Prozessor zu identifizieren.
  • Anfänglich ist BSP KernO oder ein beliebiger Kern eines Mehrkernsystems. In einem heterogenen Satz von Kernen, der große Kerne (oder komplexe Anwendungen und/oder Hochleistungsanwendungen) und kleine Kerne (für weniger komplexe Anwendungen und/oder Niedrigleistungsanwendungen) umfasst, kann der BSP einer der kleinen Kerne sein. Dieser initiale BSP wird zum Identifizieren des energieeffizienten (EE) BSP verwendet. In manchen Ausführungsformen kann jedoch auch ein großer Kern als ein DSP verwendet werden.
  • In diesem Zusammenhang liest bei Block 701 der Mikrocode (z. B. pCode) oder das BIOS (eingebautes Eingabe-Ausgabe-System) die Fuses oder den NVM, die die Pro-Kern-Vmin-Werte speichern. Diese Fuses werden während der HVM programmiert. Beim Lesen der Fuses oder des NVM berechnet und stuft der Mikrocode oder das BIOS die Kerne ein, wie unter Bezugnahme auf 5 besprochen. Von daher berechnet und stuft der Mikrocode oder das BIOS Kern-APIC-IDs basierend auf Effizienz um LFM-Frequenzen herum ein. Basierend auf den berechneten und eingestuften Kernen überträgt der Mikrocode oder das BIOS bei Block 702 die BSP-Eigentümerschaft an den effizientesten Kern (z. B. mit höherer Einstufungsnummer) durch Setzen eines Registers (z. B. IA32APIC _BASE.BSP = 1).
  • In einigen Ausführungsformen teilt der Mikrocode oder das BIOS dann bei Block 703 die APIC-IDs der Kerne, die basierend auf Effizienz eingestuft sind, mit dem Betriebssystem (oder Kernel). Zum Beispiel teilt der Mikrocode oder das BIOS die APIC-IDs der Kerne, die basierend auf Effizienz eingestuft sind, über ACPI(Advanced Configuration and Power Interface)-Tabellen, wie etwa die MADT (Multiple Interrupt Controller Table) mit dem OS.
  • Mit den umgeordneten APIC-IDs versorgt das OS bei Block 704 Niedrignutzungs-Aufgaben, Interrupts, DPCs, effizient auf dem Kern mit der niedrigsten Vmin. Es wird angemerkt, dass die APIC-ID-Umordnung auch ein effizienteres HW-Interrupt-Routing ermöglicht. In einigen Ausführungsformen verwendet ein OS-Scheduler bei Block 705 die effizienten Kerne als präferierte oder bevorzugte Kerne zum Thread-Scheduling und/oder für andere Hintergrund-Apps oder zum Versorgen von Interrupts.
  • Bei Block 706 wird eine Bestimmung hinsichtlich der Unterstützung für dynamische Hardware (HW) vorgenommen. Falls das SoC eine dynamische HW-Rückkopplung unterstützt, dann geht der Prozess zu Block 707 über, bei dem pCode (oder ein beliebiger geeigneter Mikrocode oder eine beliebige geeignete Firmware) die aktualisierte Effizienzkerneinstufung über einen gemeinsam genutzten Speicher oder eine Modellspezifisches-Register(MSR)-Schnittstelle teilt. Falls das SoC keine dynamische HW-Rückkopplung unterstützt, geht der Prozess zu Block 705 über. Wie hierin besprochen, verwendet der OS-Scheduler bei Block 705 die effizienten Kerne als präferierte oder bevorzugte Kerne für Thread-Scheduling und/oder für andere Hintergrund-Apps oder zum Versorgen von Interrupts.
  • Elemente von Ausführungsformen (z. B. Flussdiagramme mit Bezug auf verschiedene Ausführungsformen) sind auch als ein maschinenlesbares Medium (z. B. Speicher) zum Speichern der computerausführbaren Anweisungen (z. B. Anweisungen zum Implementieren beliebiger anderer hierin besprochener Prozesse) bereitgestellt. In manchen Ausführungsformen umfasst die Rechenplattform einen Speicher, einen Prozessor, maschinenlesbare Speicherungsmedien (auch als greifbares maschinenlesbares Medium bezeichnet), eine Kommunikationsschnittstelle (z. B. eine drahtlose oder drahtgebundene Schnittstelle) und einen Netzwerkbus, die miteinander gekoppelt sind.
  • In manchen Ausführungsformen ist der Prozessor ein Digitalsignalprozessor (DSP: Digital Signal Processor), eine anwendungsspezifische integrierte Schaltung (ASIC: Application Specific Integrated Circuit), eine Allzweck-Zentralverarbeitungseinheit (CPU: Central Processing Unit) oder eine Niedrigleistungslogik, die eine einfache Zustandsmaschine implementiert, um das Verfahren unter Bezugnahme auf verschiedene Flussdiagramme und/oder verschiedene Ausführungsformen usw. durchzuführen.
  • In manchen Ausführungsformen sind die verschiedenen Logikblöcke des Systems über einen Netzwerkbus miteinander gekoppelt. Ein beliebiges geeignetes Protokoll kann verwendet werden, um den Netzwerkbus zu implementieren. In manchen Ausführungsformen beinhaltet das maschinenlesbare Speicherungsmedium Anweisungen (auch als Programmsoftwarecode/-anweisungen bezeichnet) zum Berechnen oder Messen eines Abstands und einer relativen Orientierung einer Vorrichtung unter Bezugnahme auf eine andere Vorrichtung, wie unter Bezugnahme auf verschiedene Ausführungsformen und ein Flussdiagramm beschrieben.
  • Programmsoftwarecode/-anweisungen, die mit Flussdiagrammen unter Bezugnahme auf verschiedene Flussdiagramme und/oder verschiedene Ausführungsformen assoziiert sind und ausgeführt werden, um Ausführungsformen des offenbarten Gegenstands zu implementieren, können als Teil eines Betriebssystems oder einer spezifischen Anwendung, einer spezifischen Komponente, eines spezifischen Programms, eines spezifischen Objekts, eines spezifischen Moduls, einer spezifischen Routine oder einer anderen Sequenz von Anweisungen oder einer Organisation von Sequenzen von Anweisungen implementiert werden, die als „Programmsoftwarecode/-anweisungen“, „Betriebssystem-Programmsoftwarecode/-anweisungen“, „Anwendungs-Programmsoftwarecode/-anweisungen“ oder einfach „Software“ oder Firmware bezeichnet werden, die in den Prozessor eingebettet sind. In manchen Ausführungsformen werden der/die Programmsoftwarecode/-anweisungen, die mit Flussdiagrammen unter Bezugnahme auf verschiedene Flussdiagramme und/oder verschiedene Ausführungsformen assoziiert sind, durch das System ausgeführt.
  • In manchen Ausführungsformen werden der/die Programmsoftwarecode/-anweisungen, die unter Bezugnahme auf verschiedene Flussdiagramme und/oder verschiedene Ausführungsformen assoziiert sind, in einem computerausführbaren Speichermedium gespeichert und durch den Prozessor ausgeführt. Hier ist das computerausführbare Speicherungsmedium ein greifbares maschinenlesbares Medium, das verwendet werden kann, um Programmsoftwarecode/-anweisungen und Daten zu speichern, die, wenn sie durch eine Rechenvorrichtung ausgeführt werden, bewirken, dass ein oder mehrere Prozessoren ein oder mehrere Verfahren durchführen, wie in einem oder mehreren begleitenden Ansprüchen angegeben werden können, die sich auf den offenbarten Gegenstand beziehen.
  • Das greifbare maschinenlesbare Medium kann Speicherung des ausführbaren Softwareprogrammcodes/der ausführbaren Softwareprogrammanweisungen und Daten an verschiedenen greifbaren Orten beinhalten, einschließlich zum Beispiel ROM, flüchtigem RAM, nichtflüchtigem Speicher und/oder Cache und/oder anderem greifbaren Speicher, wie in der vorliegenden Anmeldung referenziert. Teile dieses Programmsoftwarecodes/dieser Programmsoftwareanweisungen und/oder Daten können in einer beliebigen dieser Speicherungs- und Speichervorrichtungen gespeichert werden. Ferner kann/können der Programmsoftwarecode/die Programmsoftwareanweisungen von einer anderen Speicherung erhalten werden, einschließlich z. B. über zentralisierte Server oder Peer-zu-Peer-Netzwerke und dergleichen, einschließlich des Internets. Unterschiedliche Teile des Softwareprogrammcodes/der Softwareprogrammeanweisungen und Daten können zu unterschiedlichen Zeiten und in unterschiedlichen Kommunikationssitzungen oder in der gleichen Kommunikationssitzung erhalten werden.
  • Der Softwareprogrammcode/die Softwareprogrammanweisungen (die unter Bezugnahme auf verschiedene Flussdiagramme und/oder verschiedene Ausführungsformen assoziiert sind) und Daten können in ihrer Gesamtheit vor der Ausführung eines jeweiligen Softwareprogramms oder einer jeweiligen Anwendung durch die Recheneinrichtung erhalten werden. Alternativ können Teile des Softwareprogrammcodes/der Softwareprogrammanweisungen und der Daten dynamisch erhalten werden, z. B. Just-in-Time, wenn sie zur Ausführung benötigt werden. Alternativ kann beispielshalber eine Kombination dieser Weisen zum Erhalten des Softwareprogrammcodes/der Softwareprogrammanweisungen und der Daten auftreten, z. B. für unterschiedliche Anwendungen, Komponenten, Programme, Objekte, Module, Routinen oder andere Sequenzen von Anweisungen oder Organisation von Sequenzen von Anweisungen. Somit ist nicht erforderlich, dass sich die Daten und die Anweisungen zu einem speziellen Zeitpunkt in ihrer Gesamtheit auf einem greifbaren maschinenlesbaren Medium befinden.
  • Beispiele für greifbare computerlesbare Medien beinhalten unter anderem Medien vom aufzeichnungsfähigen und nicht aufzeichnungsfähigen Typ, wie etwa flüchtige und nichtflüchtige Speichervorrichtungen, Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), Flash-Speichervorrichtungen, Disketten und andere entfernbare Platten, magnetische Speicherungsmedien, optische Speicherungsmedien (z. B. CD-ROMS (Compact Disk Read-Only Memory), DVDs (Digital Versatile Disks) usw.). Der Softwareprogrammcode/die Softwareprogrammanweisungen kann/können temporär in digitalen greifbaren Kommunikationslinks gespeichert werden, während elektrische, optische, akustische oder andere Formen von sich ausbreitenden Signalen, wie etwa Trägerwellen, Infrarotsignale, Digitalsignale usw., durch solche greifbaren Kommunikationslinks implementiert werden.
  • Allgemein beinhaltet das greifbare maschinenlesbare Medium einen beliebigen greifbaren Mechanismus, der Informationen in einer Form bereitstellt (d. h. in digitaler Form, z. B. Datenpakete, speichert und/oder überträgt), auf die eine Maschine (d. h. eine Rechenvorrichtung) zugreifen kann, die z. B. in einer Kommunikationsvorrichtung, einer Rechenvorrichtung, einer Netzwerkvorrichtung, einem Personal Digital Assistant, einem Herstellungswerkzeug, einer Mobilkommunikationsvorrichtung enthalten sein kann, unabhängig davon, ob sie Anwendungen und subsidisierte Anwendungen vom Kommunikationsnetzwerk, wie etwa das Internet, z. B. ein iPhone®, Galaxy® oder dergleichen, oder einer beliebigen anderen Vorrichtung einschließlich einer Rechenvorrichtung, herunterladen und ausführen kann oder nicht. In einer Ausführungsform liegt das prozessorbasierte System in Form eines PDA (Personal Digital Assistant), eines Mobiltelefons, eines Notebook-Computers, eines Tablets, einer Spielekonsole, einer Set-Top-Box, eines eingebetteten Systems, eines TV (Fernsehers), eines persönlichen Desktop-Computers usw. vor. Alternativ dazu können die traditionellen Kommunikationsanwendungen und subsidisierte Anwendung(en) in manchen Ausführungsformen des offenbarten Gegenstands verwendet werden.
  • In einigen Ausführungsformen werden einem maschinenlesbaren Speicherungsmedium maschinenlesbare Anweisungen bereitgestellt, die bei Ausführung bewirken, dass ein oder mehrere Prozessoren ein Verfahren durchführen, das Lesen von Fuses oder NVM umfasst, die Vmin pro Prozessorkern in einem Mehrkernsystem speichern. Das Verfahren umfasst ferner Einstufen, von einer höchsten Einstufung zu einer niedrigsten Einstufung, jedes Prozessorkerns des Mehrkernsystems gemäß der Vmin pro Prozessorkern; und Modifizieren eines bestehenden Bootstrap-Prozessors durch Zuweisen eines neuen Bootstrap-Prozessors zu einem Prozessorkern mit der höchsten Einstufung. In manchen Ausführungsformen plant ein Betriebssystem Interrupts oder versorgt Niedrignutzungs-Aufgaben auf dem Prozessorkern, der die höchste Einstufung aufweist. In einigen Ausführungsformen weisen die eingestuften Prozessorkerne eingestufte APIC-IDs auf.
  • In manchen Ausführungsformen umfasst das Verfahren Teilen von eingestuften APIC-IDs der Prozessorcodes mit einem Betriebssystem. Das Teilen von eingestuften APIC-IDs erfolgt über eine ACPI-Tabelle. In manchen Ausführungsformen umfasst die ACPI-Tabelle eine MADT. In einigen Ausführungsformen basiert die Einstufung jedes Prozessorkerns des Mehrkernsystems ferner auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum. In manchen Ausführungsformen werden die Fuses oder der NVM während der Massenherstellung mit Vmin pro Prozessorkern programmiert.
  • 8 veranschaulicht einen Boot-Fluss 800 vor einem OS-Handoff für effiziente/s Interrupt-Routing und/oder -Versorgung und OS-spezifische Kern-Parking-Vorteile gemäß manchen Ausführungsformen. Hier ist der Boot-Fluss 800 zeitlich von oben nach unten arbeitend gezeigt. Bei Block 801 weist Mikrocode oder Firmware (wie etwa pCode) den ersten Kern 802-0 (d. h. Kern 0) logisch als den BSP zu. Alle anderen Kerne 802-1, 802-2 und 802-3 wollen, dass der BSP-Kern0 802-0 vergleicht, bevor sie durchführen können. Von daher befinden sich die Kerne 802-1, 802-2 und 802-3 in MWAIT, wie durch 803 angegeben. Eine MWAIT-Anweisung stellt Hinweise bereit, dem Prozessor (oder Kern) zu ermöglichen, in einen implementierungsabhängigen optimierten Zustand einzutreten. In diesem Beispiel ist ein Vierkernsystem gezeigt. Die Ausführungsformen sind jedoch auf eine beliebige Anzahl und Arten von Kernen anwendbar. Hier können Arten von Kernen Kerne unterschiedlicher Funktionen, Größen usw. beinhalten.
  • In manchen Ausführungsformen identifiziert der Bootstrap-Fluss den BSP als den energieeffizientesten Kern des SoC und weist diesem Kern den niedrigsten APIC-ID-Wert zu. Der APIC-ID-Wert, der einen Zielprozessor spezifiziert, um ein Interrupt zu empfangen, wird im logischen Zielmodus in einer lokalen x2APIC geliefert.
  • Eine mögliche Implementierung unter Verwendung der zugrundeliegenden Neuheit existiert bei OSs, die Kern-Parking unterstützen. Auf der Windows®-Plattform folgt zum Beispiel der Standardmechanismus zum Ausführen von Kern-Parking der natürlichen Aufzählungsreihenfolge. Kern-Parking ist ein Merkmal, das dynamisch einen Satz von Prozessoren auswählt, die auf der Basis der aktuellen Leistungsrichtlinie und ihrer jüngsten Nutzung im Ruhemodus bleiben und keine Threads ausführen sollten. Dies verringert den Energieverbrauch und reduziert somit den Wärme- und Leistungsverbrauch.
  • Zur Veranschaulichung beträgt die Parking-Reihenfolge auf einem 4-Kern-System 4, 3, 2. Durch Assoziieren der Vmin-Rangfolge mit der Kern-ID-Aufzählungsfolge und Transferieren der BSP-Eigentümerschaft zu dem effizientesten Kern vor dem OS-Handoff kann die Parking-Logik jedoch natürlich eine geordnete Sequenz verwenden (d. h. zuerst den ineffizientesten Kern parken, der in diesem Beispiel der Kern 802-0 ist). Außerdem ermöglicht das Umordnen der Kerne effizienteres Interrupt-Routing durch die HW und Interrupt/DPC-Versorgung durch das OS. In diesem Fall erfolgt die Kern-ID-Aufzählung basierend auf der relativen Effizienz einzelner Kerne. Es wird angemerkt, dass das Ausmaß an Vorteilen verschiedener Implementierungen nativ für die Implementierung ist. Unabhängig von der Lösungsimplementierung ist das Kernprinzip vom HVM-Herstellungsprozess abhängig, der die relative Vmin-Kernreihenfolge aufzählt. Eine implementierungsspezifische Sequenz, wie durch 804, 805, 806 und 807 veranschaulicht, kann die beabsichtigte Einstufung erreichen, die tatsächlich während der Aufzählung und der Boot-Flüsse durchgesetzt werden kann. Darin ist bei Block 808 der OS-Handoff abgeschlossen.
  • 9 veranschaulicht eine Smart-Vorrichtung oder ein Computersystem oder ein SoC (System-on-Chip) mit Firmware für energieeffiziente/s Interrupt-Routing/-Versorgung und Niedrignutzungs-Thread-Scheduling basierend auf Vmin gemäß manchen Ausführungsformen.
  • Beliebige der Blöcke hierin können die Logik aufweisen, um einen Takt gemäß Sicherheitsschlüsseln zu gaten oder zu ent-gaten. In einigen Ausführungsformen beinhaltet das SoC die Krypto-Engine zum Erzeugen der Schlüssel für andere IP-Blöcke innerhalb einer Plattform. Es wird darauf hingewiesen, dass jene Elemente von 9, die gleichen Bezugsziffern (oder Bezeichnungen) wie die Elemente einer beliebigen anderen Figur aufweisen, auf eine beliebige ähnliche Weise wie jene beschriebene arbeiten oder funktionieren können, aber nicht darauf beschränkt sind.
  • In manchen Ausführungsformen repräsentiert die Vorrichtung 5500 eine zweckmäßige Rechenvorrichtung, wie etwa ein Rechentablet, ein Mobiltelefon oder Smartphone, einen Laptop, einen Desktop, eine Internet-der Dinge-Vorrichtung (Internet-of-Things - IoT), einen Server, eine Wearable-Vorrichtung, eine Set-Top-Box, einen drahtlosfähigen e-Reader oder dergleichen. Es versteht sich, dass gewisse Komponenten allgemein gezeigt sind und nicht alle Komponenten einer derartigen Vorrichtung in der Vorrichtung 5500 gezeigt sind.
  • Bei einem Beispiel umfasst die Vorrichtung 5500 ein SoC (System-on-Chip) 5501. Eine beispielhafte Grenze des SoC 5501 ist unter Verwendung gestrichelter Linien in 9 veranschaulicht, wobei manche beispielhaften Komponenten als in dem SoC 5501 enthalten veranschaulicht sind - jedoch kann das SoC 5501 beliebige geeignete Komponenten der Vorrichtung 5500 beinhalten.
  • In manchen Ausführungsformen beinhaltet die Vorrichtung 5500 einen Prozessor 5504. Der Prozessor 5504 kann eine oder mehrere physische Vorrichtungen beinhalten, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen, Verarbeitungskerne oder andere Verarbeitungsimplementierungen, wie etwa disaggregierte Kombinationen mehrerer Rechen-, Grafik-, Beschleuniger-, E/A- und/oder anderer Verarbeitungschips. Die Verarbeitungsoperationen, die durch den Prozessor 5504 durchgeführt werden, beinhalten die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf der/dem Anwendungen und/oder Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsoperationen beinhalten Operationen bezüglich E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Vorrichtungen, Operationen bezüglich Leistungsverwaltung, Operationen bezüglich des Verbindens der Rechenvorrichtung 5500 mit einer anderen Vorrichtung und/oder dergleichen. Die Verarbeitungsoperationen können auch Operationen bezüglich Audio-E/A und/oder Anzeige-E/A aufweisen.
  • In manchen Ausführungsformen beinhaltet der Prozessor 5504 mehrere Prozessorkerne (auch als Kerne bezeichnet) 5508a, 5508b, 5508c. Obgleich lediglich drei Kerne 5508a, 5508b, 5508c in 9 veranschaulicht sind, kann der Prozessor 5504 eine beliebige andere zweckmäßige Anzahl von Verarbeitungskernen beinhalten, z. B. dutzende oder sogar hunderte von Verarbeitungskernen. Die Prozessorkerne 5508a, 5508b, 5508c können auf einem einzelnen Integrierte-Schaltung(IC)-Chip implementiert sein. Darüber hinaus kann der Chip einen oder mehrere gemeinsam genutzte und/oder private Caches, Busse oder Verschaltungen, Grafik- und/oder Speichersteuerung oder andere Komponenten beinhalten.
  • In manchen Ausführungsformen beinhaltet der Prozessor 5504 einen Cache 5506. In einem Beispiel können Abschnitte des Cache 5506 individuellen Kernen 5508 gewidmet sein (z. B. kann ein erster Abschnitt des Cache 5506 dem Kern 5508a gewidmet, ein zweiter Abschnitt des Cache 5506 dem Kern 5508b gewidmet sein und so weiter). Bei einem Beispiel können ein oder mehrere Abschnitte des Cache 5506 unter zwei oder mehr Kernen 5508 gemeinsam genutzt werden. Der Cache 5506 kann in verschiedene Ebenen bzw. Level aufgeteilt sein, z. B. Level 1(L1)-Cache, Level 2(L2)-Cache, Level 3(L3)-Cache usw.
  • In manchen Ausführungsformen kann der Prozessorkern 5504 eine Abrufeinheit zum Abrufen von Anweisungen (einschließlich Anweisungen mit bedingten Verzweigungen) zur Ausführung durch den Kern 5504 beinhalten. Die Anweisungen können von beliebigen Speicherungsvorrichtungen, wie etwa dem Speicher 5530, abgerufen werden. Der Prozessorkern 5504 kann auch eine Decodiereinheit zum Decodieren der abgerufenen Anweisungen beinhalten. Beispielsweise kann die Decodiereinheit die abgerufene Anweisung in mehrere Mikrooperationen decodieren. Der Prozessorkern 5504 kann eine Planungseinheit zum Durchführen verschiedener mit Speichern decodierter Anweisungen assoziierter Operationen beinhalten. Beispielsweise kann die Planungseinheit Daten von der Decodiereinheit halten, bis Anweisungen zum Übermitteln bereit sind, z. B. bis alle Quellwerte einer decodierten Anweisung verfügbar werden. Bei einer Ausführungsform kann die Planungseinheit decodierte Anweisungen planen und/oder diese zu einer Ausführungseinheit zur Ausführung ausgeben (oder übermitteln).
  • Die Ausführungseinheit kann die übermittelten Anweisungen ausführen, nachdem sie (z. B. durch die Decodiereinheit) decodiert und (z. B. durch die Planungseinheit) übermittelt wurden. In einer Ausführungsform kann die Ausführungseinheit mehr als eine Ausführungseinheit beinhalten (wie etwa eine Bildgebungsberechnungseinheit, eine Grafikberechnungseinheit, eine Allzweckberechnungseinheit usw.). Die Ausführungseinheit kann auch verschiedene arithmetische Operationen wie etwa Addition, Subtraktion, Multiplikation und/oder Division durchführen und kann eine oder mehrere arithmetische Logikeinheiten (ALUs - Arithmetic Logic Units) beinhalten. In einer Ausführungsform kann ein (nicht gezeigter) Co-Prozessor verschiedene arithmetische Operationen in Verbindung mit der Ausführungseinheit durchführen.
  • Ferner kann die Ausführungseinheit Anweisungen nicht der Reihenfolge nach (out-of-order) ausführen. Daher kann der Prozessorkern 5504 bei einer Ausführungsform ein Out-Of-Order-Prozessorkern sein. Der Kern 5504 kann auch eine Rückzugseinheit aufweisen. Die Rückzugseinheit kann ausgeführte Anweisungen zurückziehen, nachdem sie übergeben wurden. In einer Ausführungsform kann Zurückziehen der ausgeführten Anweisungen darin resultieren, dass ein Prozessorzustand von der Ausführung der Anweisungen übergeben wird, physische Register, die durch die Anweisungen verwendet werden, freigegeben werden, usw. Der Prozessor 5504 kann auch eine Buseinheit beinhalten, um Kommunikation zwischen Komponenten des Prozessorkerns 5504 und anderen Komponenten über einen oder mehrere Busse freizuschalten. Der Prozessorkern 5504 kann auch ein oder mehrere Register zum Speichern von Daten, auf die durch verschiedene Komponenten des Kerns 5504 zugegriffen wird, umfassen (wie etwa Werte, die sich auf App-Prioritäten und/oder Untersystemzustands(Unterzustandsmodi)-Assoziation beziehen).
  • In einigen Ausführungsformen umfasst die Vorrichtung 5500 Konnektivitätsschaltungsanordnungen 5531. Beispielsweise beinhalten die Konnektivitätsschaltungsanordnungen 5531 Hardwarevorrichtungen (z. B. drahtlose und/oder drahtgebundene Verbinder und Kommunikationshardware) und/oder Softwarekomponenten (z. B. Treiber, Protokollstapel), um der Vorrichtung 5500 Kommunikation mit externen Vorrichtungen zu ermöglichen. Die Vorrichtung 5500 kann von den externen Vorrichtungen, wie etwa anderen Rechenvorrichtungen, Drahtloszugangspunkten oder Basisstationen usw., separiert sein.
  • In einem Beispiel können die Konnektivitätsschaltungsanordnungen 5531 mehrere unterschiedliche Konnektivitätsarten beinhalten. Verallgemeinert können die Konnektivitätsschaltungsanordnungen 5531 Zellular-Konnektivitätsschaltungsanordnungen, Drahtlos-Konnektivitätsschaltungsanordnungen usw. beinhalten Zellular-Konnektivitätsschaltungsanordnungen der Konnektivitätsschaltungsanordnungen 5531 beziehen sich allgemein auf zellulare Netzwerkkonnektivität, die durch drahtlose Träger bereitgestellt wird, wie etwa über GSM (Global System for Mobile Communications - globales System für Mobilkommunikationen) oder Variationen oder Derivate, CDMA (Code Division Multiple Access - Codemultiplex-Mehrfachzugriff) oder Variationen oder Derivate, TDM (Time Division Multiplexing - Zeit-Multiplexing) oder Variationen oder Derivate, 3GPP(3rd Generation Partnership Project)-Universal-Mobile-Telecommunications-Systems(UMTS - universelle Telekommunikationssysteme)-System oder Variationen oder Derivate, 3GPP-Long-Term-Evolution(LTE)-System oder Variationen oder Derivate, 3GPP-LTE-Advanced(LTE-A)-System oder Variationen oder Derivate, Fünftgeneration(5G)-Drahtlossystem oder Variationen oder Derivate, 5G-Mobilnetz-System oder Variationen oder Derivate, 5G-New-Radio(NR)-System oder Variationen oder Derivate oder andere zellulare Dienststandards bereitgestellt. Drahtlos-Konnektivitätsschaltungsanordnungen (oder eine Drahtlosschnittstelle) der Konnektivitätsschaltungsanordnungen 5531 beziehen sich auf eine drahtlose Konnektivität, die nicht zellular ist, und kann persönliche Netze (wie etwa Bluetooth, Nahfeld usw.), lokale Netze (wie etwa WiFi) und/oder großflächige Netze (wie etwa WiMax) und/oder eine andere drahtlose Kommunikation aufweisen. In einem Beispiel können die Konnektivitätsschaltungsanordnungen 5531 eine Netzwerkschnittstelle beinhalten, wie etwa eine drahtgebundene oder drahtlose Schnittstelle, sodass beispielsweise eine Systemausführungsform in eine Drahtlosvorrichtung, zum Beispiel ein Mobiltelefon oder einen Personal Digital Assistant, integriert werden kann.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 einen Steuerhub 5532, der Hardware-Vorrichtungen und/oder Software-Komponenten, die sich auf die Interaktion mit einer oder mehreren E/A-Vorrichtungen beziehen, repräsentiert. Beispielsweise kann der Prozessor 5504 über den Steuerhub 5532 mit einer Anzeigevorrichtung 5522 und/oder einer oder mehreren Peripherievorrichtungen 5524 und/oder Speicherungsvorrichtungen 5528 und/oder einer oder mehreren externen Vorrichtungen 5529 usw. kommunizieren. Der Steuerhub 5532 kann ein Chipsatz, ein Plattform-Steuerhub (PCH) und/oder dergleichen sein.
  • Beispielsweise veranschaulicht der Steuerhub 5532 einen oder mehrere Verbindungspunkte für zusätzliche Vorrichtungen, die mit der Vorrichtung 5500 verbindbar sind und durch die z. B. ein Benutzer mit dem System interagieren könnte. Vorrichtungen (z. B. Vorrichtungen 5529), die an die Vorrichtung 5500 angeschlossen werden können, beinhalten beispielsweise Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Audiovorrichtungen, Videosysteme oder andere Anzeigevorrichtungen, Tastatur- oder Tastenfeldvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit speziellen Anwendungen, wie etwa Kartenlesegeräte oder andere Vorrichtungen.
  • Wie oben erwähnt wurde, kann der Steuerhub 5532 mit Audiovorrichtungen, der Anzeigevorrichtung 5522 usw. interagieren. Beispielsweise kann eine Eingabe über ein Mikrofon oder eine andere Audiovorrichtung Eingaben oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Vorrichtung 5500 bereitstellen. Zusätzlich dazu kann anstelle einer Anzeigeausgabe, oder zusätzlich dazu, eine Audioausgabe bereitgestellt werden. Bei einem anderen Beispiel fungiert die Anzeigevorrichtung 5522, wenn die Anzeigevorrichtung 5522 einen Touchscreen beinhaltet, auch als eine Eingabevorrichtung, die zumindest teilweise durch den Steuerhub 5532 verwaltet sein kann. Es können auch zusätzliche Tasten oder Schalter an der Rechenvorrichtung 5500 vorhanden sein, um durch den Steuerhub 5532 verwaltete E/A-Funktionen bereitzustellen. Bei einer Ausführungsform verwaltet der Steuerhub 5532 Vorrichtungen, wie etwa Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren oder andere Hardware, die in der Vorrichtung 5500 enthalten sein kann. Die Eingabe kann Teil einer direkten Benutzerinteraktion sein, sowie dem System Umgebungseingaben zur Beeinflussung seines Betriebs zuführen (wie etwa Störgeräuschfilterung, Anpassen von Anzeigen zur Helligkeitsdetektion, Anwenden eines Blitzes für eine Kamera oder andere Merkmale).
  • In manchen Ausführungsformen kann der Steuerhub 5532 verschiedene Vorrichtungen unter Verwendung eines beliebigen passenden Kommunikationsprotokolls koppeln, z. B. PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), Thunderbolt, High Definition Multimedia Interface (HDMI), Firewire usw.
  • In manchen Ausführungsformen repräsentiert die Anzeigevorrichtung 5522 Hardware- (z. B. Anzeigevorrichtungen) und Softwarekomponenten (z. B. Treiber), die eine visuelle und/oder taktile Anzeige für einen Benutzer zum Interagieren mit der Vorrichtung 5500 bereitstellen. Die Anzeigevorrichtung 5522 kann eine Anzeigeschnittstelle, einen Anzeigebildschirm und/oder eine Hardwarevorrichtung, die zum Bereitstellen einer Anzeige für einen Benutzer verwendet wird, beinhalten. In einer Ausführungsform beinhaltet die Anzeigevorrichtung 5522 eine Touchscreen(oder Touchpad)-Vorrichtung, die einen Benutzer sowohl mit einer Ausgabe als auch einer Eingabe versieht. In einem Beispiel kann die Anzeigevorrichtung 5522 direkt mit dem Prozessor 5504 kommunizieren. Die Anzeigevorrichtung 5522 kann eine interne Anzeigevorrichtung, wie in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung, und/oder eine externe Anzeigevorrichtung sein, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angeschlossen ist. In einer Ausführungsform kann die Anzeigevorrichtung 5522 ein HMD (Head Mounted Display) sein, wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung bei Anwendungen mit virtueller Realität (VR) oder erweiterter Realität (AR - Augmented Reality).
  • In manchen Ausführungsformen und, obgleich in der Figur nicht veranschaulicht, kann die Vorrichtung 5500 zusätzlich zu (oder anstelle von) Prozessor 5504, eine Grafikverarbeitungseinheit (Graphics Processing Unit - GPU) beinhalten, die einen oder mehrere Grafikverarbeitungskerne umfasst, die einen oder mehrere Aspekte des Anzeigens von Inhalt auf der Anzeigevorrichtung 5522 steuern können.
  • Der Steuerhub 5532 (oder der Plattform-Steuerhub) kann HardwareSchnittstellen und -Verbinder sowie Software-Komponenten (z. B. Treiber, Protokollstapel), um Peripherieverbindungen herzustellen, z. B. mit Peripherievorrichtungen 5524, beinhalten.
  • Es versteht sich, dass die Vorrichtung 5500 sowohl eine Peripherievorrichtung für andere Rechenvorrichtungen sein kann, als auch Peripherievorrichtungen mit ihr verbunden haben kann. Die Vorrichtung 5500 kann einen „Andock“-Verbinder zum Verbinden mit anderen Rechenvorrichtungen für Zwecke wie etwa das Verwalten (z. B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf der Vorrichtung 5500 aufweisen. Zusätzlich dazu kann es ein Andockverbinder der Vorrichtung 5500 ermöglichen, eine Verbindung mit gewissen Peripheriegeräten herzustellen, die es der Rechenvorrichtung 5500 ermöglichen, die Inhaltsausgabe zum Beispiel an audiovisuelle oder andere Systeme zu steuern.
  • Zusätzlich zu einem proprietären Andockverbinder oder einer anderen proprietären Verbindungshardware kann die Vorrichtung 5500 Peripherieverbindungen über allgemeine oder standardbasierte Verbinder herstellen. Übliche Arten können einen Universal-Serial-Bus(USB)-Verbinder (der eine beliebige einer Anzahl verschiedener Hardwareschnittstellen beinhalten kann), DisplayPort, einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire oder andere Arten beinhalten.
  • In manchen Ausführungsformen können die Konnektivitätsschaltungsanordnungen 5531 mit dem Steuerhub 5532 gekoppelt sein, z. B. zusätzlich zu oder anstelle von direkter Koppelung mit dem Prozessor 5504. In manchen Ausführungsformen kann die Anzeigevorrichtung 5522 mit dem Steuerhub 5532 gekoppelt sein, z. B. zusätzlich zu oder anstelle von direkter Koppelung mit dem Prozessor 5504.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 einen Speicher 5530, der über eine Speicherschnittstelle 5534 mit dem Prozessor 5504 gekoppelt ist. Der Speicher 5530 beinhaltet Speichervorrichtungen zum Speichern von Informationen in der Vorrichtung 5500.
  • In manchen Ausführungsformen beinhaltet der Speicher 5530 eine Einrichtung zum Beibehalten einer stabilen Taktgebung, wie mit Bezug auf verschiedene Ausführungsformen beschrieben. Zu Speicher können nichtflüchtige (keine Zustandsänderung bei Unterbrechung der Stromzufuhr zur Speichervorrichtung) und/oder flüchtige (unbestimmter Zustand bei Unterbrechung der Stromzufuhr zur Speichervorrichtung) Speichervorrichtungen gehören. Die Speichervorrichtung 5530 kann eine dynamische Direktzugriffsspeicher(DRAM)-Vorrichtung, eine statische Direktzugriffsspeicher(SRAM)-Vorrichtung, eine Flash-Speichervorrichtung, eine Phasenwechsel-Speichervorrichtung oder eine andere Speichervorrichtung sein, die eine geeignete Performanz zum Dienen als ein Prozessspeicher aufweist. In einer Ausführungsform kann der Speicher 5530 als Systemspeicher für die Vorrichtung 5500 betrieben werden, um Daten und Anweisungen zu speichern, die verwendet werden, wenn der eine oder die mehreren Prozessoren 5504 eine Anwendung oder einen Prozess ausführen. Der Speicher 5530 kann Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten (egal ob langfristig oder temporär) bezüglich der Ausführung der Anwendungen und Funktionen der Vorrichtung 5500 speichern.
  • Elemente von verschiedenen Ausführungsformen und Beispielen sind auch als ein maschinenlesbares Medium (z. B. der Speicher 5530) zum Speichern der computerausführbaren Anweisungen (z. B. Anweisungen zum Implementieren beliebiger anderer hierin erörterter Prozesse) bereitgestellt. Das maschinenlesbare Medium (z. B. der Speicher 5530) kann unter anderem Flash-Speicher, optische Platten, CD-ROMs, DVD-ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Phasenwechselspeicher (PCM) oder andere Arten zur Speicherung elektronischer oder computerausführbarer Anweisungen geeigneter maschinenlesbarer Medien beinhalten. Ausführungsformen der Offenbarung können zum Beispiel als ein Computerprogramm (z. B. BIOS) heruntergeladen werden, das von einem entfernten Computer (z. B. einem Server) mittels Datensignalen über einen Kommunikationslink (z. B. ein Modem oder eine Netzwerkverbindung) an einen anfragenden Computer (z. B. einen Client) übertragen werden kann.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 Temperaturmessungsschaltungsanordnungen 5540, beispielsweise zum Messen einer Temperatur von verschiedenen Komponenten der Vorrichtung 5500. In einem Beispiel können die Temperaturmessungsschaltungsanordnungen 5540 eingebettet sein, oder mit verschiedenen Komponenten gekoppelt oder an solchen angebracht sein, deren Temperatur gemessen und überwacht werden soll. Zum Beispiel können die Temperaturmessungsschaltungsanordnungen 5540 die Temperatur eines oder mehrerer (oder innerhalb) der Kerne 5508a, 5508b, 5508c, des Spannungsreglers 5514, des Speichers 5530, einer Hauptplatine des SoC 5501 und/oder einer beliebigen geeigneten Komponente der Vorrichtung 5500 messen. In manchen Ausführungsformen beinhalten die Temperaturmessungsschaltungsanordnungen 5540 eine LPHR(Low Power Hybrid Reverse)-Bandlückenreferenz (BGR) und einen digitalen Temperatursensor (DTS), der einen Subschwellen-Metalloxid-Halbleiter(MOS)-Transistor und die parasitäre PNP-BipolarTransistor(BJT)-Vorrichtung nutzt, um eine umgekehrte BGR zu bilden, die als die Basis für konfigurierbare BGR- oder DTS-Betriebsmodi dient. Die LPHR-Architektur verwendet kostengünstige MOS-Transistoren und die standardmäßige parasitäre PNP-Vorrichtung. Basierend auf einer umgekehrten Bandlückenspannung kann die LPHR als eine konfigurierbare BGR arbeiten. Durch Vergleichen der konfigurierbaren BGR mit der skalierten Basis-Emitter-Spannung kann die Schaltung auch als ein DTS mit einer linearen Transferfunktion mit Einzeltemperaturtrimmung für eine hohe Genauigkeit arbeiten.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 Leistungsmessungsschaltungsanordnungen 5542, beispielsweise zum Messen einer von einer oder mehreren Komponenten der Vorrichtung 5500 aufgenommenen Leistung. In einem Beispiel kann die Leistungsmessungsschaltungsanordnung 5542 zusätzlich zu oder anstelle von Messen der Leistung Spannung und/oder Strom messen. In einem Beispiel können die Leistungsmessungsschaltungsanordnungen 5542 eingebettet sein, oder mit verschiedenen Komponenten gekoppelt oder an solchen angebracht sein, deren Leistungs-,
    Spannungs- und/oder Stromverbrauch gemessen und überwacht werden soll. Zum Beispiel können die Leistungsmessungsschaltungsanordnungen 5542 Leistung, Strom und/oder Spannung, die durch einen oder mehrere Spannungsregler 5514 geliefert werden, Leistung, die an das SoC 5501 geliefert wird, Leistung, die an die Vorrichtung 5500 geliefert wird, Leistung, die durch den Prozessor 5504 (oder eine beliebige andere Komponente) der Vorrichtung 5500 verbraucht wird, usw. messen.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 eine oder mehrere Spannungsreglerschaltungsanordnungen, die allgemein als Spannungsregler (VR: Voltage Regulator) 5514 bezeichnet werden. Der VR 5514 erzeugt Signale mit zweckmäßigen Spannungspegeln, die zum Betreiben beliebiger zweckmäßiger Komponenten der Vorrichtung 5500 zugeführt werden können. Der VR 5514 ist lediglich als ein Beispiel derart veranschaulicht, dass er dem Prozessor 5504 der Vorrichtung 5500 Signale zuführt. In manchen Ausführungsformen empfängt der VR 5514 ein oder mehrere Spannungsidentifikationssignale bzw. VID-Signale (Voltage Identification - VID) und erzeugt auf der Grundlage der VID-Signale das Spannungssignal mit einem zweckmäßigen Pegel. Verschiedene Arten von VRs können für den VR 5514 genutzt werden. Der VR 5514 kann zum Beispiel einen „Buck“-VR, „Boost“-VR, eine Kombination von Buck- und Boost-VRs, LDO(low dropout)-Regler, DC-DC-Schaltregler, steuerungsbasierten DC-DC-Regler mit konstanter Ein-Zeit usw. beinhalten. Ein Buck-VR wird im Allgemeinen in Leistungslieferungsanwendungen verwendet, in denen eine Eingangsspannung mit einem kleineren als dem Einheitsverhältnis in eine Ausgangsspannung transformiert werden muss. Ein Boost-VR wird im Allgemeinen in Leistungslieferungsanwendungen verwendet, in denen eine Eingangsspannung mit einem größeren als dem Einheitsverhältnis in eine Ausgangsspannung transformiert werden muss. In manchen Ausführungsformen weist jeder Prozessorkern seinen eigenen VR auf, der durch PCU 5510a/b und/oder PMIC 5512 gesteuert wird. In manchen Ausführungsformen weist jeder Kern ein Netzwerk von verteilten LDOs auf, um eine effiziente Leistungsverwaltungssteuerung bereitzustellen. Die LDOs können digital, analog oder eine Kombination von digitalen oder analogen LDOs sein. In manchen Ausführungsformen beinhaltet der VR 5514 eine Stromverfolgungseinrichtung zum Messen eines Stroms durch die Leistungsversorgungsschiene(n).
  • In manchen Ausführungsformen beinhaltet der VR 5514 ein digitales Steuerschema zum Verwalten von Zuständen eines Proportional-Integral-Differenzial(PID)-Filters (auch als digitaler Typ-III-Kompensator bekannt). Das digitale Steuerschema steuert den Integrator des PID-Filters, um eine nichtlineare Steuerung des Sättigens des Tastverhältnisses zu implementieren, während der der proportionale und der differenziale Term des PID auf 0 gesetzt werden, während der Integrator und seine internen Zustände (vorherige Werte oder Speicher) auf ein Tastverhältnis gesetzt werden, das die Summe des aktuellen nominalen Tastverhältnisses plus einem deltaD ist. Das deltaD ist das maximale Tastverhältnisinkrement, das zum Regeln eines Spannungsreglers von ICCmin auf ICCmax verwendet wird, und ist ein Konfigurationsregister, das Post-Silizium gesetzt werden kann. Eine Zustandsmaschine bewegt sich von einem nichtlinearen Alle-EIN-Zustand (der die Ausgangsspannung Vout zurück zu einem Regelfenster bringt) zu einem Tastverhältnis mit offener Schleife, das die Ausgangsspannung etwas höher als die erforderliche Referenzspannung Vref hält. Nach einem gewissen Zeitraum in diesem Zustand mit offener Schleife bei dem befohlenen Tastverhältnis fährt die Zustandsmaschine dann den Wert des Tastverhältnisses mit offener Schleife herunter, bis die Ausgangsspannung nahe dem befohlenen Vref liegt. Von daher wird ein Ausgangs-Chatter an der Ausgangsversorgung vom VR 5514 vollständig eliminiert (oder im Wesentlichen eliminiert) und es gibt lediglich einen einzigen Unterschwingungs-Übergang, der zu einer garantierten Vmin basierend auf einer Komparatorverzögerung und dem di/dt der Last mit der verfügbaren Ausgangsentkopplungskapazität führen könnte.
  • In manchen Ausführungsformen beinhaltet der VR 5514 eine separate Selbststartsteuerung, die ohne Fuse (oder NVM) und/oder Trimminformationen funktionsfähig ist. Die Selbststartsteuerung schützt den VR 5514 vor großen Einschaltströmen und Spannungsüberschwingungen, während sie in der Lage ist, einer variablen VID(Voltage Identification)-Referenzrampe zu folgen, die durch das System auferlegt wird. In manchen Ausführungsformen verwendet die Selbststartsteuerung einen Relaxationsoszillator, der in die Steuerung eingebaut ist, um die Schaltfrequenz des Abwärtswandlers einzustellen. Der Oszillator kann entweder unter Verwendung eines Takts oder einer Stromreferenz initialisiert werden, um nahe einer gewünschten Betriebsfrequenz zu sein. Der Ausgang des VR 5514 ist schwach mit dem Oszillator gekoppelt, um das Tastverhältnis für den Betrieb mit geschlossener Schleife einzustellen. Die Steuerung ist natürlich so vorgespannt, dass die Ausgangsspannung immer geringfügig höher als der Sollwert ist, wodurch die Notwendigkeit für beliebige Prozess-, Spannungs- und/oder Temperatur(PVT)-auferlegte Trimmungen eliminiert wird.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 eine oder mehrere Taktgeneratorschaltungsanordnungen, die allgemein als Taktgenerator 5516 bezeichnet werden. Der Taktgenerator 5516 erzeugt Signale mit zweckmäßigen Frequenzniveaus, die beliebigen passenden Komponenten der Vorrichtung 5500 zugeführt werden können. Der Taktgenerator 5516 ist lediglich als ein Beispiel derart dargestellt, dass er dem Prozessor 5504 der Vorrichtung 5500 Taktsignale zuführt. In manchen Ausführungsformen empfängt der Taktgenerator 5516 ein oder mehrere Frequenzidentifikationssignale bzw. FID-Signale (Frequency Identification - FID) und erzeugt auf der Grundlage der FID-Signale die Taktsignale mit zweckmäßigen Frequenzen.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 eine Batterie 5518, die verschiedenen Komponenten der Vorrichtung 5500 Leistung zuführt. Die Batterie 5518 ist lediglich als ein Beispiel derart dargestellt, dass sie dem Prozessor 5504 Leistung zuführt. Obgleich in den Figuren nicht veranschaulicht, kann die Vorrichtung 5500 eine Ladungsschaltungsanordnung umfassen, z. B. zum Aufladen der Batterie, auf der Grundlage einer von einem AC-Adapter empfangenen Wechselstrom-Leistungszufuhr (AC-Leistungszufuhr).
  • In manchen Ausführungsformen überprüft die Batterie 5518 periodisch eine tatsächliche Batteriekapazität oder -energie mit Ladung auf eine voreingestellte Spannung (z. B. 4,1 V). Die Batterie entscheidet dann über die Batteriekapazität bzw. -energie. Falls die Kapazität oder Energie unzureichend ist, dann erhöht eine Einrichtung in oder assoziiert mit der Batterie die Ladespannung geringfügig bis zu einem Punkt, bei dem die Kapazität ausreichend ist (z. B. von 4,1 V auf 4,11 V). Der Prozess des periodischen Überprüfens und leichten Erhöhens der Ladespannung wird durchgeführt, bis die Ladespannung die Spezifikationsgrenze (z. B. 4,2 V) erreicht. Das hierin beschriebene Schema weist Vorteile auf, wie etwa dass Batterielanglebigkeit erweitert werden kann, das Risiko einer unzureichenden Energiereserve reduziert werden kann, Burst-Leistung so lange wie möglich verwendet werden kann und/oder sogar höhere Burst-Leistung verwendet werden kann.
  • In manchen Ausführungsformen ist die Batterie 5518 ein Mehrbatteriesystem mit einem arbeitslastabhängigen Lastverteilungsmechanismus. Der Mechanismus ist ein Energieverwaltungssystem, das in drei Modi arbeitet - Energiesparmodus, Ausgleichsmodus und Turbomodus. Der Energiesparmodus ist ein Normalmodus, bei dem die mehreren Batterien (kollektiv als Batterie 5518 gezeigt) Leistung an ihren eigenen Satz von Lasten mit geringster resistiver Dissipation liefern. Im Ausgleichsmodus sind die Batterien durch Schalter verbunden, die im aktiven Modus arbeiten, sodass der geteilte Strom umgekehrt proportional zu dem entsprechenden Batterieladezustand ist. Im Turbomodus sind beide Batterien durch Schalter (z. B. Ein-Schalter) parallel geschaltet, um einen Prozessor oder eine Last mit maximaler Leistung zu versorgen. In manchen Ausführungsformen ist die Batterie 5518 eine Hybridbatterie, die eine Schnellladebatterie und eine Batterie mit hoher Energiedichte umfasst. Eine Schnellladebatterie (FC) bedeutet eine Batterie, die zum schnelleren Laden als eine Batterie mit hoher Energiedichte (HE) in der Lage ist. FC kann eine heutige Li-Ionen-Batterie sein, da sie schneller geladen werden kann als HE. In manchen Ausführungsformen optimiert eine Steuerung (Teil der Batterie 5518) die Sequenz und Laderate für die Hybridbatterie, um sowohl den Ladestrom als auch die Ladegeschwindigkeit der Batterie zu maximieren, während eine längere Batterielebensdauer ermöglicht wird.
  • In manchen Ausführungsformen umfasst die Ladeschaltungsanordnung (z. B. 5518) einen Abwärts-Aufwärts-Wandler. Dieser Abwärts-Aufwärts-Wandler umfasst DrMOS- oder DrGaN-Vorrichtungen, die anstelle von Halbbrücken für herkömmliche Abwärts-Aufwärts-Wandler verwendet werden. Verschiedene Ausführungsformen werden hier mit Bezug auf DrMOS beschrieben. Die Ausführungsformen sind jedoch auf DrGaN anwendbar. Die DrMOS-Vorrichtungen ermöglichen eine bessere Effizienz bei der Leistungswandlung aufgrund eines reduzierten parasitären und optimierten MOSFET-Packaging. Da die Totzeitverwaltung innerhalb des DrMOS stattfindet, ist die Totzeitverwaltung genauer als für herkömmliche Abwärts-Aufwärts-Wandler, was zu einer höheren Effizienz bei der Umwandlung führt. Eine höhere Betriebsfrequenz ermöglicht eine kleinere Induktivitätsgröße, was wiederum die z-Höhe des Ladegeräts reduziert, das den DrMOS-basierten Abwärts-Aufwärts-Wandler umfasst. Der Abwärts-Aufwärts-Wandler verschiedener Ausführungsformen umfasst doppelt gefaltetes Bootstrap für DrMOS-Vorrichtungen. In manchen Ausführungsformen werden zusätzlich zu den traditionellen Bootstrap-Kondensatoren gefaltete Bootstrap-Kondensatoren hinzugefügt, die induktive Knoten mit den zwei Sätzen von DrMOS-Schaltern kreuzkoppeln.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 eine Leistungssteuereinheit (PCU: Power Control Unit) 5510 (auch als Leistungsverwaltungseinheit (PMU: Power Management Unit), Leistungsverwaltungssteuerung (PMC: Power Management Controller), Leistungseinheit (p-Einheit) usw. bezeichnet). In einem Beispiel können einige Abschnitte der PCU 5510 durch einen oder mehrere Prozessorkerne 5508 implementiert sein, und diese Abschnitte der PCU 5510 sind symbolisch unter Verwendung eines gestrichelten Kastens veranschaulicht und mit PCU 5510a gekennzeichnet. In einem Beispiel können einige weitere Abschnitte der PCU 5510 außerhalb der Prozessorkerne 5508 implementiert sein, und diese Abschnitte der PCU 5510 sind symbolisch unter Verwendung eines gestrichelten Kastens veranschaulicht und mit PCU 5510b gekennzeichnet. Die PCU 5510 kann verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 5500 implementieren. Die PCU 5510 kann Hardwareschnittstellen, Hardwareschaltungsanordnungen, Verbinder, Register usw. sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) beinhalten, um verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 5500 zu implementieren.
  • In verschiedenen Ausführungsformen ist die PCU oder PMU 5510 auf eine hierarchische Weise organisiert, die eine hierarchische Leistungsverwaltung (HPM) bildet. HPM verschiedener Ausführungsformen baut eine Fähigkeit und Infrastruktur auf, die eine Verwaltung auf Package-Ebene für die Plattform ermöglichen, während sie immer noch für Autonomie-Inseln sorgen, die über den konstituierenden Die in dem Package existieren könnten. HPM nimmt keine vorbestimmte Abbildung physischer Partitionen auf Domänen an. Eine HPM-Domäne kann mit einer Funktion ausgerichtet sein, die innerhalb eines Dielet, einer Dielet-Grenze, einem oder mehreren Dielets, einem Begleit-Die oder sogar einer diskreten CXL-Vorrichtung integriert ist. HPM adressiert die Integration mehrerer Instanzen desselben Dies, gemischt mit proprietären Funktionen oder Drittpartei-Funktionen, die auf demselben Die oder einem separaten Die integriert sind, und sogar Beschleuniger, die über CXL (z. B. Flexbus) verbunden sind, die sich innerhalb des Package befinden können oder in einem diskreten Formfaktor vorliegen.
  • HPM ermöglicht Designern, die Ziele von Skalierbarkeit, Modularität und später Bindung zu erfüllen. HPM ermöglicht auch, dass PMU-Funktionen, die bereits auf anderen Dies existieren können, genutzt werden, anstatt in dem flachen Schema deaktiviert zu werden. HPM ermöglicht die Verwaltung einer beliebigen Sammlung von Funktionen unabhängig von deren Integrationsgrad. HPM verschiedener Ausführungsformen ist skalierbar, modular, arbeitet mit symmetrischen Mehrchip-Prozessoren (MCPs) und arbeitet mit asymmetrischen MCPs. HPM benötigt zum Beispiel keine Signal-PM-Steuerung und Package-Infrastruktur, um über angemessene Skalierungsgrenzen hinaus zu wachsen. HPM ermöglicht ein spätes Hinzufügen eines Die in einem Package ohne die Notwendigkeit einer Änderung in der Basis-Die-Infrastruktur. HPM adressiert den Bedarf an disaggregierten Lösungen, die Dies unterschiedlicher Prozesstechnologieknoten aufweisen, die in einem einzigen Package gekoppelt sind. HPM adressiert auch den Bedarf an begleitenden Die-Integrationslösungen - innerhalb und außerhalb eines Package.
  • In verschiedenen Ausführungsformen beinhaltet jeder Die (oder Dielet) eine Leistungsverwaltungseinheit (PMU) oder p-Einheit. Prozessor-Dies können zum Beispiel eine Supervisor-p-Einheit, Supervisand-p-Einheit oder eine Doppelrollen-Supervisor/Supervisand-p-Einheit aufweisen. In manchen Ausführungsformen weist ein E/A-Die seine eigene Doppelrollen-p-Einheit auf, wie etwa Supervisor- und/oder Supervisand-p-Einheit. Die p-Einheiten in jedem Die können Instanzen einer generischen p-Einheit sein. Bei einem solchen Beispiel weisen alle p-Einheiten die gleiche Fähigkeit und Schaltungen auf, sind aber (dynamisch oder statisch) dazu konfiguriert, eine Rolle eines Supervisors, Supervisanden und/oder beider zu übernehmen. In manchen Ausführungsformen sind die p-Einheiten für Rechen-Dies Instanzen einer Rechen-p-Einheit, während p-Einheiten für EA-Dies Instanzen einer EA-p-Einheit sind, die sich von der Rechen-p-Einheit unterscheidet. Je nach Rolle erlangt die p-Einheit spezifische Zuständigkeiten zur Leistungsverwaltung des Mehrchipmoduls und/oder der Rechenplattform. Obwohl verschiedene p-Einheiten für Dies in einem Mehrchipmodul oder System-on-Chip beschrieben sind, kann eine p-Einheit auch Teil einer externen Vorrichtung, wie etwa einer E/A-Vorrichtung, sein.
  • Dabei müssen die verschiedenen p-Einheiten nicht gleich sein. Die HPM-Architektur kann sehr unterschiedliche Typen von p-Einheiten betreiben. Den p-Einheiten ist gemein, dass sie voraussichtlich HPM-Nachrichten empfangen und verstehen können. In manchen Ausführungsformen kann sich die p-Einheit von EA-Dies von der p-Einheit der Rechen-Dies unterscheiden. Zum Beispiel unterscheidet sich die Anzahl an Registerinstanzen jeder Registerklasse in der E/A-p-Einheit von jenen in den p-Einheiten der Rechen-Dies. Ein EA-Die weist die Fähigkeit auf, ein HPM-Supervisor für CXL-verbundene Vorrichtungen zu sein, aber der Rechen-Die muss diese Fähigkeit möglicherweise nicht aufweisen. Die EA- und Rechen-Dies weisen auch unterschiedliche Firmware-Flüsse und ggf. unterschiedliche Firmware-Abbilder auf. Dies sind Wahlmöglichkeiten, die eine Implementierung vornehmen kann. Eine HPM-Architektur kann wählen, dass sie ein Supersatz-Firmware-Abbild aufweist und selektiv Flüsse ausführt, die für den Die-Typ relevant sind, mit dem die Firmware assoziiert ist. Alternativ dazu kann es eine Kunden-Firmware für jeden p-Einheit-Typ geben; sie kann eine optimierte Dimensionierung der Firmware-Speicherungsanforderungen für jeden p-Einheit-Typ ermöglichen.
  • Die p-Einheit in jedem Die kann als eine Supervisor-p-Einheit, Supervisand-p-Einheit oder mit einer Doppelrolle von Supervisor/Supervisand konfiguriert sein. Von daher können p-Einheiten Rollen des Supervisors oder Supervisanden für verschiedene Domänen durchführen. In verschiedenen Ausführungsformen ist jede Instanz der p-Einheit in der Lage, lokale dedizierte Ressourcen autonom zu verwalten, und enthält Strukturen, um Daten zu aggregieren und zwischen Instanzen zu kommunizieren, um gemeinsam genutzte Ressourcenverwaltung durch die Instanz, die als der gemeinsam genutzte Ressourcen-Supervisor konfiguriert ist, zu ermöglichen. Eine nachrichten- und drahtbasierte Infrastruktur ist bereitgestellt, die dupliziert und konfiguriert werden kann, um Verwaltung und Flüsse zwischen mehreren p-Einheiten zu ermöglichen.
  • In manchen Ausführungsformen werden Leistungs- und Wärmeschwellen durch eine Supervisor-p-Einheit an Supervisand-p-Einheiten kommuniziert. Zum Beispiel lernt eine Supervisor-p-Einheit die Arbeitslast (gegenwärtig und zukünftig) jedes Die, Leistungsmessungen jedes Die und andere Parameter (z. B. Leistungsgrenzen auf Plattformebene) und bestimmt neue Leistungsgrenzen für jeden Die. Diese Leistungsgrenzen werden dann von Supervisor-p-Einheiten über ein oder mehrere Interconnects und Fabrics an die Supervisand-p-Einheiten kommuniziert. In manchen Ausführungsformen gibt ein Fabric eine Gruppe von Fabrics und Interconnects an, die ein erstes Fabric, ein zweites Fabric und ein Schnellantwort-Interconnect beinhalten. In manchen Ausführungsformen wird das erste Fabric für eine gemeinsame Kommunikation zwischen einer Supervisor-p-Einheit und einer Supervisand-p-Einheit verwendet. Diese gemeinsamen Kommunikationen beinhalten eine Änderung der Spannung, Frequenz und/oder des Leistungszustands eines Die, die basierend auf einer Anzahl von Faktoren (z. B. zukünftige Arbeitslast, Benutzerverhalten usw.) geplant wird. In manchen Ausführungsformen wird das zweite Fabric für eine Kommunikation mit höherer Priorität zwischen Supervisor-p-Einheit und Supervisand-p-Einheit verwendet. Ein Beispiel für eine Kommunikation mit höherer Priorität beinhaltet eine Nachricht zum Drosseln aufgrund einer möglichen thermischen Durchgehbedingung, eines Zuverlässigkeitsproblems usw. In manchen Ausführungsformen wird ein Schnellantwort-Interconnect zum Kommunizieren einer schnellen oder harten Drosselung aller Dies verwendet. In diesem Fall kann eine Supervisor-p-Einheit zum Beispiel eine Schnelldrosselungsnachricht an alle anderen p-Einheiten senden. In manchen Ausführungsformen ist ein Schnellantwort-Interconnect ein Legacy-Interconnect, dessen Funktion durch das zweite Fabric durchgeführt werden kann.
  • Die HPM-Architektur verschiedener Ausführungsformen ermöglicht Skalierbarkeit, Modularität und späte Bindung symmetrischer und/oder asymmetrischer Dies. Hier sind symmetrische Dies Dies gleicher Größe, Art und/oder Funktion, während asymmetrische Dies Dies unterschiedlicher Größe, Art und/oder Funktion sind. Ein hierarchischer Ansatz ermöglicht auch, dass PMU-Funktionen, die bereits auf anderen Dies bestehen können, genutzt werden, anstatt in dem traditionellen flachen Leistungsverwaltungsschema deaktiviert zu werden. HPM nimmt keine vorbestimmte Abbildung physischer Partitionen auf Domänen an. Eine HPM-Domäne kann mit einer Funktion ausgerichtet sein, die innerhalb eines Dielet, einer Dielet-Grenze, einem oder mehreren Dielets, einem Begleit-Die oder sogar einer diskreten CXL-Vorrichtung integriert ist. HPM ermöglicht die Verwaltung einer beliebigen Sammlung von Funktionen unabhängig von deren Integrationsgrad. In manchen Ausführungsformen wird eine p-Einheit als Supervisor-p-Einheit basierend auf einem oder mehreren Faktoren deklariert. Diese Faktoren beinhalten Speichergröße, physische Beschränkungen (z. B. Anzahl von Pin-Outs) und Orte von Sensoren (z. B. Temperatur, Leistungsverbrauch usw.), um physische Grenzen des Prozessors zu bestimmen.
  • Die HPM-Architektur verschiedener Ausführungsformen stellt ein Mittel zum Skalieren der Leistungsverwaltung bereit, sodass sich eine einzelne p-Einheit-Instanz nicht um den gesamten Prozessor bewusst sein muss. Dies ermöglicht eine Leistungsverwaltung bei geringerer Granularität und verbessert Ansprechzeiten und Effektivität. Eine hierarchische Struktur behält eine monolithische Sicht für den Benutzer bei. Beispielsweise gibt die HPM-Architektur dem OS auf Betriebssystem(OS)-Ebene eine einzige PMU-Ansicht, obwohl die PMU physisch in einer oder mehreren Supervisor-Supervisand-Konfigurationen verteilt ist.
  • In einigen Ausführungsformen ist die HPM-Architektur zentralisiert, bei der ein Supervisor alle Supervisanden steuert. In manchen Ausführungsformen ist die HPM-Architektur dezentralisiert, wobei verschiedene p-Einheiten in verschiedenen Dies die Gesamtleistungsverwaltung durch Peer-zu-Peer-Kommunikation steuern. In einigen Ausführungsformen ist die HPM-Architektur dort verteilt, wo es unterschiedliche Supervisors für unterschiedliche Domänen gibt. Ein Beispiel für eine verteilte Architektur ist eine baumartige Architektur.
  • In manchen Ausführungsformen umfasst die Vorrichtung 5500 eine integrierte Leistungsverwaltungsschaltung (Power Management Integrated Circuit - PMIC) 5512, z. B. zum Implementieren verschiedener Leistungsverwaltungsoperationen für die Vorrichtung 5500. In manchen Ausführungsformen ist die PMIC 5512 eine neukonfigurierbare integrierte Leistungsverwaltungsschaltung (Reconfigurable Power Management IC - RPMIC) und/oder eine IMVP (Intel® Mobile Voltage Positioning). Bei einem Beispiel befindet sich die PMIC innerhalb eines IC-Die, der von dem Prozessor 5504 getrennt ist. Sie kann verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 5500 implementieren. Die PMIC 5512 kann Hardwareschnittstellen, Hardwareschaltungsanordnungen, Verbinder, Register usw. sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) beinhalten, um verschiedene Leistungsverwaltungsoperationen für die Vorrichtung 5500 zu implementieren.
  • In einem Beispiel umfasst die Vorrichtung 5500 eine oder beide der PCU 5510 oder der PMIC 5512. In einem Beispiel kann eine der PCU 5510 oder der PMIC 5512 in der Vorrichtung 5500 fehlen, und somit sind diese Komponenten unter Verwendung von gestrichelten Linien veranschaulicht.
  • Verschiedene Leistungsverwaltungsoperationen der Vorrichtung 5500 können durch die PCU 5510, durch die PMIC 5512 oder durch eine Kombination von PCU 5510 und PMIC 5512 durchgeführt werden. Beispielsweise kann die PCU 5510 und/oder die PMIC 5512 einen Leistungszustand ( z. B. P-Zustand) für verschiedene Komponenten der Vorrichtung 5500 auswählen. Beispielsweise kann die PCU 5510 und/oder die PMIC 5512 einen Leistungszustand (z. B. gemäß der ACPI-Spezifikation (ACPI: Advanced Configuration and Power Interface)) für verschiedene Komponenten der Vorrichtung 5500 auswählen. Lediglich als ein Beispiel können die PCU 5510 und/oder die PMIC 5512 bewirken, dass verschiedene Komponenten der Vorrichtung 5500 in einen Schlafzustand, in einen aktiven Zustand, in einen geeigneten C-Zustand (z. B. C0-Zustand oder einen anderen geeigneten C-Zustand gemäß der ACPI-Spezifikation) usw. übergehen. In einem Beispiel kann die PCU 5510 und/oder die PMIC 5512 jeweils eine Spannungsausgabe durch den VR 5514 und/oder eine Frequenz einer Taktsignalausgabe durch den Taktgenerator z. B. durch Ausgeben des VID-Signals und/oder des FID-Signals steuern. In einem Beispiel kann die PCU 5510 und/oder die PMIC 5512 Batterieleistungsnutzung, Laden der Batterie 5518 und auf Leistungseinsparungsbetrieb bezogene Merkmale steuern.
  • Der Taktgenerator 5516 kann eine Phasenregelschleife (Phase Locked Loop - PLL), eine Frequenzregelschleife (Frequency Locked Loop - FLL) oder eine beliebige geeignete Taktquelle umfassen. In manchen Ausführungsformen weist jeder Kern von Prozessor 5504 seine eigene Taktquelle auf. Von daher kann jeder Kern unabhängig von der Betriebsfrequenz des anderen Kerns bei einer Frequenz arbeiten. In manchen Ausführungsformen führt die PCU 5510 und/oder die PMIC 5512 adaptive oder dynamische Frequenzskalierung oder -anpassung durch. Die Taktfrequenz eines Prozessorkerns kann beispielsweise erhöht werden, wenn der Kern nicht bei dessen Maximalleistungsaufnahmeschwelle oder -grenze betrieben wird. In manchen Ausführungsformen bestimmt die PCU 5510 und/oder die PMIC 5512 die Betriebsbedingung für jeden Kern eines Prozessors und passt die Frequenz und/oder die Leistungszufuhrspannung des Kerns opportunistisch an, ohne dass die Kerntaktquelle (z. B. die PLL des Kerns) ihre Phasenstarre verliert, wenn die PCU 5510 und/oder die PMIC 5512 bestimmt, dass der Kern unterhalb eines Zielperformanzniveaus arbeitet. Falls beispielsweise ein Kern weniger Strom als ein diesem Kern oder Prozessor 5504 zugeteilter Gesamtstrom aus einer Leistungsversorgungsleitung zieht, dann kann die PCU 5510 und/oder die PMIC 5512 temporär den Leistungsabzug für diesen Kern oder Prozessor 5504 (z. B. durch Erhöhen der Taktfrequenz und/oder des Leistungszufuhrspannungspegels) erhöhen, sodass der Kern oder der Prozessor 5504 auf einem höheren Performanzniveau agieren kann. Von daher kann die Spannung und/oder die Frequenz temporär für den Prozessor 5504 erhöht werden, ohne die Produktzuverlässigkeit zu verletzen.
  • In einem Beispiel kann die PCU 5510 und/oder die PMIC 5512 Leistungsverwaltungsoperationen durchführen, z. B. zumindest teilweise auf der Grundlage vom Empfangen von Messungen der Leistungsmessungsschaltungsanordnungen 5542, der Temperaturmessungsschaltungsanordnungen 5540, des Ladungspegels der Batterie 5518 und/oder jeglicher anderer zweckmäßiger Informationen, die für die Leistungsverwaltung verwendet werden können. Hierfür ist die PMIC 5512 mit einem oder mehreren Sensoren kommunikativ gekoppelt, um verschiedene Werte/Variationen von einem oder mehreren Faktoren, die eine Auswirkung auf das Leistungs- bzw. thermische Verhalten des Systems/der Plattform haben, zu erfassen bzw. zu detektieren. Beispiele für den einen oder die mehreren Faktoren beinhalten elektrischen Strom, Spannungsabfall, Temperatur, Betriebsfrequenz, Betriebsspannung, Leistungsaufnahme, Inter-Kern-Kommunikationsaktivität usw. Einer oder mehrere dieser Sensoren können in physischer Nähe (und/oder thermischem Kontakt bzw. thermischer Kopplung) zu einer oder mehreren Komponenten oder logischen/IP-Blöcken eines Rechensystems bereitgestellt sein. Zusätzlich kann der Sensor bzw. können die Sensoren in mindestens einer Ausführungsform direkt mit der PCU 5510 und/oder der PMIC 5512 gekoppelt sein, um der PCU 5510 und/oder der PMIC 5512 zu erlauben, Prozessorkernenergie zumindest teilweise auf der Grundlage eines Werts bzw. von Werten, der bzw. die durch einen oder mehrere der Sensoren detektiert wurden, zu verwalten.
  • Ebenso ist ein Beispielsoftwarestapel der Vorrichtung 5500 veranschaulicht (obgleich nicht alle Elemente des Softwarestapels veranschaulicht sind). Lediglich als ein Beispiel können die Prozessoren 5504 Anwendungsprogramme 5550, ein Betriebssystem 5552, ein oder mehrere für die Leistungsverwaltung (PM) spezifische Anwendungsprogramme (z. B. generisch als PM-Anwendungen 5558 bezeichnet) und/oder dergleichen ausführen. PM-Anwendungen 5558 können auch durch die PCU 5510 und/oder die PMIC 5512 ausgeführt werden. Das OS 5552 kann auch eine oder mehrere PM-Anwendungen 5556a, 5556b, 5556c beinhalten. Das OS 5552 kann auch verschiedene Treiber 5554a, 5554b, 5554c usw. beinhalten, von denen einige für Leistungsverwaltungszwecke spezifisch sein können. In manchen Ausführungsformen kann die Vorrichtung 5500 ferner ein Basic Input/Output System (BIOS) 5520 umfassen. Das BIOS 5520 kann mit dem OS 5552 (z. B. über einen oder mehrere Treiber 5554) kommunizieren, mit Prozessoren 5504 kommunizieren usw.
  • Eines oder mehrere von PM-Anwendungen 5558, 5556, Treibern 5554, BIOS 5520 usw. können beispielsweise zum Implementieren von Leistungsverwaltung-spezifischen Aufgaben verwendet werden, z. B. zum Steuern von Spannung und/oder Frequenz von verschiedenen Komponenten der Vorrichtung 5500, zum Steuern eines Aufwachzustands, eines Schlafzustands und/oder irgendeines anderen zweckmäßigen Leistungszustands verschiedener Komponenten der Vorrichtung 5500, zum Steuern der Batterieleistungsnutzung, Laden der Batterie 5518, von auf Leistungseinsparungsbetrieb bezogenen Merkmalen usw.
  • In manchen Ausführungsformen ist die Batterie 5518 eine Li-Metall-Batterie mit einer Druckkammer, um einen gleichmäßigen Druck auf eine Batterie zu ermöglichen. Die Druckkammer wird von Metallplatten (wie etwa Druckausgleichsplatte) getragen, die dazu dienen, der Batterie einen gleichmäßigen Druck zu verleihen. Die Druckkammer kann Druckgas, elastisches Material, eine Federplatte usw. beinhalten. Die Außenhaut der Druckkammer kann sich frei biegen, an ihren Rändern durch eine (Metall-) Haut zurückgehalten, übt aber immer noch einen gleichmäßigen Druck auf die Platte aus, die die Batteriezelle komprimiert. Die Druckkammer verleiht einer Batterie einen gleichmäßigen Druck, der dazu verwendet wird, eine Hochenergiedichte-Batterie mit beispielsweise 20 % mehr Batterielebensdauer zu ermöglichen.
  • In manchen Ausführungsformen beinhaltet die Batterie 5518 Hybridtechnologien. Zum Beispiel wird eine Mischung aus Hochenergiedichte-Ladungsträgervorrichtung(en) (z. B. Li-Ionen-Batterien) und Niedrigenergiedichte-Ladungsträgervorrichtungen (z. B. Superkondensator) als Batterien oder Speicherungsvorrichtungen verwendet. In manchen Ausführungsformen wird eine Steuerung (z. B. Hardware, Software oder eine Kombination von diesen) verwendet, um Spitzenleistungsmuster zu analysieren und die Auswirkung auf die Gesamtlebensdauer von Batteriezellen basierend auf Hochenergiedichte-Ladungsträgervorrichtungen zu minimieren, während die Dienstzeit für das Spitzenleistungsreduzierungsmerkmal maximiert wird. Die Steuerung kann Teil der Batterie 5518 oder Teil der p-Einheit 5510b sein.
  • In einigen Ausführungsformen weist pCode, der auf der PCU 5510a/b ausgeführt wird, eine Fähigkeit auf, zusätzliche Rechen- und Telemetrieressourcen für die Laufzeitunterstützung des pCodes zu ermöglichen. Hier verweist pCode auf eine Firmware, die durch die PCU 5510a/b ausgeführt wird, um die Performanz des SoC 5501 zu verwalten. Zum Beispiel kann der pCode Frequenzen und geeignete Spannungen für den Prozessor einstellen. Ein Teil des p-Codes ist über das OS 5552 zugänglich. In verschiedenen Ausführungsformen werden Mechanismen und Verfahren bereitgestellt, die einen Energieperformanzpräferenz(EPP)-Wert basierend auf Arbeitslasten, Benutzerverhalten und/oder Systembedingungen dynamisch ändern. Es kann eine wohldefinierte Schnittstelle zwischen dem OS 5552 und dem pCode geben. Die Schnittstelle kann die Softwarekonfiguration mehrerer Parameter ermöglichen oder erleichtern und/oder Hinweise für den pCode liefern. Als ein Beispiel kann ein EPP-Parameter einen p-Code-Algorithmus darüber informieren, ob Performanz oder Batterielebensdauer wichtiger ist.
  • Diese Unterstützung kann auch durch das OS 5552 erfolgen, indem Maschinenlernunterstützung als Teil des OS 5552 aufgenommen wird und entweder der EPP-Wert, den das OS der Hardware (z. B. verschiedenen Komponenten des SoC 5501) anzeigt, durch Maschinenlernvorhersage abgestimmt wird, oder indem die Maschinenlernvorhersage an den pCode auf eine Art und Weise geliefert wird, die derjenigen ähnlich ist, die durch einen DTT-Treiber (DTT: Dynamic Tuning Technology) vorgenommen wird. In diesem Modell kann das OS 5552 Sichtbarkeit für denselben Satz von Telemetrien aufweisen, wie sie einem DTT zur Verfügung stehen. Als Ergebnis einer DTT-Maschinenlernhinweiseinstellung kann pCode seine internen Algorithmen abstimmen, um optimale Leistungs- und Performanzergebnisse nach der Maschinenlernvorhersage des Aktivierungstyps zu erreichen. Der pCode als Beispiel kann die Verantwortung für die Prozessornutzungsänderung erhöhen, um eine schnelle Reaktion auf Benutzeraktivität zu ermöglichen, oder kann den Bias zur Energieeinsparung erhöhen, indem entweder die Verantwortung für die Prozessornutzung verringert wird oder indem mehr Leistung eingespart wird und die Performanz erhöht wird, die durch Abstimmen der Energieeinsparoptimierung verloren geht. Dieser Ansatz kann das Einsparen von mehr Batterielebensdauer erleichtern, falls die aktivierten Aktivitätstypen etwas Performanzniveau gegenüber dem verlieren, was das System ermöglichen kann. Der pCode kann einen Algorithmus für dynamische EPP beinhalten, der die zwei Eingaben, eine vom OS 5552 und die andere von Software, wie etwa DTT, nehmen kann und selektiv auswählen kann, eine höhere Performanz und/oder Ansprechempfindlichkeit bereitzustellen. Als Teil dieses Verfahrens kann der pCode in der DTT eine Option ermöglichen, seine Reaktion für die DTT für verschiedene Aktivitätstypen abzustimmen.
  • In manchen Ausführungsformen verbessert der pCode die Performanz des SoC im Batteriemodus. In manchen Ausführungsformen ermöglicht pCode drastisch höhere SoC-Spitzenleistungsgrenzpegel (und somit höhere Turboperformanz) im Batteriemodus. In manchen Ausführungsformen implementiert der pCode Leistungsdrosselung und ist Teil der Dynamic Tuning Technology (DTT) von Intel. In verschiedenen Ausführungsformen wird die Spitzenleistungsgrenze als PL4 bezeichnet. Die Ausführungsformen sind jedoch auf andere Spitzenleistungsgrenzen anwendbar. In manchen Ausführungsformen legt der pCode die Vth-Schwellenspannung (den Spannungspegel, bei dem die Plattform das SoC drosseln wird) auf eine solche Weise fest, dass verhindert wird, dass das System unerwartet abschaltet (bzw. Black-Screening). In manchen Ausführungsformen berechnet der pCode die Psoc,pk SoC-Spitzenleistungsgrenze (z. B. PL4) gemäß der Schwellenspannung (Vth). Dies sind zwei abhängige Parameter, falls einer eingestellt ist, kann der andere berechnet werden. Der pCode wird verwendet, um einen Parameter (Vth) basierend auf den Systemparametern und der Historie des Betriebs optimal einzustellen. In manchen Ausführungsformen stellt der pCode ein Schema zum dynamischen Berechnen des Drosselungsniveaus (Psoc,th) basierend auf der verfügbaren Batterieleistung (die sich langsam ändert) und zum Einstellen der SoC-Drosselspitzenleistung (Psoc,th) bereit. In manchen Ausführungsformen entscheidet der pCode die Frequenzen und Spannungen basierend auf Psoc, th. Drosselereignisse wirken sich in diesem Fall weniger negativ auf die SoC-Performanz aus. Verschiedene Ausführungsformen stellen ein Schema bereit, das den Betrieb eines Frameworks mit maximaler Performanz (Pmax)ermöglicht.
  • In manchen Ausführungsformen beinhaltet der VR 5514 einen Stromsensor zum Erfassen und/oder Messen eines Stroms durch einen High-Side-Schalter des VR 5514. In manchen Ausführungsformen verwendet der Stromsensor einen Verstärker mit kapazitiv gekoppelten Eingängen in Rückkopplung, um den Eingangsoffset des Verstärkers zu erfassen, der während der Messung kompensiert werden kann. In manchen Ausführungsformen wird der Verstärker mit kapazitiv gekoppelten Eingängen in Rückkopplung verwendet, um den Verstärker in einem Gebiet zu betreiben, in dem die Eingangsgleichtaktspezifikationen gelockert sind, sodass die Rückkopplungsschleifenverstärkung und/oder -bandbreite höher ist. In manchen Ausführungsformen wird der Verstärker mit kapazitiv gekoppelten Eingängen in Rückkopplung verwendet, um den Sensor von der Wandlereingangsspannung zu betreiben, indem Regler mit hohem PSRR (Power Supply Rejection Ratio - Leistungsversorgungszurückweisungsverhältnis) eingesetzt werden, um eine lokale, saubere Versorgungsspannung zu erzeugen, was eine geringere Störung des Stromnetzes in dem Schalterbereich verursacht. In manchen Ausführungsformen kann eine Variante des Designs verwendet werden, um die Differenz zwischen der Eingangsspannung und der Steuerungsversorgung abzutasten und diese zwischen den Drain-Spannungen der Leistungs- und Replikatschalter nachzubilden. Dadurch kann der Sensor nicht mit der Leistungsversorgungsspannung beaufschlagt werden. In einigen Ausführungsformen wird der Verstärker mit kapazitiv gekoppelten Eingängen in Rückkopplung verwendet, um leistungsliefernetzwerkbezogene (PDN-bezogene) Änderungen in der Eingangsspannung während der Stromerfassung zu kompensieren.
  • Manche Ausführungsformen verwenden drei Komponenten, um die Spitzenleistung des SoC 5501 basierend auf den Zuständen einer USB-TYP-C-Vorrichtung 5529 anzupassen. Diese Komponenten beinhalten einen OS-Spitzenleistungsmanager (Teil des OS 5552), einen USB-TYP-C-Verbindungsmanager (Teil des OS 5552) und einen USB-TYP-C-Protokollvorrichtungstreiber (z. B. einer der Treiber 5554a, 5554b, 5554c). In manchen Ausführungsformen sendet der USB-TYP-C-Verbindungsmanager eine synchrone Anforderung an den OS-Spitzenleistungsmanager, wenn eine USB-TYP-C-Leistungssenkenvorrichtung an das SoC 5501 angebracht bzw. von diesem gelöst wird, und der USB-TYP-C-Protokollvorrichtungstreiber sendet eine synchrone Anforderung an den Spitzenleistungsmanager, wenn die Leistungssenke den Vorrichtungszustand wechselt. In manchen Ausführungsformen nimmt der Spitzenleistungsmanager das Leistungsbudget von der CPU, wenn der USB-TYP-C-Verbinder an einer Leistungssenke angebracht ist und aktiv ist (z. B. Hochleistungsvorrichtungszustand). In manchen Ausführungsformen gibt der Spitzenleistungsmanager das Leistungsbudget an die CPU für Performanz zurück, wenn der USB-TYP-C-Verbinder entweder gelöst ist oder sich die angeschlossene Leistungssenkenvorrichtung im Ruhezustand befindet (niedrigster Vorrichtungszustand).
  • In einigen Ausführungsformen wird Logik bereitgestellt, um den am besten arbeitenden Verarbeitungskern dynamisch für BIOS-Einschaltflüsse und Schlafaustrittsflüsse (z. B. S3, S4 und/oder S5) auszuwählen. Die Auswahl des Bootstrap-Prozessors (BSP) wird auf einen frühen Einschaltzeitpunkt verlagert, anstelle einer festen Hardwareauswahl zu einer jeglichen Zeit. Für eine maximale Boot-Performanz wählt die Logik den schnellsten fähigen Kern als den BSP zu einer frühen Einschaltzeit aus. Außerdem wählt die Logik zur maximalen Energieeinsparung den leistungseffizientsten Kern als den BSP aus. Prozessor oder Umschaltung zum Auswählen des BSP erfolgt sowohl während des Boot-Up als auch während des Einschaltflusses (z. B. S3-, S4- und/oder S5-Flusses).
  • In einigen Ausführungsformen sind die Speicher hierin in einer mehrstufigen Speicherarchitektur organisiert und ihre Performanz wird durch ein dezentralisiertes Schema bestimmt. Das dezentrale Schema beinhaltet eine p-Einheit 5510 und Speichersteuerungen. In manchen Ausführungsformen gleicht das Schema dynamisch eine Anzahl von Parametern, wie etwa Leistung, Temperatur, Kosten, Latenz und Performanz für Speicherebenen aus, die progressiv weiter von dem Prozessor in der Plattform oder Vorrichtung 5500 entfernt sind, basierend darauf, wie Anwendungen Speicherebenen verwenden, die weiter von Prozessorkernen entfernt sind. Bei manchen Beispielen ist die Entscheidungsfindung für den Zustand des Fernspeichers (FM) dezentral. Zum Beispiel treffen eine Prozessorleistungsverwaltungseinheit (p-Unit), eine Nahspeichersteuerung (NMC) und/oder eine Fernspeicher-Hoststeuerung (FMHC) Entscheidungen über den Leistungs-und/oder Performanzzustand der FM auf ihren jeweiligen Pegeln. Diese Entscheidungen werden koordiniert, um für eine gegebene Zeit den optimalsten Leistungs- und/oder Performanzzustand der FM bereitzustellen. Der Leistungs- und/oder Performanzzustand der Speicher ändert sich adaptiv zu sich ändernden Arbeitslasten und anderen Parametern, selbst wenn sich der oder die mehreren Prozessoren in einem bestimmten Leistungszustand befinden.
  • In einigen Ausführungsformen wird eine hardware- und softwarekoordinierte Prozessorleistungszustandsrichtlinie (z. B. Richtlinie für C-Zustand) implementiert, die eine optimale Leistungszustandsauswahl liefert, indem die Performanz- und/oder Ansprechempfindlichkeitsbedürfnisse eines Threads berücksichtigt werden, von denen erwartet wird, dass sie auf dem Kern geplant werden, der in den Ruhezustand eintritt, um verbesserte Anweisungen pro Zyklus (IPC) und Performanz für Kerne, die benutzerkritische Aufgaben ausführen, zu erreichen. Das Schema stellt die Fähigkeit bereit, Ansprechempfindlichkeitsgewinne für wichtige und/oder benutzerkritische Threads, die auf einem System-on-Chip ausgeführt werden, zu liefern. Die p-Einheit 5510, die mit den mehreren Verarbeitungskernen gekoppelt ist, empfängt einen Hinweis von dem Betriebssystem 5552, der ein Bias in Richtung eines Leistungszustands oder Performanzzustands für mindestens einen der Verarbeitungskerne der mehreren Verarbeitungskerne basierend auf einer Priorität eines Threads beim Kontextwechsel angibt.
  • In einigen Ausführungsformen wird ein Prozessorkern-Energieeffizienz-Kerneinstufungsschema verwendet. Dies gleicht einem bevorzugten Kern in einem Mehrkern-Prozessorsystem. Der bevorzugte Kern (z. B. einer von 5508) ist hier jedoch der energieeffiziente Kern, der es dem SoC ermöglicht, den Kern mit der niedrigsten Vmin für die Energieeffizienz (z. B. niedriger Leistungsverbrauch) zu verwenden. Solche Vmin-Werte können während des Massenherstellung(HVM)-Prozesses in geeigneten Registern fusioniert oder im NVM gespeichert werden. In manchen Ausführungsformen kann ein Betriebssystem(OS)-Scheduler eine optimale Energieperformanz unter Verwendung der Kerneinstufungsinformationen erreichen, um gewisse Anwendungen auf dem Kern mit der niedrigsten Vmin zu planen.
  • In manchen Ausführungsformen identifiziert der Bootstrap-Fluss den Bootstrap-Prozessorkern (BSP) als den energieeffizientesten Kern des SoC und weist diesem Kern den niedrigsten APIC(Advanced Processor Interrupt Controller)-ID(Identifikation)-Wert zu. Der APIC-ID-Wert, der einen Zielprozessor spezifiziert, um ein Interrupt zu empfangen, wird im logischen Zielmodus in einer lokalen x2APIC geliefert. Es handelt sich dabei um einen hardwaremäßig initialisierten 32-Bit-Wert. Obwohl die APIC-ID ein Intel-Architektur-Begriff ist, kann eine ähnliche Funktion in anderen Prozessorarchitekturen auch verwendet werden, um einen Bootstrap-Prozessor zu identifizieren. Anfänglich ist BSP Kern0 5508a oder ein beliebiger Kern eines Mehrkernsystems. In einem heterogenen Satz von Kernen, der große Kerne (oder komplexe Anwendungen und/oder Hochleistungsanwendungen) und kleine Kerne (für weniger komplexe Anwendungen und/oder Niedrigleistungsanwendungen) umfasst, kann der BSP einer der kleinen Kerne sein. Dieser initiale BSP wird zur Identifizierung des EE-BSP verwendet.
  • Dabei liest der Mikrocode (z. B. pCode) oder das BIOS 5520 (Built-in Input Output System) die Fuses oder den NVM, die die Pro-Kern-Vmin-Werte speichern. Diese Fuses bzw. dieser NVM werden während der HVM programmiert. Beim Lesen der Fuses oder des NVM berechnet und stuft der Mikrocode oder das BIOS 5520 die Kerne ein. Von daher berechnet und stuft der Mikrocode (z. B. pCode) oder das BIOS 5520 Kern-APIC-IDs basierend auf der Effizienz um LFM(Niederfrequenzmodus)-Frequenzen herum ein. Basierend auf den berechneten und eingestuften Kernen transferiert der Mikrocode oder das BIOS 5520 die BSP-Eigentümerschaft an den effizientesten Kern (z. B. mit höherer Einstufungsnummer) durch Setzen eines Registers (z. B. IA32_APIC_BASE.BSP = 1).
  • In einigen Ausführungsformen teilt der Mikrocode oder das BIOS 5520 dann die APIC-IDs der Kerne, die basierend auf der Effizienz eingestuft werden, mit dem Betriebssystem (oder Kernel). Zum Beispiel teilt der Mikrocode oder das BIOS die APIC-IDs der Kerne, die basierend auf der Effizienz eingestuft werden, mit dem OS über ACPI(Advanced Configuration and Power Interface)-Tabellen, wie etwa die MADT (Multiple APIC Description Table).
  • Mit den umgeordneten APIC-IDs versorgt das OS Niedrignutzungs-Aufgaben, Interrupts, DPCs, effizient auf dem Kern mit der niedrigsten Vmin. Es wird angemerkt, dass die APIC-ID-Umordnung auch ein effizienteres HW-Interrupt-Routing ermöglicht. In einigen Ausführungsformen verwendet der OS-Scheduler die effizienten Kerne als präferierte oder bevorzugte Kerne für Thread-Scheduling. Falls das SoC dynamische Hardware(HW)-Rückkopplung unterstützt, dann teilt der pCode (oder ein beliebiger geeigneter Mikrocode oder Firmware) die aktualisierte Effizienzkerneinstufung über einen gemeinsam genutzten Speicher oder eine MSR(modellspezifisches Register)-Schnittstelle.
  • In der Spezifikation bedeutet ein Bezug auf „eine Ausführungsform“, „manche Ausführungsformen“ oder „andere Ausführungsformen“, dass ein spezielles Merkmal, eine spezielle Struktur oder eine spezielle Charakteristik, das bzw. die in Verbindung mit den Ausführungsformen beschrieben wird, in zumindest einigen Ausführungsformen, aber nicht zwangsweise allen Ausführungsformen enthalten ist. Die verschiedenen Vorkommnisse von „einer Ausführungsform“ oder „manchen Ausführungsformen“ beziehen sich nicht immer notwendigerweise auf dieselben Ausführungsformen. Falls die Spezifikation angibt, dass eine Komponente, ein Merkmal, eine Struktur oder eine Charakteristik enthalten sein „kann“ oder „könnte“, muss die spezielle Komponente, das spezielle Merkmal, die spezielle Struktur oder die spezielle Charakteristik nicht notwendigerweise enthalten sein. Falls sich die Spezifikation oder der Anspruch auf „ein“ Element bezieht, bedeutet dies nicht, dass nur eines der Elemente vorhanden ist. Wenn sich die Spezifikation oder Ansprüche auf „ein zusätzliches“ Element bezieht, schließt dies nicht aus, dass es mehr als eines der zusätzlichen Elemente gibt.
  • In der Spezifikation und in den Ansprüchen bedeutet der Ausdruck „verbunden“ durchweg eine direkte Verbindung, wie etwa eine elektrische, mechanische oder magnetische Verbindung, zwischen den Dingen, die verbunden sind, ohne irgendwelche dazwischengeschaltete Vorrichtungen.
  • Der Begriff „gekoppelt“ bedeutet eine direkte oder indirekte Verbindung, wie etwa eine direkte elektrische, mechanische oder magnetische Verbindung zwischen den Dingen, die verbunden sind, oder eine indirekte Verbindung über eine oder mehrere passive oder aktive dazwischengeschaltete Vorrichtungen.
  • Der Begriff „angrenzend“ bezieht sich hier allgemein auf eine Position eines Gegenstands, der sich neben (z. B. unmittelbar neben oder nahe dazu mit einem oder mehreren Gegenständen dazwischen) oder benachbart zu einem anderen Gegenstand (z. B. daran anliegend) befindet.
  • Der Begriff „Schaltung“ oder „Modul“ kann sich auf eine oder mehrere passive und/oder aktive Komponenten beziehen, die zum Zusammenwirken miteinander angeordnet sind, um eine gewünschte Funktion bereitzustellen.
  • Der Begriff „Signal“ kann sich auf wenigstens ein Stromsignal, Spannungssignal, magnetisches Signal oder Daten-/Taktsignal beziehen. Die Bedeutung von „ein“, „eine“ und „der/die/das“ schließen Pluralreferenzen ein. Die Bedeutung von „in“ schließt „in“ und „auf“ ein.
  • Der Begriff „analoges Signal“ ist ein beliebiges kontinuierliches Signal, für das das zeitlich variierende Merkmal (Variable) des Signals eine Repräsentation einer anderen zeitlich variierenden Größe ist, d. h. analog zu einem anderen zeitlich variierenden Signal.
  • Der Ausdruck „Digitalsignal“ bedeutet ein physisches Signal, das eine Repräsentation einer Sequenz von diskreten Werten (ein quantifiziertes Signal mit diskreter Zeit) ist, beispielsweise ein beliebiger Bitstrom, oder ein digitalisiertes (abgetastetes und analog-digital-gewandeltes) Analogsignal.
  • Der Begriff „Skalieren“ bezieht sich im Allgemeinen auf das Umwandeln eines Designs (Schaltbild oder Layout) von einer Prozesstechnologie zu einer anderen Prozesstechnologie und kann anschließend in der Layoutfläche reduziert werden. In manchen Fällen bezieht sich der Begriff „Skalieren“ auch auf das Vergrößern eines Designs von einer Prozesstechnologie zu einer anderen Prozesstechnologie und kann anschließend in der Layoutfläche vergrößert werden. Der Ausdruck „Skalieren“ bezieht sich im Allgemeinen auch auf das Verkleinern oder Vergrößern des Layouts und von Vorrichtungen innerhalb desselben Technologieknotens. Der Ausdruck „Skalieren“ kann sich auch auf das Anpassen (z. B. Verlangsamen oder Beschleunigen - d. h. Abwärtsskalieren bzw. Aufwärtsskalieren) einer Signalfrequenz in Bezug auf einen anderen Parameter, zum Beispiel den Leistungsversorgungspegel, beziehen.
  • Die Ausdrücke „im Wesentlichen“, „nahe“, „ungefähr“, „in der Nähe von“ und „etwa“ beziehen sich allgemein auf einen Bereich innerhalb von +/- 10 % eines Zielwerts.
  • Sofern nicht anders spezifiziert, gibt die Verwendung der Ordnungsadjektive „erste/r/s“, „zweite/r/s“ und „dritte/r/s“ usw. zum Beschreiben eines gemeinsamen Objekts lediglich an, dass sich auf unterschiedliche Instanzen von gleichen Objekten bezogen wird, und es ist nicht beabsichtigt, zu implizieren, dass die so beschriebenen Objekte in einer gegebenen Sequenz sein müssen, weder zeitlich, räumlich, in der Rangfolge noch auf eine beliebige andere Art und Weise.
  • Für die Zwecke der vorliegenden Offenbarung bedeuten die Formulierungen „A und/oder B“ und „A oder B“ (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet die Formulierung „A, B und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Begriffe „links“, „rechts“, „vorn“, „hinten“, „oben“, „unten“, „über“, „unter“ und dergleichen in der Beschreibung und in den Ansprüchen, falls vorhanden, werden zu beschreibenden Zwecken verwendet und nicht notwendigerweise zum Beschreiben permanenter relativer Positionen.
  • Es wird darauf hingewiesen, dass die Elemente der Figuren, die die gleichen Bezugszahlen (oder Bezeichnungen) wie die Elemente einer beliebigen anderen Figur aufweisen, auf eine beliebige der beschriebenen ähnliche Weise arbeiten oder funktionieren können, jedoch nicht darauf beschränkt sind.
  • Für Zwecke der Ausführungsformen sind die Transistoren in diversen Schaltungen und Logikblöcken, die hier beschrieben sind, Metalloxid-Halbleiter (MOS)-Transistoren oder ihre Derivate, wobei die MOS-Transistoren Drain-, Source-, Gate- und Bulk-Anschlüsse umfassen. Die Transistoren und/oder die MOS-Transistorderivate weisen auch Tri-Gate und FinFET-Transistoren, Gate-All-Around-Cylindrical-Transistoren, Tunnel-FET (TFET), Vierkantdraht oder Rechteckband-Transistoren, Ferroelektrische-FET (FeFET) oder andere Vorrichtungen auf, die Transistorfunktionalität umsetzen, wie Kohlenstoff-Nanoröhren oder Spintronik-Vorrichtungen auf. Symmetrische MOSFET-Source- und -Drain-Anschlüsse sind identische Anschlüsse und werden hier austauschbar verwendet. Andererseits weist eine TFET-Vorrichtung asymmetrische Source- und Drain-Anschlüsse auf. Fachleute erkennen, dass andere Transistoren, beispielsweise BipolarTransistoren (BJT-PNP/NPN), BiCMOS, CMOS usw., verwendet werden können, ohne vom Schutzumfang der Offenbarung abzuweichen.
  • Darüber hinaus können die speziellen Merkmale, Strukturen, Funktionen oder Charakteristiken in einer oder mehreren Ausführungsformen auf eine beliebige geeignete Weise kombiniert werden. Eine erste Ausführungsform kann zum Beispiel überall dort mit einer zweiten Ausführungsform kombiniert werden, wo sich die mit den beiden Ausführungsformen assoziierten speziellen Merkmale, Strukturen, Funktionen oder Charakteristiken nicht gegenseitig ausschließen.
  • Obwohl die Offenbarung in Verbindung mit spezifischen Ausführungsformen davon beschrieben wurde, sind für Fachleute angesichts der vorangegangenen Beschreibung viele Alternativen, Modifikationen und Variationen derartiger Ausführungsformen ersichtlich. Die Ausführungsformen der Offenbarung sollen alle derartigen Alternativen, Modifikationen und Variationen, die in den breiten Schutzumfang der angehängten Ansprüche fallen, einschließen.
  • Zusätzlich dazu können wohlbekannte Leistungs-/Masseverbindungen zu Integrierte-Schaltung(IC)-Chips und anderen Komponenten in den dargelegten Figuren gezeigt sein oder auch nicht, um die Veranschaulichung und die Erörterung zu vereinfachen und die Offenbarung nicht unklar zu machen. Des Weiteren können Anordnungen in Blockdiagrammform gezeigt sein, um zu vermeiden, dass die Offenbarung unklar wird, und auch angesichts dessen, dass Spezifika hinsichtlich der Implementierung derartiger Blockdiagrammanordnungen in hohem Maße von der Plattform abhängen, innerhalb derer die vorliegende Offenbarung implementiert werden soll (d. h. derartige Spezifika sollten im Kenntnisbereich von Fachleuten liegen). Dort, wo spezifische Details (z. B. Schaltungen) dargelegt sind, um Ausführungsbeispiele der Offenbarung zu beschreiben, sollte es Fachleuten ersichtlich sein, dass die Offenbarung ohne diese spezifischen Details oder mit einer Variation davon umgesetzt werden kann. Die Beschreibung ist somit als veranschaulichend statt als beschränkend aufzufassen.
  • Die folgenden Beispiele betreffen weitere Ausführungsformen. Einzelheiten in den Beispielen können überall in einer oder mehreren Ausführungsformen verwendet werden. Alle optionalen Merkmale der vorliegend beschriebenen Einrichtung können auch hinsichtlich eines Verfahrens oder Prozesses implementiert werden. Die Beispiele können in beliebigen Kombinationen kombiniert werden. Beispielsweise kann Beispiel 4 mit Beispiel 2 kombiniert werden.
  • Beispiel 1: Ein maschinenlesbares Speicherungsmedium mit maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, bewirken, dass ein oder mehrere Prozessoren ein Verfahren durchführen, das Folgendes umfasst: Lesen von Fuses oder NVM, die Vmin pro Prozessorkern in einem Mehrkernsystem speichern; Einstufen, von einer höchsten Einstufung zu einer niedrigsten Einstufung, jedes Prozessorkerns des Mehrkernsystems gemäß der Vmin pro Prozessorkern; und Modifizieren eines bestehenden Bootstrap-Prozessors durch Zuweisen eines neuen Bootstrap-Prozessors zu einem Prozessorkern mit der höchsten Einstufung.
  • Beispiel 2: Das maschinenlesbare Speicherungsmedium des Beispiels 1, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  • Beispiel 3: Das maschinenlesbare Speicherungsmedium des Beispiels 1, wobei die eingestuften Prozessorkerne eingestufte Identifikationen aufweisen.
  • Beispiel 4: Das maschinenlesbare Speicherungsmedium des Beispiels 3 mit maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren das Verfahren durchzuführen, das Folgendes umfasst: Teilen von eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem.
  • Beispiel 5: Das maschinenlesbare Speicherungsmedium des Beispiels 4, wobei das Teilen von eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle erfolgt.
  • Beispiel 6: Das maschinenlesbare Speicherungsmedium des Beispiels 5, wobei die Advanced-Configuration-and-Power-Interface-Tabelle eine Multiple-APIC-Description-Tabelle umfasst.
  • Beispiel 7: Das maschinenlesbare Speicherungsmedium des Beispiels 1, wobei das Einstufen jedes Prozessorkerns des Mehrkernsystems ferner auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum basiert.
  • Beispiel 8: Das maschinenlesbare Speicherungsmedium des Beispiels 1, wobei die Fuses oder der NVM während einer Massenherstellung mit Vmin pro Prozessorkern programmiert werden.
  • Beispiel 9: Ein System-on-Chip, das Folgendes umfasst: mehrere Prozessorkerne; Fuses oder NVM, die Vmin pro Prozessorkern unter den mehreren Prozessorkernen speichern; und eine Leistungsverwaltungseinheit, die mit den Prozessorkernen gekoppelt ist, wobei die Leistungsverwaltungseinheit eine Firmware für Folgendes ausführen soll: Einstufen jedes Prozessorkerns gemäß der Vmin pro Prozessorkern; und Zuweisen eines Bootstrap-Prozessors zu einem Prozessorkern, der eine höchste Einstufung aufweist.
  • Beispiel 10: Das System-on-Chip des Beispiels 9, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  • Beispiel 11: Das System-on-Chip des Beispiels 9, wobei die Firmware eingestufte Prozessorkernidentifikationen zuweisen soll.
  • Beispiel 12: Das System-on-Chip des Beispiels 11, wobei die Firmware die eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem teilen soll.
  • Beispiel 13: Das System-on-Chip des Beispiels 12, wobei die Firmware die eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle teilen soll.
  • Beispiel 14: Das System-on-Chip des Beispiels 13, wobei die Advanced-Configuration-and-Power-Interface-Tabelle eine Multiple-APIC-Description-Tabelle umfasst.
  • Beispiel 15: Das System-on-Chip des Beispiels 9, wobei die Firmware jeden Prozessorkern basierend auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum einstufen soll.
  • Beispiel 16: Ein System, das Folgendes umfasst: einen Speicher; einen Prozessor, der mit dem Speicher gekoppelt ist; eine Drahtlosschnittstelle, um dem Prozessor zu ermöglichen, mit einer anderen Vorrichtung zu kommunizieren, wobei der Prozessor Folgendes beinhaltet: mehrere Prozessorkerne, wobei die mehreren Prozessorkerne heterogene Prozessorkerne beinhalten; Fuses oder NVM, die Vmin pro Prozessorkern aus den mehreren Prozessorkernen speichern; und eine Leistungsverwaltungseinheit, die mit den Prozessorkernen gekoppelt ist, wobei die Leistungsverwaltungseinheit eine Firmware für Folgendes ausführen soll: Einstufen jedes Prozessorkerns mit einer Identifikation gemäß der Vmin pro Prozessorkern; und Transferieren der Eigentümerschaft eines Bootstrap-Prozessors an einen Prozessorkern mit einer höchsten Einstufung.
  • Beispiel 17: Das System des Beispiels 16, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  • Beispiel 18: Das System des Beispiels 16, wobei die Firmware die eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem teilen soll.
  • Beispiel 19: Das System des Beispiels 16, wobei die Firmware jeden Prozessorkern basierend auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum einstufen soll.
  • Beispiel 20: Das System des Beispiels 16, wobei die Firmware die eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle teilen soll, die eine Multiple-APIC-Description-Tabelle umfasst.
  • Eine Zusammenfassung ist bereitgestellt, die es dem Leser ermöglichen wird, die Art und die Quintessenz der technischen Offenbarung festzustellen. Die Zusammenfassung wird mit dem Verständnis vorgelegt, dass sie nicht dazu verwendet wird, den Schutzumfang oder die Bedeutung der Ansprüche einzuschränken. Die folgenden Ansprüche werden hiermit in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch eigenständig als eine separate Ausführungsform steht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 63/069622 [0001]

Claims (20)

  1. Maschinenlesbares Speicherungsmedium mit maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, bewirken, dass ein oder mehrere Prozessoren ein Verfahren durchführen, das Folgendes umfasst: Lesen einer minimalen Betriebsspannung (Vmin) pro Prozessorkern in einem Mehrkernsystem; Einstufen, von einer höchsten Einstufung zu einer niedrigsten Einstufung, jedes Prozessorkerns des Mehrkernsystems gemäß der Vmin pro Prozessorkern; und Modifizieren eines bestehenden Bootstrap-Prozessors durch Zuweisen eines neuen Bootstrap-Prozessors zu einem Prozessorkern mit der höchsten Einstufung.
  2. Maschinenlesbares Speicherungsmedium nach Anspruch 1, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  3. Maschinenlesbares Speicherungsmedium nach Anspruch 1 oder Anspruch 2, wobei die eingestuften Prozessorkerne eingestufte Identifikationen aufweisen.
  4. Maschinenlesbares Speicherungsmedium nach Anspruch 3 mit maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren das Verfahren durchführen, das Folgendes umfasst: Teilen von eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem.
  5. Maschinenlesbares Speicherungsmedium nach Anspruch 4, wobei das Teilen von eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle erfolgt.
  6. Maschinenlesbares Speicherungsmedium nach Anspruch 5, wobei die Advanced-Configuration-and-Power-Interface-Tabelle eine Multiple-APIC-Description-Tabelle umfasst.
  7. Maschinenlesbares Speicherungsmedium nach einem der Ansprüche 1 bis 6, wobei das Einstufen jedes Prozessorkerns des Mehrkernsystems ferner auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum basiert.
  8. Maschinenlesbares Speicherungsmedium nach einem der Ansprüche 1 bis 7, wobei Vmin pro Prozessorkern in einem nichtflüchtigen Speicher gespeichert ist, der während der Massenherstellung mit Vmin pro Prozessorkern programmiert wird.
  9. System-on-Chip, umfassend: mehrere Prozessorkerne; Speicher, der eine minimale Betriebsspannung (Vmin) pro Prozessorkern unter den mehreren Prozessorkernen speichert; und eine Leistungsverwaltungseinheit, die mit den Prozessorkernen gekoppelt ist, wobei die Leistungsverwaltungseinheit eine Firmware für Folgendes ausführen soll: Einstufen jedes Prozessorkerns gemäß der Vmin pro Prozessorkern; und Zuweisen eines Bootstrap-Prozessors zu einem Prozessorkern mit einer höchsten Einstufung.
  10. System-on-Chip nach Anspruch 9, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  11. System-on-Chip nach Anspruch 9 oder Anspruch 10, wobei die Firmware eingestufte Prozessorkernidentifikationen zuweisen soll.
  12. System-on-Chip nach Anspruch 11, wobei die Firmware die eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem teilen soll.
  13. System-on-Chip nach Anspruch 12, wobei die Firmware die eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle teilen soll.
  14. System-on-Chip nach Anspruch 13, wobei die Advanced-Configuration-and-Power-Interface-Tabelle eine Multiple-APIC-Description-Tabelle umfasst.
  15. System-on-Chip nach einem der Ansprüche 9 bis 14, wobei die Firmware jeden Prozessorkern basierend auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum einstufen soll.
  16. System, umfassend: einen Speicher; einen Prozessor, der mit dem Speicher gekoppelt ist; eine Drahtlosschnittstelle, um dem Prozessor zu ermöglichen, mit einer anderen Vorrichtung zu kommunizieren, wobei der Prozessor Folgendes beinhaltet: mehrere Prozessorkerne, wobei die mehreren Prozessorkerne heterogene Prozesskerne beinhalten; einen oder mehrere Speicher, die eine minimale Betriebsspannung (Vmin) pro Prozessorkern unter den mehreren Prozessorkernen speichern; und eine Leistungsverwaltungseinheit, die mit den Prozessorkernen gekoppelt ist, wobei die Leistungsverwaltungseinheit eine Firmware für Folgendes ausführen soll: Einstufen jedes Prozessorkerns mit einer Identifikation gemäß der Vmin pro Prozessorkern; und Transferieren der Eigentümerschaft eines Bootstrap-Prozessors auf einen Prozessorkern mit einer höchsten Einstufung.
  17. System nach Anspruch 16, wobei ein Betriebssystem Interrupts plant oder Niedrignutzungs-Aufgaben auf dem Prozessorkern mit der höchsten Einstufung versorgt.
  18. System nach Anspruch 16 oder 17, wobei die Firmware die eingestuften Identifikationen der Prozessorkerne mit einem Betriebssystem teilen soll.
  19. System nach einem der Ansprüche 16 bis 18, wobei die Firmware jeden Prozessorkern basierend auf der Effizienz des Prozessorkerns um Niederfrequenzmodusfrequenzen herum einstufen soll.
  20. System nach einem der Ansprüche 16 bis 19, wobei die Firmware die eingestuften Identifikationen über eine Advanced-Configuration-and-Power-Interface-Tabelle teilen soll, die eine Multiple-APIC-Description-Tabelle umfasst.
DE102021119090.8A 2020-08-24 2021-07-23 Einrichtung und verfahren für energieeffiziente kernspannungsauswahl Pending DE102021119090A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063069622P 2020-08-24 2020-08-24
US63/069,622 2020-08-24
US17/131,547 2020-12-22
US17/131,547 US20220058029A1 (en) 2020-08-24 2020-12-22 Energy-efficient core voltage selection apparatus and method

Publications (1)

Publication Number Publication Date
DE102021119090A1 true DE102021119090A1 (de) 2022-02-24

Family

ID=80112944

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021119090.8A Pending DE102021119090A1 (de) 2020-08-24 2021-07-23 Einrichtung und verfahren für energieeffiziente kernspannungsauswahl

Country Status (4)

Country Link
US (1) US20220058029A1 (de)
JP (1) JP2022036904A (de)
CN (1) CN114090227A (de)
DE (1) DE102021119090A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230098742A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Processor Power Management Utilizing Dedicated DMA Engines
CN115562470B (zh) * 2022-12-01 2023-03-10 苏州浪潮智能科技有限公司 一种用于异构计算的电源控制系统、方法、设备及介质
KR102633382B1 (ko) * 2023-09-21 2024-02-05 주식회사 다컴시스템 Cpu 코어 클록 속도 변화를 통하여 절전을 행하는 에너지 절감형 컴퓨터 시스템 및 그 제어 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496881B1 (en) * 1999-03-11 2002-12-17 Compaq Information Technologies Group, L.P. Method and apparatus for disabling a processor in a multiprocessor computer
WO2013079988A1 (en) * 2011-11-28 2013-06-06 Freescale Semiconductor, Inc. Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor
US9727345B2 (en) * 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
WO2015183268A1 (en) * 2014-05-29 2015-12-03 Hewlett-Packard Development Company, L.P. Voltage selectors coupled to processor cores
US10310572B2 (en) * 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
US11842202B2 (en) * 2019-10-25 2023-12-12 Intel Corporation Apparatus and method for dynamic selection of an optimal processor core for power-up and/or sleep modes

Also Published As

Publication number Publication date
JP2022036904A (ja) 2022-03-08
CN114090227A (zh) 2022-02-25
US20220058029A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
DE102021124514A1 (de) Vorrichtung und verfahren für hierarchische leistungsverwaltung
DE102021119090A1 (de) Einrichtung und verfahren für energieeffiziente kernspannungsauswahl
DE102021126686A1 (de) Leistungsverwaltungseinrichtung und -verfahren für mehrebenenspeichersysteme
US11940855B2 (en) Apparatus and method for dynamic reallocation of processor power by throttling processor to allow an external device to operate
DE102021134615A1 (de) Vorrichtung und verfahren für kontextbasiertes aufladen von batterien
US20220407317A1 (en) Adaptive burst power and fast battery charging apparatus and method
US20220407337A1 (en) Predictable battery power management apparatus and method
DE102021132804A1 (de) Ospm-richtlinienverfahren und -einrichtung zur dynamischen usb-c-modusauswahl
DE102021128527A1 (de) Vorrichtung, verfahren und system zur programmierung einer leistungsversorgung zur erleichterung von dynamischer leistungsabstimmung
DE102020134338A1 (de) Inferenzbasierte schnellladung
DE102021119048A1 (de) Einrichtung und verfahren für eine einheitliche halte- und reaktivierungsklemme
DE102021121216A1 (de) Einrichtung und Verfahren zum Steuern eines Prozessorspitzensttroms
CN115378253A (zh) 计算型电流传感器
DE102021130628A1 (de) Sicherheitsverriegelungseinrichtung und verfahren für geistiges eigentum
US12009687B2 (en) Apparatus and method to provide dynamic battery charging voltage
US20210132123A1 (en) Per-part real-time load-line measurement apparatus and method
DE102022103790A1 (de) Einrichtung und verfahren zum detektieren einer leistungsversorgungssicherheitsanpassung und risikominderung
DE102022105671A1 (de) Phasenregelkreis-unterstützte schnellstartvorrichtung und schnellstartverfahren
US20210167014A1 (en) Apparatus and method to increase effective capacitance with layout staples
US20220197364A1 (en) Power management for universal serial bus (usb) type-c port
WO2022133643A1 (en) Peak power shaving with multiple batteries, and control mechanism for hybrid energy sources
DE102021123826A1 (de) Verstärker mit niedriger leistung und bereichseffizienter verstärkungsbandbreite-verdreifachung
JP2022177797A (ja) 高出力ポータブル装置向けの電源供給アーキテクチャ
DE102020129505A1 (de) Klemmverfahren und -einrichtung mit digitalem linearem regler
DE102020132082A1 (de) Verfahren und vorrichtung zur genauen messung einer plattformleistung