DE102021124514A1 - Vorrichtung und verfahren für hierarchische leistungsverwaltung - Google Patents

Vorrichtung und verfahren für hierarchische leistungsverwaltung Download PDF

Info

Publication number
DE102021124514A1
DE102021124514A1 DE102021124514.1A DE102021124514A DE102021124514A1 DE 102021124514 A1 DE102021124514 A1 DE 102021124514A1 DE 102021124514 A DE102021124514 A DE 102021124514A DE 102021124514 A1 DE102021124514 A1 DE 102021124514A1
Authority
DE
Germany
Prior art keywords
die
fabric
unit
supervised
supervisor
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
DE102021124514.1A
Other languages
English (en)
Inventor
Dean Mulla
Timothy Kam
Suresh Chemudupati
Eric DeHaemer
Krishnakanth Sistla
Ripan Das
Yogesh Bansal
Andrew Herdrich
Ankush Varma
Dorit Shapira
Nazar Haider
Nikhil Gupta
Pavithra Sampath
Phani Kumar Kandula
Rupal Parikh
Shruthi VENUGOPAL
Stephen Wang
Stephen Haake
Aman Sewani
Adwait Purandare
Ujjwal Gupta
Nikethan Shivanand Baligar
Vivek Garg
Michael Tulanowski
Nilanjan Palit
Stanley Chen
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 DE102021124514A1 publication Critical patent/DE102021124514A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/40Bus coupling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Eine Architektur für hierarchische Leistungsverwaltung (HPM, hierarchical power management) berücksichtigt die Grenzen der Skalierung auf einer Leistungsverwaltungssteuerung sowie die Autonomie an jedem Die und stellt eine vereinheitlichte Ansicht des Package für eine Plattform bereit. Auf einfachster Ebene weist die HPM-Architektur eine Supervisor- und eine oder mehrere Supervisand-Leistungsverwaltungseinheiten (PMUs) auf, die über mindestens zwei unterschiedliche Kommunikations-Fabrics kommunizieren. Jede PMU kann sich wie ein Supervisor für eine Anzahl von Supervisand-PMUs in einer bestimmten Domäne verhalten. HPM adressiert diese Bedürfnisse für Produkte, die eine Sammlung von Dies mit variierenden Leistungs- und Wärmeverwaltungsfähigkeiten und -bedürfnissen umfassen. HPM dient als ein vereinheitlichter Mechanismus, der eine Sammlung von Dies mit variierender Fähigkeit und Funktion überspannen kann, die zusammen ein traditionelles Ein-Chip-System (SoC) bilden. HPM stellt eine Basis zum Verwalten von Leistung und Temperatur über einen Satz unterschiedlicher Dies hinweg bereit.

Description

  • HINTERGRUND
  • Herkömmliche Leistungs- und Wärmeverwaltungsmethoden sehen Package- und Die-Grenzen als ein und dasselbe an. Die Entwicklung von SoCs schreitet zügig voran in Richtung einer Aufnahme mehrerer Dies in einem Package. Dieser Trend wird durch eine Vielzahl von Faktoren angetrieben: i) Integrieren mehrerer Funktionen in ein Paket; ii) Disaggregation (Zerlegung bzw. Untergliederung) zur Ertragssteigerung; iii) 3D-Stapelung für Formfaktor; und iv) Nutzung von Basis- und Spezial- (z.B. E/A-) Dies zum Aufbau von Derivatprodukten mit kurzer Markteinführungs- (TTM-, time to market) Zeit.
  • Unabhängig von der Motivation auf Produktebene für mehrere Chips in einem Package umfassen grundlegende Anforderungen zum Verwalten von Leistung und Wärme für ein SoC: i) Aktivieren des Betriebs innerhalb der spezifizierten Plattformeinschränkungen; ii) Präsentieren einer konsolidierten Package-Ansicht für die Plattform; III) Exponieren durch Software verwaltbarer Domänen und relevanter Telemetrie und Steuerungen, um Software-/Plattform-geführte Optimierung zu ermöglichen; und iv) Verwenden der verfügbaren Ressourcen, um Leistung und Performanz (PnP, power and performance) für das SoC zu maximieren.
  • Mit der aufkommenden Integration nicht-traditioneller Funktionen (z.B. Beschleuniger) innerhalb eines Prozessor-Packages und der Verschiebung hin zu Die-Disaggregation, um große Ein-Chip-Systeme (SoCs, system on chips) zu ermöglichen, ist die Leistungs- und Wärmeverwaltung dieser SoCs zu einer Herausforderung geworden.
  • 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.
    • 1A-B veranschaulichen Mehrchipmodule mit Vorrichtung für hierarchische Leistungsverwaltung (HPM, hierarchical power management) gemäß einigen Ausführungsformen.
    • 2 veranschaulicht einen hierarchischen Stapel von Komponenten für HPM gemäß einigen Ausführungsformen.
    • 3 veranschaulicht zwei Kommunikations-Fabrics zwischen Supervisor- und Supervisand-Leistungsverwaltungskomponenten gemäß einigen Ausführungsformen.
    • 4 veranschaulicht ein Mitteilungsprotokoll zwischen Supervisor- und Supervisand-Leistungsverwaltungskomponenten gemäß einigen Ausführungsformen.
    • 5 veranschaulicht einen für die Supervisor- und Supervisand-Leistungsverwaltungskomponenten partitionierten Speicher gemäß einigen Ausführungsformen.
    • 6 veranschaulicht ein Kommunikationsprotokoll für den Speicher aus 5 gemäß einigen Ausführungsformen.
    • 7 veranschaulicht ein Flussdiagramm, das Kommunikation zwischen Supervisor- und Supervisand-Komponenten einer HPM gemäß einigen Ausführungsformen zeigt.
    • 8 veranschaulicht eine mehrstufige HPM-Hierarchie gemäß einigen Ausführungsformen.
    • 9A-B veranschaulichen mehrere Supervisor-Leistungsverwaltungskomponenten, die eine Vielzahl von Domänen verwalten, wobei manche Supervisor-Komponenten Supervisand-Komponenten einer anderen Supervisor-Komponente sind, gemäß einigen Ausführungsformen.
    • 10 veranschaulicht eine HPM-Architektur höherer Ebene mit PMAX-Detektor und EA-Verbindungen gemäß einigen Ausführungsformen.
    • 11 veranschaulicht eine ausführlichere Ansicht von 10 gemäß einigen Ausführungsformen.
    • 12 veranschaulicht ein Blockdiagramm höherer Ebene einer Schnittstelle einer p-Einheit mit dem PMAX-Detektor gemäß einigen Ausführungsformen.
    • 13 veranschaulicht einen Mehrschwellen-PMAX-Detektor in einer HPM-Architektur eines SoC gemäß einigen Ausführungsformen.
    • 14A-B veranschaulichen einen PMAX-Fluss gemäß einigen Ausführungsformen.
    • 15 veranschaulicht einen p-Code-Pseudocode, der durch eine Supervisor-p-Einheit für Mehrschwellen-PMAX-Detektion und -Verwaltung ausgeführt wird, gemäß einigen Ausführungsformen.
    • 16 veranschaulicht einen p-Code-Pseudocode, der durch eine Supervisand-p-Einheit für Mehrschwellen-PMAX-Verwaltung ausgeführt wird, gemäß einigen Ausführungsformen.
    • 17A veranschaulicht ein zentralisiertes Verwaltungsschema zum Verwalten von Spannung und/oder Frequenz.
    • 17B veranschaulicht ein hybrides Mehrfach-Fabric-Verwaltungsschema zum Verwalten von Spannung und/oder Frequenz in der HPM-Architektur gemäß einigen Ausführungsformen.
    • 17C veranschaulicht ein vollständig verteiltes Mehrfach-Fabric-Verwaltungsschema zum Verwalten von Spannung und/oder Frequenz in der HPM-Architektur gemäß einigen Ausführungsformen.
    • 18 veranschaulicht ein Flussdiagramm eines Basis-Fabric-Frequenzauswahlflusses für das zentralisierte Verwaltungsschema aus 17A gemäß einigen Ausführungsformen.
    • 19 veranschaulicht ein Kommunikations-Fabric für eine Datenverarbeitungsvorrichtung, wobei das Kommunikations-Fabric eine Zwischenverbindungsregion beinhaltet, gemäß einigen Ausführungsformen.
    • 20 veranschaulicht einen Graphen, der eine Variation sowohl einer Netzleistung in Watt (W) als auch eines Aktivitätsfaktors (AF) mit Fabric-Betriebsfrequenz in Gigahertz (GHz) zeigt, gemäß einigen Ausführungsformen.
    • 21 veranschaulicht ein Chipsystem (SoC) mit 6 Dielets, die durch Interconnect-Grenzen verbunden sind, wobei das SoC ein Fabric beinhaltet, das entlang der Dielet-Grenzen in Domänen unterteilt ist, gemäß einigen Ausführungsformen.
    • 22 veranschaulicht eine Tabelle, die berechnete DC-OFF- (Gleichstrom-Aus-) Werte zum Durchführen einer Datendrosselung für einen Bereich lokaler Die-Senderfrequenzen und einen Bereich von Remote-Die- (entfernter Die) Empfängerfrequenzen in einem Fabric mit wenigstens zwei Performanzstufendomänen zeigt, gemäß einigen Ausführungsformen.
    • 23 veranschaulicht eine beispielhafte Implementierung einer Rückflusssteuerschaltungsanordnung, die eine Schnittstelle zwischen zwei verschiedenen Fabric-Domänen bereitstellt, die mit verschiedenen Frequenzen arbeiten, gemäß einigen Ausführungsformen.
    • 24 veranschaulicht eine Tabelle, die eine Differenz zwischen genau berechneten Werten und approximierten Werten für DC OFF eines Drosselungsarbeitszyklus für denselben vorbestimmten Bereich von Frequenzwerten eines lokalen Dies und eines entfernten Dies wie in der Tabelle aus 22 gezeigt veranschaulicht, gemäß einigen Ausführungsformen.
    • 25 veranschaulicht ein Flussdiagramm oder Signaldiagramm, das eine Signalisierung veranschaulicht, die an einer Fabric-Grenze, wie etwa einer Die-Grenze, durchgeführt wird, um eine Frequenzänderung einer Fabric-Betriebsfrequenz auf einer Seite der Domänengrenze zu implementieren, gemäß einigen Ausführungsformen.
    • 26 veranschaulicht ein Flussdiagramm, das bidirektionale Kommunikation zwischen Supervisor- und Supervisand-p-Einheiten für ein Steuerintervall einer Supervisand-p-Einheit zeigt, gemäß einigen Ausführungsformen.
    • 27 veranschaulicht Komponenten eines E/A-Dies und eines Rechen-Dies, die zeigen, wie Telemetrie von Daten, die mit Performanzstufeneinstellung verbunden sind, auf einer Domänenbasis des Fabric durchgeführt wird, gemäß einigen Ausführungsformen.
    • 28 veranschaulicht ein Flussdiagramm, das eine hierarchische Leistungsverwaltung zur Leistungsverwaltung eines Uncore- oder Fabric-Interconnect zeigt, gemäß einigen Ausführungsformen.
    • 29 veranschaulicht ein Flussdiagramm, das eine Leistungsverwaltungseinheiten-Kommunikationssequenz zwischen Supervisor- und Supervisand-p-Einheiten zeigt, gemäß einigen Ausführungsformen.
    • 30 veranschaulicht eine Benutzerschnittstelle zum Einstellen von Leistungseinschränkungen für ein Kommunikations-Fabric mit zwei oder mehr Performanzstufendomänen gemäß einigen Ausführungsformen.
    • 31 veranschaulicht ein Flussdiagramm für verteilte Leistungsverwaltung im Zusammenhang mit 17C der Frequenz in einem Steuerintervall einer Supervisor-p-Einheit gemäß einigen Ausführungsformen.
    • 32 veranschaulicht ein Funktionsblockdiagramm, das Merkmale eines Systems zum Verwalten von Speicherzugriffen durch Prozessorkerne gemäß einer Ausführungsform zeigt.
    • 33A-33C veranschaulichen Flussdiagramme, die jeweils Merkmale eines jeweiligen Verfahrens zum Kommunizieren von Dienstklasseninformationen zwischen IC-(integrated circuit) Chips gemäß einer entsprechenden Ausführungsform zeigen.
    • 34 veranschaulicht ein Funktionsblockdiagramm, das Merkmale eines IC-Chips zum Betrieb in einer Architektur für hierarchische Leistungsverwaltung gemäß einer Ausführungsform zeigt.
    • 35 veranschaulicht ein Ablaufdiagramm, das Merkmale von Kommunikationen zwischen IC-Chips einer Architektur für hierarchische Leistungsverwaltung gemäß einer Ausführungsform zeigt.
    • 36 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum dynamischen Steuern einer Speicherbandbreitenzuteilung gemäß einer Ausführungsform zeigt.
    • 37 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum Bereitstellen eines Verzögerungsausgleichers gemäß einer Ausführungsform zeigt.
    • 38 veranschaulicht ein Funktionsblockdiagramm, das Merkmale eines Systems zum Bestimmen eines Leistungsverbrauchs durch Prozessorkerne in einem Mehrchip-Package gemäß einer Ausführungsform zeigt.
    • 39 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum Betreiben einer Architektur für hierarchische Leistungsverwaltung gemäß einer Ausführungsform zeigt.
    • 40A-40C veranschaulichen Funktionsblockdiagramme, die jeweils Merkmale eines jeweiligen Systems zum Regeln eines Leistungsverbrauchs durch ein Mehrchip-Package gemäß einer entsprechenden Ausführungsform zeigen.
    • 41 veranschaulicht ein Funktionsblockdiagramm, das Merkmale einer Architektur für hierarchische Leistungsverwaltung zum Bestimmen von Kernfrequenzen einer Mehrchip-Package-Einrichtung gemäß einer Ausführungsform zeigt.
    • 42, 43 veranschaulichen Zeitdiagramme, die jeweils Merkmale eines jeweiligen verwalteten Leistungsverbrauchs durch ein Mehrchip-Package gemäß einer entsprechenden Ausführungsform zeigen.
    • 44A, 44B veranschaulichen Sequenzdiagramme, die jeweils jeweilige Kommunikationen zum Bestimmen von Prozessorkernoperationen gemäß einer entsprechenden Ausführungsform zeigen.
    • 45 veranschaulicht ein Funktionsblockdiagramm, das Merkmale einer Architektur für hierarchische Leistungsverwaltung gemäß einer Ausführungsform zeigt.
    • 46 veranschaulicht ein Funktionsblockdiagramm, das Merkmale einer Package-Einrichtung zum Bereitstellen von Zugriff auf hierarchische Leistungsverwaltungsmerkmale m gemäß einer Ausführungsform zeigt.
    • 47 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum Verwalten eines Leistungsverbrauchs für ein Multi-Die-Package gemäß einer Ausführungsform zeigt.
    • 48 veranschaulicht ein Sequenzdiagramm, das Merkmale von Kommunikationen zum Bestimmen einer Leistungsverwaltung eines Multi-Die-Package gemäß einer Ausführungsform zeigt.
    • 49A, 49B veranschaulichen Flussdiagramme, die jeweils jeweilige Merkmale eines Verfahrens zum Bestimmen einer Basistaktfrequenz eines Multi-Die-Package gemäß einer entsprechenden Ausführungsform zeigen.
    • 50 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum Anpassen von Taktfrequenzen gemäß Werten eines Multi-Die-Package gemäß einer Ausführungsform zeigt.
    • 51 veranschaulicht ein Flussdiagramm, das Merkmale eines Verfahrens zum Einstellen eines Basistaktfrequenzwerts mit einer Architektur für hierarchische Leistungsverwaltung gemäß einer Ausführungsform zeigt.
    • 52A-52B veranschaulichen Flussdiagramme, die jeweils jeweilige Merkmale eines Verfahrens zum Verteilen eines Frequenzbudgets unter verschiedenen Rechenelementen eines Multi-Die-Package gemäß einer entsprechenden Ausführungsform zeigen.
    • 53 veranschaulicht ein Flussdiagram, das entsprechende Merkmale eines Verfahrens zum Reservieren von Leistung für jeweilige Gruppen von Prozessorkernen gemäß einer entsprechenden Ausführungsform zeigt.
    • 54A, 54B veranschaulichen Flussdiagramme, die jeweils jeweilige Merkmale eines Verfahrens zum Konfigurieren von Betriebsfrequenzen eines Mehrchip-Package gemäß einer entsprechenden Ausführungsform zeigen.
    • 55 veranschaulicht eine intelligente Einrichtung oder ein Computersystem oder ein SoC (System-on-Chip, Ein-Chip-System) mit HPM gemäß einigen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Architektur für hierarchische Leistungsverwaltung (HPM, hierarchical power management) verschiedener Ausführungsformen berücksichtigt die Grenzen der Skalierung auf einer Leistungsverwaltungssteuerung sowie die Autonomie an jedem Die und stellt eine vereinheitlichte Ansicht des Systems für eine Plattform bereit. Eine HPM-Architektur adressiert diese Bedürfnisse für Produkte, die eine Sammlung von Dies mit variierenden Leistungs- und Wärmeverwaltungsfähigkeiten und -bedürfnissen umfassen. Sie dient als ein vereinheitlichter Mechanismus, der Sammlungen von Dies mit variierenden Fähigkeiten und Funktionen überspannen kann. Unter anderem kann HPM eine Basis zum Verwalten von Leistung, Performanz und Wärme über einen Satz diverser Dies hinweg bereitstellen.
  • Effiziente Integration von nicht-traditionellen (Kern- und Grafik-) Funktionen in das SoC erfordert robuste Leistungsverwaltungs- (PM-, power management) Unterstützung in jeder integrierten Funktion. Funktionen wie Vernetzungskomponenten, frei programmierbares Gate-Array (FGPA), Komprimierung, Kryptografie, Warteschlangenverwaltung usw. können als ein Begleit-Die in dem Package hinzugefügt werden. Diese Bauelemente können sich Leistungsversorgungs- und thermische Eigenschaften mit einem primären Die (z.B. Rechen-Die) teilen. HPM stellt die Infrastruktur bereit, um Leistung, Performanz und Temperatur für diese hinzugefügten Funktionen zu verwalten und, was noch wichtiger ist, ermöglicht, dass eine Leistungsverwaltungssteuerung eine Entität ist, die für Durchsetzen von Einschränkungen auf Plattformebene verantwortlich ist. Die HPM-Infrastruktur verschiedener Ausführungsformen ist nicht auf Die-Packages beschränkt, sondern die gleichen Verfahren und Mechanismen können eingesetzt werden, um zum Beispiel mit integrierten Endpunktfunktionen (z.B. diskreten Karten, Beschleuniger- oder Speicherkarten usw.) zu interagieren, die über Schnittstellen, wie etwa Compute Express Link (CXL) und/oder andere Verschaltungsschemata, verbunden sind.
  • Eine HPM verschiedener Ausführungsformen baut eine Fähigkeit und Infrastruktur auf, die Verwaltung auf Package-Ebene innerhalb einer Plattform ermöglicht, während sie weiterhin Autonomie-„Inseln“ versorgt, die über einzelne Dies in einem Package hinweg existieren können. HPM setzt keine vorbestimmte Abbildung physischer Partitionen auf Domänen voraus. Eine HPM-Domäne kann an einer Funktion ausgerichtet sein, die innerhalb eines Dielet, in einer Dielet-Grenze, in einem oder mehreren Dielets, in einem Begleit-Die oder sogar einer diskreten CXL-Einrichtung integriert ist. HPM befasst sich mit der Integration mehrerer Instanzen desselben Dies, gemischt mit proprietären Funktionen oder Funktionen Dritter, die auf demselben Die oder separaten Dies integriert sind, und sogar über CXL (z.B. Flexbus) verbundene Beschleuniger, die sich innerhalb des Package befinden können, oder in einem diskreten Formfaktor.
  • Es gibt viele technische Auswirkungen der verschiedenen Ausführungsformen. Beispielsweise ermöglicht HPM Entwicklern, die Ziele der Skalierbarkeit, Modularität und späten Bindung zu erfüllen. HPM ermöglicht auch, dass Funktionen von Leistungsverwaltungseinheiten (PMU, power management unit), die bereits auf anderen Dies existieren können, genutzt werden, anstatt im flachen Schema deaktiviert zu werden. HPM ermöglicht die Verwaltung einer beliebigen Sammlung von Funktionen unabhängig von deren Integrationsgrad. Die HPM verschiedener Ausführungsformen ist skalierbar, modular und arbeitet sowohl mit symmetrischen Mehrchipprozessoren (MCPs) als auch mit asymmetrischen MCPs. Für eine HPM ist es beispielsweise nicht erforderlich, dass eine einzelne PM-Steuerungs- und Package-Infrastruktur über angemessene Skalierungsgrenzen hinaus wächst. 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 mit Knoten unterschiedlicher Prozesstechnologien aufweisen, die in einem einzigen Package gekoppelt sind. HPM adressiert auch den Bedarf an Begleit-Die-Integrationslösungen - innerhalb und außerhalb eines Package. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • In der folgenden Beschreibung werden zahlreiche Einzelheiten besprochen, um eine ausführlichere Erläuterung von Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Es ist jedoch für einen Fachmann offensichtlich, dass Ausführungsformen der vorliegenden Offenbarung auch ohne diese konkreten Einzelheiten umgesetzt werden können. In anderen Fällen sind wohlbekannte Strukturen und Einrichtungen in Blockdiagrammform anstatt ausführlich gezeigt, um zu vermeiden, dass Ausführungsformen der vorliegenden Offenbarung verunklart werden.
  • Es wird angemerkt, dass in den entsprechenden Zeichnungen der Ausführungsformen Signale mit Linien repräsentiert sind. Manche Linien können dicker sein, um mehr zugehörige Signalpfade anzugeben, und/oder Pfeile an einem oder mehreren Enden aufweisen, um eine primäre Informationsflussrichtung anzugeben. Derartige Angaben bezwecken nicht, einschränkend zu sein. Vielmehr werden die Leitungen in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet, um ein leichteres Verständnis einer Schaltung oder einer logischen Einheit zu ermöglichen. Ein beliebiges repräsentiertes Signal kann, wie durch Gestaltungsbedürfnisse oder Präferenzen vorgegeben, tatsächlich ein oder mehrere Signale umfassen, die sich in beide Richtungen bewegen können und mit einem beliebigen geeigneten Typ von Signalschema implementiert werden können.
  • 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 Einrichtungen.
  • Der Ausdruck „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 Einrichtungen.
  • Der Ausdruck „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 Ausdruck „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 Ausdruck „Signal“ kann sich auf wenigstens ein Stromsignal, Spannungssignal, magnetisches Signal oder Daten-/Taktsignal beziehen. Die Bedeutung von „ein/e“ und „der/die/das“ schließen Pluralreferenzen ein. Die Bedeutung von „in“ schließt „in“ und „auf“ ein.
  • Der Ausdruck „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 Ausdruck „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 Einrichtungen 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 das Leistungsversorgungsniveau, 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 auf unterschiedliche Instanzen von gleichen Objekten Bezug genommen 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 Bezugsziffern (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 beinhalten auch Tri-Gate- und FinFET-Transistoren, Gate-All-Around-Cylindrical-Transistoren, Tunnel-FET- (TFET-), Vierkantdraht- oder Rechteckband-Transistoren, Ferroelektrische-FET- (FeFET-) oder andere Einrichtungen, die Transistorfunktionalität umsetzen, wie Kohlenstoff-Nanoröhren oder Spintronik-Einrichtungen. Symmetrische MOSFET-Source- und -Drain-Anschlüsse sind identische Anschlüsse und werden hier austauschbar verwendet. Andererseits weist eine TFET-Einrichtung asymmetrische Source- und Drain-Anschlüsse auf. Fachleute erkennen, dass andere Transistoren, beispielsweise Bipolar-Transistoren (BJT-PNP/NPN), BiCMOS, CMOS usw., verwendet werden können, ohne vom Schutzumfang der Offenbarung abzuweichen.
  • Vorliegend verweist der Begriff „Supervisor“ allgemein auf eine Leistungssteuerungs- oder Leistungsverwaltungseinheit (eine „p-Einheit“), die leistungs- und performanzbezogene Parameter für eine oder mehrere zugehörige Performanzdomänen überwacht und verwaltet, entweder allein oder in Zusammenarbeit mit einer oder mehreren anderen p-Einheiten. Leistungs-/performanzbezogene Parameter können, ohne jedoch hierauf eingeschränkt zu sein, Domänenleistung, Plattformleistung, Spannung, Spannungsdomänenstrom, Die-Strom, Ladeleitung, Temperatur, Nutzung, Taktfrequenz, Verarbeitungseffizienz, Informationen zur aktuellen/künftigen Arbeitslast 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 Spannungsregler 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. Leistungsgrenzen auf Plattformebene) 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.
  • Vorliegend verweist der Begriff „Supervisand“ allgemein auf eine Leistungssteuerungs- oder Leistungsverwaltungseinheit (eine „p-Einheit“), die leistungs- und performanzbezogene Parameter für eine oder mehrere zugehörige 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 zugehörige 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 eine Svor/Svee-p-Einheit, dienen kann.
  • 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.
  • 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.
  • Vorliegend bezieht sich der Begriff „Interconnect“ auf einen Kommunikationslink oder Kommunikationskanal zwischen zwei oder mehr Punkten oder Knoten. Er kann einen oder mehrere separate Leitungspfade, wie etwa Drähte, Durchkontaktierungen (vias), Wellenleiter, passive Komponenten und/oder aktive Komponenten, umfassen. Er kann auch ein Fabric umfassen.
  • Vorliegend 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 den Interconnect oder einen oder mehrere Drähte beinhalten.
  • 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- (Netz-) 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.
  • Vorliegend verweist der Begriff „Dielet“ oder „Chiplet“ allgemein auf einen physisch eigenständigen 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.
  • Vorliegend verweist der Begriff „Domäne“ allgemein auf einen logischen oder physischen Perimeter, 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 autonomer Perimeter (AP, autonomous perimeter) bezeichnet werden. Eine Domäne kann ein gesamtes Ein-Chip-System (SoC) oder ein Teil des SoC sein und wird durch eine p-Einheit reguliert.
  • 1A-B veranschaulichen ein Mehrchipmodul 100 bzw. 120 mit einer Vorrichtung für hierarchische Leistungsverwaltung (HPM) gemäß einigen Ausführungsformen. 1A-B zeigen Konzepte, bei denen HPM auf eine Vielzahl von Domänen angewendet wird. Die Leistungsverwaltung ist dabei in einer hierarchischen Struktur konfiguriert und angeordnet. Das Mehrchipmodul 100 umfasst eine Anzahl von Dies einschließlich Prozessor-Dies (z.B. 101_00, 101_10, 101_11, ... 101_1n, 101_20, 101_21, ... 101_2m, wobei ‚n‘ und ‚m‘ Zahlen größer als 1 sind) und E/A-Dies (z.B. 104_01, 104_02, 104_10, 104_20, 104_11, 104_21, 104_30, 104_31, 104_32), Leistungssteuereinheiten (p-Einheiten) 102, 103 und 105, E/A-Interconnect 106, Kommunikationsnetzwerk 107 mit Fabrics 110, 111 und Interconnect 112, Phasenregelschleife (PLL, phase locked loop) oder Frequenzregelschleife (FLL, frequency locked loop) 113 und Spannungsregler 114. Der Einfachheit halber werden Rechen- oder Prozessor-Dies durch ihre allgemeine Kennung 101 bezeichnet, während E/A-Dies durch ihre allgemeine Kennung 104 bezeichnet werden.
  • In verschiedenen Ausführungsformen beinhaltet jeder Die (oder Dielet) eine Leistungsverwaltungseinheit (PMU) oder p-Einheit. Zum Beispiel können die Prozessor-Dies 101 eine Supervisor-p-Einheit 102, eine Supervisand-p-Einheit 103 oder in einer Doppelfunktion eine Supervisor-/Supervisand-p-Einheit 105 aufweisen. In einigen Ausführungsformen weist der E/A-Die 104 eine eigene p-Einheit mit Doppelfunktion, wie etwa die Supervisor- und/oder Supervisand-p-Einheit 105, auf. Die p-Einheiten in jedem Die können Instanzen einer generischen p-Einheit sein. In einem solchen Beispiel weisen alle p-Einheiten dieselbe Fähigkeit und dieselben Schaltungen auf, sind aber (dynamisch oder statisch) dazu konfiguriert, eine Rolle eines Supervisors, Supervisanden und/oder von beiden zu übernehmen. In einigen Ausführungsformen sind die p-Einheiten 102, 103 oder 105 für die Rechen-Dies 101 Instanzen einer Rechen-p-Einheit, während die p-Einheiten 102, 103 oder 105 für die E/A-Dies 104 Instanzen einer E/A-p-Einheit sind, die sich von der Rechen-p-Einheit unterscheidet. Je nach Funktion erhält die p-Einheit spezifische Zuständigkeiten zur Leistungsverwaltung des Mehrchipmoduls und/oder der Rechenplattform. Während verschiedene p-Einheiten für Dies in einem Mehrchipmodul oder Ein-Chip-System 100 oder 120 beschrieben sind, kann eine p-Einheit auch Teil einer externen Einrichtung wie der E/A-Einrichtung 109 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 von ihnen erwartet wird, dass sie HPM-Nachrichten empfangen, und dass von Fabrics 106 und 107 an die Supervisand-p-Einheiten 103 übermittelt. In einigen Ausführungsformen gibt das Fabric 107 eine Gruppe von Fabrics und Interconnects an, die das erste Fabric 110, das zweite Fabric 111 und den Schnellreaktions-Interconnect 112 beinhalten. In einigen Ausführungsformen wird das erste Fabric 110 für gemeinsame Kommunikation zwischen der Supervisor-p-Einheit 102 und der Supervisand-p-Einheit 103 verwendet. Diese gemeinsamen Kommunikationen beinhalten eine Änderung der Spannung, der Frequenz und/oder des Leistungszustands eines Die, die basierend auf einer Anzahl von Faktoren (z.B. zukünftige Arbeitslast, Benutzerverhalten usw.) geplant wird. In einigen Ausführungsformen wird die zweite Struktur 111 für eine Kommunikation mit höherer Priorität zwischen der Supervisor-p-Einheit 102 und der Supervisand-p-Einheit 103 verwendet. Zu Beispielen für Kommunikation mit höherer Priorität zählen eine Nachricht zum Drosseln aufgrund einer möglichen thermischen Durchgehbedingung, eines Zuverlässigkeitsproblems usw. In einigen Ausführungsformen wird der Schnellreaktions-Interconnect 112 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 einigen Ausführungsformen ist der Schnellreaktions-Interconnect 112 ein Legacy-Interconnect, dessen Funktion durch das zweite Fabric 111 erfüllt werden kann.
  • Die HPM-Architektur verschiedener Ausführungsformen ermöglicht Skalierbarkeit, Modularität und späte Bindung symmetrischer und/oder asymmetrischer Dies. Vorliegend 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 im herkömmlichen flachen Leistungsverwaltungsschema deaktiviert zu werden. HPM setzt keine vorbestimmte Abbildung physischer Partitionen auf Domänen voraus. Eine HPM-Domäne kann mit einer Funktion ausgerichtet sein, die innerhalb eines Dielet, in einer Dielet-Grenze, in einem oder mehreren Dielets, in einem Begleit-Die oder sogar einer diskreten CXL-Einrichtung integriert ist. HPM ermöglicht die Verwaltung einer beliebigen Sammlung von Funktionen unabhängig von deren Integrationsgrad. In einigen Ausführungsformen wird eine p-Einheit basierend auf einem oder mehreren Faktoren als Supervisor-p-Einheit 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 eine einzelne p-Einheit-Instanz nicht den gesamten Prozessor unterstützen muss. Dies ermöglicht eine Leistungsverwaltung bei geringerer Granularität und verbessert Reaktionszeiten und Effektivität. Eine hierarchische Struktur behält eine monolithische Benutzeransicht bei. Zum Beispiel stellt die HPM-Architektur dem OS auf Betriebssystemebene (OS-Ebene) eine einzige PMU-Ansicht bereit, obwohl die PMU physisch in einer oder mehreren Supervisor-Supervisand-Konfigurationen verteilt ist.
  • In einigen Ausführungsformen ist die HPM-Architektur zentralisiert, wobei ein Supervisor alle Supervisanden steuert. In einigen Ausführungsformen ist die HPM-Architektur dezentralisiert, wobei verschiedene p-Einheiten in verschiedenen Dies die Gesamtleistungsverwaltung durch eine Peer-to-Peer-Kommunikation steuern. In einigen Ausführungsformen ist die HPM-Architektur verteilt, wobei es unterschiedliche Supervisoren für unterschiedliche Domänen gibt. Ein Beispiel für eine verteilte Architektur ist eine baumartige Architektur.
  • 2 veranschaulicht einen hierarchischen Stapel 200 von Komponenten für HPM gemäß einigen Ausführungsformen. HPM weist mehrere Komponenten auf, die autonome Leistungsverwaltungs- (PM-) Domänen, Fabrics, die eine Kommunikation zwischen PM-Domänen ermöglichen, und Algorithmen umfassen, um eine effiziente Verwendung und Partitionierung von Ressourcen zu ermöglichen. HPM baut auf einer Infrastrukturschicht auf, um die Kommunikation zwischen der Supervisor- und der Supervisand-p-Einheit, 202 (z.B. 102) bzw. 203 (z.B. 103), zu erleichtern, und definiert Primitive, um eine verteilte Verwaltung der in ein Package eingebundenen Funktionen zu ermöglichen. Die Funktionalität des Supervisors 202 fügt eine Verwaltungsschicht auf Package-Ebene hinzu, die sich aus den monolithischen Package-Ebenen-Funktionen entwickelt. Die Funktionalität der Supervisor-p-Einheit 203 bleibt die gleiche wie die native Fähigkeit, die implementiert wird, mit Ausnahme der HPM-Kommunikation.
  • In einigen Ausführungsformen beinhaltet die Supervisor-p-Einheit 202 eine gemeinsame Supervisor-Schnittstelle 223 zum Kommunizieren mit der Supervisand-p-Einheit 203 über ein gemeinsames Fabric 210 (z.B. erstes Fabric 110). In einigen Ausführungsformen umfasst die Supervisor-p-Einheit 202 Synchronisationshardware (HW) 222 zum Kommunizieren mit der Supervisand-p-Einheit 204 über das synchrone Fabric 211 (zweites Fabric 211). In einigen Ausführungsformen kann die Kommunikation in Abhängigkeit von den Leistungs- und Performanzzielen des SoC und der Dringlichkeit über entweder Fabric 210 oder Fabric 211 erfolgen.
  • In einigen Ausführungsformen beinhaltet die Supervisand-p-Einheit 203 eine Supervisand-Synchronisationsschnittstelle 225 zum Kommunizieren mit der Supervisor-p-Einheit 202 über das zweite Fabric 211 (z.B. das zweite Fabric 111). In einigen Ausführungsformen beinhaltet die Supervisand-p-Einheit 202 eine gemeinsame Supervisand-Schnittstelle 226 zum Kommunizieren mit der Supervisor-Schnittstelle 223 über das erste Fabric 210 (z.B. erstes Fabric 110). In einigen Ausführungsformen wird das erste Fabric 210 für nicht dringliche Kommunikation verwendet, während das zweite Fabric 211 für dringliche Kommunikation zwischen der Supervisor-p-Einheit 202 und der Supervisand-p-Einheit 203 verwendet wird. Das erste Fabric 210 verwendet ein Anfrage- und Quittierungs-Handshake-Protokoll, das eine inhärente Nachrichtenübermittlungsverzögerung aufweist. In einigen Ausführungsformen ist ein dedizierter Draht 212 (z.B. Draht 112), der von den Fabrics 210 und 211 getrennt ist, für Schnellreaktionsinteraktion zwischen Supervisor- 202 und Supervisand- 203 p-Einheiten bereitgestellt. Der Schnellreaktionsdraht 212 kann zum Senden von Informationen über maximale Leistung, elektrische Attribute (z.B. Laststrom), thermische Auslöser usw. für den Supervisor 202 verwendet werden, um schnell aktiv zu werden.
  • In einigen Ausführungsformen beinhaltet die Supervisand-p-Einheit 203 eine Abstraktionsschicht 229 und eine Flachdomäneninfrastruktur 222 (Firmware und Hardware). Die Abstraktionsschicht 229 und die Flachdomäneninfrastruktur 222 werden für Leistungs- und Temperaturverwaltung verwendet. Zum Beispiel ermöglichen die Abstraktionsschicht 229 und die Flachdomäneninfrastruktur 222, dass eine Supervisor-Einrichtung einen Begriff eines Arbeitspunkts hat, der Hardwarefunktionen zugeführt wird, die dafür verantwortlich sind, die Spannung und Frequenz für eine Domäne auf den gewünschten Arbeitspunkt zu bringen. Der Arbeitspunkt kann eine Nachricht auf einem internen Fabric oder ein Registerschreibvorgang oder ein Satz von Drähten zu einem Spannungsregler und Phasenregelkreis (PLL) sein, entweder direkt oder über einen Zwischenadapter. IP-(Intellectual Property) Blöcke werden über die Spannungs- und/oder Frequenzänderung informiert, um sich auf diese vorzubereiten.
  • 3 veranschaulicht eine funktionale HPM-Architektur 300 mit zwei Kommunikations-Fabrics 210 und 211 zwischen der Supervisor-p-Einheit 302 (z.B. 201) und den Supervisand-p-Einheiten 303_1, 303_2, ... 303_n gemäß einigen Ausführungsformen. Die Supervisand-p-Einheiten werden vorliegend allgemein als p-Einheit 303 (z.B. gleich wie 103 oder 203) bezeichnet. Jede in das Package integrierte Funktion kann in ihrer Leistungsverwaltung und ihren thermischen Funktionen unabhängig sein. Diese unabhängigen Funktionen bzw. Domänen werden vorliegend als autonome Perimeter (APs) bezeichnet. APs weisen eine lokale PM-Steuerung (oder p-Einheit) auf, die für die Verwaltung des Arbeitspunkts für alle lokalen IP-Blöcke in der Domäne ähnlich einer flachen oder monolithischen PM verantwortlich ist. In diesem Beispiel weist die Supervisand-p-Einheit 301_1 den zugehörigen AP 313_1, die Supervisand-p-Einheit 301_2 den zugehörigen AP 313 2 und die Supervisand-p-Einheit 301 n den zugehörigen AP 313_n auf. In einem Fall bedient die p-Einheit 303_1 Leistungsverwaltung und thermische Einschränkungen für den AP 313_1. Ein AP ist allgemein mit dem Bezugszeichen 313 gekennzeichnet. Diese Supervisand-p-Einheiten 303 kommunizieren mit der Supervisor-p-Einheit 302, um an dem Fluss auf Package-Ebene teilzunehmen, um die Einhaltung von Plattformbeschränkungen sicherzustellen. In einigen Ausführungsformen kann ein AP einen oder mehrere Dies umfassen. In diesem Fall melden mehrere Supervisand-p-Einheiten 303 an eine Supervisor-p-Einheit 302. In einigen Ausführungsformen ist ein AP 313 auf einen individuellen Die beschränkt.
  • In verschiedenen Ausführungsformen sind Peer-to-Peer- (P2P-) Fabric(s) zwischen den verschiedenen Instanzen von APs bereitgestellt, um Kommunikation zwischen APs (z.B. Kommunikation zwischen APs 313 jedes Supervisanden 302) zu ermöglichen. In einigen Ausführungsformen umfassen P2P-Fabric(s) ein gemeinsames Fabric 310 (z.B. erstes Fabric 110 oder 210) für eine reguläre, nicht dringliche Kommunikation zwischen der Supervisor-p-Einheit 302 und der Supervisand-p-Einheit 303. In einigen Ausführungsformen ermöglicht das erste Fabric 310 (z.B. gemeinsames Fabric), dass jeder AP 313 seine Bedürfnisse der Supervisor-p-Einheit 302 anzeigt, und ermöglicht der Supervisor-p-Einheit 302, die Einschränkungen an jeden AP 313 zu senden.
  • APs verwenden zudem diese gemeinsame Fabric-Schnittstelle 310, um Telemetrie, wie etwa Temperatur, Energieverbrauch, Anzahl aktivierter Kerne, IP-Lizenzniveaus usw., an die Supervisor-p-Einheit 302 zu senden, so dass die Supervisor-p-Einheit 302 informierte Entscheidungen über die von ihr an die APs 313 bereitgestellten Einschränkungen treffen kann. Dies ermöglicht auch, dass die Supervisor-p-Einheit 302 der Plattformsteuerung eine konsolidierte Ansicht des Packages präsentiert. Ein Beispiel für ein gemeinsames Fabric 310 beinhaltet IOSF-SB, Netspeed Crux, ARM-APB/AXI oder ein anderes Netzwerk nach Industriestandard, das eine Verbindung zwischen allen APs ermöglicht.
  • In einigen Ausführungsformen beinhalten P2P-Fabric(s) ein dediziertes Fabric 311 (z.B. zweites Fabric 111 oder 211). Das zweite Fabric 311 kann ein virtueller Kanal in einem anderen Fabric sein oder kann sogar in das kohärente Fabric abgebildet werden. Das zweite Fabric 311 ist ein Synchronisations-Fabric, das eine enge Synchronisation zwischen der Supervisor-p-Einheit 302 und den Supervisand-p-Einheiten 303 bereitstellt. Dringliche Nachrichten, wie etwa die IccMax-Bewertung einer Domäne, müssen möglicherweise mit geringster Latenz von der Supervisand-p-Einheit 303 an die Supervisor-p-Einheit 302 übermittelt werden, so dass die Supervisor-p-Einheit 302 Schäden vermeiden kann, die durch einen Strom verursacht werden, der für eine bestimmte Domäne unter der Supervisand-p-Einheit 303 höher ist als IccMax. Solche dringlichen Nachrichten werden über das zweite Fabric 311 kommuniziert, um Verkehr auf dem ersten Fabric 310 zu vermeiden.
  • In einigen Ausführungsformen stellen die P2P-Fabrics eine maximale Grenze für die Ende-zu-Ende-Nachrichtenlatenz in diesem Netzwerk bereit. Das P2P-Fabric garantiert zudem, dass HPM-Nachrichten vorankommen und dass sie keine Abhängigkeiten von anderen Verkehrsklassen aufweisen und die Verfügbarkeitseinschränkungen erfüllen können. In einigen Ausführungsformen unterstützt das P2P-Fabric einen Kreditaustauschfluss, um Unterstützung für PMUs in APs zu ermöglichen, die eine begrenzte Pufferkapazität aufweisen, die verfügbar ist, um HPM-Befehle entgegenzunehmen.
  • Tabelle 1 zeigt Beispielevon Befehlen, die über das P2P-Fabric gesendet werden können. Tabelle 1
    HPM-Nachricht Zweck der Nachricht Nutzungsmodell
    SET_PREF_LIMIT Zum Senden von Performanzzielen an den Supervisanden In Reaktion auf die Performanzanfrage (PERF REQ), IccMax und/oder Leistungsausgleich
    SET POWER_LIMIT Zum expliziten Einstellen von PL1- und/oder PL2-Grenzen, falls gewünscht In Reaktion auf RAPL- (laufender Durchschnitt der Leistungsgrenze) Änderungen oder Leistungsausgleich
    ICC_REQUEST Zum Kommunizieren einer IccMax-Grenze In Reaktion auf Arbeitslast- oder Lizenzierungsänderun gen
    SET_ICC_LIMIT Zum Senden von IccMax-Ziel an Supervisand In Reaktion auf IccMax-Konfigurationsänderun gen oder IccMax-Ausgleich
    ICC_LIMIT_ACK Zur Anzeige, dass der Empfänger nun dem neuen Budget folgt. Quittierung (Acknowledge, Ack) der SET_ICC_LIMIT-Nachricht
    TELE_APL Zum Melden von Performanzverlust für jede Einschränkung Periodisch gesendete Telemetrieinformation en
    PERF REQUEST Für Hardware-Performanz (HWP) (nicht verwendet von CD) WIE-Änderung im Supervisand-Die
    PERF_BIAS_REQUEST Zum Performanzausgleich In Reaktion auf Arbeitslast- oder Lizenzierungsänderun gen oder Prioritätsänderungen
    PERF_GRANT Zum Senden eines Performanzziels an den Supervisanden In Reaktion auf Änderung von Einschränkungen oder Neuausgleichsanfragen
    VOLTAGE_REQUEST Zum Anfordern von Spannungsänderungen für eine bestimmte Schiene Reset, ITD, PkgC
    VOLTAGE_GRANT Zur Anzeige des Spannungspegels für eine bestimmte Schiene an Supervisand In Reaktion auf VOLTAGE REQEST von einem beliebigen Supervisanden
    HGS_UPDATE ACK Um anzugeben, welche Felder in der HGS-(hardware guided scheduling, Hardwaregesteuerte Planung) Tabelle aktualisiert werden In Reaktion auf HGS_GO_UPDATE-Befehl von Supervisor
    HGS_GO_UPDATE Zum Anweisen des Supervisanden zur Aktualisierung der HGS-Tabelle Periodische Aufgabe von Supervisor
    EPB_HINT Zum Senden von EPB-Aktualisierungen Bei EPB-Wechsel
    EPB_GRANT Zum Senden eines konsolidierten EPB-Bereichs an Blätter In Reaktion auf EPB HINT-Nachricht von einem beliebigen Supervisanden
    THERMAL_REQUEST Drosselunterstützungsanf rage In Reaktion auf einen nicht verwaltbaren thermischen Zustand in einem Supervisanden
    TELE_ENERGY_CONSUMED Abgetastete Energietelemetrie periodisch
    TELE_THROTTLE_COUNT_THERMAL Telemetrie mit thermisch gedrosselten Zyklen periodisch
    TELE_THROTTLE_COUNT_POWER Telemetrie mit TDPgedrosselten Zyklen periodisch
    TELE_THROTTLE_COUNT_ICCM AX Telemetrie MIT ICCMAX-Drosselzyklen periodisch
    TELE_THERMAL Temperaturtelemetrie periodisch
    ADR ADR-Anfrage und Quittierung In Reaktion auf ein ADR-Ereignis
    RESET_PREP Wärme-Reset-Anfrage und -quittierung, PkgS In Reaktion auf Wärme-Reset, PkgS
    PMREQ Kachelübergreifende PM-Anfrage (OMReq) oder PM-Antwort (PMRsp) PkgC
    CD_INFO Supervisor, der CD-Informationen anfordert Einmal beim Reset
    SYNC_RESOURCE_FLOW_ID Hinweis auf den nächsten zu synchronisierenden Fluss an den Supervisanden Reset, PkgC, GV, andere TBD-Flüsse
    MD_CD_READY Reset-Koordinationsnachrichte n, die auf frühem SB gesendet werden sollen Reset-Zeit-Handshakes
    CD_POC An Supervisanden gerichtete POC-Informationen Einmal beim Reset
  • Vorliegend bezieht sich Seitenband (SB) auf ein nicht-primäres Fabric, das für Konfiguration, Registerzugriffe usw. verwendet wird. Vorliegend handelt es sich bei der Einschaltkonfiguration (POC, power on configuration) um Strap-Informationen von Plattformkomponenten, die verwendet werden, um die Plattforminformationen zur Verarbeitung während des Reset/Boot-Flusses an einen Prozessor (z.B. CPU) zu übermitteln. Vorliegend bezieht sich asynchrone Datenauffrischung (ADR, asynchronous data refresh) allgemein auf ein Merkmal auf einem Prozessor (z.B. CPU), das einen oder mehrere bestimmte Prozessorzustände im Speicher bei einem Stromausfallereignis bewahrt. Vorliegend verweist Energie-Perf-Bias (EPB) allgemein auf eine Einstellung eines Betriebssystems, das einen Hinweis bereitstellt, eine Leistungsverwaltungsrichtlinie in Richtung Performanz oder Energieeffizienz zu beeinflussen. Vorliegend bezieht sich Inverse Temp-Abhängigkeit (ITD: Inverse Temp Dependence) allgemein auf ein Phänomen, bei dem ein Absenken der Temperatur eine höhere Versorgungsspannung erfordert, damit der Prozessor mit der gleichen Frequenz arbeiten kann. Vorliegend ist der Package-C-Zustand (PkgC) ein Leerlaufleistungsfluss, der greift, wenn Prozessorkerne und Rechen-Engines in Leerlauf gehen, und ein gesamtes Package (das die Prozessorkerne und Rechen-Engines aufweist) wird in einen Niedrigleistungszustand versetzt. Vorliegend verweist Begleit-Die (CD, companion die) allgemein auf einen Die, der für Nichtkemfunktionen wie Beschleuniger (Kryptografie, Komprimierung, Netzwerk usw.) verwendet wird. CD kann ein Die in dem Package sein, der über ein oder mehrere Fabrics mit dem Haupt-Die (MD, main die) verbunden ist. MD ist typischerweise ein Rechen-Die und CD ist typischerweise eine Nichtkemfunktion. MD und CD sind typischerweise nicht symmetrisch. Ein Package kann eine Sammlung von Rechen- und E/A-Dies (die bezüglich ihrer PM-Fähigkeit symmetrisch sein können) und zusätzliche CDs (die eine begrenzte PM-Fähigkeit aufweisen - daher asymmetrisch zu MDs) umfassen.
  • Die Kommunikation zwischen den HPM-Domänen wird für mehrere Zwecke genutzt. Es gibt Befehle für Initialisierung, Nachweis, Reset, Budgetverwaltung, Ressourcenausgleich, Ressourcenverwaltung, Richtlinienverwaltung, Telemetrieaustausch. Nicht jede HPM-Domäne muss alle Fähigkeiten unterstützen, es gibt jedoch einen Mindestsatz von Fähigkeiten, die von allen Domänen unterstützt werden können. Begleit-Dies können in Abhängigkeit von ihren Bedürfnissen und den SoC-Zielen entscheiden, wie viele Ressourcen in HPM investiert werden sollen.
  • In verschiedenen Ausführungsformen ist die Synchronisationsschicht oder das Synchronisations-Fabric 311 zwischen den p-Einheiten als ein magerer (z.B. niedrige Bandbreite aufweisender) Mechanismus bereitgestellt, um eine enge Synchronisation mit niedriger Latenz zwischen den APs 313 zu erzeugen. Solche Konstrukte können für Leistungsverwaltungsflüsse verwendet werden, bei denen eine Synchronisation mit niedriger Latenz erforderlich ist, um Budgets zu bewegen oder Ressourcenabhängigkeiten aufzulösen. In einigen Ausführungsformen weist das Fabric 311 eine niedrige Latenz auf und arbeitet in Verbindung mit der Nachrichtenübermittlung der P2P-Schicht oder dem Fabric, die den Makrofluss angibt, für den die Synchronisationsschicht verwendet wird.
  • Eine Implementierung des Synchronisations-Fabrics 311 kann ein Satz von verketteten Signalen sein, die sich über jeden Die erstrecken. Auch wenn dies dem Transport ein wenig Propagationsverzögerung hinzufügt, beseitigt es die Lastprobleme für diese Signale und das Fabric kann auf eine große Anzahl von Dielets skaliert werden.
  • 4 veranschaulicht ein Nachrichtenprotokoll 400 zwischen Supervisor- und Supervisand-Leistungsverwaltungskomponenten gemäß einigen Ausführungsformen. 4 zeigt einen DVFS- (dynamic voltage and frequency scaling, dynamische Spannungs- und Frequenzskalierung) Fluss im Zeitverlauf, der über die Dielets hinweg über das erste Fabric 410 (z.B. 110, 210, 310) zwischen der Supervisor-p-Einheit 402 (z.B. 102, 202, 302) und dem Supervisanden 403 (z.B. 103, 203, 303) koordiniert wird. Andere beispielhafte Verwendungen beinhalten Reset-Synchronisation, Iccmax-Budgetausgleich, Arbeitslastausgleich, PkgC, Fehlersignalisierung und Sondenmodus. In einigen Ausführungsformen ist die Verfügbarkeit des Fabrics 410 auf on-pkg- (Package-interne) HPM-Domänen beschränkt.
  • Der Kommunikationskanal durch das Fabric 410 zwischen dem Supervisor 403 und dem Supervisanden 403 gibt den Fluss an, der synchronisiert wird. Das Fabric 410 enthält die Einzelheiten darüber, welcher Ablauf oder welcher Schritt synchronisiert wird. In einigen Ausführungsformen werden spezifische Handlungen, die von Supervisor-p-Einheiten vorgenommen werden, für jedes Ereignis spezifiziert. In einigen Ausführungsformen wird der Supervisor-an-Supervisand-Anfrage- (Anfr.-) Kanal verwendet, um den Startpunkt des Flusses zu synchronisieren (z.B. Dispatcher-Auslöser). In einigen Ausführungsformen wird das Fabric 410 verwendet, um Anfrage- (Anfr.-) und Quittierungs- (Quit.-) Nachrichten zu senden und zu empfangen. In einigen Ausführungsformen ist das Fabric 410 von der Supervisor-p-Einheit 402 aus mit allen Supervisand-p-Einheiten verbunden.
  • Das Fabric 410 beinhaltet zum Beispiel einen Kanal, der als Daisy-Chain (Verkettung) konfiguriert ist, um eine von allen mit diesem verbundenen Supervisand-p-Einheiten ausgehende Belastung zu reduzieren. Bei dem Nachrichtenprotokoll zwischen Supervisor 402 und Supervisand 403 handelt es sich um Anfragen und Quittierungs-Handshakes. In einigen Ausführungsformen beinhaltet das Fabric 410 einen Draht, der ein Supervisand-zu-Supervisor-Quit-Kanal ist. Dieser Kanal wird von der Supervisor-p-Einheit 402 verwendet, um festzustellen, wann jede Supervisand-p-Einheit das Ende einer aktuellen Phase erreicht hat. Dieser Kanal ist gemäß einigen Ausführungsformen ein verketteter Draht mit Pegelsignalisierung.
  • Während das Nachrichtenprotokoll 400 zeigt, dass die Supervisor-p-Einheit 402 die Kommunikation mit der Supervisand-p-Einheit 403 initiiert, um die Supervisand-p-Einheit 402 anzuweisen, sich darauf vorzubereiten, mit einer bestimmten Spannung und/oder Frequenz zu arbeiten, Anfragen an die Supervisand-p-Einheit 403 sendet und eine Bestätigung von der Supervisand-p-Einheit 403 empfängt, kann die Kommunikation modifiziert werden. Zum Beispiel kann die Supervisand-p-Einheit 403 die Erlaubnis der Supervsisor-p-Einheit 402 anfordern, mit einer bestimmten Spannung und/oder Frequenz (V/F) zu arbeiten, und die Supervisor-p-Einheit 402 gewährt oder verweigert diese Anfrage.
  • In einigen Ausführungsformen ist der Bedarf an Synchronisation in Flüssen über Die-Grenzen hinweg keine Anforderung. Eine Optimierung kann eine engere Kopplung und Kontrolle über Die-übergreifende Flüsse bereitstellen. Ob Synchronisation (z.B. Anfrage-Quittierungs-Handshake) eingesetzt wird oder nicht, ist eine SoC-Entscheidung basierend auf dessen Leistungs- und Performanz- (PnP-) Zielen. Es handelt sich hierbei um ein in der HPM-Toolbox verfügbares Tool, das, falls gewünscht, von einem SoC genutzt werden kann.
  • In einigen Ausführungsformen ist die Supervisor-p-Einheit 402 eine Top-Level- oder Grand-Supervisor-p-Einheit oder HPM-Supervisor-P-Einheit, die alle p-Einheiten unter ihrer Domäne oder ihrem AP aufweist. In einer solchen Ausführungsform weist die Supervisor-p-Einheit 402 eine algorithmische Schicht auf, die für das Durchsetzen von Einschränkungen auf Package-Ebene verantwortlich ist. Diese Einschränkungen sind typischerweise Pmax, Iccmax, TDP und Temperatur usw. Die Plattform spezifiziert, dass das Package nicht mehr als das TDP-Leistungsniveau verbrauchen soll. In einigen Ausführungsformen implementiert die Supervisor-p-Einheit 402 einen RAPL- (running average power limit, laufender Durchschnitt der Leistungsgrenze) Algorithmus, der auch die in allen APs und Nicht-AP-Funktionen verbrauchte Energie berücksichtigt. Die Supervisor-p-Einheit 402 ist zudem dafür verantwortlich, sicherzustellen, dass die Gesamt-Iccmax-Anforderung von allen Komponenten unter ihrer Überwachung die Spezifikation eines Spannungsreglers, der die Versorgung bereitstellt, nicht überschreitet. In einigen Ausführungsformen implementiert die Supervisor-p-Einheit 402 einen globalen EDP-(Electrical Design Point, elektrischer Auslegungspunkt) Budgetierungsalgorithmus, der jeder Komponente einen Teil des Stroms zuweist. Es gibt zahlreiche weitere Funktionen, die in der Supervisor-p-Einheit 402 für hierarchische PM ausgeführt werden.
  • In Tabelle 2 sind einige der Flüsse aufgeführt, die implementiert werden, um die Koordination zwischen der Supervisor-p-Einheit 402 und ihren Supervisand-p-Einheiten 403 zu erleichtern. Tabelle 2
    Merkmal Organisation Anmerkungen
    IccMax, Pmax, LIMCA (was LIMCA ist) Hierarchisch Global budgetiert; Lokal durchgesetzt; Anfrage/Genehmigung-Nachricht (einschließlich MIN_REG). Globaler Drosselungsdraht von gemeinsam genutztem einzelnen Pmax Protector IP.
    Turboverhältnisgrenzen Verteilt Lokal durchgesetzt. Abhängigkeiten: Herstellung in großer Zahl (HVM high volume manufacturing); HGS, OS, Bin-Split, Performanz
    Spannungsverwaltung (gemeinsam genutzte Schienen) Hierarchisch Für gemeinsam genutzte Externe; Anforderung/Genehmigung-Nachricht zur Koordination
    PkgC/PkgS Hierarchisch Bestehende Inter-Socket-Nachricht, eingekapselt in neuer kachelübergreifender Nachricht
    Netz-GV Hierarchisch Koordinierter globaler Fluss zur Anpassung an begrenzte Entkopplung über Netzdomänen
    PnP-Langsamkeitsgrenzen, Konfiguration (RAPL, Nichtkern-Frequenzskalierung (UFS, uncore frequency scaling), Performanz-P-Grenze, Energy Efficiency Turbo (EET), HWP, Intel Speed Select (ISS), HGS, PBF, Flex Radio, Config Thermal Design Power (TDP)) Hierarchisch pCode-Verbesserungen, die einen gemeinsamen Satz von Infrastrukturfähigkeiten nutzen; PERF_REQ-Nachrichten zur Die-übergreifenden Frequenzkoordination
    DRAM, RAPL, DRAM thermisch Hierarchisch Lokale Durchsetzung, globale Koordination
  • Vorliegend bezieht sich EET auf energieeffizienten Turbo, wobei die Leistungsverwaltungssteuerung statt in Turbo überzugehen, wenn das Betriebssystem (OS) dies anfordert, eine zweckmäßige Auswahl trifft, in den Turbomodus überzugehen, wenn es einen Leistungsvorteil gibt, der von der Frequenzerhöhung erwartet wird. Turbo verweist hier allgemein auf eine Betriebsfrequenz, die höher als eine Nennfrequenz ist, die für einen Prozessor ausgewiesen ist.
  • Verschiedene Bausteine von HPM werden mit Bezug auf Server beschrieben. Die Ausführungsformen sind jedoch nicht hierauf beschränkt und auf eine beliebige Rechenplattform anwendbar. In einigen Ausführungsformen weist jeder AP (Kern-Dielet) in dem Server-SoC eine eigene p-Einheit auf. Beliebige Begleit-Dies oder funktionsspezifische Dielets können eine leistungsfähige Leistungsverwaltungseinheit aufweisen oder nicht. In einigen Ausführungsformen sind die integrierten Dielets über das P2P-Fabric, das die Transportschicht bereitstellt, verbunden. Das P2P-Protokoll ist möglicherweise nicht an eine bestimmte Art von Transportschicht gebunden.
  • Die P2P-Befehle, die von den Kontroller-p-Einheiten gesendet werden, können auch von einer Software-Entität gesendet werden, z.B. einem Softwaretreiber, der für die Verwaltung der Funktion zuständig ist, die in ein Package integriert wird. Für solche Fälle wird ein für MMIO (memory mapped IO, speicherabgebildete E/A) -zugänglicher Pfad für die Gerätetreiber aktiviert, so dass diese die P2P-Befehle an die Supervisor-p-Einheit 403 liefern können. Ein SOC kann auswählen, welche P2P-Befehle und Fähigkeiten einem Treiber ausgesetzt sind. Sobald die Befehle empfangen werden, können sie normal verarbeitet werden, ohne notwendigerweise darauf zu achten, ob eine Software- (SW-) Entität oder ein Hardware- (HW-) Agent den Befehl sendet. pCode (Firmware, die auf der p-Einheit läuft) kann optional Filterung für bestimmte Befehle implementieren, die von einem SW-Treiber empfangen werden.
  • HPM verschiedener Ausführungsformen verbergen die Die-Hierarchie innerhalb des Packages vor der Plattform. Die Plattform-Interaktion erfolgt mit der HPM-Supervisor-p-Einheit 402. Die Supervisor-p-Einheit 402 ist dafür verantwortlich, der Plattform konsolidierte Telemetrie auf Package-Ebene bereitzustellen. Zudem kann die Plattform das gesamte Package von einer einzigen Steuerschnittstelle, die in der HPM-Supervisor-p-Einheit 402 gehostet wird, steuern. Dies macht die Plattform unabhängig von der Anzahl der Chips und der Aufteilung des Siliziums innerhalb des Packages und entkoppelt die Entscheidungen über die Siliziumaufteilung vom Plattformdesign.
  • Steuerungsentitäten auf Plattformebene wie DPTF (Dynamic Platform and Thermal Framework, dynamisches Plattform- und Temperatur-Framework) und Knotenverwalter können die Telemetrie und exponierte Steuerungen verwenden, um die algorithmischen Optimierungsrichtlinien der HPM-Supervisor-p-Einheit 402 zu leiten. In verschiedenen Ausführungsformen ist die Hierarchie innerhalb des Packages gegenüber der Plattform und Software exponiert. HPM exponiert eine physische Domäne, die einer Aggregationsfunktion auf Package-Ebene entspricht und die zum Melden physischer Parameter auf Package-Ebene, z.B. Package-Temperatur, Package-Energieverbrauch usw. nützlich ist. HPM exponiert zudem eine oder mehrere Softwaredomänen. Es ist denkbar, dass Plattformschnittstellen wie PECI (Platform Environment Control Interface) virtualisiert sind, so dass die SW-Domänenbereichsdienste an die jeweilige p-Einheit gerichtet werden, die die SW-Domäne repräsentiert. Dienste mit physischem Zielbereich sind an die Package-HPM-Supervisor-p-Einheit 402 gerichtet. Gleichermaßen ist der MSR- (model-specific register, modellspezifisches Register) Raum in physische und SW-Domänenbereiche partitioniert und wird an die geeignete p-Einheit gerichtet.
  • 5 veranschaulicht einen Speicher 500, der für die Supervisor- und Supervisand-p-Einheiten partitioniert ist, gemäß einigen Ausführungsformen. In einigen Ausführungsformen weist jede p-Einheit einen dedizierten Speicher 501 (z.B. statischer Direktzugriffsspeicher (SRAM)) auf, der die HPM-Nachrichten, die über das P2P-Fabric (z.B. Fabrics 110 und 111) kommen, aufnehmen kann. In einem Beispiel können die P2P-Fabric-Nachrichten bis zu 256 logische Opcodes 502 enthalten, wodurch angemessener Raum für Wachstum ermöglicht wird. In einigen Beispielen ist der SRAM mit einer Fähigkeit versehen, eine Nachricht jedes Typs von bis zu 16 Agenten entgegenzunehmen, wodurch eine Unterstützung für insgesamt 15 Dielets, CDs oder CXL-Einrichtungen ermöglicht wird.
  • In einigen Ausführungsformen ist eine p-Einheit ausgestattet, um den Nachrichtentyp zu decodieren, und legt die Nachrichten in dem SRAM ab und benachrichtigt die p-Einheit-Firmware (pCode), dass eine neue Nachricht eingetroffen ist. pCode kann dann die Nachrichten nach eigener Möglichkeit verarbeiten. Eine solche Implementierung kann helfen, die Notwendigkeit einer Flusssteuerung zu eliminieren und den Durchsatz des P2P-Fabric signifikant zu verbessern. Das Protokoll ermöglicht, dass Flusssteuernachrichten gesendet werden, um das P2P-Fabric zu verwalten, falls die Agenten nicht vollständig bereitgestellt sind und nur einen begrenzten Puffer zum Empfangen von P2P-Nachrichten aufweisen. In einigen Ausführungsformen sind die Supervisor-p-Einheit und die symmetrischen Dielets (d.h. APs mit einer p-Einheit) immer vollständig bereitgestellt und infolgedessen besteht für die Supervisor- und Supervisand-p-Einheiten (oder Agenten) möglicherweise keine Notwendigkeit, eine Flusssteuerung zu implementieren, wenn Nachrichten zwischen ihnen gesendet werden.
  • In einigen SoC-Definitionen können jedoch Dielets mit möglicherweise unterschiedlichen p-Einheitsversionen gezwungen sein, sich in einem einzigen Package zu befinden. In einem solchen Fall können diese p-Einheiten variierende Grade an Funktionalität aufweisen und eine Flusssteuerung kann sogar zwischen p-Einheiten notwendig werden. Die Flusssteuerungskonstrukte sind allgemein definiert und können für HPM-Kommunikation mit einem beliebigen AP verwendet werden. In einigen Ausführungsformen ist der Speicher 500 ein zusammenhängender Speicher, der für jeden AP einschließlich der Supervisor-p-Einheit und der Supervisand-p-Einheiten partitioniert ist. In einigen Ausführungsformen ist der Speicher 500 Teil eines Last-Level-Caches (LLC) in einem Die. In einigen Ausführungsformen ist der Speicher 500 ein Level-3- oder Level-2-Cache eines Die. In einigen Ausführungsformen kann ein SoC eine dedizierte Speichereinheit aufweisen, die partitioniert ist und für die p-Einheiten zur Verwendung verfügbar ist.
  • Um eine Nachrichtenübermittlung zwischen mehreren p-Einheiten zu ermöglichen, wird etwas Speicherplatz für eine p-Einheit-zu-p-Einheit- (P2P-) Kommunikation zugeteilt. Dieser Speicherplatz ist ferner unterteilt, um jeder p-Einheit einen dedizierten Raum zuzuteilen. Wenn eine p-Einheit eine Nachricht an eine andere p-Einheit sendet, wird die Nachricht des Senders in dessen dedizierter Region im Speicher gespeichert. Innerhalb der dedizierten Region (Agentenraum) einer p-Einheit werden die Adressen ferner unterteilt, um Raum für jeden unterstützten Nachrichtentyp zuzuteilen.
  • 6 veranschaulicht ein Kommunikationsprotokoll 600 für einen Speicher 500 aus 5 gemäß einigen Ausführungsformen. Aktualisierungen des Speicherraums 500 führen zu einer hierarchischen Aggregation von Ereignissignalen, um der p-Einheit anzuzeigen, dass die Inhalte aktualisiert wurden und dass potentielle Aktionen zu ergreifen sind. Die hierarchische Aggregation von Ereignissignalen umfasst zeilenweises Lesen auf einem schnellen Pfad (z.B. 1 Bit pro Zeile aus dem RAM 500), was zu einer 32-Bit-HPM-Zeilenmaske 601 führt. Diese 32-Bit-HPM-Zeilenmasken werden zu einem 1-Bit-HPM-Zeilenaggregator 602 aggregiert. Der 1-Bit-HPM-Zeilenaggregator 602 der 32-Bit-HPM-Zeilenmasken 601 wird zu einem 1-Bit-HPM-Ereignisindikator 603 aggregiert. Durch Rückverfolgen durch die Aggregation kann die p-Einheit identifizieren, welcher/welche spezifischen Sender und Nachricht(en) zu prüfen sind. Neben der nachrichtenbasierten Kommunikation gibt es auch drahtbasierte Signale für latenzempfindliche Ereignisse.
  • 7 veranschaulicht ein Flussdiagramm 700, das Kommunikation zwischen Supervisor- und Supervisand-Komponenten der HPM gemäß einigen Ausführungsformen zeigt. Zwar sind verschiedene Blöcke in einer bestimmten Reihenfolge gezeigt, jedoch kann die Reihenfolge modifiziert werden. Einige Blöcke führen zum Beispiel eine Operation parallel durch, während andere Blöcke Operationen vor anderen durchführen. Damit die Supervisor-p-Einheit 702 (z.B. 102) eine Nachricht an die Supervisand-p-Einheit 703 (z.B. 103) sendet, sendet die Supervisor-Firmware (FW) 701 den Befehl an die Supervisor-p-Einheit 702. Die Supervisor-p-Einheit 702 enthält eine Sender- (TX-) Mailbox 702a, eine Empfänger- (RX-) Mailbox 702 und einen Speicher 702c (z.B. einen Teil des Speichers 500). Die Supervisor-FW 701 sendet die Nachricht an die Supervisor-TX-Mailbox 702a, um die Nachricht über das private Fabric 704 (z.B. das erste Fabric 110 und/oder das zweite Fabric 111) an die Supervisor-p-Einheit 703 zu übertragen. Hierbei bezieht sich die Mailbox auf einen Treiber, der im Kernelraum ausgeführt werden kann. In einigen Ausführungsformen umfasst die Supervisand-p-Einheit 703 eine TX-Mailbox 703a, eine RX-Mailbox 303b und einen Speicher 703c (z.B. einen Teil des Speichers 500). Die Nachricht von der TX-Mailbox 702a wird durch die RX-Mailbox 703b empfangen. Beim Empfangen der Nachricht speichert die RX-Mailbox 703b die relevanten Teile der Nachricht im Speicher 703c (z.B. einem dedizierten Platz des Speichers 500). Auf den Inhalt des Speichers 703c kann die Supervisand-FW 705 zugreifen.
  • In Reaktion auf das Empfangen der Nachricht von der TX-Mailbox 702a bestätigt die Supervisand-FW 705 den Empfang der Nachricht durch Senden einer Quittierungsnachricht über die TX-Mailbox 703a an den Supervisor 702. Die Quittierungsnachricht wird über das Fabric 704 an die RX-Mailbox 702b übermittelt. In einigen Ausführungsformen wird jede Nachricht von der Supervisand-p-Einheit 703 an die Supervisor-p-Einheit 702 durch die RX-Mailbox 702c in diesem Abschnitt des Speichers 702c gespeichert. Die Supervisor-FW 701 greift dann auf den Speicher 702c zu, um weitere Vorgehensweisen zu bestimmen. In verschiedenen Ausführungsformen kann ein globaler Agent 706 (z.B. Plattform-Supervisor-Agent) über das öffentliche Fabric 707 auf die Supervisor-p-Einheit zugreifen. In einigen Ausführungsformen ist das öffentliche Fabric 707 dasselbe wie das zweite Fabric 211. In einigen Ausführungsformen ist das öffentliche Fabric 707 zusätzlich zum ersten Fabric 110 und zweiten Fabric 111 vorhanden. In einigen Ausführungsformen ist die Supervisor-p-Einheit 702 für Softwaretreiber 708 über ein primäres Fabric 709 und die Anwendungsprogrammierschnittstelle (API) 710 zugänglich.
  • 8 veranschaulicht eine mehrstufige HPM-Hierarchie 800 gemäß einigen Ausführungsformen. Um die Steuerung gemeinsam genutzter Ressourcen zu unterstützen und dem Benutzer eine monolithische Ansicht zu präsentieren, kann gemäß einigen Ausführungsformen jede p-Einheit mit unterschiedlicher Personalität konfiguriert und in einer Hierarchie angeordnet sein. Jede Ebene der Hierarchie ist eine Supervisor-p-Einheit ihrer lokalen Domäne oder ihres lokalen AP und trifft autonome Entscheidungen innerhalb dieser Domäne und ist eine Supervisand-p-Einheit für die in der Hierarchie darüber liegende p-Einheit. In diesem Beispiel umfasst die mehrstufige Hierarchie 800 die Plattform-Supervisor-p-Einheit 802_00 (z.B. 102) und die Package-Supervisor-/Supervisand-p-Einheiten 805_00, 805_11, ... 805_1n, (wobei ‚n‘ eine Zahl ist) unter dem Plattform-Supervisor 802_00. Die Supervisor/Supervisand-p-Einheiten werden hier allgemein als Supervisor/Supervisand-p-Einheiten 805 (z.B. 105) bezeichnet. Die Hierarchie 800 umfasst ferner CPU-Supervisor/Supervisand-p-Einheiten unter jeder Package-Supervisor/Supervisand-p-Einheit 805. Zum Beispiel verwaltet die Package-Supervisor-/Supervisand-p-Einheit 805_10 die CPU-Supervisor-/Supervisand-p-Einheiten 805 20a und 805 20b. Jede CPU-Supervisor-/Supervisand-p-Einheit verwaltet ihre Domänen-Supervisand-p-Einheit. Zum Beispiel verwaltet CPU-Supervisor-/Supervisand-p-Einheit 805 20a den Supervisand 803_30aa und 803_30ab, während die Supervisor-/Supervisand-p-Einheit 805 20b die Supervisanden 803_30ba und 803_30bb verwaltet.
  • In verschiedenen Ausführungsformen werden Flüsse oder Aktionen, die gemeinsam genutzte Ressourcen erfordern oder die Auswirkung über eine lokale Domäne hinaus haben, in der Hierarchie aufwärts an den konfigurierten Supervisor gesendet. Beispielsweise werden Aktionen von der Domänen-Supervisand-p-Einheit 803_30aa an die CPU-Supervisor/Supervisand-p-Einheit 805 20a, vom CPU-Supervisor 805 20a an die Package-Supervisor-/Supervisand-p-Einheit 805_10 und von der Package-Supervisor-/Supervisand-p-Einheit 805_10 an die Plattform-Supervisor-p-Einheit 805_00 gesendet. In einigen Ausführungsformen aggregiert und ergreift eine Überwachungs-p-Einheit die notwendigen Aktionen aus den Flüssen oder Aktionen, die von anderen Supervisor-/Supervisand-p-Einheiten unter ihr empfangen werden. Aktionen einer Supervisor-p-Einheit können Anweisen die Hierarchie hinab beinhalten, so dass jeder Supervisor niedrigerer Ebenen notwendige Aktionen zum weiteren Aufwärtspropagieren ergreift. In verschiedenen Ausführungsformen kann eine p-Einheit mit mehreren Personalitäten konfiguriert sein. Beispielsweise kann eine p-Einheit mehrere Ebenen der Hierarchie überspannen.
  • In einigen Ausführungsformen erstreckt sich die HPM sockelübergreifend und nicht nur einem monolithischen Package mit einem oder mehreren Dies. In verschiedenen Ausführungsformen ermöglicht HPM mehrere HPM-Domänen, die basierend auf der Implementierungsauswahl beliebig in physische Grenzen passen oder sich über diese erstrecken können. In einigen Ausführungsformen kann eine beliebige Supervisor-p-Einheit in einer Hierarchie eine beliebige Supervisor-/Supervisand-p-Einheit direkt unter sich anweisen, ohne durch Zwischen-Supervisor-/Supervisand-p-Einheiten in dieser Hierarchie zu gehen. Die Plattform-Supervisor-p-Einheit 802_00 kann zum Beispiel die Leistungsverwaltung der Domänen-Supervisand-p-Einheit 803_30aa direkt anweisen. Während das vorliegende Beispiel zwei CPU-Supervisor-/Supervisand-p-Einheiten unter einer Package-Supervisor-/Supervisand-p-Einheit zeigt, kann eine beliebige Anzahl von CPU-Supervisor-/Supervisand-p-Einheiten unter einer Package-Supervisor-/Supervisand-p-Einheit stehen. Gleiches gilt für jede andere Supervisor/Supervisand-p-Einheit.
  • 9A-B veranschaulichen Vorrichtungen 900 bzw. 930 mit mehreren Supervisor-Leistungsverwaltungskomponenten, die eine Vielzahl von Domänen verwalten, wobei manche Supervisor-Komponenten Supervisand-Komponenten einer anderen Supervisor-Komponente sind, gemäß einigen Ausführungsformen. In diesem Fall befinden sich die Leistungsverwaltungskomponenten in Dies, die in einer Kettenformation über einen Satz von Fabrics 907 (z.B. Fabric 110, 111 und Interconnect 112) verbunden sind. Zum Beispiel ist Diel 901_1 mit Die2 901_ 2 verbunden, Die2 901_ 2 ist mit Die3 901_ 3 verbunden und Die3 901_ 3 ist mit Die4 901_ 4 verbunden. Ein Die kann zu mehr als einer HPM-Domäne gehören, wo er als ein Supervisor für nachgelagerte Dies dient, und präsentiert der HPM-Supervisor-p-Einheit eine vereinheitlichte Ansicht in einer Domäne, in der er eine Supervisor-p-Einheit ist.
  • In der Vorrichtung 900 weist die Supervisor-p-Einheit 902 (z.B. 102) von Diel 901_1 eine Supervisor-Domäne (wie durch Domäne 0 921 angegeben) gegenüber anderen p-Einheiten auf, einschließlich Supervisor/Supervisand-p-Einheit 905 von Die2 901_ 2, Supervisand-p-Einheit 903 von Die3 901_ 3 und Supervisand-p-Einheit 903 von Die4 901_ 4. Hierbei entsprechen die Supervisor-p-Einheit 902 (z.B. 102) von Die1 901_1 und die Supervisor-/Supervisand-p-Einheit 905 von Die2 901 2 der Domäne 1 922. Die Supervisor-/Supervisand-p-Einheit 905 von Die2 901_2 hat eine Doppelfunktion. Zum Beispiel agiert die Supervisor-/Supervisand-p-Einheit 905 als Supervisor für die Domäne 2 923, die die Supervisand-p-Einheit 903 von Die3 901_ 3 und die Supervisand-p-Einheit 903 von Die4 901_ 4 beinhaltet, und agiert als Supervisand für die Supervisor-p-Einheit 902 von Die1 901_1.
  • Die Vorrichtung 930 weist gemäß einigen Ausführungsformen mehrere Supervisor-Leistungsverwaltungskomponenten auf, die eine Vielzahl von Domänen verwalten, wobei einige Supervisor-Komponenten Supervisand-Komponenten einer anderen Supervisor-Komponente sind. In diesem Beispiel agiert die Supervisor-/Supervisand-p-Einheit 905 von Die2 901_2 als Supervisor-p-Einheit für die Supervisor-/Supervisand-p-Einheit 905 von Die3 901_3, die Teil der Domain 1 933 ist. Unter Fortführung dieses Beispiels verhält sich die Supervisor-/Supervisand-p-Einheit 905 von Die3 901 3 auch wie ein Supervisor und somit fungiert die Supervisor-/Supervisand-p-Einheit 905 von Die3 als eine Supervisor-p-Einheit für die Supervisand-p-Einheit 903 von Die4 901 4, die Teil der Domäne 3 934 ist.
  • Der folgende Abschnitt behandelt die Verwaltung von Begrenzungen maximaler Leistung (PMAX) und maximalem Strom (IccMax) in einer HPM-Architektur.
  • SoCs weisen Spezifikationen für PMAX- und IccMax-Einschränkungen auf. Diese Einschränkungen basieren auf realen Anwendungen oder Benchmarks (wie etwa die Anwendungen IccMax.App oder PMAX.App) und Anwendungen für bösartige Leistungsvirenprogramme (z.B. IccMax oder PMAX). Hierbei ist PMAX die maximale Leistung, die von der Plattformleistungsversorgung durch das CPU-Package gezogen wird. Diese ist definiert als das Produkt aus MBVR- (motherboard voltage regulator, Motherboard-Spannungsregler) Spannung, die durch das Prozessor-Package verwendet wird, multipliziert mit dem IccMax des Package. Dabei ist IccMax des Package definiert als:
  • Die virusdynamische Kapazität Cdyn * Max_all_Kern_Freq für das pkg * Betriebsspannung des Kerns bei dieser Frequenz.
  • Einzelne Komponenten von IccMax werden für alle Komponenten auf dem Die berechnet und addiert, um eine IccMax-Schätzung auf Die-Ebene zu erhalten.
  • Eine auf der Stromversorgungseinheit (PSU, power supply unit) basierende PROCHOT# -Bestätigung wird typischerweise so eingestellt, dass sie die Leistung eines Prozessors oder SoC auf den (programmierbaren) Ziel-P-Zustand herunternimmt, der historisch auf den minimalen Unterstützungs-P-Zustand eingestellt wird (Pn/Pm konfigurierbar). Bei diesem Leistungszustand verschlechtert das System die Leistungsfähigkeit stark, um die Stromlast zu reduzieren und die Haltezeit zu verlängern. Eine PMAX-Detektorbestätigung kappt die Prozessorleistung auf Pdrossel/Psicher herunter, was im Vergleich zu Pn/Pm ein höheres Leistungsniveau ist. Hierbei bezieht sich eine Pdrossel-oder Psicher-Performanzstufe auf ein Spannungs- und/oder Frequenzbetriebsniveau, das die thermischen und Zuverlässigkeitseinschränkungen eines Prozessors erfüllt. Relativ wenig Leistung wird oben abgetragen oder abgeschnitten, um die Spitzenleistung zu steuern.
  • Maximale Drosselung durch PROCHOT#-Bestätigung kann für alle Anwendungsfälle verwendet werden, jedoch erzeugt dies eine übermäßige Leistungsverschlechterung für manche Anwendungsmodelle. Zum Beispiel überwacht die PSU-Detektions-Hardware eine intrinsisch gefilterte Version des PMAX-Ereignisses. Falls die PSU herunterdimensioniert wird, um die PMAX.App-Belastung anstelle des PMAX-Zustands zu unterstützen, gehen erhebliche Kosten und Flächeneinsparungen an den zusätzlichen Energiespeicherkondensatoren verloren, damit die PSU den Leistungsstoß für die Dauer der Verzögerung beim Erfassen des Ereignisses aufrechterhält. Ein weiterer Nachteil dieses Schemas besteht darin, dass es nur auf die Gesamtleistung (einschließlich aller CPUs und des restlichen Systems) reagieren kann, die von der PSU unterstützt wird. Falls eine CPU ein PMAX Ereignis verarbeitet, während die andere CPU eine reale Arbeitslast verarbeitet, wird eine undifferenzierte Leistungsdrosselung die CPU sanktionieren, die eine nützliche Arbeitslast verarbeitet. Alternativ wird eine Abwesenheit einer Leistungsdrosselungsreaktion nicht die CPU mit PMAX-Arbeitslast einschränken und ermöglichen, dass wertvolle Leistung verschwendet wird. Zusätzlich zu einer suboptimalen Handhabung der erwähnten Szenarien erfordert die Lösung dedizierte Hardware und Signalisierungsaufwand auf der Plattform, was zu mehr Kosten und Komplexität führt.
  • SoCs verwenden herkömmlicherweise Einzelschwellen- oder Mehrschwellen-PMAX-Detektorlogik, um eine Drosselung auszulösen, wenn die Stromaufnahme IccMax.App übersteigt. PMAX-Detektorlogik erfasst den Abfall der Spannung der Eingangsversorgungsspannung (VccIN) und drosselt den Kern, wenn der Abfall auf die einzelne programmierte Vtrip-Schwelle trifft (entsprechend IccMax.App oder PMAX.App). Eine bestehende PMAX-Detektorlogik arbeitet für monolithische SoCs, die eine einzige Leistungsverwaltungseinheit (p-Einheit) aufweisen.
  • Bestehende PMAX-Detektorlogik ist nicht in der Lage, Leistung für hierarchische SoCs, die mehrere p-Einheiten aufweisen, zu verwalten, da dies zu Suboptimalität hinsichtlich Fragmentierung und Performanzverlust führt. Manche Leistungsverwaltungswerkzeuge, wie SIRP (SoC IccMax Reactive Protector), schützen das SoC vor Leistungsausschlägen, die durch IccMax.App verursacht werden, indem Strom von allen integrierten Spannungsreglern (IVRs) und/oder IP-Blöcken in dem SoC aggregiert wird, und induzieren Drosselung, wenn der aggregierte Strom IccMax.App überschreitet. Sowohl PMAX-Detektorlogik als auch SIRP schützen zweierlei: 1) IVR-Eingangs-Vmin-Verletzung aufgrund eines dritten Abfalls; und 2) Plattform-Leistungsverwaltungseinheit (PSU) durch Induzieren von SoC-Drosselung oberhalb von IccMax.App. Es wird angemerkt, dass IVRs chipinterne Schaltregler, wie etwa Abwärtswandler- und Schaltkappenregler, und Nicht-Schaltregler, wie etwa LDOs, beinhalten können.
  • Das Detektieren von PMAX unter Verwendung von PMAX.App- oder IccMax.App-Erfassung erfolgt auf Package-Ebene, d.h. das Aggregat aller Dies. Das Erfassen auf Package-Ebene (im Gegensatz zum Erfassen auf Die-Ebene) kann jedoch zusätzliche Latenz verursachen, die Kerne über alle Dies hinweg drosselt, und kann zu einer Verletzung der Dritter-Abfall-Zeitkonstante führen. Wenn jedoch das Erfassen auf Die-Ebene und nicht auf Package-Ebene durchgeführt wird, dann kann dies Fragmentierungsverluste verursachen, die zu einer suboptimalen Performanz führen.
  • Der PMAX-Detektor oder der SIRP verschiedener Ausführungsformen detektieren und drosseln Kerne innerhalb der Dritter-Abfall-Zeitkonstante, die in Abhängigkeit von der Ausregelzeit der adaptiven Spannungspositionierungs- (AVP-) Steuerung oder Droop-Steuerung von einigen hundert Nanosekunden bis zu einer Mikrosekunde reichen kann. Gemäß einigen Ausführungsformen detektieren in einer HPM mit mehreren Rechen- und E/A-Dies solche Mechanismen (z.B. PMAX-Detektor oder SIRP) PMAX.App- oder IccMax.App-Verletzungen und können alle Kerne in dem SoC innerhalb der Dritter-Abfall-Zeitkonstante drosseln.
  • Einige Ausführungsformen beschreiben eine Vorrichtung und ein Verfahren zum Detektieren von IccMax.App- oder PMAX.App-Ausschlägen auf einer Package-Ebene und Drosseln der Rechen-IPs in SoCs, die HPM implementieren. Bei verschiedenen Ausführungsformen ist der Kommunikationspfad zum Drosseln der Kerne so optimiert, dass der Detektor-zu-Drossel-Pfad innerhalb der Dritter-Abfall-Zeitkonstante abgeschlossen ist. Die Vorrichtung und das Verfahren gemäß verschiedenen Ausführungsformen gewährleisten, dass trotz der hierarchischen Natur des SoC ein minimaler Fragmentierungsverlust an IccMax.App oder PMAX.App vorliegt. Einige Ausführungsformen stellen zudem die Kommunikation und Schnittstelle zwischen Supervisor-Dies und Supervisand-Dies (oder p-Einheiten) bereit, um die SoC-Frequenz so anzupassen, dass IccMax.App- oder PMAX.App-Verletzungen selten oder gar nicht auftreten.
  • Es gibt viele technische Auswirkungen der verschiedenen Ausführungsformen. Beispielsweise gibt es unter Verwendung des PMAX-Detektors verschiedener Ausführungsformen wenig bis keinen Fragmentierungsverlust. Zudem führen die Ausführungsformen unter elektrischen Einschränkungen zu einer besser kontrollierten Performanz. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • 10 veranschaulicht eine HPM-Architektur 1000 höherer Ebene mit PMAX-Detektor und E/A-Verbindungen gemäß einigen Ausführungsformen. In diesem Beispiel beinhaltet der E/A-Die-0 1004 eine Supervisor-p-Einheit 1002 (z.B. 102), während die Rechen-Dies 1001_1, 1001 2 und 1001_3 Supervisand-p-Einheiten 1003 (z.B. 103) aufweisen. Der E/A-Die 1004 weist Allzweck-E/A (GPIO) 1025, einen Decodierer 1026 und eine p-Einheit 1002 auf.
  • Auch wenn verschiedene Ausführungsformen vorliegend den E/A-Die-0 1004 als den Supervisor-Die mit der Supervisor-p-Einheit 1002 auswählen, weist die HPM-Infrastruktur die Flexibilität auf, einen beliebigen Die im Package zum Supervisor zu machen. Ein Grund für das Auswählen der p-Einheit 1002 des E/A-Die-0 1004 als Supervisor-p-Einheit liegt darin, dass es bestimmte Komponenten auf einem E/A-Die gibt, die mit der Plattform verbunden sind, so dass sich dieser Ort anbietet, um die Plattformkonnektivität zu konsolidieren. Zu diesen verschiedenen Komponenten gehört die SVID- (Serial Voltage Identification-) Schnittstelle, mit der der Energieverbrauch des Packages überwacht werden kann. Somit ist der EA-Die 1004 ein guter Kandidat dafür, der Supervisor-Die (z.B. mit Supervisor-p-Einheit) zu sein, da die verwendeten Schnittstellen und Informationen, die die p-Einheit 1002 sammeln muss, in dem EA-Die verfügbar sind.
  • Wie vorliegend gezeigt, befinden sich die PMAX-Detektionsschaltungen 1021 innerhalb der Prozessor-Dies und identifizieren einen Zustand, bei dem die Prozessor- oder SoC-Leistung die PMAX.App-Grenze überschreitet. Die PMAX-Detektionsschaltungen 1021 detektieren diesen Zustand durch Erfassen einer (z.B. IVR-Eingangsdomänen-) VccIN-Spannung innerhalb einer Zeitkonstante von wenigen hundert Nanosekunden bis Mikrosekunden in Abhängigkeit von der Plattform-AVP-Ausregelzeit. Die PMAX-Schaltung 1021 stellt eine schnellere Detektion und Reaktion auf ein Pmax-Lastereignis gegenüber Legacy-Lösungen bereit, die außerhalb des Prozessors oder des SoC implementiert werden.
  • Die Interaktion zwischen Motherboard-VR (voltage regulator, Spannungsregler) und CPU bzw. SoC ist an das Konzept von AVP und Lastleitung gebunden. Für den von der CPU gezogenen Strom ist die VccIN-Spannung durch die maximale (max) und minimale (min) VccIN-Grenze begrenzt. Diese Grenzen gelten innerhalb einer gewissen Bandbreite von Stromänderungen im Prozessor. Innerhalb der Bandbreite kann die Echtzeit-VccIN-Spannung effektiv durch den Lastleitungswiderstandswert auf IccIN abgebildet werden. Die Genauigkeit dieser Abbildung ist durch Toleranz(en) begrenzt. Die PMAX-Detektionsschaltung 1001 erfasst VccIN und zeigt an, ob IccIN einen (mit Schutzband versehenen) PMAX.App-Schwellenwert überschritten hat.
  • In diesem Beispiel weist jeder Rechen-Die einen PMAX-Detektor 1021, eine Supervisor-p-Einheit 1003, einen Codierer 1022, einen Decodierer 1023 und Logik 1024 auf. In verschiedenen Ausführungsformen handelt es sich bei den IccMax-Grenzen um Grenzen auf Sockelebene, um Plattformelektrik einschließlich MBVR- (motherboard voltage regulator, Motherboard-Spannungsregler) Stromgrenzen zu schützen. Die Grenzen können durch Sicherungen definiert oder durch einen Benutzer definiert sein (z.B. über eine Software- oder Hardwareschnittstelle). In verschiedenen Ausführungsformen wird erwartet, dass die Grenzen über Zeitrahmen von zum Beispiel ungefähr 500 ns durchgesetzt werden. Kürzere Spitzen werden herausgefiltert und können unter bestimmten Bedingungen als akzeptabel angesehen werden. In einigen Ausführungsformen ist die IccMax-Grenze durch Benutzer unter Verwendung eines modellspezifischen Registers (MSR) programmierbar (z.B. unter Verwendung eines VR_STROM_KONFIG.STROM_LIMIT-Registerfeldes).
  • In verschiedenen Ausführungsformen wird der PMAX-Detektor 1021 für einen Rechen-Die basierend auf seinem Standort relativ zu anderen Rechen-Dies aktiviert. Ein Rechen-Die, der sich zwischen anderen Rechen-Dies befindet oder von anderen Rechen-Dies umgeben ist, wird gemäß einigen Ausführungsformen als PMAX-Inhaber markiert und sein PMAX-Detektor aktiviert. In diesem Beispiel ist der Rechen-Die-2 1001_2, der sich zwischen Rechen-Die-1 1001_1 und Rechen-Die-3 1001_3 befindet, der PMAX-Inhaber. In einem anderen Beispiel wird ein nach Ort oder Position des Rechen-Dies relativ zu anderen Rechen-Dies zentraler Rechen-Die als der PMAX-Inhaber ausgewählt, um Drossellatenzen über die restlichen Dies hinweg symmetrisch zu halten. Es kann jedoch ein beliebiger Rechen-Die ein PMAX-Inhaber-Rechen-Die sein. In einigen Ausführungsformen weisen Signale, die von dem PMAX-Inhaber-Rechen-Die stammen, eine Baumtopologie zum Behandeln von Latenzproblemen auf. In einigen Ausführungsformen wählt eine Sicherungseinstellung in der p-Einheit einen PMAX-Inhaber-Rechen-Die aus.
  • In verschiedenen Ausführungsformen detektiert der PMAX-Detektor 1021 des Rechen-Die-2 1012 IccMax.App- oder PMAX.App-Ausschläge auf Package-Ebene und drosselt die Rechen-IPs in SoCs, die HPM implementieren. In einigen Ausführungsformen ist der Kommunikationspfad zum Drosseln der Kerne so optimiert, dass der Detektor-zu-Drossel-Pfad innerhalb der Dritter-Abfall-Zeitkonstante abgeschlossen ist.
  • Spannungsabfälle sind Spannungslieferausfälle im Wesentlichen aufgrund einer sehr hohen Stromaufnahme von den Schaltungen auf einem Die. Das Abfallereignis ist eine Verringerung der Spannung auf der Spannungsschiene unter einen Nennspannungs-Arbeitspunkt. Ein Spannungspegel unterhalb des Nennspannungs-Arbeitspunktes kann zu einem Ausfall führen, da die Versorgungsspannung nicht mehr ausreicht, um die Betriebsfrequenz verschiedener Schaltungen zu unterstützen. Abfälle sind eine Funktion der Stromaufnahme und der Widerstands-, Induktivitäts- und Kapazitätseigenschaften (RLC, resistance, inductance and capacitance) des Die, des Package und des Motherboards. Wenn ein großes di/dt- (Stromänderungs-) Ereignis auftritt, gibt es drei unterschiedliche Spannungsabfallereignisse, die beobachtet werden können. Diese Abfälle breiten sich im Zeitverlauf aus und werden somit als erster, zweiter und dritter Abfall bezeichnet. Der erste Abfall tritt sehr schnell auf und erstreckt sich bis zu wenigen 10 Betriebsfrequenzzyklen und entspricht den Die-RLC-Parametern. Der zweite Abfall beträgt typischerweise wenige 10 Nanosekunden und ist eine Funktion der Package-RLC. Der dritte Abfall tritt einige 100 Nanosekunden auf und ist eine Funktion der Motherboard-RLC. Typischerweise machen Package- und Die-Einschränkungen und beschränkte Verfügbarkeit von Interconnect-Schichten auf der Platine das Leistungsliefernetzwerk anfällig für Abfallereignisse. Somit werden die Betriebsspannungen mit Schutzbändern versehen, um die Abfälle zu berücksichtigen, wenn ein hohes di/dt-Ereignis auftritt.
  • Der PMAX-Detektor 1021 des Rechen-Die-2 1001_2 verschiedener Ausführungsformen stellt sicher, dass es trotz der hierarchischen Natur des SoC keinen Fragmentierungsverlust an IccMax.App oder PMAX.App gibt. Einige Ausführungsformen stellen zudem die Kommunikation und Schnittstelle zwischen Supervisor-Dies und Supervisand-Dies (oder p-Einheiten) bereit, um die SoC-Frequenz so anzupassen, dass IccMax.App- oder Fmax.App-Verletzungen selten oder gar nicht auftreten.
  • Einzelschwellen-PMAX-Detektoren induzieren eine massive Drosselung, die mit einer sehr starken Performanzeinbuße einhergehen kann. Eine Mehrschwellen-PMAX-Detektion fügt mehrere Abfallschwellenwerte hinzu. In einigen Ausführungsformen ist der PMAX-Detektor 1021 ein Mehrschwellendetektor. In einem Beispiel unterstützt der PMAX-Detektor 1021 drei Auslöseschwellen von 1 MHz tiefpassgefilterter Eingangsleistungsversorgung VccIn. Die Auslöseschwellen können gemäß einigen Ausführungsformen unabhängig durch Sicherungen programmiert werden. Die Auslösepegel können während einer Massenfertigung (HVM, high volume manufacturing) verwendet und auf die Plattform-PMAX.App- und SoC-IccMax.App- und IccMax.Max-Spezifikationen ausgerichtet werden. In verschiedenen Ausführungsformen werden sanfte Drosselaktionen für Ereignisse unterhalb von IccMax.App mit dem Ziel durchgeführt, die Anzahl von Ereignissen zu reduzieren, bei denen der Prozessor harte elektrische Drosselung aktiviert. Gemäß einigen Ausführungsformen greift sanfte Drosselung oder progressive Drosselung, bevor sich VccIn dem Niveau einer harten Drosselung nähert.
  • In einigen Ausführungsformen beinhaltet der PMAX-Detektor 1021 einen Schnellabfalldetektor (FDD, fast droop detector). Der Schnellabfalldetektor detektiert und löst bei großen ersten und/oder zweiten Abfallereignissen von VccIn eine Leistungsreduktionsreaktion aus. Der Schnellabfalldetektor ist dazu ausgelegt, IVR-Vmin-Spezifikationen während Ereignissen wie etwa einem Power Delivery Resonant Virus (PDRV, Leistungsversorgungsresonanzvirus) zu schützen. Hierbei bezieht sich Vmin auf die minimale Betriebsspannung, unterhalb derer der Prozessor nicht ordnungsgemäß arbeitet. Das Ereignis (z.B. PDVR) wird innerhalb von Nanosekunden erfasst und Phasenregelschleifen (PLLs) und/oder Frequenzregelschleifen (FLLs) zugeführt. Die PLLs/FLLs dehnen und verteilen die Takte zur Leistungsreduktion innerhalb einer Zeitlinie (z.B. 1 ns). Der FDD-Auslösepunkt wird in der HVM in Abstimmung mit IVR-Vmin-Spezifikationen durch Sicherungen gesichert.
  • Da das FDD-Merkmal verwendet wird, um erste Abfälle zu handhaben, wird erwartet, dass die vollständige Schleife von Detektion zu Drosselung innerhalb der Erster-Abfall-Zeitkonstante abgeschlossen ist. Um diese straffe Reaktionszeitanforderung mit minimalen Auslöserpropagationslatenzen zu erfüllen, ist in einigen Ausführungsformen der PMAX-Detektor 1021 mit dem FDD näher an den Kernen auf dem Rechen-Die positioniert. Der FDD ermöglicht dem SoC, eine P0nmax-Frequenz zur Performanzverbesserung durch Detektieren von Schnellabfällen zu implementieren, um auf höhere PXn-Frequenzen zu gehen, die zuvor aufgrund von Rauschen auf VccIn nicht erreichbar waren. Hierbei ist PXn ein Performanzzustand, wobei X ein Performanzzustandsfall ist und ‚n‘ sich auf alle Kerne bezieht. In diesem Beispiel bezieht sich P0 auf eine Turbofrequenz, die höher ist als die Basisfrequenz im P1-Zustand, P01 ist ein Turbofrequenzzustand mit nur einem Kern, der in diesem Zustand aktiviert ist, und P0max bezieht sich auf einen Allkern-Turbofrequenzzustand mit einer Arbeitslast, die eine niedrigere dynamische Kapazität als die Nennarbeitslast aufweist, die zum Einstellen des P1-Performanzzustands verwendet wird. Der FDD schützt vor Vmin-Verletzungen auf der IVR-Eingangsdomäne VccIn durch schnelles Detektieren von Abfällen und Auslösen einer schnellen Drosselung, um aus dem Abfallereignis herauszukommen.
  • In einigen Ausführungsformen wird der Abfall unabhängig von jedem Rechen-Die erfasst und bearbeitet. Somit ist der FDD in jedem Rechen-Die aktiv, während der Mehrschwellen-PMAX-Detektor 1021 für den PMAX-Inhaber aktiv ist. Andere Mehrschwellen-PMAX-Detektoren 1021 (von Nicht-PMAX-Inhabern) sind inaktiv (z.B. durch Sicherung). In verschiedenen Ausführungsformen wird erwartet, dass sich die HPM-Supervisor-p-Einheit (z.B. die p-Einheit 1002 des E/A-Die) von p-Einheiten des PMAX-Inhabers (eines der Rechen-Dies) unterscheidet. In einigen Ausführungsformen gibt es eine p-Einheitssicherung, um eine bestimmte p-Einheit als PMAX-Inhaber-p-Einheit zu markieren. Die PMAX-Drosseldrähte gehen von dem PMAX-Inhaber-Rechen-Die 1001_2 aus und senden an alle Rechen-Dies und E/A-Dies. In einigen Ausführungsformen kann, wenn einige Rechen-Dies deaktiviert sind (z.B. aufgrund eines Fehlers), der PMAX-Inhaber einem Die zugewiesen werden, der sich von dem Die unterscheidet, der von anderen deaktivierten Rechen-Dies umgeben ist.
  • In verschiedenen Ausführungsformen erhält die p-Einheit 1003 jedes Rechen-Die die BIOS-gesteuerte PMAX-E/A-Konfiguration. Diese Konfiguration wird in einen dedizierten physischen Raum geschrieben. In einigen Ausführungsformen weist jede Computer-Die-p-Einheit zwei Ports (RX DATA, TX ENB) an einem Ende und einen anderen Port (RX DATA) an dem gegenüberliegenden Ende auf. In einigen Ausführungsformen ist eine Schnittstelle bereitgestellt, um Benutzern (z.B. Kunden des SoC) zu ermöglichen, PMAX Ereignisse extern von der Plattform in Abhängigkeit von Erfassungsschaltungen in der Plattform zu injizieren. Dieses externe PMAX-Ereignis kann gemäß einigen Ausführungsformen durch einen GPIO-Pin, der als PMAX_AUSLÖSER_E/A bezeichnet wird, in das SoC injiziert werden. GPIO ist ein bidirektionaler Pin, wobei der Standardmodus ein Eingabemodus ist.
  • In einigen Ausführungsformen ist der PMAX_AUSLÖSER_E/A-Pin mit dem RX_DATA-Port der PMAX-Inhaber-p-Einheit 1003 verbunden. Wenn die Plattform PMAX_AUSLÖSER_E/A aktiviert, sendet die PMAX-Inhaber-p-Einheit 1003 Harte Drosselung an alle Dies. In einigen Ausführungsformen wird der Harte_Drosselung-Befehl über den Schnellreaktions-Interconnect 112 ausgegeben. In einigen Ausführungsformen kann der PMAX_AUSLÖSER_E/A auch dazu konfiguriert sein, einen Modus durch Schreiben über BIOS in ein spezifisches Bit in dem PMAX-Inhaber-p-Einheit-Die 1003 (z.B. Rechen-Die 1001_2) auszugeben. Dieses Bit schaltet den PMAX_TX_ENB-Port auf der p-Einheit um. Dieser Port steuert einen Draht zum TXENB-Port des GPIO an. Wenn sie im TX-Modus konfiguriert ist, kann die Plattform interne PMAX-Ereignisse über TX_DATA beobachten. Bei der HPM-Implementierung einiger Ausführungsformen ist TX_DATA mit dem Schnellreaktions-Interconnect 112 verbunden, um den Harte_Drosselung-Befehl zu transportieren. Auch wenn die Kommunikation zwischen dem Codierer 1022, dem Decodierer 1023 und anderen Drähten (z.B. Harte_Drosselung) als konkrete Kommunikation gezeigt ist, kann diese Kommunikation über eines der Fabrics 110 oder 111 erfolgen.
  • 11 veranschaulicht eine ausführlichere Ansicht 1100 von 10 gemäß einigen Ausführungsformen. Dieses Beispiel für ein SoC zeigt fünf Dies, die zwei E/A-Dies 1104_1 und 1104 2 ohne Kerne und drei Rechen-Dies 1101_1, 1101_2 und 1101_3 mit Prozessorkernen Kern-0 bis Kern-N beinhalten, wobei ‚N‘ eine Zahl größer als null ist. Die p-Einheit des E/A-Die-0 1104_1 ist in diesem Beispiel die Supervisor-p-Einheit 1102 (z.B. 102), da sie ein PMAX_AUSLÖSER_E/A-Signal über den GPIO 1125 empfängt. Die p-Einheiten der anderen Dies sind in diesem Beispiel Supervisand-p-Einheiten 1103 (z.B. 103). Einige p-Einheiten können jedoch Doppelfunktionen aufweisen, wie etwa die Supervisor-Supervisand-p-Einheit 105.
  • In einigen Ausführungsformen kommuniziert jeder Die mit dem anderen Die über eine Interconnect-Brücke. Ein Beispiel für die Interconnect-Brücke ist EMIB (embedded multi-die interconnect bridge). In einigen Ausführungsformen ist die Interconnect-Brücke ein separater Die mit mehreren Routing-Schichten. In einigen Ausführungsformen durchlaufen die Fabrics 110 und 111 die Interconnect-Brücke, um den p-Einheiten (Supervisor, Supervisand) verschiedener Dies zu ermöglichen, miteinander zu kommunizieren.
  • Ohne jegliche Einschränkung der Allgemeingültigkeit wird angenommen, dass der EA-Die-0 1104_1 (z.B. 104) der Supervisor-Leistungsverwaltungs-Die mit der Supervisor-p-Einheit 1102 ist. Die Mehrschwellen-PMAX-Logik 1121 (oder der PMAX-Detektor) ist in dem zentralen Rechen-Die 2 1101_2 (z.B. 101) implementiert. Dies deshalb, weil die Latenz zum Drosseln von Kernen über Dies symmetrisch ist und es keine Benachteiligung gibt.
  • Die Mehrschwellen-PMAX-Logik 1121 erfasst einen VccIN-Abfall (z.B. Abfall bei Eingangsleistungsversorgung an einen VR, wie etwa VIR, oder einen beliebigen anderen VR, wie etwa einen Low-Dropout-Regler) und vergleicht diesen mit mehreren Schwellenwerten. Jeder Schwellenwert ist einem Auslösedraht zugeordnet, der zu der lokalen Supervisand-p-Einheit 1103 in dem Rechen-Die 2 geleitet wird. In 11 wird angenommen, dass die PMAX-Logik 1121 drei Schwellen aufweist, und dementsprechend verlaufen drei Auslösedrähte (einer entspricht jeder Schwelle) zu den p-Einheiten. Diese Drähte beinhalten zwei Drosseldrähte, nämlich HARTE_DROSSEL und SANFTE-DROSSEL (PWM), die von dem PMAX-Inhaber-Rechen-Die 1101_2 ausgehen und an alle Dies senden. Beide Drähte gehen von der Supervisand-p-Einheit 1103 des PMAX-Inhaber-Rechen-Die 1101_2 aus und enden an anderen Supervisand-p-Einheiten 1103 und der Supervisor-p-Einheit 1102.
  • P-Einheiten jedes Die weisen eine Anzahl von Eingangs- und Ausgangspins auf. Die Pins zur Linken der p-Einheit einschließlich Harte Drossel 0, Harte Drossel 1, Harte Drossel 2, PWM Sanfte Drossel, Externer (Ext). PMAX-Auslöser und Maximum (Max) sind Eingänge. Die Pins zur Rechten der p-Einheit einschließlich Schnelle RAPL-Drossel, PMAX Harte Drossel, PMAX Sanfte Drossel, Lokale IPM-Drossel und Lokale Kerndrossel sind Ausgänge. Einige oder alle dieser verschiedenen Pins und zugehörigen Drähte können Teil des ersten Fabric 110, des zweiten Fabric 111 oder der Schnelldrahtreaktion 112 sein.
  • PMAX_Eingabe_Bus, ist ein Eingabebus, der den mehreren Schwellenauslösern von PMAX IP entspricht.
  • Harte_Drossel_2 ist ein Die-übergreifender PMAX-Eingang für harte Drosselung. Hierbei handelt es sich um eine Anforderung einer harten Drosselung von einem anderen Die.
  • PWM_Sanfte_Drossel ist ein Die-übergreifender PMAX-Eingang für sanfte Drosselung. Hierbei handelt es sich um eine Anforderung einer sanften Drosselung oder PWM-Drosselung von einem anderen Die.
  • Ext_PMAX_Auslöser ist eine Eingabe, die eine Angabe von PMAX von einem externen PMAX_AUSLÖSER E/A-GPIO-Pin ist.
  • Harte_Drossel_0 ist ein Eingang, der eine schnelle RAPL-Drosselung von einem anderen Die anzeigt.
  • Harte_Drossel_1 ist ein Eingang, der PROCHOT (Processor Hot, Prozessor heiß) von einem anderen Die anzeigt.
  • Local_IPM_Throttle ist ein Ausgangspin, der eine lokale In-Package-Speicher- (IPM-, In-Package Memory) -Drosselanforderungsausgabe angibt.
  • Lokal_Kern_Drossel ist ein Ausgangspin, der eine lokale Kerndrosselanforderungsausgabe angibt.
  • PMAX_Harte_Drossel ist ein Die-übergreifender Ausgangspin, der eine PMAX-Hartdrosselanforderung an einen anderen Die angibt.
  • PMAX_Sanfte_Drossel ist ein Die-übergreifender Ausgangspin, der eine PMAX-Sanfte/PWM-Drosselanforderung an einen anderen Die angibt.
  • Schnelle_RAPL_Drossel ist ein Die-übergreifender Ausgangspin, der eine schnelle RAPL-Drosselanforderung an einen anderen Die angibt.
  • PMAX_Auslöser_Tx_Enb ist ein Ausgangssignal, das dem BIOS eine Absicht anzeigt, PMAX_AUSLÖSER_E/A im Ausgabemodus zu konfigurieren.
  • Nicht alle Eingänge und/oder Ausgänge werden in einem jeweiligen Die verwendet. Rechen-Die 2 1102_2, der in diesem Beispiel ein Supervisand-Die ist (weil er die Supervisand-p-Einheit aufweist), ist der zentrale Rechen-Die und somit der PMAX-Inhaber. Auch wenn der Rechen-Die-2 1102_2 möglicherweise kein Supervisor ist, detektiert der PMAX-Detektor 1121 die PMAX.App-Grenze und sendet ein Signal an die p-Einheit 1103 desselben Die über den PMAX-Eingabebus, falls VccIn diese Grenze überschreitet. In Ausführungsformen ist die p-Einheit 1103 des Computer-Die-2 1102_2 eine Supervisor-/Supervisand-p-Einheit (z.B. 105).
  • In einigen Ausführungsformen wird, falls der PMAX-Detektor 1121 (z.B. 1021) einen starken Abfall auf VccIn detektiert, PMAX Harte Drossel für alle Kerne jedes Rechen-Die (z.B. Kem-0 bis Kern-N) aktiviert, bis die Drossel Deaktivierungen anzeigt. In einigen Ausführungsformen geht die FDD-Drossel-Anzeige möglicherweise nicht durch die p-Einheit 1103 und kann direkt von der FDD-Logik zu den Kernen gehen. In einigen Ausführungsformen kann die FDD-Drossel-Anzeige durch die Überwachungs-p-Einheit 1102 über den Schnellreaktions-Interconnect 112 zu den p-Einheiten der Dies und/oder Kerne gehen.
  • Während harter Drosselung werden Leistungsversorgung und/oder Betriebsfrequenz der Kerne reduziert, um den Leistungsverbrauch auf Package-Ebene zu senken. In einigen Ausführungsformen beinhaltet der PMAX-Detektor 1121 FDD, während andere Nicht-PMAX-Inhaber (z.B. Rechen-Die-1 1101_1 und Rechen-Die-3 1101_3) den FDD-Detektor 1122 beinhalten. Zum Beispiel ist der PMAX-Detektor in den Nicht-PMAX-Inhaber-Dies deaktiviert, während FDD-Logik aktiviert ist. Die FFD-Detektoren 1122 lösen gemäß verschiedenen Ausführungsformen eine Drosselung auf Architekturebene (Arch Drossel) für alle Kerne aller Dies aus. Hier ist Arch Drossel eine harte Drosselung, bei der Spannung und/oder Frequenz aller Kerne in allen Dies reduziert wird. In einigen Ausführungsformen bestimmt die Supervisor-p-Einheit 1102, dass einer oder mehrere der FDDs 1122 Arch Drossel ausgelöst haben, und bewirkt, dass alle Supervisand-p-Einheiten alle Kerne ihrer jeweiligen Dies drosseln.
  • In einigen Ausführungsformen wird in Abhängigkeit von dem Verletzungsgrad unter Verwendung des Mehrschwellen-PMAX-Detektors 1121 eine PMAX Sanfte Drossel aktiviert. Wenn zum Beispiel Vccln im Begriff ist, die letzte oder niedrigste Schwelle zu überschreiten (sie aber nicht überschritten hat), kann der PMAX-Detektor 1121 eine sanfte Drosselung initiieren. Während einer sanften Drosselung kann Taktlogik in jedem Kern (oder außerhalb jedes Kerns) die Frequenz des Takts senken. Zum Beispiel kann die Taktfrequenz unter Verwendung von Taktstreckung abgesenkt werden. In einigen Ausführungsformen beinhaltet die Supervisor-p-Einheit 1102 des E/A-Die 1104_1 einen Zähler zum Zählen einer Anzahl von Aktivierungen des Drosselsignals und weist dann alle Supervisand-p-Einheiten bezüglich ihrer Betriebsfrequenzgrenzen an.
  • 12 veranschaulicht ein Blockdiagramm 1200 höherer Ebene einer p-Einheit-Schnittstelle mit dem PMAX-Detektor 1221 (z.B. 1021) gemäß einigen Ausführungsformen. In einigen Ausführungsformen umfasst die PMAX-Inhaber-p-Einheit 1203 (des Rechen-Die 1101_2) eine Ereignisüberwachungs- und Proportionaldrossellogik, die die PMAX-Auslöser PMAX_Auslöser[0], PMAX_Auslöser[1] und PMAX_Auslöser[2] in eine proportionale Arbeitszyklusdrosselung umwandelt, die über alle Dies 1229 (z.B. 1102_1, 1102_3 usw.) hinweg über das Fabric 111 zu allen Kernen gesendet wird. Hierbei aktiviert PMAX_Auslöser[0], wenn VccIn eine erste Schwelle überschreitet, aktiviert Pmax_Auslöser[1], wenn VccIn eine zweite Schwelle überschreitet, und aktiviert PMAX_Auslöser[2], wenn VccIn eine dritte Schwelle überschreitet, wobei die erste Schwelle höher als die zweite Schwelle ist und wobei die zweite Schwelle höher als die dritte Schwelle ist. Hier entspricht PMAX-Auslöser[2] der letzten PMAX-Schwelle. PMAX-Auslöser[1,0] entspricht frühen Schwellen. Wenn der PMAX-Auslöser [0,1] zündet (oder aktiviert), erzeugt der PMAX-Inhaber-Die 1101_2 proportionale Drosselung über den PWM-Sanfte-Drossel-Draht. Wenn PMAX-Auslöser [2] zündet (oder aktiviert), erzeugt der PMAX-Inhaber-Die 1102_2 eine Legacy-PMAX-Drossel über den Harte-Drossel-Draht (z.B. den Schnellreaktionsdraht 112).
  • Dedizierte Drosseldrähte oder Drosselnachrichten können über den Schnellreaktionsdraht 112 oder über den synchronen Bus 111 gehen, die eine viel kürzere Die-übergreifende und Die-interne Latenz als das Fabric 110 aufweisen. Die Latenz ist auch deterministisch für den Schnellreaktionsdraht 112 oder über den synchronen Bus 111. Die Verwendung des Schnellreaktionsdrahts 112 oder über den synchronen Bus 111 zur Drosselnachrichtenübermittlung soll sicherstellen, dass Kerne innerhalb der Dritter-Abfall-Zeitkonstante gedrosselt werden. Firmware- (FW-) pCode-zu-pCode-Nachrichten zwischen p-Einheiten auf dem Fabric 110 sind langsamer und weisen eine nichtdeterministische Latenz auf und sind daher gemäß einigen Ausführungsformen nicht ideal für Drosselpropagation.
  • Wenn die unteren PMAX-Schwellen ausgelöst werden (PMAX_Auslöser[0] und/oder PMAX_Auslöser[1]), wandelt die Ereignisüberwachungs- und Proportionaldrossellogik in der PMAX-Inhaber-p-Einheit 103 (des Rechen-Die 1101_2) den Auslöer in eine entsprechende PWM-Drosselanzeige auf dem SANFTE DROSSEL- oder Leichte-Drossel-Draht um. Wenn die letzte PMAX-Schwelle auslöst (PMAX_Auslöser[2]), aktiviert die PMAX-Inhaber-Supervisand-p-Einheit 1103 (des Rechen-Die 11022) den HARTE DROSSEL- oder Massiv-Drossel-Draht.
  • Auf Supervisand-p-Einheiten werden die Drähte PMAX_Sanfte_Drossel und PMAX Harte Drossel einer OR-Operation unterzogen und direkt mit dem lokalen Schnelle_Drossel-Ausgangsport der p-Einheit verbunden, der zu dem Drosseleingang aller Kerne auf dem Die verläuft. Bei Aktivierung von entweder HARTE_DROSSEL- oder SANFTE_DROSSEL-Signalen wird erwartet, dass jeder Supervisor-Die seine Leistung in einem Zeitrahmen (z.B. weniger als 500 ns) reduziert. Darüber hinaus erzeugt der HARTE_DROSSEL-Draht auch einen pCode-Schnellpfad, der ähnlich einem Interrupt für Leistungsverwaltungs-Firmware (pCode) ist.
  • In einigen Ausführungsformen aktiviert die p-Einheit beim Empfangen einer harten Drosselung in jedem Die eine lokale schnelle Drosselung und erzeugt einen pCode-Schnellpfad. Wenn die überwachte p-Einheit einen HARTE_DROSSEL-Schnellpfad erhält (z.B. ein Ereignis oder Interrupt), reduziert sie die Frequenz der lokalen Kerne auf eine PSICHER-Frequenz und deaktiviert dann die Drossel. Die Supervisor-p-Einheit 1102 auf dem E/A-Die 1104_1 ist für das Anpassen der gesamten globalen_gemeinsamen_Frequenz _Obergrenze (oder der Performanzstufe für alle Dies) des Package basierend auf diesen IccMax-Ereignissen und prozentualer Drosselung verantwortlich.
  • In einigen Ausführungsformen wendet die p-Einheit beim Empfangen einer sanften Drosselung in jedem Die den Arbeitszyklus auf die lokale schnelle Drosselung an. Hierbei bezieht sich das Anwenden eines Arbeitszyklus auf ein Variieren der Ein/Aus-Zeit des Signalpegels. Eine Arbeitszyklusvariation wird für Fälle durchgeführt, in denen ein SoC möglicherweise nicht über den Luxus von mehr als einem abgehenden Drosseldraht verfügt, so dass der Arbeitszyklus für das Signal auf dem schnellen Drosseldraht variiert wird, um eine niedrigere Drosselungsstufe oder eine „sanftere“ Drosselung zu erhalten. In einigen Ausführungsformen dehnt die p-Einheit bei sanfter Drosselung ihren Takt oder ändert den Arbeitszyklus des Takts, um die Frequenz und diese Leistung zu reduzieren. In einigen Ausführungsformen wendet die p-Einheit basierend auf der Die-übergreifenden SANFTE_DROSSEL_Anzeige einfach den Arbeitszyklus (Variation der EIN/AUS-Zeit) auf den lokale_schnelle_Drossel-Draht an. In Reaktion auf die lokale_schnelle_Drossel können die Kerne entweder ihren Takt dehnen, die Frequenz reduzieren, Blasen in die Pipeline injizieren oder irgendeine andere Maßnahme ergreifen, die die effektive Stromaufnahme für die Kerne reduziert.
  • Die Supervisor-p-Einheit 1102 verbindet den SANFTE_DROSSEL-Draht, um die Anzahl von Drosselzyklen zu zählen und basierend darauf einen pCode-Schnellpfad zu erzeugen. pCcode verwendet diesen FP (fast path wire, Schnellpfaddraht 112), um feinere Anpassungen an der Package-Frequenz oder der Performanzstufe oder an globale_gemeinsame_Frequenz_Obergrenze vorzunehmen. In einigen Ausführungsformen wird der HARTE_DROSSEL-Draht in der Supervisor-p-Einheit 1102 verwendet, um einen Legacy-PMAX-Fluss auszulösen und grobkörnige Anpassungen an der Package-Frequenz oder der Performanzstufe oder globale_gemeinsame_Frequenz_Obergrenze vorzunehmen. Die verschiedenen Drähte sind hierbei dedizierte Drähte oder Teil des synchronisierten Fabric 211.
  • 13 veranschaulicht einen Mehrschwellen-PMAX-Detektor 1300 (z.B. 1021, 1121, 1221) in einer HPM-Architektur eines SoC gemäß einigen Ausführungsformen. In einigen Ausführungsformen umfasst der Mehrschwellen-PMAX-Detektor 1300 ein erstes Filter 1331, ein zweites Filter 1332, einen Verstärker 1333, Digital-Analog-Wandler (DACs) 1334 und Komparatoren 1335. Die von Package-Bumps (SENSEP- und SENSEN-Bumps) kommende nominale VccIN wird durch das Filter 1331 gefiltert. Hierbei ist SENSEN mit der VccIN-Masse verbunden und SENSEP ist mit dem VccIN-Erfassungspunkt verbunden. Diese Differenz-VccIN wird dann durch den Verstärker 1333 auf Masse bezogen. Die Ausgabe des Verstärkers 1333 wird Komparatoren 1335 bereitgestellt. In verschiedenen Ausführungsformen wird ein separater Pfad für Schnellabfalldetektion bereitgestellt. Auf diesem Pfad wird VccIN gefiltert und dem Komparator 1335 des FDD zugeführt. Jeder DAC empfängt einen digitalen Code (z.B. werden Code_TRIP3, Code_TRIP2, Code_TRIP1 und Code_TRIP_FDD durch jeweilige Komparatoren empfangen).
  • In einigen Ausführungsformen ist der DAC 1334 eine Vorrichtung, die digitale Daten (z.B. binär oder thermometercodiert) in ein analoges Signal (Strom, Spannung oder elektrische Ladung) umwandelt. In einigen Ausführungsformen ist der DAC 1334 ein Pulsweitenmodulator-DAC. In anderen Ausführungsformen können andere Arten von DACs zum Implementieren des DAC 1335 verwendet werden. Zum Beispiel können ein Interpolations-DAC (auch als Oversampling-DAC bekannt), ein binär gewichteter DAC (z.B. ein Schaltwiderstand-DAC, ein Schaltkondensator-DAC, ein Schaltstromquellen-DAC), ein R-2R-Leiter-DAC, ein thermometercodierter DAC, ein segmentierter DAC usw. zum Implementieren des DAC 1304 verwendet werden. Ein beliebiger geeigneter DAC kann zum Implementieren des DAC 1334 verwendet werden.
  • Der Mehrschwellen-PMAX-Detektor 1300 nimmt den VccIn_Sense-Wert an und vergleicht ihn mit mehreren Schwellen, z.B. drei Schwellen. In einigen Ausführungsformen stellt der Mehrschwellen-PMAX-Detektor 1300 drei VAuslöse-Pegelsignale (AUSLÖSER 1, AUSLÖSER 2 und AUSLÖSER 3) als Ausgabe von den jeweiligen drei Schwellenkomparatoren 1335 bereit. In verschiedenen Ausführungsformen können die drei Auslösepegel der tiefpassgefilterten Vccln (z.B. 1 MHz tiefpassgefiltert) unabhängig durch Sicherungen programmiert werden. Ein typisches Verwendungsmodell besteht darin, Sanftdrosselungsmaßnahmen für Ereignisse unterhalb von IccMax.App zu ergreifen, mit dem Ziel, die Anzahl von Ereignissen zu reduzieren, bei denen der Prozessor harte elektrische Drosselung aktiviert.
  • In verschiedenen Ausführungsformen werden, wenn aufeinanderfolgende Schwellen ausgelöst werden, die 3 Pegelsignale wie folgt eingestellt: 001 → 011 → 111 und umgekehrt, und wobei 010, 110, 100 illegale Codierungen sind. In einigen Ausführungsformen weist der PMAX-Detektor 1300 ein programmierbares digitales Filter auf. Zum Beispiel umfasst der PMAX-Detektor 1300 ein programmierbares digitales Filter mit einem Bereich von 10 ns bis 2 µs, das für alle VAuslöser-Signale gilt. In einigen Ausführungsformen umfasst der PMAX-Detektor 1300 einen Zähler (z.B. einen 16-Bit-Zähler), der für jedes Auslöseereignis (AUSLÖSER 1, AUSLÖSER 2, AUSLÖSER 3, FDD_AUSLÖSER) zählt. In einigen Ausführungsformen sind die Zähler durch ABGRIFF (eine E/A-Schnittstelle) für Debug-, Validierungs- und Charakterisierungszwecke zugänglich. In einigen Ausführungsformen sind die Zähler dazu ausgelegt, das Zählen der Ereignisse auch dann fortzusetzen, wenn ein oder mehrere Auslöseindikatoren ausgeschaltet sind. In einigen Ausführungsformen können die Schwellen unabhängig durch pCode (Firmware der p-Einheit) angepasst werden. Zum Beispiel können die Schwellen modifiziert werden, ohne in der HVM programmierte Sicherungen zu ändern. Somit wird der Prozessor-IccMax effektiv reduziert, ohne die Performanz proaktiv zu klammern.
  • Auch wenn verschiedene Ausführungsformen vorliegend unter Bezugnahme auf drei Schwellen beschrieben sind, kann eine beliebige Anzahl von Schwellen verwendet werden. Entsprechend kann eine beliebige Anzahl von DACs und Komparatoren durch den Mehrschwellen-PMAX-Detektor 1300 verwendet werden.
  • 14A-B veranschaulichen PMAX-Flüsse 1400 bzw. 1420 gemäß einigen Ausführungsformen. Die Flüsse 1400 und 1420 veranschaulichen eine Kommunikation zwischen dem PMAX-Inhaber-Die 1101-2, anderen Rechen-Dies (z.B. Dies 1101-1, 1101-3) und dem Supervisor-E/A-Die 1104-1. Auch wenn verschiedene Kommunikationspfade in einer Reihenfolge gezeigt sind, kann die Reihenfolge modifiziert werden. Zum Beispiel können manche Operationen vor anderen durchgeführt werden, während manche Operationen parallel durchgeführt werden können. Hier identifizieren die Bezeichnungen ‚A‘, ‚B‘ und ‚C‘ den Prozessfluss-Fortsetzungspunkt von 14A zu 14B, wobei ‚A‘ die Kommunikation zu/von dem PMAX-Inhaber 1101-2 angibt, ‚B‘ die Kommunikation zu/von anderen Rechen-Dies (außer dem PMAX-Inhaber) angibt und ‚C‘ die Kommunikation zu/von dem Supervisor-E/A-Die 1104-1 angibt. Die verschiedenen Prozesse bzw. Ereignisse laufen im Zeitverlauf ab, der wie durch den Zeitpfeil dargestellt vertikal von oben nach unten verläuft.
  • Bei diesem Beispiel tritt bei Block 1401 ein PMAX_Auslöser[2]-Ereignis auf und die p-Einheit 1103 des Die 1102-2 aktiviert einen Hartdrosseldraht (Harte Drossel=1). In einigen Ausführungsformen ist der Hartdrosseldraht ein dedizierter Draht, der die Drosselungsanzeige transportiert. In einigen Ausführungsformen wird die Anzeige der harten Drosselung über das Fabric 111 (zweites Fabric) zu p-Einheiten anderer Rechen-Dies (z.B. 1101-1, 1101-3) und Supervisor-E/A-Dies 1014 geleitet. Wie vorliegend besprochen, weist das Fabric 111 eine niedrige Latenz auf und ist dazu ausgelegt, Signale mit hoher Priorität als harte Drosselung zu leiten. In einigen Ausführungsformen verhält sich der PMAX-Inhaber-Die wie ein Supervisor-Die und veranlasst, dass andere Dies beim Aktivieren einer harten Drossel agieren. Danach übernimmt die Supervisor-p-Einheit 1102 des E/A-Die 1104-1 die Aufgabe als Supervisor aller Supervisand-p-Einheiten in ihrer Domäne.
  • Bei Block 1402 reduziert jeder Die seine Leistung innerhalb einer vorbestimmten Zeit ‚1‘ (z.B. 1 µS) in Reaktion auf das Empfangen der Anzeige der harten Drosselung. Bei Block 1403 aktivieren die p-Einheiten (1102 und 1103) jedes Die bei Aktivierung des Hartdrosseldrahts oder -Indikators eine lokale schnelle Drosselung für deren jeweilige Kerne. Der Firmware-pCode jeder p-Einheit reduziert die Betriebsspannung und/oder -frequenz für diesen Die (z.B. für die Kerne des Die). Nach einiger Zeit deaktiviert der pCode jeder p-Einheit die schnelle Drosselung. Bei Block 1404 setzt der pCode der Supervisand-p-Einheiten den Niedrigleistungszustand durch, solange die Anfrage für den Niedrigleistungszustand gültig ist (z.B. solange der Drosseldraht aktiviert ist oder das Fabric 211 einen Drosselindikator bereitstellt).
  • Die Supervisor-p-Einheit 1102 sendet eine Nachricht an die p-Einheiten des PMAX-Inhaber-Die und anderer Rechen-Dies mit einem sicheren Wert (SichererWert) für die globale Frequenzobergrenze (Obergrenze). In einigen Ausführungsformen wird die globale Frequenzobergrenze über das Fabric 110 bereitgestellt. Bei Block 1405 empfangen Supervisand-p-Einheiten einschließlich der p-Einheit des PMAX-Inhaber-Die die globale Frequenzobergrenze und senden eine Quittierungs- (QUIT=1) Nachricht an die Supervisor-p-Einheit 1102. In einigen Ausführungsformen sendet die p-Einheit von Supervisand-Rechen-Dies eine Nachricht an die p-Unit des PMAX-Inhaber-Die, dass eine Performanz auf einer sicheren Stufe (PSICHER) erreicht ist. In einigen Ausführungsformen kann diese Kommunikation oder Nachricht an die Supervisor-p-Einheit 1102 gesendet werden, die sie wiederum an die p-Einheit 1103 des PMAX-Inhaber-Die 1101-2 sendet.
  • In verschiedenen Ausführungsformen der HPM kann Leistungsverwaltung durch eine beliebige p-Einheit durchgeführt werden und Kommunikation kann zwischen beliebigen p-Einheiten erfolgen. Dies ermöglicht, dass viele p-Einheiten ein Supervisor für bestimmte Fähigkeiten sind. Zum Beispiel kann die p-Einheit des PMAX-Inhabers als der Supervisor der PMAX-Funktion fungieren und dementsprechend kann alle Kommunikation von der PMAX-Supervisor-p-Einheit kommen und zu anderen p-Einheiten gehen und Antworten kommen zu der Supervisor-PMAX-p-Einheit zurück.
  • Bei Block 1406 aus 14B setzt die p-Einheit des PMAX-Inhabers bei Bestimmen, dass Rechen-Dies die PSICHER-Stufe erreicht haben, den PMAX-Detektor 1001 zurück (z.B. E/A_THERM_INDIKATOREN[PMAX_DETEKT]=1). Danach deaktiviert der PMAX-Detektor 1021 den Hartdrosselindikator oder -draht und sendet diese Nachricht (oder Anzeige) an andere Rechen-Dies und den Supervisor-E/A-Die 1104-1. Nach Ablauf der Haltezeit (oder Wartezeit) sendet die p-Einheit 1102 des Supervisor-Die 1104-1 einen Rücklauf- (Walkback) Wert für die Frequenzbegrenzung an Rechen-Dies einschließlich des PMAX-Inhaber-Die 1102-1. Die Rücklaufwerte werden allmählich von dem Wert 1 auf den Wert 2 geändert (z.B. erhöht), um die Performanz (z.B. Geschwindigkeit) von Rechen-Dies zu erhöhen.
  • 15 veranschaulicht p-Code-Pseudocode 1500, der durch die Supervisor-p-Einheit 1102 für Mehrschwellen-PMAX-Detektion und -Verwaltung ausgeführt wird, gemäß einigen Ausführungsformen. Falls eine Anzahl von gedrosselten Zyklen größer oder gleich einer Schwelle ist, erzeugt die p-Einheit 1102 einen pCode-Schnellpfad und liest einen Zählerwert für die gedrosselte Anzahl von Zyklen. Nach dem Lesen des Zählers wird der Zählerwert gelöscht. Falls die Supervisor-p-Einheit 1102 bestimmt, dass die Anzahl von Drosselzyklen geteilt durch eine verstrichene Zeit kleiner oder gleich der p-Code-Schwelle ist, dann liegt die Drosselung innerhalb akzeptierter Grenzen und es besteht keine Notwendigkeit, die Betriebsfrequenz der Supervisand-Dies (z.B. Dies, die Supervisand-p-Einheiten aufweisen) zu drosseln oder zu senken. Die Supervisor-p-Einheit 1102 prüft dann, wann sich die Obergrenze das letzte Mal erhöhte. Falls das letzte Mal, als die Frequenzobergrenze anstieg, eine Weile zurückliegt (z.B. größer als eine AUFWÄRTS Hysteresezeit), wird die AUFWÄRTS Hysteresezeit zurückgesetzt und die globale gemeinsame Frequenzobergrenze wird (um einen programmierbaren Betrag freq_inc) für alle Supervisand-Dies unter der Domäne der Supervisor-p-Einheit 1102 erhöht. Diese Nachricht (PerfGenehmigung) zur Erhöhung der globalen gemeinsamen Frequenzobergrenze wird über das Fabric 110 an alle Supervisand-Dies in der Domäne der Supervisor-p-Einheit 1102 gesendet.
  • Falls die Supervisor-p-Einheit 1102 bestimmt, dass die Anzahl von Drosselzyklen geteilt durch eine verstrichene Zeit größer als die p-Code-Schwelle ist, dann ist die Drosselung mehr als akzeptabel und es besteht keine Notwendigkeit, die Frequenz der Supervisand-Dies zu senken. Falls das letzte Mal, als die Frequenzobergrenze sank, eine Weile zurückliegt (z.B. größer als eine ABWÄRTS_Hysteresezeit), wird die ABWÄRTS_Hysteresezeit zurückgesetzt und die globale gemeinsame Frequenzobergrenze wird (um einen programmierbaren Betrag freq_inc) für alle Supervisand-Dies unter der Domäne der Supervisor-p-Einheit 1102 reduziert. Diese Nachricht (PerfGenehmigung) zur Absenkung der globalen gemeinsamen Frequenzobergrenze wird über das Fabric 110 an alle Supervisand-Dies in der Domäne der Supervisor-p-Einheit 1102 gesendet.
  • 16 veranschaulicht p-Code-Pseudocode 1600, der durch eine Supervisand-p-Einheit für Mehrschwellen-PMAX-Verwaltung ausgeführt wird, gemäß einigen Ausführungsformen. Wenn eine Supervisand-p-Einheit 103 bestimmt, dass schnelle Drosselung aktiviert ist, wendet sie proportionale Drosselung an. PWM ist proportionale Drosselung, was bedeutet, dass die Drosselschärfe eine Funktion der Nähe zu einer kritischen Spannungsschwelle ist, die die Spannung nicht unterschreiten sollte. Je näher die Spannung an der kritischen Schwelle liegt, desto aggressiver sind die Drosselmaßnahmen. Ebenso wird eine sanftere Drosselung gewünscht und aufgerufen, wenn die Spannung noch relativ weit vom Auslösepunkt (kritische Schwelle) entfernt ist. Mehrere Schwellen erlauben eine Beurteilung der Schwere des Ausschlags und damit der Drosselreaktion. Gemäß einigen Ausführungsformen kann die Drosselreaktion durch Modulieren der Pulsweite des Drosselsignals gesteuert werden. Eine scharfe Drosselreaktion würde das Drosselsignal für längere Dauer aktiviert und für kürzere Dauer deaktiviert halten. Sanfteres Drosseln aktiviert gemäß einigen Ausführungsformen das Drosselsignal für eine kürzere Dauer und deaktiviert es für eine längere Dauer. Falls die p-Einheit eines Supervisand-Die eine Änderung der globalen_gemeinsamen_Freq_Obergrenze bestimmt, beschneidet sie die Betriebsfrequenz gemäß der aktualisierten globalen_gemeinsamen_Freq_Obergrenze.
  • Der folgende Abschnitt beschreibt die Leistungsverwaltung des Nichtkerns (Uncore) unter Verwendung der HPM-Architektur. Hierbei bezieht sich der Nichtkern auf alle Komponenten eines Die, die nicht Teil eines Prozessorkerns sind oder in einem Prozessorkern enthalten sind. Beispiele für den Nichtkern beinhalten Speicher außerhalb des Prozessorkerns, Fabric außerhalb der Prozessorkerne, wie etwa erstes bzw. zweites Fabric 110 und 111 zwischen den p-Einheiten, Speicher-Fabric, E/A-Fabric, Interconnect-Fabric-Komponenten (z.B. Netzknoten (mesh nodes)) außerhalb des Prozessorkerns, EA-Schaltungen usw. Die HPM-Architektur kann Leistung und Performanz aller solcher Fabrics verwalten. In einigen Ausführungsformen wird die Fabric-Performanz durch Modifizieren von Versorgungsspannung, Taktfrequenz und/oder Bandbreite des Fabric angepasst. Durch Hinzufügen (Aktivieren) oder Entfernen (Deaktivieren) von Kanälen in einem Fabric (das mehrere Kanäle beinhalten kann) kann zum Beispiel die Bandbreite des Fabric und somit deren Leistungsverbrauch modifiziert werden. Ein Absenken der Versorgungsspannung für das Fabric verlangsamt das Fabric und senkt den Leistungsverbrauch. Ein Erhöhen der Frequenz des vom Fabric verwendeten Takts (z.B. durch dessen sequenzielle Logikschaltungen), kann die Geschwindigkeit und somit die Leistung des Fabric erhöhen. Alle derartigen „Drehknöpfe“ zum Anpassen der Performanz des Fabric kommen in Betracht, um die Performanz des Nichtkerns durch die HPM-Architektur zu verwalten.
  • Auf Verarbeitungsplattformen kann aktive Leistungsverwaltung durch dynamisches Skalieren von Spannung und/oder Frequenz durchgeführt werden, eine Technik, die als Dynamische Spannungs- und Frequenzskalierung (DVFS, dynamic voltage and frequency scaling) bekannt ist. Die DVFS kann durchgeführt werden, wenn Prozessoren oder andere mit Daten arbeitende Funktionseinheiten höhere (oder niedrigere) Performanzzustände erfordern, und kann auf Änderungen der Auslastung von Einheiten basieren. Höhere Performanzzustände (z.B. höhere Frequenzzustände) werden häufig durch eine DVFS-Steuerung gewährt, es sei denn, es gibt irgendeine andere Einschränkung oder Grenze, die gegen die höhere Frequenzauswahl spricht, wie etwa Detektion von thermischen Verletzungen oder Spitzenstromverletzungen während der Verarbeitung. Eine Verarbeitungsplattform, wie etwa ein Server, kann als ein SoC bereitgestellt sein, das eine Vielzahl mit Daten arbeitender Funktionseinheiten hosten kann, wie etwa mehrere Recheneinheiten, die jeweils eine Vielzahl von Kernen, eine E/A-Steuerung, eine Speichersteuerung und eine Grafikverarbeitungseinheit (GPU) umfassen. Die Kommunikation zwischen den mit Daten arbeitenden Funktionseinheiten auf einem SoC erfolgt über ein „Fabric“ von Datenkommunikationskanälen. Das Kommunikations-Fabric kann eine Ring-, Bus-, Netz-, Baum- oder eine beliebige sonstige Topologie aufweisen und arbeitet im gesamten Fabric mit einer gegebenen Performanzstufe (Kombination aus Spannung und Frequenz). Ein einziges Fabric kann ein gesamtes SoC überspannen. Beispiele für mit Daten arbeitende Funktionseinheiten beinhalten einen Rechen-Die, einen Speicher-Die oder einen Eingabe/Ausgabe- (E/A-) Die.
  • Das Fabric ist über das gesamte SoC verteilt und verbindet verschiedene Verarbeitungselemente, wie etwa Kerne, Speicher, Last-Level-Cache (LLC), E/As und andere Nichtkern-Blöcke. Die Fabric-Domäne ist ein IP- (Intellectual Property) Block in einem Server-SoC, der signifikante Leistungsmengen verbrauchen kann. Darüber hinaus ändert sich der Leistungsverbrauch abhängig von der Arbeitslast zur Laufzeit.
  • Datenverarbeitungs-Plattformen, wie etwa Server, können ein einziges kohärentes Teilsystem als ein einziges Kommunikations-Fabric zwischen allen mit Daten arbeitenden Funktionseinheiten verwenden. Da DVFS-Algorithmen für solche Server typischerweise die Leistungsstufe des Fabric global gleich und basierend auf Performanzzählern und Einschränkungen von mit Daten arbeitenden Funktionseinheiten, die das gesamte SoC überspannen, einstellen, kann die Betriebsfrequenz des Fabric so eingestellt werden, dass einige Teile des Fabric darauf beschränkt sind, mit einer höheren Spannungs- und Frequenzkombination als angemessen zu laufen. Dies kann zu Leistungsverlust führen. Des Weiteren kann eine enge Koordination von mehreren Phasenregelschleifen (PLLs) und integrierten Spannungsreglern (IVRs) für jeweilige mit Daten arbeitende Funktionseinheiten auf einem SoC zu komplexen globalen Architekturflüssen führen. Puffern von Daten über verschiedene Fabrics, die bei verschiedenen Frequenzen arbeiten, kann Latenzen von mehreren Taktzyklen verursachen und macht auch Verlust von Daten während der Übertragung wahrscheinlicher und ist daher mit hoher Wahrscheinlichkeit schädlich für die Performanz. Es versteht sich, dass Leistungsoptimierung und Performanzoptimierung in einer Datenverarbeitungseinrichtung schwierig auszugleichen sind. Der Fabric-Leistungsverbrauch wird zunehmend dominant und hat sich zuletzt zu einem Engpass hinsichtlich Performanz und Ausgestaltung in Datenverarbeitungsvorrichtungen wie etwa Servern entwickelt.
  • Mit der Skalierung des Server-SoC und der Partitionierung des Fabric zu deren Unterstützung besteht Bedarf an einem skalierbaren verteilten und zentralisierten Leistungsverwaltungssystem für das Fabric. Bestehende SoCs weisen typischerweise eine einzige Leistungsverwaltungseinheit auf, um die gesamte Fabric-Domäne zu verwalten. Diese einzelne p-Einheit ist nicht skalierbar, wenn die SoC-Kernzahl und die Fabric-Größe zunehmen. Suboptimale oder unflexible Leistungsverwaltungsmechanismen können zu einer Ineffizienz beim Design, Verzögerung im Produktionsplan oder noch schlimmer zu Performanzverschlechterung im Produkt führen.
  • Verschiedene Ausführungsformen beschreiben Mechanismen zum Verwalten mehrerer Fabric-Domänen unter Verwendung hierarchischer PM (HPM). Hierarchische Fabric-Verwaltung weist drei Hauptteile auf: a) Berechnen eines optimalen V-F- (Spannungs- und/oder Frequenz-) Arbeitspunkts basierend auf den Arbeitslastdaten, b) Anwenden der Maximal- und Minimalgrenzen für die thermischen, IccMax- und SoC-Architekturgrenzen und c) Kommunikation zwischen mehreren Fabric-Steuerungen. Vorliegend werden diese hierarchischen Fabric-Verwaltungsmechanismen und Kompromisse dahingehend beschrieben, wie zwischen einem vollständig verteilten, zentralisierten und einem hybriden Ansatz für Fabric-Leistungsverwaltung zu wählen ist.
  • In einigen Ausführungsformen wird eine Vorrichtung (z.B. ein SoC) bereitgestellt, die eine Vielzahl von Dies beinhaltet, darunter Rechen-Dies und E/A-Dies, wobei jeder Die ein Interconnect-Fabric beinhaltet, das Fabric-Komponenten sowie einen Interconnect aufweist, der die Strukturkomponenten verbindet. In einigen Ausführungsformen umfasst das SoC ferner eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl eine Leistungsverwaltungseinheit beinhaltet, so dass wenigstens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und wenigstens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind. Die Leistungsverwaltungseinheiten sind hierarchisch derart angeordnet, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert. In einigen Ausführungsformen bestimmt jede Supervisand-Einheit eine Frequenz ihres Interconnect-Fabrics in Absprache mit benachbarten Supervisand-Einheiten und einer oder mehreren Einschränkungen von der Supervisor-Einheit.
  • In einigen Ausführungsformen bestimmt eine individuelle Supervisand-Einheit eine Arbeitsaktivität ihres Die basierend auf Telemetriedaten und Heuristik. In einigen Ausführungsformen beinhalten die Telemetriedaten eine Wertänderung eines oder mehrerer Hardware-Performanzzähler. Andere Beispiele für Telemetriedaten beinhalten Kernbandbreite, Speicherbandbreite, E/A-Bandbreite usw. In einigen Ausführungsformen ist die individuelle Supervisand-Einheit Teil eines Die, der mit einem Speicher gekoppelt ist, wobei die Heuristiken Verkehr auf einem Bus beinhalten, der zwischen den Die und den Speicher gekoppelt ist. Andere Beispiele für Heuristik beinhalten Puffernutzung in Eingangswarteschlangen, Wasserzeichen in Puffern, Bandbreitenschwellen, die verwendet werden, um entweder die Frequenz um einen kleinen Schritt oder einen großen (Raketen-) Schritt zu ändern.
  • In einigen Ausführungsformen empfängt die individuelle Supervisand-Einheit eine aktuelle Betriebsspannung und/oder -frequenz ihrer benachbarten Supervisand-Einheit über einen Interconnect zwischen den Supervisand-Einheiten. In einigen Ausführungsformen löst die individuelle Supervisand-Einheit eine Frequenzanfrage basierend auf Frequenzanfragen benachbarter Supervisand-Einheiten auf. In einigen Ausführungsformen kann, wenn Verkehr von einem Die zu einem anderen benachbarten Die geht und die Frequenz im Begriff ist, zu steigen, der empfangende Die frühzeitig anzeigen, die Frequenz zu erhöhen, um die Latenz zu verbessern. Die aktuelle Frequenz repräsentiert die Frequenz, mit der der Nichtkern zu dieser Zeit läuft, und die Frequenzanfrage repräsentiert, wohin sie sich ändern könnte. Diese Trennung (zwischen aktuellen Betriebsfrequenzen, die von benachbarten Supervisand-Einheiten empfangen werden, und den Frequenzanfragen benachbarter Supervisand-Einheiten) ist wahrscheinlich relevanter, wenn die neue Frequenz zunimmt. Denn diese Informationen können verwendet werden, um etwas Leistung freizugeben, um zu ermöglichen, dass dieser Die seine Fabric-Frequenz erhöht.
  • In einigen Ausführungsformen beinhalten die eine oder die mehreren Einschränkungen eine oder mehrere der Folgenden: maximale Gesamtleistungsgrenze eines Sockels, minimale Gesamtleistungsgrenze des Sockels, minimale Performanzstufe des Sockels, thermische Einschränkungen oder Benutzergrenzen. Benutzergrenzen sind dabei eine Anleitung von einem Benutzer oder Kunden in Form einer Grundfrequenz oder einer maximalen (Obergrenzen-) Frequenzeinstellung. Andere Beispiele für Einschränkungen beinhalten IccMax, di/dt, Spannungsabfall usw. In einigen Ausführungsformen bestimmt die individuelle Supervisand-Einheit die Frequenz ihres Interconnect-Fabric durch Anwenden eines Skalierungsfaktors, der eine Kernfrequenz in eine Frequenz für das Interconnect-Fabric umwandelt. In einigen Ausführungsformen ist das Interconnect-Fabric eines Die mit einem Interconnect-Fabric eines anderen Die gekoppelt.
  • Es gibt viele technische Auswirkungen der verschiedenen Ausführungsformen. Zum Beispiel ermöglicht die hierarchische Fabric-Verwaltung , dass die DVFS die SoC-Performanz innerhalb eines Leistungsbudgets maximiert. Die Spannungs- und Frequenzeinstellungen ändern sich dynamisch aufgrund der Änderung des Arbeitslastverhaltens zur Laufzeit. Die hierarchische Fabric-Verwaltung stellt Mechanismen bereit, um die Aufgabe zu erfüllen. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • 17A veranschaulicht ein zentralisiertes Verwaltungsschema 1700 zum Verwalten von Spannung und/oder Frequenz. Das zentralisierte Verwaltungsschema 1700 wird für ein SoC verwendet, das weniger Verarbeitungskerne (z.B. zwischen 0 und 64 Rechenkerne) aufweist, die über ein Fabric und ein vollständig zentralisiertes Fabric-Leistungsverwaltungsschema miteinander verbunden sind. Das zentralisierte Verwaltungsschema 1700 veranschaulicht einen einzelnen Die 1701 (z.B. ein SoC), der eine Leistungsverwaltungseinheit (p-Einheit) 1702 umfasst, die die Betriebsspannung (z.B. Versorgungsspannung) und die Betriebsfrequenz von Knoten eines Interconnect-Fabric steuert. Der Ausdruck Fabric kann so definiert sein, dass er einen bekannten Satz von Quellen, Zielen, Routing-Regeln, Topologie und anderen Eigenschaften aufweist. Das Fabric kann Teil eines Network-on-Chip (NoC) mit mehreren Agenten sein. Bei den Quellen und Zielen kann es sich um eine beliebige Art von mit Daten arbeitender Funktionseinheit handeln.
  • In diesem Beispiel ist eine Vielzahl von Knoten 1722 (oder Komponenten) über Fabric-Komponenten 1723 miteinander verknüpft. Diese Knoten ähneln Mesh-Stopps. Beispiele für Knoten beinhalten einen Kernagenten, eine Speichersteuerung und einen Eingabe-Ausgabe-Agenten. In einigen Ausführungsformen werden Hardwareleistungszähler (HPCs) von jedem der Fabric-Agenten (z.B. 1722) und dem Fabric (z.B. 1723) durch die p-Einheit 1702 gelesen und mit einer Schwelle verglichen. Die p-Einheit 1702 bestimmt den Verkehr durch die Fabric-Agenten 1722 und entscheidet entsprechend über die Betriebsspannung und Betriebsfrequenz des Fabric 1723. Somit steuert gemäß einigen Ausführungsformen eine p-Einheit 1702 die Betriebsspannung und Betriebsfrequenz von Fabric-Agenten und Fabric 1722/1723 auf eine zentralisierte Weise.
  • 17B veranschaulicht ein hybrides Mehrfach-Fabric-Verwaltungsschema 1720 zum Verwalten von Spannung und/oder Frequenz in der HPM-Architektur gemäß einigen Ausführungsformen. Das Schema 1720 ist im Vergleich zu jenen, die in 17A verwendet werden, für größere SoCs ausgelegt. Beispielsweise kann ein SoC mit 64 bis 300 Rechenkernen mit 2 bis 10 Fabric-Domänen das hybride Verwaltungsschema 1720 verwenden. In einem solchen SoC gibt es viele Fabric-Domänen. In einigen Ausführungsformen kann eine individuelle Fabric-Domäne eine andere Größe und Topologie als andere Fabric-Domänen aufweisen. Zum Beispiel eine Fabric-Domäne für einen größeren Kern, die mehr Interconnect- und Fabric-Komponenten aufweist als eine Fabric-Domäne, die für einen kleineren Kern verwendet wird. Schema 1720 verwaltet die Leistung zu den verschiedenen Fabric-Domänen unter Verwendung eines hybriden Ansatzes mit der Supervisor-p-Einheit (z.B. Supervisor) und Supervisand-p-Einheiten (z.B. Supervisand), falls eine gegenseitige Abhängigkeit zwischen den Fabric-Domänen besteht.
  • In verschiedenen Ausführungsformen ist das Schema 1720 in einen Supervisor-Die 1704-1 (z.B. einen Die mit einer p-Einheit 1702, die sich als eine Supervisor-p-Einheit verhält) und einer Anzahl ‚n‘ von Supervisor-Dies 1701_1 bis 1701_n organisiert (wobei z.B. jeder Die eine p-Einheit 1703 aufweist, die sich als eine Supervisand-p-Einheit verhält). In einigen Ausführungsformen kommuniziert die Supervisor-p-Einheit 1702 mit der Supervisand-p-Einheit 1703 unter Verwendung eines ersten und/oder zweiten Interconnect-Fabric 110 bzw. 111. Dieses erste und/oder zweite Interconnect-Fabric 110 und 111 sind bidirektional und kollektiv als 1707 (z.B. 107) bezeichnet. In verschiedenen Ausführungsformen kann die Fabric-Domäne in jedem Die (z.B. das NoC einschließlich Knoten 1722 und Interconnect 1723) mit der Fabric-Domäne in anderen benachbarten Dies kommunizieren. Zum Beispiel kann die Fabric-Domäne des Die 1101-1 mit der Fabric-Domäne des Die 1101-2 durch Senden und/oder Empfangen von Daten kommunizieren.
  • 17C veranschaulicht ein vollständig verteiltes Mehrfach-Fabric-Verwaltungsschema 1730 zum Verwalten von Spannung und/oder Frequenz in der HPM-Architektur gemäß einigen Ausführungsformen. Das Schema 1730 ist im Vergleich zu jenen, die in 17B verwendet werden, für größere SoCs ausgelegt. Beispielsweise kann ein SoC mit mehr als 300 Rechenkernen mit mehr als 10 Fabric-Domänen das vollständig dezentralisierte Fabric-Leistungsverwaltungsschema 1730 verwenden. Das Schema 1730 führt einen Algorithmus aus, der den Kommunikationsaufwand zwischen der Supervisor-p-Einheit 1702 und den Supervisand-p-Einheiten 1703 reduziert. In einigen Ausführungsformen kommunizieren im Vergleich zum hybriden Mehrfach-Fabric-Verwaltungsschema 1720 hier die Supervisand-p-Einheiten 1703 jedes Dies auch miteinander, um die optimale Spannung und/oder Frequenz für ihre Fabric-Domäne zu finden. Zum Beispiel kommunizieren Supervisand-p-Einheiten 1703 über das Interconnect-Fabric 1707 mit anderen Supervisand-p-Einheiten. In einigen Ausführungsformen sind das erste und/oder das zweite Interconnect-Fabric 110 und 111 und der Schnellreaktions-Interconnect 112 unidirektional und werden kollektiv als 1731 identifiziert. Zum Beispiel werden die Fabrics 110, 111 und der Schnellreaktions-Interconnect 112 verwendet, um Informationen (z.B. Anweisungen) von der Supervisor-p-Einheit 1702 zu den Supervisand-p-Einheiten 1703 zu senden. Das unidirektionale Interconnect-Fabric 1731 reduziert die Netzwerkverbindung zwischen der Supervisor-p-Einheit 1702 und den Supervisand-p-Einheiten. In verschiedenen Ausführungsformen werden Spannung und/oder Frequenz für die Fabric-Domänen für die Supervisand-Dies von den Peer-Fabrics gemeinsam genutzt, die eine Datenschnittstelle gemeinsam nutzen. In einigen Ausführungsformen sind die Fabrics 110 und 111 bidirektional, wie unter Bezugnahme auf 17B besprochen.
  • In einigen Ausführungsformen führt jede Supervisand-p-Einheit 1703 lokale Berechnungen durch, um eine Leistungsstufe (Spannung und/oder Frequenz) für ihre Fabric-Domäne (z.B. Netz aus Knoten 1722 und Interconnects 1723) zu bestimmen. In einigen Ausführungsformen bestimmt die Supervisand-Einheit 103 eine optimale Spannung und/oder Frequenz für ihr Fabric unter Verwendung von mindestens zwei Faktoren - Telemetriedaten und Frequenzauswahlalgorithmen. Telemetriedaten entsprechen einer Arbeitslast, die durch einen oder mehrere Kerne des Supervisand-Die durchgeführt wird, während Frequenzauswahlalgorithmen die Performanz unter einem Leistungsbudget und unter Erfüllung von Latenzeinschränkungen verschiedener Injektoren (z.B. Verkehrsquellen wie etwa E/A-Einrichtungen) des Fabric maximieren. In einigen Ausführungsformen führt die Supervisand-p-Einheit 1703 Spannungsberechnungen für die Fabric-Domäne aus der Frequenz durch. Zum Beispiel verwendet die Supervisand-p-Einheit 1703 eine VF-(Spannung-Frequenz-) Kurve, die lokal in der Supervisand-p-Einheit gespeichert ist, um eine Betriebsspannung für eine bestimmte Frequenz zu bestimmen.
  • In einigen Ausführungsformen werden externe SoC-Leistungsstufengrenzen und Frequenzauflösung für die Fabrics von Supervisand-Dies durch die Supervisor-p-Einheit 1702 bestimmt. In einigen Ausführungsformen wird die Verteilung von gemeinsam genutzten Ressourcen wie dem Leistungsbudget in jedem Fabric unterschiedlich aufgeteilt als: ƒ f a b r i c i = ƒ b a s e , i + β i ƒ r c
    Figure DE102021124514A1_0001
  • Wobei ƒfabrici die die Fabric-Frequenzgrenze für die Supervisand-p-Einheit 1703i ist, ƒbase,i die Basisfrequenz des Fabric ist, die durch die Supervisand-p-Einheit 103 i verwaltet wird, βi ein Skalierungsfaktor ist, bei dem es sich um den Beitrag der globalen Grenze ƒrc handelt, die von der Supervisor-p-Einheit 1702 geliefert wird, und βi ein Skalierungsfaktor zum Umwandeln der Kernfrequenz in eine Fabric-Frequenz oder Netzfrequenz ist. In einigen Ausführungsformen wendet die Supervisor-p-Einheit 1702 Leistungsgrenzen auf Benutzerebene oder anderer Sockelebene auf jede Supervisand-p-Einheit an.
  • In einigen Ausführungsformen ist die Kommunikation zwischen der Supervisor-p-Einheit 1702 und der Supervisand-p-Einheit 1703 unidirektional. In diesem Fall sendet die Supervisor-p-Einheit 102 Leistungsgrenzen an die Supervisand-p-Einheiten 1703. In einigen Ausführungsformen ist die Kommunikation zwischen der Supervisor-p-Einheit 1702 und der Supervisand-p-Einheit 1703 bidirektional. Zum Beispiel sendet die Supervisor-p-Einheit 1702 Leistungsgrenzen an Supervisand-p-Einheiten 1703 und empfängt die aktuelle Betriebsfrequenz von jeder Supervisand-p-Einheit 1703. In einigen Ausführungsformen verwendet die Supervisor-p-Einheit Informationen von Supervisand-p-Einheiten, um eine Beziehung zwischen verschiedenen Fabric-Domänen zu koordinieren. Auch wenn verschiedene Dies einer Kategorie (z.B. Rechen- und E/A-) mit einer gleichen Größe veranschaulicht sind, können die Größen unterschiedlich sein. Beispielsweise sind einige Rechen-Dies in ihrer Größe asymmetrisch, wobei größere Dies für Hochperformanzoperationen angepasst sind und kleinere Dies für Niedrigleistungsoperationen und Operationen mit niedriger Performanz optimiert sind.
  • 18 veranschaulicht ein Flussdiagramm 1800 eines Basis-Fabric-Frequenzauswahlflusses für das zentralisierte Verwaltungsschema aus 17A gemäß einigen Ausführungsformen. In einigen Ausführungsformen sind alle Mechanismen lokal in Bezug auf die Steuerung 102. In einigen Ausführungsformen führt die p-Einheit 102 eine arbeitslastaktivitätsbasierte Frequenzauswahl in Block 1801 durch und löst dann bei Block 1802 verschiedene Einschränkungen auf eine bestimmte gewünschte Frequenz angesichts der Benutzergrenzen 1803 und/oder der physischen Sockelgrenzen 1804 auf. Beispiele für Benutzergrenzen 1803 beinhalten minimale und maximale Frequenz für jede Netzdomäne. Ein Beispiel für eine physische Sockelgrenze 1804 beinhaltet eine Leistungsgrenze für den Sockel.
  • Die Supervisor-p-Einheit 1702 liest Hardware-Performanzzähler (HPCs) von jedem der Fabric-Agenten und empfängt Telemetriedaten von einem oder mehreren Prozessorkernen, Fabric-Komponenten (z.B. Agenten und/oder Knoten) 1722 und/oder dem Fabric-Interconnect 1723. Bei Block 1801 vergleicht die Supervisor-p-Einheit 1702 die HPCs mit einer Schwellengrenze (TH, threshold limit). Falls HPCs größer oder gleich TH sind, dann wird einer der Blöcke 1801b, 1801c, 1801d und 1801e ausgeführt. Falls irgendein HPC die Schwelle TH verletzt, dann gibt dies an, dass starker Verkehr vorliegt, was zu einer Empfehlung der Frequenzerhöhung um eine vorbestimmte Schrittweite bei Block 1801b führt.
  • Liegen alle HPCs unterhalb der Schwelle, so deutet dies auf ein geringes Verkehrsaufkommen hin und es wird bei Block 1801c eine Frequenzabnahme einer festen Schrittweite empfohlen. In einigen speziellen Fällen geben bestimmte Zähler Latenz an, wenn solche Zähler verletzt werden, und es wird bei Block 1801e empfohlen, dass die Frequenz auf den maximal möglichen Wert erhöht wird. Dies wird auch als Raketenmechanismus bezeichnet. In allen anderen Fällen wird keine Änderung der Frequenz empfohlen, was durch Block 1801d angezeigt wird. Die Grundprüfungen auf Frequenzempfehlung durchlaufen bei Block 1801g einen Hysteresemechanismus, um Oszillationen und jegliche Performanzeinbußen des Durchführens dynamischer Spannungs- und Frequenzskalierung (DVFS) zu vermeiden. In verschiedenen Ausführungsformen werden die Sockel- und Benutzergrenzen auch beim Auflösen auf eine endgültige Frequenzempfehlung für das Fabric berücksichtigt.
  • 19 veranschaulicht ein Kommunikations-Fabric 1900 für eine Datenverarbeitungsvorrichtung, wobei das Kommunikations-Fabric eine Zwischenverbindungsregion beinhaltet, gemäß einigen Ausführungsformen. Wie vorliegend besprochen, kann ein Fabric so definiert sein, dass es einen bekannten Satz von Quellen, Zielen, Routing-Regeln, Topologie und anderen Eigenschaften aufweist. Bei den Quellen und Zielen kann es sich um eine beliebige Art von mit Daten arbeitender Funktionseinheit handeln. Das Kommunikations-Fabric in diesem Beispiel umfasst einen ersten Die 1901-1 (z.B. Diel 101-01) und einen physisch getrennten zweiten Die 1901-2 (z.B. Die2 101-02). In diesem Beispiel weist der erste Die 1901-1 einen Komponentenknoten 1922 (z.B. 1722) und acht weitere Komponentenknoten auf. Beispiele für Komponentenknoten beinhalten einen Kernagenten, eine Speichersteuerung und einen Eingabe-Ausgabe-Agenten. Drei der neun Komponentenknoten 1922, 1924, 1926 befinden sich an einer Peripherie des ersten Die 1901-1, wo dieser eine Schnittstelle mit dem zweiten Die 1901-2 bildet. Der Komponentenknoten 1922 auf dem ersten Die 1901-1 kommuniziert mit einem entsprechenden Komponentenknoten 1932 auf dem zweiten Die 1901-2 über einen ersten Interconnect 1930a, der an der Die-Grenze bereitgestellt ist. An der Die-Grenze sind zwei weitere Interconnects 1930b und 1930c vorhanden. Bei diesem Beispiel sind der erste Die 1901-1 und der zweite Die 1901-2 gleich groß und jeder Die-Grenzen-Komponentenknoten 1922, 1924, 1926 weist einen entsprechenden Interconnect auf, in alternativen Beispielen können jedoch nur einer oder zwei (d.h. eine Teilmenge) der Peripheriekomponentenknoten an einer Die-Grenze mit Interconnects versehen sein.
  • Der erste Die 1901-1 und der zweite Die 1901-2 können eine entsprechende Phasenregelschleife (PLL) oder Frequenzregelschleife (FLL) 1942a, 1942b und einen Spannungsregler (VR) 1944a, 1944b aufweisen. In verschiedenen Ausführungsformen beinhalten die VRs 1944 a, 1944 b einen integriertem VR (IVR), einen Low-Dropout-Regler (LDO) und/oder Schalt-DC-DC-Regler usw. In einigen Ausführungsformen kann es eine einzige Taktquelle für ein gesamtes Fabric 1900 geben, so dass die Betriebsfrequenz für alle Komponentenknoten und Datenkommunikationskanäle (z.B. Drähte) des Fabric 1900 gleich sein kann. Die einzelnen PLLs und/oder FFLs können jedoch verwendet werden, um unterschiedliche Interconnect-Domänen innerhalb des Fabric 1900 zu erzeugen, in denen Betriebsfrequenz und Spannung des Fabric domänenweise steuerbar sind. Es wird angemerkt, dass die Betriebsfrequenz und Spannung von Knoten und eines Netzes des Fabric möglicherweise nicht mit den Betriebsfrequenzen und Spannungen des Kerns und Speichers, die über das Netz verbunden sind, in Beziehung stehen.
  • In einigen Ausführungsformen stellen die Interconnects 1930a, 1930b, 1930c eine elektrische Verbindung zwischen den zwei physisch unterschiedlichen Dies 1901-1, 1901-2 an ihrer Grenze bereit und können wenigstens Daten-Lanes und Takt-Lanes und optional Steuer-Lanes bereitstellen. Ein Senderschaltkreis (nicht gezeigt) eines Die kann über einen oder mehrere der Interconnects 1930a, 1930b, 1930c mit einem Empfängerschaltkreis (nicht gezeigt) des angrenzenden Die verbunden sein. Die Kommunikation zwischen den zwei Dies über das Fabric kann unidirektional, bidirektional oder beides sein. Der eine oder die mehreren Sender und Empfänger können in einem oder mehreren der Dies 1901-1, 1901-2 und/oder in den Interconnects 1930a, 1930b, 1930c bereitgestellt sein.
  • Beispiele für Agenten, die mit einem beliebigen Komponentenknoten des Kommunikations-Fabric 1900 verbunden sein können, um einen Hardwareprozessor zu bilden, sind eine Speichersteuerung, ein Prozessor, ein Last-Level-Cache (LLC), eine Cacheschaltung, eine Decodiereinheit und dergleichen. Auch wenn die Ausführungsformen den ersten und den zweiten Die 1901-1, 1901-2 gleich groß veranschaulichen, können diese Dies miteinander verbundene Dies unterschiedlicher Größe, Leistung und/oder Funktion sein. Des Weiteren können mehr als zwei Dies miteinander verbunden sein, um ein Verarbeitungs-Package zu bilden, wie unter Bezugnahme auf 1 beschrieben.
  • Ein einzelnes SoC kann einen einzelnen Die umfassen, der mehrere Komponenten, wie etwa mehrere Kerne und zugehörigen Speicher, umfasst, oder alternativ kann ein SoC zwei oder mehr verschiedene Dies verwenden, um die zahlreichen Komponenten zu hosten. Eine Datenverarbeitungseinrichtung gemäß der vorliegenden Methode kann zwei oder mehr Rechensockel umfassen. Daten können über das Fabric 1900 über Pakete gemäß einem Routing-Algorithmus kommuniziert werden, so dass zum Beispiel Pakete zuerst vertikal von einer Quellkomponente zu einer Zielkomponente an einem anderen Ort auf dem Fabric geleitet werden können und dann horizontal geleitet werden können. In einigen Ausführungsformen kann jede Komponente 1922 des Fabric einem konvergierten/gemeinsamen Netzstopp (CMS, converged/common mesh stop) entsprechen, der eine Schnittstelle zwischen einem Agenten, wie etwa einem Kern- oder Speichersteuerungs- oder einem Eingabe-Ausgabe-Agenten, und dem Fabric 1900 ermöglicht.
  • Die Dies 1901-1, 1901-2 können eine Ausführungsschaltungsanordnung zum Ausführen von Programmanweisungen umfassen und können ferner eine Last-Level-Cache-(LLC-) Komponente umfassen. LLC ist ein gemeinsam genutzter Cache höchster Ebene, der aufgerufen werden kann, bevor auf den Speicher zugegriffen wird, und er kann in mehrere unabhängig zugängliche Komponenten aufgeteilt sein. Der LLC kann von mehreren Kernen auf einem Rechensockel gemeinsam verwendet werden, der aus einer Vielzahl von Dies gebildet ist.
  • Die Dies 1901-1, 1901-2 des Kommunikations-Fabric 1900 weisen in diesem Beispiel jeweils eine zweidimensionale (2D-) Netz-Interconnect-Topologie aus Datenkommunikationskanälen auf. Das Fabric kann eine alternative Topologie aufweisen, wie etwa eine Ringtopologie oder eine Bustopologie. In einigen Ausführungsformen ist das Netz aus 19 ein Fabric, das ein zweidimensionales (2D-) Array von Halbringen umfasst, die ein systemweites (z.B. SoC-weites) Interconnect-Gitter aus Datenkommunikationskanälen bilden. In einigen Ausführungsformen bildet jede vertikale Spalte von Komponenten einen bidirektionalen Halbring und gleichermaßen bildet jede horizontale Reihe einen bidirektionalen Halbring. Dies ermöglicht, dass Komponenten, wie etwa die Komponente 1922, Verbindungen zu einer beliebigen anderen Komponente des Fabric 1900 aufweisen, die durch beliebige der Reihen und Spalten des Netzes verlaufen und einen kürzesten Weg zwischen beliebigen zwei Komponenten ermöglichen. Dies kann Latenz reduzieren und Bandbreite gegenüber alternativen Fabric-Topologien, wie etwa Ringtopologien, verbessern.
  • Falls zum Beispiel der Komponentenknoten 1924 einen CMS aufweist, der mit einem Kernagenten (Einzelkern) verbunden ist, und der Komponentenknoten 1934 einen CMS aufweist, der mit einem Speichersteuerungsagenten verbunden ist, dann können Datenpakete von dem Kernagenten zu dem Speichersteuerungsagenten vertikal zu der Komponente 1926 und dann horizontal zu dem Komponentenknoten 1934 über den Interconnect 1930b geleitet werden. Ein Rückweg kann sich von dem Hinweg unterscheiden, da in diesem Beispiel ein vertikales Leiten vor einem horizontalen Leiten erfolgt. Es wird angemerkt, dass ein einziger Die 1901-1 mehrere Agenten für Berechnung, E/A und/oder Speichersteuerung umfassen kann.
  • Ein Prozessorkern ist eine unabhängige Ausführungseinheit, die einen Programmthread z.B. parallel zu anderen Kernen ausführen kann. Ein Die ist ein einzelnes kontinuierliches Stück Halbleitermaterial (z.B. Silicium), 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. Ein einzelnes Fabric kann mehrere Dies überspannen, aber in diesem Fall sind die Die-Grenzen mit einem Interconnect-Mechanismus versehen, der dazu eingerichtet ist, eine Latenz für eine Datenkommunikation zwischen Komponentenknoten 1922, 1932 über die Die-Grenze hinweg bereitzustellen, die zumindest nahe einer Latenz ist, die zwischen verschiedenen Komponenten auf demselben Die über das Netz erreichbar ist.
  • In dieser Beschreibung kann der Ausdruck „Die“ ein physisch eigenständiger Halbleiter-Die sein, aber ein Die, der mit einem angrenzenden Die auf eine Weise verbunden ist, die ermöglicht, dass das Fabric über die Die-Grenze hinweg wie ein einziges Fabric anstatt als zwei getrennte Fabrics fungiert. Somit können zumindest manche Dies Dielets sein. Dem kann zum Beispiel ein Doppelprozessorsystem gegenübergestellt werden, bei dem zwei unterschiedliche Fabrics über eine Brücke in einem einzigen Package verbunden sind, wobei die Brücke eine Punkt-zu-Punkt-Interconnect-Brücke ist, deren Latenz niedriger als die netzinterne Latenz eines der beiden unterschiedlichen Fabrics ist. Die Fabric-interne Latenz ist sehr gering im Vergleich zu einer Latenz, die über eine Brücke (oder dergleichen) erreichbar ist, die zwei physisch getrennte Fabrics verbindet. Wenn ein „einzelnes Fabric“ Die-Grenzen überspannt, ist zu erwarten, dass eine Latenz des Interconnect bei oder nahe der Fabric-internen Latenz liegt. Die Fabric-interne Bandbreite ist zudem wahrscheinlich höher als eine Fabric-interne Bandbreite über eine Brücke, aber die Bandbreite hängt auch von einer Anzahl von Verbindungsdrähten ab, während dies für Latenz nicht gilt.
  • Während die Interconnects 1930a, 1930b und 1830c für zweidimensionale (2D-) Architekturen gezeigt sind, können sich die Interconnects zwischen vertikalen und/oder horizontalen Stapeln befinden, die eine dreidimensionale (3D-) Fabric-Topologie bilden.
  • 20 veranschaulicht einen Graphen 2000, der eine Variation sowohl einer Netzleistung in beliebigen Einheiten(a.u., arbitrary units) als auch eines Aktivitätsfaktors (AF) mit Fabric-Betriebsfrequenz in Gigahertz (GHz) zeigt, gemäß einigen Ausführungsformen. Der AF gibt eine durchschnittliche Anzahl an Schaltereignissen an, die an Transistoren in einem SoC erfolgt, und ist eine dimensionslose Größe. Die Kurve 2022 mit Dreiecks-Datenpunkten zeigt einen Verlauf der IO-Netzleistung in a.u. mit der Frequenz in GHz und es ist ein Trend dahingehend zu erkennen, dass die Leistung von etwa 0,6 a.u. für eine Fabric-Betriebsfrequenz von 1 GHz auf etwa 0,84 a.u. für eine Fabric-Betriebsfrequenz von 2 GHz nichtlinear ansteigt. Die Kurve 2024, die durch quadratische Datenpunkte verläuft, zeigt einen Verlauf des AF mit der Fabric-Betriebsfrequenz derart, dass der Aktivitätsfaktor bei einer Betriebsfrequenz von 1 GHz etwa sechs und bei 2 GHz drei beträgt. Der AF nimmt dabei mit zunehmender Frequenz nichtlinear ab. Der AF ist ein Indiz für die Fabric-Nutzung.
  • Der Leistungsverbrauch des Fabric in einem E/A-Die (z.B. einem Typ von mit Daten arbeitender Funktionseinheit) für Standard-Performance-Evaluation Corporation-(SPEC-) Arbeitslasten bei einer Frequenz von 2,2 GHz beträgt etwa 0,96 a.u. SPEC-Arbeitslasten werden weit verbreitet zur Beurteilung der Performanz von Computersystemen eingesetzt. Bei gleicher Frequenz ist der AF für das Fabric im E/A-Die kleiner als 0,3. Dies bedeutet, dass durch eine Reduzierung einer Betriebsfrequenz des Fabric von 2,2 GHz auf 800 MHz der Leistungsverbrauch um etwa 0,4 a.u. reduziert werden kann. Die gleiche Frequenzabnahme erhöht den AF. Aber auch bei einer niedrigen Frequenz von 800 MHz liegt der Aktivitätsfaktor unter 0,8. Daher ist es gemäß diesen Simulationsergebnissen möglich, 0,4 a.u. Leistung mit wenig oder keiner negativen Performanzbeeinträchtigung einzusparen. Für Arbeitslasten mit noch geringerem Aktivitätsfaktor kann man die Frequenz unter die 800 MHz-Grenze aus 20 reduzieren und mehr als 0,4 a.u. Leistungseinsparung erhalten. Leistungsverbrauch und AF sind sowohl arbeitslastabhängig als auch frequenzabhängig.
  • 21 veranschaulicht ein Chipsystem (SoC) 2100 mit 6 Dielets, die durch Interconnect-Grenzen verbunden sind, wobei das SoC ein einziges Fabric beinhaltet, das entlang der Dielet-Grenzen in Domänen unterteilt ist, gemäß einigen Ausführungsformen. In diesem Beispiel beinhaltet das SoC 2100 sechs „Dielets“ (z.B. 2104-1, 2104-2, 2101-1, 2101-2, 2101-3, 2101-4), die durch Interconnect-Grenzen verbunden sind, die Kommunikation zwischen Dielets mit einer ähnlichen Latenz wie Dielet-interne Kommunikation ermöglichen. Ein einzelner Dielet kann einen Kern oder mehrere Kerne umfassen, die auf mehreren jeweiligen Fabric-Knoten bereitgestellt sind, und kann ferner andere Komponenten eines „CPU-Systems“, wie etwa Speicher, Fabric und dergleichen, umfassen.
  • Ein erster Dielet 2104-1 umfasst mehrere E/A-Kerne 2114, 2116 und eine erste Leistungsverwaltungseinheit (p-Einheit) 2102 (z.B. 102). Ein zweiter Dielet 2101-1 umfasst mehrere Prozessorkerne (nicht gezeigt) an jeweiligen Knoten des Netz-Fabric innerhalb des Dielet und mindestens einen Speichersteuerungsagenten an einem anderen Knoten, um Zugriff auf einen Speicher 2128 bereitzustellen, der angrenzend an den Dielet gezeigt ist, und umfasst ferner eine zweite Leistungsverwaltungseinheit 2102. Eine beliebige Anzahl von Kernen kann auf einem Prozessor- (oder Rechen-) Dielet, wie etwa dem ersten Dielet oder dem zweiten Dielet, zusammen mit weiteren Agenten an Knoten des Fabric bereitgestellt sein. Ähnlich wie der zweite Dielet 2101-1 umfassen ein dritter Dielet 2101-2, ein vierter Dielet 2101-3 und ein fünfter Dielet 2101-4 in diesem Beispiel jeweils mehrere Prozessorkerne und Speichersteuerungsagenten und jeder Dielet weist eine jeweilige lokale Leistungsverwaltungseinheit 2103 (z.B. 103) auf. In einigen Ausführungsformen sind einer oder mehrere der Dielets (z.B. E/A-Die 2104-1 und Die-1 2101-1) Supervisor-Dielets mit Supervisor-p-Einheiten, während die anderen Dielets Supervisand-Dielets mit Supervisand-p-Einheiten sind.
  • Jeder der vier Prozessor-Dielets 2101-1, 2101-2, 2101-3, 2101-4 weist einen jeweiligen Speicher-Dielet 2128, 2138, 2148, 2158 an der einen seiner vier Grenzen auf, an der er nicht mit einem benachbarten Prozessor-Dielet oder E/A-Dielet 2104-1, 2104-2 verbunden ist. Bei diesem Beispiel ist der sechste Dielet 2104-2 unten im Plan ein Spiegelbild des ersten Dielets 2104-1 und umfasst zudem mehrere E/A-Kerne 2124 und 2126 und eine sechste Leistungsverwaltungseinheit 2102. Jedem der sechs Dielets ist eine lokale Energieverwaltungseinheit 105 zugeordnet, die an dem jeweiligen Dielet bereitgestellt ist.
  • Jeder der sechs Dielets kann einen dedizierten VR und PLL (ähnlich den in 19 gezeigten Dies) aufweisen, die durch eine oder mehrere Leistungssteuereinheiten gesteuert werden können, um eine Betriebsfrequenz des Fabric des entsprechenden Dielets über DVFS dynamisch zu ändern. Bei diesem Beispiel ist jeder der Prozessor-Dielets mit einem Fabric-Interconnect und einem Puffer an den drei der vier Kanten des Dielet versehen, die nicht mit dem Speicher-Dielet 2128, 2138, 2148, 2158 verbunden sind.
  • Bei den vorbekannten Server-SoCs wird ein einzelnes Kommunikations-Fabric trotz der Verfügbarkeit von PLLs und VRs auf einzelnen Dielets mit einer gegebenen Betriebsfrequenz (f) und Spannung (V) betrieben, die über mehrere physische Dielets verteilt sind. Die einzelne Spannungs- und Frequenz- (V-f-) Domäne, die mehrere physische Dielets überspannt, wurde aufgrund von Hardware-Architekturabhängigkeiten ausgewählt. Die globale V-f würde basierend auf einer Leistungsverwaltungseinheit ausgewählt werden, die mehrere Eingaben überwacht, die vom gesamten SoC kommen. Beispielhafte Eingaben, die zum Bestimmen der globalen Leistungsstufe verwendet werden, können einen oder mehrere Performanzzähler, eine Perf-p-Grenze, Kundeneingriffe an modellspezifischen Registern (MSR), eine Sockelwärmegrenze und einen laufenden Leistungsgrenzendurchschnitt (RAPL) beinhalten. Die Zielfrequenz könnte basierend auf einer maximalen angeforderten Frequenz über alle Prozessorkerne auf dem SoC hinweg ausgewählt werden, wenngleich andere Einschränkungen wie Temperatur und Leistung bedeuten könnten, dass eine angeforderte Zielfrequenz nicht durch die Leistungsverwaltungseinheit gewährt wird.
  • Betreiben bei einer einzigen V-F über das gesamte SoC-Fabric bedeutet jedoch Implementieren eines eng gekoppelten Architekturflusses, um V-f über alle Dielets des SoC hinweg auf koordinierte Weise zu ändern. Eine enge Koordination aller PLLs und VRs über die Fabric-Partitionen hinweg führt zu komplexen globalen Architekturflüssen. Des Weiteren kann eine einzelne v-f-Domäne große Teile von Fabric einschränken, basierend auf der vorherrschenden Arbeitslast des jeweiligen Fabric-Abschnitts mit höherer V-F als benötigt zu laufen, was einen Leistungsverlust und eine verringerte Performanz verursacht. Es ist möglich, verbesserte Leistungs- und Performanzoptimierungen für ein SoC zu erhalten, indem mehrere verschiedene v-f-Domänen unter inhomogener Fabric-Verkehrsverteilung verwendet werden.
  • Eine Abschreckung, unterschiedliche Leistungsstufen- (V-f-) Domänen auf einem einzigen Kommunikations-Fabric zuzulassen, beruht jedoch auf der Herausforderung des Verwaltens von Latenz, die potenziell auftreten kann, wenn Daten von einem Dielet mit höherer Betriebsfrequenz zu einem Dielet mit niedrigerer Betriebsfrequenz kommuniziert werden (d.h. wenn es eine Frequenzinkongruenz gibt). Eine weitere Herausforderung besteht darin, einen unbeabsichtigten Datenverlust aufgrund von Abweichungen der Betriebsfrequenzen zwischen verschiedenen Dielets zu verhindern. Eine Option zum Kompensieren der Frequenzinkongruenz zwischen verschiedenen Fabric-Domänen könnte darin bestehen, einen asynchronen FIFO- (first in first out) Puffer an Dielet-Schnittstellen zu implementieren. Ein solcher asynchroner FIFO kann jedoch zu einer Latenz von zwei bis drei Zyklen führen, die bei manchen, aber nicht allen Implementierungen aufgrund von Konsequenzen einer verringerten Performanz des einzelnen gemeinsam genutzten Fabric inakzeptabel hoch sein könnten. Ein asynchroner FIFO bezieht sich auf eine FIFO-Ausgestaltung, bei der Datenwerte aus einer Taktdomäne in einen FIFO-Puffer geschrieben werden und die Datenwerte aus demselben FIFO-Puffer aus einer anderen Taktdomäne gelesen werden, wobei die beiden Taktdomänen asynchron zueinander sind.
  • In einigen Ausführungsformen wird eine Methode bereitgestellt, um zu ermöglichen, dass ein einzelnes Fabric in zwei oder mehr Fabric-Domänen unterteilt wird, deren Performanzstufen (z.B. Betriebsfrequenz) unabhängig eingestellt und auf inkongruente Werte eingestellt werden können. Zum Beispiel kann eine erste Fabric-Domäne Datenkommunikationskanäle zwischen einer ersten Teilmenge von mit Daten arbeitenden Funktionseinheiten bereitstellen und eine zweite, andere Fabric-Domäne kann eine zweite, andere Menge von mit Daten arbeitenden Funktionseinheiten der Datenverarbeitungsvorrichtung bereitstellen. Eine Fabric-Domäne kann alle mit Daten arbeitenden Funktionseinheiten auf einem Rechen-Die umfassen und eine andere Fabric-Domäne kann alle mit Daten arbeitenden Funktionseinheiten auf einem E/A-Die umfassen. Alternativ dazu können mit Daten arbeitende Funktionseinheiten von verschiedenen physischen Dielets als Teil derselben Fabric-Domäne gruppiert werden. Dieses Mehrdomänen-Fabric kann auf eine Weise implementiert werden, die Latenz reduziert und dennoch unbeabsichtigten Verlust von Daten vermeidet, die ansonsten aus Frequenzinkongruenzen über Fabric-Domänengrenzen hinweg resultieren könnten. In einigen Ausführungsformen ist an jeder der Dielet-Grenzen in dem SoC 2100 eine (nicht gezeigte) Rückflusssteuerschaltungsanordnung in der Fabric-Interconnect- und Puffereinheit 2126 bereitgestellt, die ein Puffern von Daten zur Übertragung an einen Dielet, der mit einer niedrigeren Frequenz arbeitet, von einem Dielet, der mit einer höheren Frequenz arbeitet, ermöglicht. Eine beispielhafte Implementierung der Rückflusssteuerschaltungsanordnung ist schematisch in 23 veranschaulicht.
  • Unter erneuter Bezugnahme auf 21 kann in dem SoC 2100 jeder der sechs Dielets 2101-1, 2101-2, 2101-3, 2101-4, 2104-1, 2104-1 unabhängig eingestellt werden, um mit einer geeigneten Betriebsfrequenz (oder einer anderen Performanzstufe) für die entsprechende Fabric-Domäne zu arbeiten. Falls also zum Beispiel ein aktuelles Arbeitslastniveau des fünften Dielets 2101-4 niedriger als eine Arbeitslast des dritten Dielets 2101-2 ist, dann kann die fünfte Leistungssteuereinheit 2103 (von 2101-4) eine Betriebsfrequenz des fünften Dielets 2101-4 so festlegen, dass sie höher als eine Betriebsfrequenz des dritten Dielets 2101-2 ist. Falls somit Daten über das Fabric von dem fünften (höherfrequenten) Dielet 2101-4 zu dem dritten (niederfrequenten) Dielet 2101-2 übertragen werden sollen, dann wird die Rückflusssteuerschaltungsanordnung in der Fabric-E/A- und Puffereinheit 2156 eine Datenflussrate der Übertragung steuern und wird anstehende Daten puffern, indem sie die Daten im Fabric des fünften Dielet 2101-4 rezirkuliert, wodurch ein Datenverlust verhindert wird.
  • 21 zeigt sechs verschiedene Zwischenverbindungsdomänen des Fabric mit unterschiedlichen Performanzstufen (Vi-fi), um mit sechs jeweiligen verschiedenen Die-Grenzen übereinzustimmen. In alternativen Anordnungen können die Zwischenverbindungsdomänen des Fabric jedoch innerhalb eines einzelnen Dielets gebildet sein oder Partitionen, die die unterschiedlichen Domänen abgrenzen, können zwei oder mehr Dielets auf eine Weise überspannen, die nicht mit Dielet-Grenzen zusammenfällt. Unterschiedliche Zwischenverbindungsdomänen können auf eine Vielzahl unterschiedlicher Weisen gebildet werden, vorausgesetzt, dass eine Schaltungsanordnung verfügbar ist, um eine Frequenz und Spannung jeder Zwischenverbindungsdomäne unabhängig einzustellen. Unterschiedliche Fabric-Domänen können Datenkommunikationskanäle für jeweilige unterschiedliche Teilmengen von mit Daten arbeitenden Funktionseinheiten bereitstellen, die durch ein einziges Fabric verbunden sind. Eine Teilmenge kann eine oder mehrere mit Daten arbeitende Funktionseinheiten umfassen, die an einem Komponentenknoten eines Fabric installiert sind, wie etwa eines Fabric mit einer Netztopologie.
  • Das SoC 2100 mit mehreren Kernen, Speicher, Fabric und E/A, die auf mehreren verschiedenen Dielets bereitgestellt sind, kann als „Rechensockel“ bezeichnet werden. Zwei oder mehr Rechensockel können durch elektrische Verbinder, wie etwa Kupferdrähte, miteinander verbunden sein, um eine Datenverarbeitungsvorrichtung zu bilden. Verbindungen zwischen den Rechensockeln haben wahrscheinlich gegenüber Kommunikationskanälen innerhalb des einzelnen Fabric eines gegebenen Rechensockels eine hohe Latenz.
  • Jeder Datenverkehr, der durch das einzelne Kommunikations-Fabric des SoC 2100 fließt, bemerkt möglicherweise die sechs verschiedenen Fabric-Domänen nicht. Wenn zwei benachbarte Fabric-Domänen mit unterschiedlichen Frequenzen arbeiten, ist es möglich, versehentlich einen Verkehrsengpass in einer langsamen Fabric-Domäne zu verursachen, indem zuviel Verkehr von einer schnelleren Fabric-Domäne zu schnell in diese übertragen wird. Dies kann zu Verlust von Daten führen, die übertragen werden, aber beim Empfang nicht schnell genug verarbeitet werden können. Um einen solchen Datenverlust zu verbessern, wird gemäß einigen Ausführungsformen ein dynamischer Gegendruckdrosselmechanismus implementiert, um Verkehr zu steuern, der von einer schnelleren Fabric-Domäne in eine langsamere Fabric-Domäne geht. Steuerparameter des Drosselmechanismus werden in Abhängigkeit von einer Größe einer Frequenzdifferenz zwischen den beiden Fabric-Domänen bestimmt.
  • Betrachtet werden zwei unterschiedliche Fabric-Domänen, eine als „lokaler Die“ bezeichnete Fabric-Domäne, die ein Sender (Tx) ist, und eine andere unterschiedliche Fabric-Domäne, die als „entfernter Die“ bezeichnet wird und die ein Empfänger (Rx) ist. Ein interessanter Fall mit Verkehrsverlustpotential kann auftreten, wenn das Tx-Fabric schneller arbeitet als das Rx-Fabric. Unter Verwendung einer Rückflusssteuerschaltungsanordnung gemäß der vorliegenden Methode zum Durchführen einer Drosselung von Daten, die übertragen werden, wird ein EIN/AUS-Angebot von Transaktionen implementiert und ein Zähler wird basierend auf einer „Arbeitszyklus“-Wellenform eingerichtet. Dies ermöglicht, dass Datentransaktionen in der EIN-Phase angeboten werden, aber nicht in der AUS-Phase. Mit anderen Worten können Datenpakete von dem lokalen Die zu dem entfernten Die in der EIN-Phase kommuniziert werden, wohingegen in der AUS-Phase keine Kommunikation von Datenpaketen erlaubt ist. Somit gilt:
    • Arbeitszyklus (DC, duty cycle) EIN: In diesen Taktzyklen Datenpakete senden; und
    • Arbeitszyklus (DC) AUS: In diesen Taktzyklen keine Datenpakete senden.
  • Falls ein Paket von Tx zu Rx in einem Zyklus gesendet wird (DC EIN = 1), dann kann ein DC EIN bestimmt werden, d.h. wie viele Zyklen das Senden des Verkehrs unterdrückt wird, nachdem der Verkehr für einen Zyklus gesendet wurde. Die Taktzyklen von DC EIN und DC AUS sind Taktzyklen des lokalen (höherfrequenten) Die. Wenn beispielsweise DC EIN eins ist und DC AUS zwei ist, ist der Bruchteil der Zeitpakete, die gesendet werden, gleich 1/3 und der Bruchteil der Zeit, in der die Pakete nicht gesendet werden, ist gleich 2/3. Es wird angemerkt, dass es für jede neue Kombination der Tx- und Rx-Frequenzen angemessen ist, einen neuen Arbeitszykluswert zu berechnen. Dies macht die Arbeitszyklusbestimmung nichttrivial. Gemäß einigen Ausführungsformen wird eine beispielhafte Implementierungs einer Arbeitszykluswertbestimmung bereitgestellt und eine Hardwareapproximierung mit geringem Aufwand der Arbeitszyklusbestimmung wird ebenfalls bereitgestellt. Die Hardwareapproximierung wird durch die in 23 veranschaulichte Rückflusssteuerschaltungsanordnung implementiert.
  • Um den Arbeitszyklus-Wert zu bestimmen, sei eine Frequenz des Fabric mit „xratio“ bezeichnet. In einem Beispiel impliziert die Einheit des Verhältnisses eine Frequenz von 100 MHz. Daher impliziert ein Verhältnis von 20 eine Frequenz von 2000 MHz oder äquivalent 2 GHz.
  • 22 veranschaulicht eine Tabelle 2200, die berechnete Werte von DC AUS zum Durchführen einer Datendrosselung für einen Bereich von Senderfrequenzen eines lokalen Die und einen Bereich von Empfängerfrequenzen eines entfernten Die in einem einzigen Fabric mit wenigstens zwei Leistungsstufenomänen zeigt, gemäß einigen Ausführungsformen. Tabelle 2200 zeigt eine dezimale Anzahl von DC-AUS-Zyklen für einen „idealen“ Drosselmechanismus. Wenn xratioRx ≥ xratioTx , sollten die Pakete nicht versehentlich fallengelassen werden (in der Tabelle 2200 als ein Datenkreuzpunkt gezeigt). Dies deutet daraufhin, dass DC AUS Null sein sollte. Wenn jedoch xratioRx < xratioTx , überträgt der Tx-Die Pakete in jedem DC-EIN = 1-Zyklus und dann ist es zweckmäßig, die Übertragung für eine Anzahl von DC-AUS-Zyklen zu stoppen, die wie folgt berechnet werden können: D C O F F = x r a t i o T x x r a t i o R x x r a t i o R x
    Figure DE102021124514A1_0002
  • Da jedoch Drosseln von Daten zur Übertragung bei einer Granularität einer vollen Anzahl von Taktzyklen implementiert wird, werden beliebige Bruchteilzahlen für DC AUS auf volle ganze Zahlen gerundet. Tabelle 2200 veranschaulicht schematisch berechnete Werte von DC AUS basierend auf Gleichung (1) oben für einen Bereich von Tx-Frequenzen des lokalen Die von xratioTx von 4 bis 35 (entspricht 400 MHz bis 3,5 GHz) und einen Bereich von Rx-Frequenzen des entfernten Die von xratioRx von 4 bis 35. Die Einträge der Tabelle 2200 in der unteren Diagonalregion entsprechen alle der Tx-Frequenz, die die Rx-Frequenz übersteigt, und die numerischen Einträge in der unteren linken Diagonale entsprechen einer Anzahl von DC-AUS-Zyklen, wie aus Gleichung (1) vor dem Runden auf die nächste ganze Zahl berechnet. Je größer die Diskrepanz zwischen der Tx-Frequenz und der Rx-Frequenz ist, desto größer ist die Anzahl an DC-AUS-Zyklen, die angemessen ist.
  • Auch wenn Gleichung (1) in Hardware implementiert werden könnte, um die angemessene Drosselung von Daten durchzuführen, ist das Implementieren einer Unterteilung in Hardware rechenaufwendig. Des Weiteren könnte eine Decodierlogik, die implementiert würde, um Tx- auf Rx-Die-Frequenzverhältnisse gemäß Gleichung (1) abzubilden, komplex sein. Des Weiteren kann das Implementieren von Gleichung (1) in Hardware eine schlechte Skalierbarkeit zeigen, wenn Rx und Tx zunehmen. Eine effizientere und weniger komplexe Berechnung kann in Hardware durchgeführt werden, indem die DC-AUS-Berechnung von Gleichung (1) unter Verwendung einer Rechtsverschiebung anstelle einer Division approximiert wird. Dies ist sinnvoll, da die Verschiebeoperation eine gute Näherung liefert und dennoch weniger rechenaufwendig ist als eine Division. Gemäß einer Implementierung wird Gleichung (1) gemäß folgender Gleichung approximiert: D C O F F = ( x r a t i o T x x r a t i o R x ) » y + o f f s e t w h e r e , y = f l o o r ( l o g 2 x r a t i o R x )
    Figure DE102021124514A1_0003
  • Wenngleich E/A-Dies 2104-1 und 2104-2 als dieselben V/F-Punkte aufweisend veranschaulicht sind, können die E/A-Dies 2104-1 und 2104-2 bei manchen Ausführungsformen unterschiedliche Frequenzpunkte aufweisen, die eine optimierte Kommunikation zwischen Rechen-Dies und E/A-Dies ermöglichen.
  • 23 veranschaulicht eine beispielhafte Implementierung einer Rückflusssteuerschaltungsanordnung 2300, die eine Schnittstelle zwischen zwei verschiedenen Fabric-Domänen bereitstellt, die bei verschiedenen Frequenzen arbeiten, gemäß einigen Ausführungsformen. Hierbei repräsentiert die Rückflusssteuerschaltungsanordnung 2300 eine Hardware-Implementierung von Gleichung (2). In einigen Ausführungsformen weist die Rückflusssteuerschaltungsanordnung 2300 einen Subtrahierer 2310, einen Prioritätscodierer 2320, eine Verschieberschaltungseinheit 2330, einen Addierer 2340 und eine Arbitrierungsschaltungsanordnung 2350 auf. In einigen Ausführungsformen ist der Prioritätscodierer 2320 eine digitale Schaltung, die einen Index des höchstwertigen Bits auswählt, das ‚1‘ in einer Binärzahl ist. Zum Beispiel wird der Prioritätscodierer 2330 in einer Binärzahl 01001 eine Ausgabe von 3 geben. Somit wird für y=3 eine Division durch 23 durchgeführt, wobei die Differenz des Tx-Verhältnisses und des Rx-Verhältnisses in Gleichung (2) nach rechts verschoben wird. In einigen Ausführungsformen empfängt der Subtrahierer 2310 ein Sechs-Bit-Tx-Verhältnis (xratioTX ) als eine erste Eingabe und subtrahiert von diesem Wert ein Sechs-Bit-Rx-Verhältnis (xratioRx ) und gibt ein Ergebnis dieser Subtraktion als Eingabe an die Verschieberschaltungseinheit 2330 aus.
  • In einigen Ausführungsformen führt die Verschieberschaltungseinheit 2330 eine Rechtsverschiebung des Subtraktionsergebnisses um eine ganzzahlige Anzahl y von Bitpositionen durch und liefert den verschobenen Differenzwert an den Addierer 2340. Die Ganzzahl y, die dem Betrag der Rechtsverschiebung entspricht, wird durch den Prioritätscodierer 2320 in Abhängigkeit von dem Sechs-Bit-Rx-Verhältnis (xratioRx ) berechnet, das als Eingabe an den Prioritätscodierer geliefert wird. In einigen Ausführungsformen empfängt der Addierer 2340 eine erste Eingabe, die dem nach rechts verschobenen Differenzwert entspricht, der durch die Verschieberschaltungsanordnung 2330 ausgegeben wird, und eine zweite Eingabe in den Addierer ist ein Achtbit-Versatz mit einem Wert größer als oder gleich eins.
  • In einigen Ausführungsformen wird der Versatzwert bereitgestellt, um eine Kompensation für Taktversatz zu ermöglichen, wobei es sich um ein Phänomen handelt, bei dem ein Taktsignal von einer gegebenen Quelle bei unterschiedlichen Schaltungskomponenten zu unterschiedlichen Zeiten ankommen kann. Taktversatz kann einen Bruchteil eines Zyklus zu einem DC-AUS-Wert addieren, was potenziell die berechnete DC-AUS-Zeit um bis zu einen Taktzyklus erhöhen kann. In einer Abstimmungsphase kann anfänglich ein Wert von Versatz = 2 eingestellt werden, um einen Worst-Case-Taktversatz in verschiedenen Funktionseinheiten (z.B. Stock Keep Units, SKUs) des SoC 2100 zu berücksichtigen. Nach dem Abstimmen zum Kompensieren eines Taktversatzes kann der Versatz anschließend auf eins gesetzt werden, so dass die Approximation funktional korrekt ist.
  • In einigen Ausführungsformen dient ein Aktivierungsbit, das als eine von zwei Eingaben an die Arbitrierungsschaltungsanordnung geliefert wird, dazu, eine Drosselung zu deaktivieren, was angemessen sein kann, wenn xratioRx ≥ xratioTx . Die andere Eingabe in die Arbitrierungsschaltungsanordnung 2350 ist eine Ausgabe des Addierers 2340, die einem berechneten ARBEITSZYKLUS-AUS-Wert entspricht. Ähnlich dem Aktivierungsbit kann ein Satz von „Chicken-Bit-Logik“-Schaltungen verwendet werden, um eine Eingabe in die Arbitrierungsschaltungen bereitzustellen, und kann verwendet werden, um Drosselung zu deaktivieren, falls die gegebene Implementierung der Drosselung aus irgendeinem anderen Grund nicht in der integrierten Schaltung verwendet wird.
  • In einigen Ausführungsformen kann die Rückflusssteuerschaltungsanordnung 2300 als Teil eines Interconnect an Grenzen zwischen verschiedenen Fabric-Domänen implementiert sein. In Beispielen, in denen die Fabric-Domänen mit Dielet-Grenzen übereinstimmen, wie etwa dem Beispiel des SoC 2100, kann die Rückflusssteuerschaltungsanordnung 2300 in einer oder mehreren der Fabric-Interconnect- und Puffereinheiten 2136, 2156 bereitgestellt sein. Alternativ kann die Rückflusssteuerschaltungsanordnung 2300 in einigen Ausführungsformen in einer netzinternen Region des Fabric nahe einer netzinternen Domänengrenze bereitgestellt sein.
  • In einigen Ausführungsformen verbessert der Fabric-Gegendruckmechanismus, der durch die Rückflusssteuerschaltungsanordnung 2300 zusammen mit Gleichungen (1) und (2) bereitgestellt wird, die Performanz eines Interconnect-Fabric, das zwei oder mehr unterschiedliche Domänen mit jeweiligen unterschiedlichen Performanzstufen aufweist, indem ein Datenverlust verhindert wird, ohne dass eine zusätzliche Latenz in dem Datenpfad auftritt. Zusätzlich arbeitet der Gegendruckmechanismus verschiedener Ausführungsformen über einen weiten Bereich von Frequenzinkongruenz zwischen benachbarten Domänen unter Verwendung minimaler Hardwarelogik.
  • 24 veranschaulicht eine Tabelle 2400, die eine Differenz zwischen genau berechneten Werten und approximierten Werten für DC AUS eines Drosselungsarbeitszyklus für denselben vorbestimmten Bereich von Frequenzwerten des lokalen Dies und des entfernten Dies, die in der Tabelle aus 22 gezeigt sind, wie aus Gleichung (2) abgeleitet, und dem approximierten DC-AUS-Wert, der aus Gleichung 3 abgeleitet ist, veranschaulicht, gemäß einigen Ausführungsformen.
  • In Tabelle 2400 gibt ein Tabelleneintrag von null eine perfekte Approximation an (in diesem Fall stimmen der DC-AUS-Wert aus Tabelle 2200 und die Approximation von Gleichung 2 überein) und ist ein idealer Fall. Ein positiver Wert tritt in der Tabelle 2400 nicht auf, was gut ist, da dies zu einer Unterschätzung des DC-AUS-Werts führen könnte und potentiell ein Fallenlassen von Paketen zur Folge haben könnte. Ein negativer Werteeintrag in Tabelle 2400 gibt an, dass die Näherungslogik der Rückflusssteuerschaltungsanordnung 2300 eine höhere Drosselung vorhersagt, als von der genaueren Berechnung der Tabelle 2200 strikt benötigt wird. Dies könnte potentiell zu einem geringen Leistungsverlust führen; dies ist jedoch zumindest aus den nachfolgend aufgezählten Gründen akzeptabel:
    • 1) Der entfernte Die läuft in den meisten Fällen, in denen ein negativer Werteeintrag in Tabelle 2400 erscheint, zu langsam. Dies ist ein unwahrscheinliches Szenario zur Laufzeit (z.B. xratioTx bei 35 und xratioRx bei 9). Die wahrscheinlicheren Fälle treten auf, wenn die Frequenzdifferenz nicht zu groß ist.
    • 2) Selbst wenn die Differenz groß ist, sollte der Verkehr, der benötigt wird, um von dem Tx-Die (schneller) zu dem Rx-Die (langsamer) zu fließen, klein sein, da der entfernte Die langsamer ist.
    • 3) Der Schätzfehler betrifft schnellere Frequenzzyklen (basierend auf der Betriebsfrequenz des übertragenden Die), wobei es sich um einen kleinen absoluten Zeitwert handelt. Zum Beispiel ist eine Einbuße von 4 Zyklen bei 3,5 GHz zeitlich geringer als eine Latenz von 1 Zyklus bei 0,8 GHz.
    • 4) Ein gewisser Schätzfehler ist immer noch besser als das Wählen eines festen Worst-Case-Werts von DC AUS = 8 über alle Tx- und Rx-Verhältnisse hinweg, was mit einer relativ hohen Performanzeinbuße einhergeht.
  • Es wird garantiert, dass der Datenpfad vor den Fabric-E/A- und Puffereinheiten 2136, 2156 an der Dielet-Grenze ein netzinterner Pfad innerhalb des Dielet ist. Dies sollte auch dann zutreffen, wenn eine Grenze zwischen zwei Fabric-Domänen nicht mit Dielet-Grenzen zusammenfällt. Daher sollten Daten auch in DC AUS-Perioden nie verloren gehen. Die Daten auf dem Fabric in der übertragenden Fabric-Domäne werden einfach zurückgeschickt und in die lokale Fabric-Domäne zurückgeführt, wenn der Puffer in der Interconnect-Region keine weiteren Daten akzeptieren kann. Dieser zurückgeschickte Verkehr erhöht die Fabric-Nutzung der lokalen Fabric-Domäne, was einer entsprechenden lokalen Leistungssteuereinheit durch Hardwarezähler anzeigt, dass die Frequenz in der lokalen Fabric-Domäne erhöht werden sollte, um einer Rückführung des zurückgeschickten Datenverkehrs Rechnung zu tragen. Zusammengefasst kommt der Verkehr zurück, wenn der Puffer an der Fabric-Domänenschnittstelle keine weiteren Daten akzeptieren kann, jedoch sollten die Daten, die auf eine Übertragung warten, gemäß der vorliegenden Methode niemals fallen gelassen werden. Im Gegensatz dazu würde eine Implementierung eines asynchronen FIFO an Fabric-Domänengrenzen anstelle der Verwendung einer Rückflusssteuerschaltungsanordnung 2300 zum Bestimmen eines Arbeitszyklus zur Übertragung mit hoher Wahrscheinlichkeit zu inakzeptabler Latenz und potentiellem Datenverlust führen, wenn die Betriebsfrequenz der lokalen Fabric-Domäne die Betriebsfrequenz der entfernten Fabric-Domäne überschreitet.
  • 25 veranschaulicht ein Flussdiagramm 2500 oder Signaldiagramm, das eine Signalisierung veranschaulicht, die an einer Fabric-Grenze, wie etwa einer Die-Grenze, durchgeführt wird, um eine Frequenzänderung einer Fabric-Betriebsfrequenz auf einer Seite der Domänengrenze zu implementieren, gemäß einigen Ausführungsformen. Der Einfachheit halber wurden in 25 die Implementierungsdetails niedriger Ebene in zwei Hauptkomponenten (Leistungsverwaltungseinheit und Interconnect-Schnittstelle) abstrahiert. Die Frequenzänderung kann eine Erhöhung oder eine Verringerung der Frequenz sein. Hierbei erfolgen verschiedene Ereignisse und Prozesse im Zeitverlauf, wie durch die von oben nach unten verlaufende Zeit angezeigt.
  • Im Beispiel des Flussdiagramms 2500 ist ein Signalfluss für Zeitlinien einer ersten Leistungsverwaltungseinheit 2502 (z.B. Supervisor-p-Einheit des E/A-Die 2104-1) und eines ersten Interconnect 2136, die einer ersten Fabric-Domäne entsprechen, und einer zweiten Leistungsverwaltungseinheit 2103 (z.B. Supervisand-p-Einheit des Die 2101-2) und eines zweiten Interconnect 2126, die einer zweiten Fabric-Domäne entsprechen, gezeigt. In diesem Beispiel fällt eine Fabric-Domänengrenze 2550 mit einer Die-Grenze zwischen zwei benachbarten Dies auf demselben SoC zusammen. Die Domänengrenze 2550 des Fabric fällt jedoch in anderen Beispielen möglicherweise nicht mit Die-Grenzen zusammen.
  • Bei Kasten 2512 erzeugt die erste Leistungsverwaltungseinheit 105 eine Frequenzänderungsanfrage zum Ändern der Betriebsfrequenz der Fabric-Domäne des EA-Die 2104-1 von f1 auf f1* und sendet ein Signal 2513 an den ersten Interconnect 2126 (des EA-Die2104-1), das eine Frequenzänderung auf f1* anfragt. In Reaktion auf das Frequenzänderungsanfragesignal 2512, unternimmt der Interconnect 2126 zweierlei: (i) er blockiert temporär Verkehr zum Die 2 2101-2 über ein internes Signal 2523; und (ii) er sendet ein Signal 2525 zum zweiten Interconnect 2126 (des Die 2101-2), um eingehenden Verkehr von Die 2101-2 temporär zu blockieren. In Reaktion auf das Signal 2525 vom ersten Interconnect 2520 implementiert der zweite Interconnect 2126 (des Die 1012) ein Blockieren von ausgehendem Verkehr zum E/A-Die 1041 über ein internes Signal 2563. Nachdem der Verkehr in jeder Richtung blockiert wurde, sendet der zweite Interconnect 2126 des Die 2101-2 ein Signal 2515 an die erste Leistungsverwaltungseinheit 105, das angibt, dass die jeweiligen Interconnects bereit sind für die angeforderte Frequenzänderung, die auf dem E/A-Die 2104-1 implementiert werden soll.
  • Als Nächstes legt die erste Leistungsverwaltungseinheit 105 bei Kasten 2514 ihre lokale PLL oder FLL wieder auf die neu angeforderte Frequenz f1* fest und sendet dann ein Signal 2517 an den ersten Interconnect 2126 des Die 2104-1. Nachdem die Frequenzänderung f1→f1* auf dem E/A-Die 2104-1 implementiert wurde, implementiert der erste Interconnect 2126 des E/A-Die 2104-1 Drosselung unter Verwendung der Schaltungsanordnung aus 23, um einen angemessenen Arbeitszyklus über ein internes Signal 2527 zu bestimmen. Sobald die Drosselungseinrichtung lokal auf dem ersten Interconnect 2520 implementiert wurde, der sich auf dem Die 2101-2 befindet, sendet der erste Interconnect 2126 des E/A-Die 2104-1 ein Signal 2529 an den zweiten Interconnect 2126 des Die 2101-2, um den Die 2101-2 über den geänderten Frequenzwert f1* zu informieren.
  • Dann verwendet der zweite Interconnect 2126 des Die 2101-2 interne Signalisierung 2565, um die Drosselung basierend auf der Frequenzdifferenz zwischen f1* und f2 zu implementieren. Es könnte angenommen werden, dass eine Drosselung nur auf dem sendenden Die des E/A-Die 2104-1 und des Die 2101-2 eingerichtet werden muss, aber die Beziehung zwischen f1* und f2 möglicherweise nicht bekannt ist und somit keine Annahmen getroffen werden. Beim Einrichten einer Drosselung ist Verkehrsfluss in jeder der beiden Richtungen möglich, so dass beide Dies über die Die-Grenze hinweg zur Drosselung konfiguriert werden können. Nachdem beide Seiten des Interconnect (d.h. der Fabric-Domänengrenze) mit einem geeigneten Drossel-Arbeitszyklus für die Frequenzinkongruenz (f1*-f2) konfiguriert worden sind, sendet der erste Interconnect 2126 des E/A-Die 2104-1 ein Signal 2533 an den zweiten Interconnect 2126 des Die 2101-2, wodurch dieser veranlasst wird, den Verkehr zum Die 2101-1 freizugeben. Schließlich ist bei Signal 2519 der Fluss abgeschlossen und die Frequenzänderung in der Fabric-Domäne des E/A-Die 2104-1 wurde an der Fabric-Domänengrenze implementiert.
  • In einigen Ausführungsformen kann die Implementierung von Änderungen an einem Drosselungsarbeitszyklus an mehr als einer Fabric-Domänengrenze durchgeführt werden, abhängig davon, auf wie viele verschiedene Fabric-Domänengrenzen sich die Änderung der Fabric-Frequenz auf dem E/A-Die 2104-1 auswirkt. In dem Beispiel von 21 kann ein Wechsel zu V1-f1 eine ähnliche Signalaustauschsequenz mit sowohl dem Dielet 2101-1 als auch dem Dielet 2104-1 auslösen. Als ein weiteres Beispiel kann eine Änderung zu V3-f3 Signalsequenzen mit jedem der Dielets 2104-1, 2101-1 und 2101-4, aber nicht dem Dielet 2101-3 auslösen. Gemäß dem Signalfluss 2500 werden vereinfachte nichtkoordinierte Flüsse für DVFS zwischen zwei per Schnittstelle verbundenen Fabric-Domänen erreicht. Das heißt, das Fabric auf einem Die kann die Frequenz ändern, ohne dass das Fabric auf dem anderen Die ebenfalls ausgelöst wird, die Frequenz zu ändern.
  • 26 veranschaulicht ein Flussdiagramm 2600, das bidirektionale Kommunikation zwischen der Supervisor-p-Einheit 2602 und der Supervisand-p-Einheit 2603 für ein Steuerintervall einer Supervisand-p-Einheit zeigt, gemäß einigen Ausführungsformen. In einigen Ausführungsformen entscheidet die Supervisor-p-Einheit 2603 (z.B. des Die 2101-2), eine angemessene Spannung und/oder Frequenz ihres Nichtkerns einschließlich Interconnect-Fabric und ihrer Netzstopps einzustellen. Diesbezüglich beginnt bei Block 2621 die Supervisand-p-Einheit 2603 den arbeitslasteaktivitätsbasierten Frequenzauswahlprozess. In einigen Ausführungsformen berücksichtigt die Supervisand-p-Einheit 2603 Telemetriedaten für die Arbeitslast (z.B. Änderung des Werts von Performanzzählern), Verkehr auf den Fasern, aktuelle Spannung und Frequenz usw. beim Bestimmen, ob das Fabric eine höhere oder niedrigere Spannung und/oder Frequenz benötigt. Die Supervisand-p-Einheit 2603 fordert dann formal die Supervisor-p-Einheit 2602 über das Signal 2602 zu einer Frequenzänderung auf. Dieses Signal kann über Fabrics 110, 111 oder den Schnellreaktions-Interconnect 112 gesendet werden.
  • Bei Block 2623 verarbeitet die Supervisor-p-Einheit 2602 die Frequenzänderungsanfrage von der Supervisand-p-Einheit 2603. Zum Beispiel löst die Supervisor-p-Einheit 2602 bei Block 2623 die Frequenzanfrage basierend auf Supervisand-Anfrageinschränkungen und/oder Spannung und/oder Betriebsfrequenz von Fabrics anderer Supervisor-Dies auf. Die Supervisor-p-Einheit 2605 verwendet umfassende Daten, um zu bestimmen, ob die Frequenzänderungsanfrage von der Supervisand-p-Einheit 2603 gewährt werden soll, und wenn ja, die Spannung und/oder Frequenz, die dem Nichtkern des Supervisand-Die zugewiesen werden sollten. In einigen Ausführungsformen werden externe SoC-Leistungsstufengrenzen und Frequenzauflösung für die Fabrics von Supervisand-Dies durch die Supervisor-p-Einheit 105 geprüft. In einigen Ausführungsformen wird die Verteilung von gemeinsam genutzten Ressourcen wie dem Leistungsbudget in jedem Fabric unterschiedlich aufgeteilt als: ƒ f a b r i c i = ƒ b a s e , i + β i ƒ r c
    Figure DE102021124514A1_0004
  • Wobei ƒfabrici die die Fabric-Frequenzgrenze für die Supervisand-p-Einheit 2603 i ist, ƒbase,i die Basisfrequenz des Fabric ist, die durch die Supervisand-p-Einheit i verwaltet wird, und βi der Beitrag der globalen Grenze ƒrc ist, die von der Supervisor-p-Einheit 2602 geliefert wird. Die Supervisor-p-Einheit sendet dann das Signal an die Supervisand-p-Einheit 2603 bezüglich der Einschränkungen und der Frequenz und/oder Spannung für den Nichtkern des Supervisand-Die. Bei Block 2625 bestimmt die Supervisand-p-Einheit dann das finale Frequenzverhältnis (z.B. PLL- oder FLL-Teilerverhältnis) für eine Betriebsdauer des Nichtkerns (der das Fabric und seine Netzstopps beinhaltet). In einigen Ausführungsformen wendet die Supervisor-p-Einheit 2602 Leistungsgrenzen auf Benutzerebene oder anderer Sockelebene auf jede Supervisand-p-Einheit an.
  • 27 veranschaulicht ein Komponenten-Telemetriesystem 2700 eines E/A-Die 2704-1 (z.B. 104-01) und eines Rechen-Die 2701-2 (z.B. 101-02), die zeigen, wie Telemetrie von Daten, die der Performanzstufeneinstellung zugeordnet sind, auf einer Domänenbasis des Fabric durchgeführt wird, gemäß einigen Ausführungsformen. In diesem Beispiel ist die Supervisor-p-Einheit 2702 (z.B. 102) des E/A-Die 2704-1 die Supervisor-p-Einheit, während die Supervisand-p-Einheit 2703 des Rechen-Die 2101-2 eine Supervisand-p-Einheit für diese Supervisor-p-Einheitsdomäne ist.
  • In diesem Beispiel ist ein Telemetriesystem 2700 in einen E/A-Die (oder Domäne) 2704-1 und einen Rechen-Die (oder Domäne) 2101-2 unterteilt. In einigen Ausführungsformen weist der E/A-Die 2704-1 eine E/A-Leistungssteuereinheit 105, einen E/A-Fabric-Domänen-Bandbreitenüberwacher 2714 und einen E/A-Bandbreitenüberwacher 2716 auf. In einigen Ausführungsformen weist der Rechen-Die 1012 eine Rechenleistungssteuereinheit 2703 auf (oder 102 ist seine Supervisor-p-Einheit), die eine Rechenleistungssteuereinheit 2752, einen Rechen-Fabric-Domänen-Bandbreitenüberwacher 2754, einen Stillstandsüberwacher 2756 und einen Nicht-Leerlauf-Residenzüberwacher 2758 aufweist.
  • In Systemen, die eine Performanzstufe in einem Fabric implementieren, könnte eine einzige Leistungssteuereinheit Arbeitslastinformationen von mindestens einer Vielzahl von Dies des SoC empfangen und diese kollationierten Arbeitslastinformationen verwenden, um eine angemessene Performanzstufe zu bestimmen. In diesem Fall ist wahrscheinlich nur ein Fabric-Domänen-Bandbreitenüberwacher vorgesehen. Im Gegensatz dazu können gemäß einigen Ausführungsformen unterschiedliche Fabric-Domänen-Bandbreitenüberwacher für jede unterschiedliche Fabric-Domäne bereitgestellt sein. Die dedizierte E/A-Leistungssteuereinheit 105 fordert eine Performanzstufe für den E/A-Die 2704-1 basierend auf Informationen vom E/A-Bandbreitenüberwacher 2716 an.
  • Die Rechen-p-Einheit 2703 überwacht die vorherrschende Arbeitslast unter Verwendung des Stillstandsüberwachers 2756 und des Nicht-Leerlauf-Residenzüberwachers 2758 und fordert eine Rechen-Fabric-Performanzstufe basierend auf dieser Eingabe an, ohne die E/A-Arbeitslast zu berücksichtigen. Der Nicht-Leerlauf-Residenzüberwacher 2758 kann eine Dauer überwachen, für die ein Kern ausgeführt wird und nicht im Leerlauf ist. Jeder Kern eines Prozessors kann eine Anzahl von Kernleerlaufzuständen (C-Zuständen) und eine Anzahl von Spannungs-Frequenz-Paaren (P-Zuständen) aufweisen, die die Geschwindigkeit und den Leistungsverbrauch des Kerns oder Prozessors festlegen. Wenn die Betriebsspannung eines Prozessors niedriger ist, ist auch der Leistungsverbrauch niedriger. Unterschiedliche C-Zustände können einem Clock-Gating von zunehmend mehr Komponenten des SoC entsprechen.
  • Da die Frequenz gemeinsam mit der Spannung abgesenkt wird, führt eine niedrigere Frequenz zu langsamerer Berechnung. In einigen Ausführungsformen überwacht die Leistungssteuereinheit 2702 periodisch die Prozessornutzung. Falls diese Nutzung geringer als eine gewisse Schwelle ist, kann sie den p-Zustand erhöhen, das heißt, die Datenfunktionseinheit kann den nächsthöheren Leistungseffizienzzustand aufweisen. Idealerweise sollte die Ausnutzung möglichst nahe bei 100 % liegen.
  • 28 veranschaulicht ein Flussdiagramm 2800, das eine hierarchische Leistungsverwaltung zur Leistungsverwaltung eines Uncore- oder Fabric-Interconnect zeigt, gemäß einigen Ausführungsformen. In einigen Ausführungsformen kann eine angeforderte Performanzstufe individuell für jede unterschiedliche Fabric-Domäne bestimmt werden, um sowohl Verarbeitungsarbeitslast als auch Netzbandbreite in der jeweiligen Domäne spezifisch zu berücksichtigen. In einigen Ausführungsformen können die angeforderten Performanzstufen durch eine Leistungssteuerungsüberwachungseinheit kollationiert werden, die in Abhängigkeit von mindestens einer Einschränkung bestimmt, ob die angeforderten Performanzstufen der Fabric-Domänen gewährt werden sollen oder nicht. Beispiele für Einschränkungen beinhalten eine maximale Gesamtleistungsgrenze, eine minimale Gesamtleistungsgrenze, eine minimale Performanzstufe und thermische Einschränkungen. In alternativen Beispielen kann eine einzelne Supervisor-Leistungssteuereinheit Telemetrie von zwei oder mehr Dies empfangen, die durch ein einzelnes Fabric verbunden sind, und kann verschiedene Domänen des Fabric steuern, um verschiedene Performanzstufen basierend auf dieser Telemetrie aufzuweisen. In einigen solchen Beispielen führt die Supervisor-Leistungssteuereinheit die Leistungssteuerung durch und Supervisand-Leistungseinheiten müssen nicht bereitgestellt werden.
  • Gemäß einigen Ausführungsformen kann ein hierarchischer Leistungsverwaltungsalgorithmus für Fabric-DVFS implementiert sein, der zwei oder mehr unterschiedliche Fabric-Domänen in einem einzigen Fabric involviert, wobei die unterschiedlichen Domänen gleichzeitig mit unterschiedlichen Fabric-Betriebsfrequenzen betreibbar sind.
  • Bei Prozesselement 2810 wendet eine p-Einheit-(Leistungsverwaltungseinheit-) Steuerung einen Satz heuristischer Algorithmen an, um die für den lokalen Dielet-Fabric-Abschnitt (Domäne) erforderliche Frequenz nach dem Verarbeiten eines Satzes Telemetriedaten für den Dielet zu finden. Die Frequenz kann erhöht werden, wenn der Fabric-Domänenverkehr hoch ist und umgekehrt. Als Nächstes sendet jede Supervisand-p-Einheitssteuerung 2703 bei Prozesselement 2820 die angeforderte Frequenz, die basierend auf der lokalen Telemetrie berechnet wird, an eine Supervisor-p-Einheit 2702. In einigen Ausführungsformen löst die Supervisor-p-Einheit 2702 die Frequenz basierend auf von Benutzern angewandten Grenzen, wie etwa zum Beispiel einer Perf-p-Grenze, einer RAPL-Grenze und einer Architektur des Systems, wie durch das Prozesselement 2830 angegeben auf. Bei Prozesselement 2840 wird die aufgelöste Frequenz, die durch den p-Einheit-Supervisor 2702 bestimmt wird, zurück zu den Supervisand-p-Einheiten 2703 kommuniziert, womit die Entscheidung durchgesetzt und die PLLs der lokalen Dies gemäß der aufgelösten Performanzstufe, die von dem p-Einheit-Supervisor 2702 empfangen wird, zurückgesetzt werden.
  • 29 veranschaulicht ein Flussdiagramm 2900, das eine Leistungsverwaltungseinheiten-Kommunikationssequenz zwischen Supervisor- und Supervisand-p-Einheiten zeigt, gemäß einigen Ausführungsformen. Wie unter Bezugnahme auf 28 besprochen, löst die Supervisor-p-Einheit 2702 die verschiedenen Einschränkungen auf, um die Frequenz für jeden Supervisand-Nichtkern (z.B. Fabric-Komponenten und Interconnect) zu bestimmen. Vorliegend sind ‚n‘ Supervisand-Dies mit n jeweiligen p-Einheiten 2903-1 bis 2903-n gezeigt. Jede Supervisand-p-Einheit sammelt Telemetriedaten (z.B. Hardwarezähler) für Arbeitslast, die durch den entsprechenden Supervisand-Die verarbeitet wird, und Heuristiken, um zu bestimmen, welche Frequenz für den Nichtkern anzufordern ist. Jede Supervisand-p-Einheit sendet dann die angeforderten Frequenzen f1 bis fn an die Supervisor-p-Einheit 2902 (z.B. 102). Die Supervisor-p-Einheit 2902 löst die Frequenzen von jeder Supervisand-p-Einheit basierend auf von einem Benutzer angewandten Grenzen, wie etwa zum Beispiel einer Perf-p-Grenze oder einer RAPL-Grenze, auf. Die Supervisor-p-Einheit sendet dann die aufgelöste Frequenz für jede Supervisand-p-Einheit, wie unter Bezugnahme auf verschiedene Ausführungsformen besprochen.
  • 30 veranschaulicht eine Benutzerschnittstelle 3000 zum Einstellen von Leistungseinschränkungen für ein Kommunikations-Fabric mit zwei oder mehr Performanzstufendomänen gemäß einigen Ausführungsformen. In einem Implementierungsbeispiel stehen zwei Modi für eine unabhängige Fabric-Steuerung der Datenverarbeitungsvorrichtung zur Verfügung. Diese Modi können von einer kundenseitig sichtbaren Schnittstelle ausgewählt werden.
  • Modus 1: Legacy-Modus (gesamtes Server-Fabric wird als eine einzige Domäne behandelt und wird die gleiche Frequenz aufweisen) ƒ r , i = max ( ƒ i ) i [ 1, N ]
    Figure DE102021124514A1_0005
  • Wobei ƒr,i die aufgelöste Frequenz durch die Supervisor-Leistungssteuereinheit für jede der N verschiedenen Fabric-Domänen ist. In diesem Beispiel kann eine globale Frequenz als der maximale Frequenzwert der Performanzstufenanfragen ausgewählt werden, die von jeder der Fabric-Domänen kommen.
  • Modus 2: Unabhängiger Fabric-DVFS-Modus, in dem jede Fabric-Domäne als separate Entität zum Zweck der Performanzstufeneinstellung behandelt wird. Es wird angemerkt, dass es bei Beispielen, bei denen der LLC in der Datenverarbeitungsvorrichtung verteilt ist, unerwünscht sein könnte, unterschiedliche Frequenzen für Fabric-Domänen aufzuweisen, die sich auf demselben Rechen-Die befinden. Falls jedoch ein SNC-Modus aktiviert ist). ƒ r , compute = max ( ƒ i )
    Figure DE102021124514A1_0006
    wobei i ∈ Compute dielet f r ,HS I O = f j
    Figure DE102021124514A1_0007
    wobei j ∈ HSIO dielet (beide E/A können unterschiedliche Frequenz aufweisen)
  • 30 veranschaulicht schematisch eine beispielhafte Benutzeroberfläche für die Mehrdomänen-Einzel-Fabric-Datenverarbeitungsvorrichtung gemäß der vorliegenden Methode. Eine Benutzeroberfläche kann bereitgestellt sein, um eine Benutzerauswahl der Frequenz (und wiederum der Spannung) für jede der unterschiedlichen Fabric-Domänen auf dem SoC zu ermöglichen.
  • Es gibt vier Arten von Variablen in der in 30 veranschaulichten beispielhaften Benutzeroberfläche: 1) Fabric-Domänen-Verhältnisstatus N - zeigt die aktuelle Frequenz der Fabric-Domäne N; 2) Fabric-Domänen-Verhältnis-MAX-GRENZE N - Anwenden dieser Grenze auf die Frequenz der Fabric-Domäne N; 3) Fabric-Domänen-Verhältnis-MIN-GRENZE N - Anwenden dieses Limits auf die Frequenz der Fabric-Domäne N; und 4) Fabric-DVFS-Modusauswahl.
  • Über diese Benutzerschnittstelle können Benutzer zum Beispiel die MAX-GRENZE und MIN-GRENZE für eine gegebene Fabric-Domäne so einstellen, dass sie gleich sind, und die Frequenz einer Fabric-Domäne gemäß ihren spezifischen Anforderungen durchsetzen. Gemäß der vorliegenden Methode ist es möglich, bessere Leistungs- und Performanzoptimierungen mit mehreren V-F-Domänen unter inhomogener Fabric-Verkehrsverteilung zu erhalten. Einige beispielhafte Implementierungsszenarien beinhalten: DVFS auf High-Speed-E/A- (HSIO) disaggregiertem Kachel-Fabric; Clusterkonfiguration auf mehreren Sockelebenen; Begleit-Die-Fabric, das nicht mit der gleichen Frequenz wie das Hauptkern-Die-Fabric laufen kann; Sub-NUMA- (Non-Uniform Memory Access, uneinheitlicher Speicherzugriff) Clustering-Modus; Peer-Peer-Begleit-Fabric-Optimierung.
  • Wobei es jedoch einige Doppel- (oder Mehr-) Prozessorsysteme gibt, bei denen zwei (oder mehr) unterschiedliche Fabrics durch eine Brücke (Pfad-Interconnect) in einem einzigen Package verbunden sind. Beispielsweise können zwei Rechensockel der in 21 veranschaulichten Art zu einer Datenverarbeitungsvorrichtung verbunden sein. Topologisch könnten solche Doppelprozessorsysteme oberflächlich wie ein einziges Fabric erscheinen, das in zwei Fabric-Domänen partitioniert ist. Allerdings weisen zwei getrennte Fabrics, die durch eine Brücke verbunden sind, im Vergleich zu einem einzelnen großen Fabric eine sehr schlechte Leistungsfähigkeit auf. Dies liegt daran, dass die Brückenlatenz nicht mit der nativen Fabric-Latenz übereinstimmen kann. Die Performanzanforderungen eines einzelnen Fabric verlangen nach Mechanismen, die die Fabric-PnP-Optimierungen ermöglichen, ohne die Basisperformanz des Fabric zu beeinflussen. Beispiele für die vorliegende Methode beinhalten Partitionieren eines einzelnen großen Fabric in mehrere V/F-Domänen, ohne dass es zu einer nennenswerten Latenz kommt, die den Mechanismen zuzuschreiben ist, die diese Partitionierung ermöglichen. Beispielhafte Implementierungen können null oder mindestens eine sehr geringe hinzugefügte Latenz für mehrere V/F-Domänen in einem einzigen Fabric erreichen.
  • Ein einfacher Gegendruckmechanismus, wie etwa ein asynchroner FIFO, könnte grundsätzlich zwischen den Fabric-Domänen verwendet werden, um verlustlose Datenübertragung bereitzustellen, wenn zwei Fabric-Domänen bei asymmetrischen Frequenzen arbeiten. Dies wird jedoch wahrscheinlich eine Latenz von zwei bis drei Zyklen in dem Datenpfad verursachen, die für die Performanz eines einzigen gemeinsam genutzten Fabric oft nicht akzeptabel ist. Im Gegensatz dazu weist ein Fabric-Gegendruckmechanismus gemäß der vorliegenden Methode, der einen Arbeitszyklus basierend auf einem Frequenzinkongruenzbetrag implementiert, keine unpraktische zusätzliche Latenz auf und ermöglicht somit eine realisierbare Implementierung von Fabric-Partitionierung. Darüber hinaus wird eine Annäherung an diesen Gegendruckmechanismus bereitgestellt, so dass er minimale Hardwarelogik verwendet, während er immer noch über einen weiten Bereich von Frequenzinkongruenz zwischen den zwei verschiedenen Fabric-Domänen des einzelnen Fabric arbeitet.
  • 31 veranschaulicht ein Flussdiagramm 3100 für verteilte Leistungsverwaltung im Zusammenhang mit 17C der Frequenz in einem Steuerintervall einer Supervisor-p-Einheit gemäß einigen Ausführungsformen. Bei diesem Ansatz bestimmt jedes Fabric die optimale Spannung und Frequenz als Teil der lokalen Berechnung. In einigen Ausführungsformen sendet die Supervisor-p-Einheit 3102 unidirektionale Grenzen an die Supervisand-p-Einheiten 3103-0 bis 3103-m, was die Netzwerkkonkurrenz zwischen der Supervisor-p-Einheit 3102 und den Supervisand-p-Einheiten 3103-0 bis 3103-m reduziert. Diese Spannung und Frequenz werden unter den Peer-Fabrics geteilt, die sich die Datenschnittstelle teilen.
  • Betrachtet wird ein System, in dem das Fabric i mit Überwachungs-Die i mit m benachbarten Strukturen {n1, n2, n3, ... nm} von m benachbarten Supervisand-Dies verbunden ist. In einigen Ausführungsformen führt jede Supervisand-p-Einheit die lokale Berechnung für Frequenz für ihren Nichtkern durch, der die Fabric-Komponenten beinhaltet, die Interconnects verbinden. Zum Beispiel sammelt jede Supervisand-p-Einheit Telemetrieinformationen für die Arbeitslast, um eine Arbeitslastaktivität zu bestimmen, wie durch Block 3121 angegeben. Eine Möglichkeit, eine Arbeitslastaktivität zu bestimmen, besteht darin, Hardwareleistungszähler zu lesen. Ein höherer Wert der Zähler deutet auf einen höheren Einsatz des Fabric und mögliche Engpässe im Fabric hin. In einigen Ausführungsformen empfängt jede Supervisand-p-Einheit zudem eine aktuelle Nichtkern-Frequenz (die die Betriebsfrequenz des Fabric beinhaltet) anderer Supervisand-Dies. Zum Beispiel verwenden Supervisand-p-Einheiten den Interconnect 1732, um aktuelle Frequenzen 3122-1 bis 3122-m von den Supervisand-p-Einheiten 3103-0 bis 3103-m zu empfangen. In einigen Ausführungsformen sind die Supervisand-Dies 2-m Dies nördlich, südlich, östlich und westlich des Supervisand-Dies 1.
  • Die Supervisand-p-Einheit 3103-1 löst dann ihre Fabric-Frequenz basierend auf aktuellen Frequenzen anderer Supervisand-p-Einheiten und einer Arbeitslastaktivität ihres eigenen Supervisand-Die auf, wie durch Block 3123 angegeben. In verschiedenen Ausführungsformen empfängt die Supervisand-p-Einheit 3103-1 Sockeleinschränkungen und Benutzergrenzen von der Supervisor-p-Einheit 3102. Diese Sockeleinschränkungen und Benutzergrenzen sind globale Grenzen, die gemäß einigen Ausführungsformen auf alle Supervisand-Chips anwendbar sind. Bei Block 3125 bestimmt die Supervisand-Einheit die endgültige Frequenz für ihre Nichtkern-Komponenten (z.B. Fabric-Komponenten und Interconnect) wie folgt:
    • Endfrequenzauflösung => ƒres = max {ƒi, ƒn1 , ƒn2 , fn3 , …, ƒnm }
      1. a. Wenn (ƒi == ƒres) dann ƒi = ƒres
      2. b. Ansonsten: ƒi = ƒres - 1 Frequenzbinärdatei (um ein Hängenbleiben im Gleichgewicht zu vermeiden)
  • Die Supervisand-p-Einheit 3102-0 teilt dann ihre Nichtkern-Frequenz f1 mit anderen benachbarten Supervisand-p-Einheiten 3102-1 bis 3102-m, da jede Supervisand-p-Einheit ihre Frequenz mit anderen benachbarten Supervisand-p-Einheiten gemeinsam nutzt. Zum Beispiel senden Supervisand-p-Einheiten Betriebsspannung und/oder -frequenz ihrer lokalen VRs (z.B. LDOs) und PLL/FLL für ihr Fabric an andere benachbarte Supervisand-p-Einheiten. Somit betreibt jeder Supervisand-Die sein Fabric mit einer Frequenz für optische Die-zu-Die- und Die-interne Kommunikation bei optimalen Leistungspegeln.
  • Resource Director Technology (RDT) ist ein Beispiel für kommerziell erhältliche Technologien, die ein Framework für Cache- und Speicherüberwachungs- und Zuteilungsfunktionen in einem Prozessor bereitstellen, darunter Cache-Überwachungstechnologie (CMT, cache monitoring technology), Cache-Zuteilungstechnologie (CAT, cache allocation technology), Code- und Datenpriorisierung (CDP), Speicherbandbreitenüberwachung (MBM, memory bandwidth monitoring) und Speicherbandbreitenzuteilung (MBA, memory bandwidth allocation). Diese Technologien ermöglichen das Verfolgen und Steuern gemeinsam genutzter Ressourcen, wie etwa LLC (Lost-Level Cache) und Hauptspeicherbandbreite in Verwendung durch Anwendungen, virtuelle Maschinen usw., die gleichzeitig auf dem System 3200 laufen. Die RDT kann dabei helfen, eine Noisy-Neighbor-Detektion zu unterstützen und helfen, Performanzstörungen zu reduzieren, wodurch sichergestellt wird, dass die Performanz von Schlüsselarbeitslasten in komplexen Computerumgebungen QoS-Anforderungen erfüllt.
  • Cache-Zuteilungstechnologie (CAT) stellt softwareprogrammierbare Steuerung über die Menge an Cache-Raum bereit, die durch einen gegebenen Thread, eine gegebene Anwendung, eine gegebene virtuelle Maschine (VM) oder einen gegebenen Container beansprucht werden kann. Dies ermöglicht zum Beispiel Betriebssystemen, wichtige Prozesse zu schützen, oder Hypervisoren, wichtige virtuelle Maschinen (VMs) selbst in einer verrauschten Datenzentrenumgebung zu priorisieren. Die grundlegenden Mechanismen von CAT beinhalten die Fähigkeit, die CAT-Funktionalität und die zugehörige Last-Level-Cache- (LLC-) Zuteilungsunterstützung über CPUID aufzuzählen, und die Schnittstellen für das Betriebssystem/den Hypervisor, um Anwendungen in Dienstklassen (CLOS, classes of service) zu gruppieren und die Menge an Last-Level-Cache-Speicher anzugeben, die jeder CLOS zur Verfügung steht. Diese Schnittstellen basieren auf modellspezifischen Registern (MSRs). Da Software-Aktivierungsunterstützung bereitgestellt wird, können die meisten Benutzer bestehende Software-Patches und Tools nutzen, um CAT zu verwenden.
  • Das CMT-Merkmal stellt Sichtbarkeit einer gemeinsamen Plattformressourcennutzung (über L3-Cache-Belegung) bereit, was ein verbessertes Anwendungsprofiling, besseres Planen, verbesserten Determinismus und verbesserte Plattformsichtbarkeit zum Verfolgen von Anwendungen ermöglicht, die gemeinsam genutzte Ressourcen übermäßig nutzen können und somit die Performanz anderer, parallel laufender Anwendungen reduzieren. CMT legt Cache-Verbrauchsdetails frei, was ermöglicht, dass Ressourcenorchestrierungssoftware eine bessere Erfüllung von Service-Level-Agreements (SLAs) sicherstellt.
  • MBA-Technologie ermöglicht eine ungefähre und indirekte Steuerung über die Speicherbandbreite, die für Arbeitslasten verfügbar ist, wodurch eine Störungsabschwächung und Bandbreitenausbildung für verrauschte Nachbarn (noisy neighbors), die in dem System 3200 vorhanden sind, ermöglicht wird. MBA stellt kernweise Steuerungen über die Bandbreitenzuteilung bereit. MBA ist zwischen jedem Kern und einem gemeinsam genutzten Hochgeschwindigkeits-Interconnect enthalten, der die Kerne in einigen Mehrkernprozessoren verbindet. Dies ermöglicht, dass Bandbreite stromabwärts gemeinsam genutzter Ressourcen, wie etwa Speicherbandbreite, gesteuert wird. MBA ist komplementär zu bestehenden RDT-Merkmalen wie CAT. Beispielsweise kann CAT verwendet werden, um den Last-Level-Cache zu steuern, während MBA verwendet werden kann, um die Speicherbandbreite zu steuern. Das MBA-Merkmal erweitert die gemeinsam genutzte Ressourcensteuerungsinfrastruktur, die mit CAT eingeführt wird. Die CAT-Architektur definiert ein Pro-Software-Thread-Tag, das als Dienstklasse (CLOS) bezeichnet wird, die es ermöglicht, laufende Threads, Anwendungen oder VMs auf eine bestimmte Bandbreite abzubilden. Durch CPU-Kennungs- (CPUID, central processing unit identifier) basierte Aufzählung kann das Vorhandensein des MBA-Merkmals auf einem spezifischen Prozessor bestätigt werden. Sobald als vorhanden aufgezählt, können Details wie etwa die Anzahl von unterstützten Dienstklassen und MBA-Merkmalsdetails wie etwa Drosselmodi, die unterstützt werden, aufgezählt werden.
  • In typischen Anwendungen wird ein aktivierter Betriebssystem- und/oder Virtuelle-Maschine-Überwacher eine Zuordnung von Verarbeitungs-Threads zu einer CLOS aufrechterhalten. Typischerweise wird, wenn ein Softwarethread auf einen gegebenen logischen Prozessor ausgetauscht wird, ein modellspezifisches Register (MSR), wie etwa IA32_PQR_ASSOC-MSR (zum Beispiel für einen Intel Corporation Xeon® -Prozessor), aktualisiert, um die CLOS des Threads widerzuspiegeln. MBA-Bandbreitengrenzen pro CLOS werden als ein Wert im Bereich von null bis zu einem maximalen unterstützten Drosselungsgrad für die Plattform (verfügbar über CPUID) spezifiziert, typischerweise bis zu 90 % Drosselung, und typischerweise in 10 %-Schritten. Diese Schritte sind näherungsweise und repräsentieren einen kalibrierten Wert, der auf eine bekannte bandbreitenintensive Reihe von Anwendungen abgebildet wird, um Bandbreitensteuerung bereitzustellen. Die resultierende Bandbreite für diese bereitgestellten Kalibrierungspunkte kann über Systemkonfigurationen, Generationen und Speicherkonfigurationen variieren, so dass die MBA-Drosselverzögerungswerte als ein Hinweis von Software an Hardware darüber betrachtet werden sollten, wie viel Drosselung angewendet werden sollte.
  • Es gibt viele technische Auswirkungen der verschiedenen Ausführungsformen. Zum Beispiel nutzen verschiedene Ausführungsformen kürzliche Erweiterung der Prioritätsdefinition einer CLOS in RDT - wobei die Erweiterung eine neue Dienstklasse bereitstellt, die als Speicherdienstklasse bezeichnet wird (vorliegend als „memCLOS“ oder „MCLOS“ bezeichnet) -, um die Integration von MCLOS-Funktionalität über mehrere IC-Dies einer HPM-Architektur hinweg zu ermöglichen. Bei einer solchen Ausführungsform umfassen IC-Dies einer solchen Architektur jeweilige P-Einheiten, wobei - zumindest in Bezug auf die Bereitstellung von MCLOS-Funktionalität - eine solche P-Einheit als ein „Supervisor“ für eine oder mehrere andere „Supervisand“-P-Einheiten fungieren soll. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • 32 ist ein Blockdiagramm, das ein System 3200 zum Unterstützen von MCLOS in einer HPM-Architektur gemäß einer Ausführungsform veranschaulicht. Das System 3200 ist ein Beispiel für eine Ausführungsform, bei der mehrere IC-Dies (zum Beispiel einer Package-Einrichtung) jeweils jeweilige P-Einheiten umfassen, die MCLOS-Funktionalität unterschiedlich unterstützen sollen, wobei - zumindest hinsichtlich der Verwaltung einer solchen Funktionalität - eine P-Einheit eine „Supervisor“-P-Einheit für eine oder mehrere andere „Supervisand“-P-Einheiten sein soll.
  • Bei der gezeigten veranschaulichenden Ausführungsform sind die IC-Dies 3201_1 und 3201_2,..., 3201_3 des Systems 3200 über eine Interconnect-Schaltungsanordnung, wie etwa das gezeigte veranschaulichende Fabric 3207, verschieden miteinander gekoppelt. Zur Veranschaulichung und nichteinschränkend ist eine P-Einheit 3202 des IC-Die 3201_1 über eine Hardwareschnittstelle 3221 mit dem Fabric 3207 (z.B. einem P2P-Fabric) gekoppelt. Gleichermaßen ist eine P-Einheit 3203a des IC-Die 3201 2 über eine Hardwareschnittstelle 3231a mit dem Fabric 3207 gekoppelt, wobei eine andere P-Einheit 3203n des IC-Die 3201 3 über eine Hardwareschnittstelle 323 In mit dem Fabric 3207 gekoppelt ist.
  • Einer der IC-Dies soll als ein Supervisor-Chip wenigstens mit Bezug auf die Bereitstellung von MCLOS-Merkmalen mit einem oder mehreren anderen der IC-Dies arbeiten. Zur Veranschaulichung und nichteinschränkend soll die P-Einheit 3202 eine Supervisor-P-Einheit sein und einige oder alle der IC-Dies 3201_2,..., 3201_3 sollen jeweils eine Supervisand-P-Einheit sein, deren MCLOS-Merkmale durch die P-Einheit 3202 verwaltet werden sollen.
  • Bei der gezeigten veranschaulichenden Ausführungsform umfasst der IC-Die 3201_1 Kerne 3222 und eine Speichersteuerung 3225, die Kernen 3222 Zugriff auf eine oder mehrere (nicht gezeigte) Speicherressourcen bereitstellt, einschließlich zum Beispiel eines gemeinsam genutzten Caches, Hauptspeichers oder dergleichen. In verschiedenen Ausführungsformen beinhaltet das System 3200 einige oder alle solchen Speicherressourcen - oder ist alternativ mit solchen gekoppelt -, die (zum Beispiel) eine oder mehrere Speichereinrichtungen oder Dies beinhalten, die eine beliebige von verschiedenen Arten von flüchtigem und/oder nichtflüchtigem Speicher beinhalten. Flüchtige Speichertypen können unter anderem dynamischen Direktzugriffsspeicher (DRAM), statischen Direktzugriffsspeicher (SRAM), Thyristor-RAM (TRAM) oder Nullkondensator-RAM (ZRAM) beinhalten. Nichtflüchtige Speichertypen können byte- oder blockadressierbare Speichertypen mit einer 3-dimensionalen (3D-) Kreuzpunktspeicherstruktur beinhalten, die Chalkogenid-Phasenänderungsmaterial (z.B. Chalkogenidglas) beinhaltet, das im Folgenden als „3D-Kreuzpunktspeicher“ bezeichnet wird. Nichtflüchtige Speichertypen können auch andere Typen von byte- oder blockadressierbarem nichtflüchtigem Speicher beinhalten, wie etwa unter anderem NAND-Flashspeicher mit mehreren Schwellenebenen, NOR-Flashspeicher, Phasenwechselspeicher (PCM, phase change memory) mit einer oder mehreren Ebenen, resistiven Speicher, Nanodrahtspeicher, ferroelektrischen Transistor-Direktzugriffsspeicher (FeTRAM), magneto-resistiven Direktzugriffsspeicher (MRAM), der Memristortechnologie beinhaltet, Spin-Transfer-Torque-MRAM (STT-MRAM) oder eine Kombination von beliebigen der Genannten. In einer anderen Ausführungsform kann ein Hauptspeicher ein oder mehrere Festplattenlaufwerke innerhalb des Systems 3200 und/oder für dieses zugänglich aufweisen.
  • Die Kerne 3222 (wie bei den anderen Kernen, die in dieser Offenbarung erörtert werden) umfassen zum Beispiel einen beliebigen von verschiedenen kommerziell erhältlichen Prozessorkernen, einschließlich, ohne Einschränkung, Intel® Atom®-, Celeron®-, Core (2) Duo®-, Core i3-, Core i5-, Core i7-, Itanium®-, Pentium®-, Xeon®- oder Xeon Phi®-Prozessoren, ARM-Prozessoren, Prozessoren von Applied Micro Devices, Inc., und ähnliche Prozessoren - wobei z.B. die Kerne 3222 unter anderem einen oder mehrere Vektorverarbeitungskerne, Matrixverarbeitungskerne, skalare Verarbeitungskerne, GPU-Kerne, AI-Engines, DSP-Kerne oder dergleichen beinhalten. Während des Betriebs des Systems 3200 greifen die Kerne 3222 über die Speichersteuerung 3225 auf verschiedene Weise auf die Speicherressourcen zu, um eine oder mehrere Arbeitslasten zu verarbeiten. Um eine effiziente Leistungsnutzung der Kerne 3222 zu fördern, während eine oder mehrere MCLOS-Anforderungen berücksichtigt werden, umfasst der IC-Die 3201_1 ferner eine P-Einheit 3202 und einen Speicherbandbreitenzuteiler 3226, die verschieden miteinander, mit der Speichersteuerung 3225 und mit den Kernen 3222 gekoppelt sind. Die P-Einheit 3202 umfasst Logik (z.B. einschließlich Hardware und in einigen Ausführungsformen Firmware), um MCLOS-Parameter zu bestimmen, die zum Beispiel von einem Host-Betriebssystem (OS) empfangen werden, das mit Kernen 3222 ausgeführt wird (oder in einer anderen Ausführungsform von einem Agenten, der sich außerhalb des IC-Die 3201_1 befindet).
  • Basierend auf den MCLOS-Parametern aktualisiert die P-Einheit 3202 Speicherbandbreiteneinstellungen für den Speicherbandbreitenzuteiler 3226 dynamisch oder stellt diese anderweitig bereit. Diese Speicherbandbreiteneinstellungen werden durch den Speicherbandbreitenzuteiler 3226 unterschiedlich auf die Prozessorkerne 3222 angewendet, wobei z.B. der Speicherbandbreitenzuteiler 3226 Speicherbandbreiten dynamisch anpasst, die unterschiedlich der einen oder den mehreren Arbeitslasten zugeteilt sind, die die Kerne 3222 verarbeiten. In verschiedenen Ausführungsformen umfasst das Anpassen der Speicherbandbreite, dass der Speicherbandbreitenzuteiler 3226 eines oder mehrere der Folgenden dynamisch ändert: eine Anzahl von Speicherkanälen, die zur Verwendung durch einen gegebenen einen oder mehrere Kerne verfügbar sein sollen, eine Menge von Speicherressourcen, für die dem einen oder den mehreren Kernen Zugriff erlaubt wurde, eine Zeitspanne, die dem einen oder den mehreren Kernen zur Verwendung von Speicherressourcen (und/oder zur Verwendung von Fabric-Ressourcen, um auf die Speicherressourcen zuzugreifen) zuzuteilen ist, eine Frequenz eines Takts, die Kommunikation zwischen dem einen oder den mehreren Kernen und einer gegebenen Speicherressource erleichtert, eine Priorität von Speicherzugriffen durch den einen oder die mehreren Kerne und/oder dergleichen.
  • In einigen Ausführungsformen basieren eine oder mehrere Speicherbandbreiteneinstellungen - die die P-Einheit 3202 aktualisiert oder anderweitig dem Speicherbandbreitenzuteiler 3226 bereitstellt - zusätzlich oder alternativ auf Performanzüberwachungsstatistiken, die an der Speichersteuerung 3225 erzeugt werden. In einer solchen Ausführungsform umfasst die Speichersteuerung 3225 zum Beispiel Logik zum Überwachen der Durchführung einer oder mehrerer Arbeitslasten durch die Kerne 3222. Basierend auf einer solchen Überwachung erzeugt die Speichersteuerung 3225 Performanzstatistiken, die verfügbar gemacht werden, um zu bestimmen, ob gemäß aktuellen MCLOS-Parametern eine oder mehrere Änderungen vorgenommen werden müssen, um einer gegebenen Arbeitslast (z.B. einem oder mehreren der Kerne 3222) mehr oder weniger Speicherbandbreite zuzuteilen.
  • In einer Ausführungsform umfasst der IC-Die 3201_1 ein oder mehrere Register, Speicherarrays und/oder beliebige von verschiedenen anderen geeigneten Repositories von MCLOS-Parametern, Performanzüberwachungsstatistiken, Speicherbandbreiteneinstellungen und/oder andere Informationen (repräsentiert als der gezeigte veranschaulichende Konfigurationszustand 3223), die zu einer gegebenen Zeit den Betrieb der P-Einheit 3202 und/oder der Speichersteuerung 3225 und/oder des Speicherbandbreitenzuteilers 3226 und/oder der Kerne 3222 bestimmen sollen. Ein Teil oder der gesamte Konfigurationszustand 3223 ist in verschiedenen Ausführungsformen unter verschiedenen Komponenten des IC-Die 3201_1 verteilt.
  • Ein oder mehrere andere Chips des Systems 3200 - einschließlich z.B. einiger oder aller IC-Dies 3201_2,..., 3201_3 - stellen ferner eine jeweilige MCLOS-Funktionalität lokal bereit. Zum Beispiel umfasst der IC-Die 3201_2 Prozessorkerne 3232a, einen Konfigurationszustand 3233a, eine P-Einheit 3203a, eine Speichersteuerung 3235a und einen Speicherbandbreitenzuteiler 3236a, die zum Beispiel jeweils funktionell den Kernen 3222, dem Konfigurationszustand 3223, der P-Einheit 3202, der Speichersteuerung 3225 und dem Speicherbandbreitenzuteiler 3226 entsprechen. Gleichermaßen umfasst der IC-Die 3201 3 Prozessorkerne 3232n, einen Konfigurationszustand 3233n, eine P-Einheit 3203n, eine Speichersteuerung 3235n und einen Speicherbandbreitenzuteiler 3236n, die zum Beispiel jeweils funktionell den Kernen 3222, dem Konfigurationszustand 3223, der P-Einheit 3202, der Speichersteuerung 3225 und dem Speicherbandbreitenzuteiler 3226 entsprechen.
  • Manche oder alle der P-Einheiten 3202, 3203a, ..., 3203n beinhalten jeweils Logik zum Unterstützen eines Protokolls für Kommunikationen, die eine hierarchische Verwaltung von MCLOS-Operationen über mehrere IC-Dies des Systems 3200 hinweg ermöglichen. Die P-Einheit 3203a ist zum Beispiel gekoppelt, um jeweilige MCLOS-Parameter zu empfangen, die die P-Einheit 3202 über das Fabric 3207 kommuniziert, wenn z.B. solche anderen MCLOS-Parameter von der P-Einheit 3202 empfangen, abgeleitet oder anderweitig bestimmt werden, basierend (zum Beispiel) auf Kommunikationen mit einem Host-OS, das von den Kernen 3222 ausgeführt wird. In einer Ausführungsform umfasst das Fabric 3207 zum Beispiel Interconnects, die einen Teil oder die gesamte Funktionalität des Kommunikationsnetzwerks 107 bereitstellen. Alternativ oder zusätzlich ist die P-Einheit 3203n gekoppelt, um dieselben oder andere MCLOS-Parameter zu empfangen, die die P-Einheit 3202 über das Fabric 3207 kommuniziert. Basierend auf solchen MCLOS-Parametern stellen eine oder mehrere der P-Einheiten 3203a,..., 3203n Einstellungen für eine Speicherbandbreitenzuteilung bereit, wie etwa jene, die durch einen der Speicherbandbreitenzuteiler 3236a, 3236n bereitzustellen ist.
  • 33A zeigt Operationen eines Verfahrens 3300 zum Kommunizieren von MCLOS-Informationen in einer HPM-Architektur gemäß einer Ausführungsform. Das Verfahren 3300 wird mit einem oder mehreren IC-Dies durchgeführt, die zum Beispiel Funktionalität des Systems 3200 bereitstellen.
  • Wie in 33A gezeigt, umfasst das Verfahren 3300 (bei 3310) Bestimmen eines Typs, zu dem eine P-Einheit einer gegebenen Leistungsdomäne (z.B. ein gegebener IC-Die) gehört - z.B. einschließlich Identifizieren eines speziellen eines Supervisor-P-Einheitstyps oder eines Supervisand-P-Einheitstyps. Der Typ wird zum Beispiel basierend auf Handshake-Kommunikationen zwischen P-Einheiten verschiedener IC-Dies oder (zum Beispiel) durch Zugreifen auf ein Moduseinstellregister, ein oder mehrere Sicherungsbits und/oder einen beliebigen von verschiedenen anderen geeigneten Mechanismen zum Identifizieren einer Funktion des IC-Die in der Leistungsverwaltungshierarchie bestimmt. Dann wird bewertet (bei 3312), ob ein Supervisor-P-Einheitstyp - oder alternativ der Supervisand-P-Einheitstyp - durch das Bestimmen bei 3310 identifiziert wird.
  • Wenn bei 3312 bestimmt wird, dass die P-Einheit die Supervisor-P-Einheit ist, sendet die P-Einheit (bei 3314) MCLOS-Parameter von der P-Einheit zu einer anderen P-Einheit einer anderen Leistungsdomäne (z.B. eines anderen IC-Die). Im Gegensatz dazu empfängt die P-Einheit stattdessen MCLOS-Parameter von einer anderen P-Einheit (bei 3316) einer anderen Leistungsdomäne, wenn die P-Einheit bei 3312 als Supervisand-P-Einheit bestimmt wird. Bei verschiedenen alternativen Ausführungsformen lässt das Verfahren 3300 das Bestimmen bei 3310 und das Auswerten bei 3312 aus, wobei z.B. das Verfahren 3300 stattdessen automatisch entweder Senden bei 3314 oder Empfangen bei 3316 durchführt.
  • In einigen Ausführungsformen umfasst das Verfahren 3300 ferner - oder ist alternativ eine Basis für - Operationen 3320, die (zum Beispiel) an derjenigen der Leistungsdomänen durchgeführt werden, die eine Supervisand-P-Einheit beinhaltet. Alternativ oder zusätzlich umfasst das Verfahren MCLOS-Operationen, die an derjenigen der Leistungsdomänen durchgeführt werden, die die Supervisor-P-Einheit beinhaltet. In der gezeigten veranschaulichenden Ausführungsform umfassen die Operationen 3320 (bei 3322) Zuteilen von Speicherbandbreiten mit einem Speicherbandbreitenzuteiler der betreffenden Leistungsdomäne für eine oder mehrere Arbeitslasten, die durch mehrere Prozessorkerne dieser Leistungsdomäne verarbeitet werden sollen. Die Operationen 3320 umfassen ferner (bei 3324), dass der Speicherbandbreitenzuteiler eine Vielzahl von Speicherbandbreiteneinstellungen basierend auf einem oder mehreren MCLOS-Parametern (wie etwa jenen, die bei 3314 oder bei 3316 kommuniziert werden) anwendet, um Prioritäten der Speicherbandbreiten dynamisch anzupassen.
  • In verschiedenen Ausführungsformen umfassen MCLOS-Parameter (kommuniziert bei 3314 oder bei 3316) eine Kennung eines Typs von zu überwachendem Ereignis, wobei Operationen 3320 ferner einen Performanzüberwacher einer Speichersteuerung umfassen, der Performanzüberwachungsstatistiken erzeugt, basierend auf der Kennung des Ereignistyps, durch Überwachen einer Durchführung der einen oder der mehreren Arbeitslasten durch die Vielzahl von Prozessorkernen zumindest teilweise basierend auf Performanzüberwachungskonfigurationsparametern. Alternativ oder zusätzlich umfassen solche MCLOS-Parameter Informationen, die eine Entsprechung verschiedener Ebenen eines MCLOS-Klassifizierungsschemas jeweils mit einer jeweiligen Ebene eines anderen Dienstklassenklassifizierungsschemas identifizieren. Alternativ oder zusätzlich umfassen solche MCLOS-Parameter eine Kennung eines Zeitfensters, das bestimmt, wie ein gegebener Ereignistyp überwacht werden soll.
  • 33B, 33C zeigen Operationen der Verfahren 3330, 3340, die-jeweils-an einer Supervisand-P-Einheit und einer Supervisor-P-Einheit einer HPM-Architektur durchgeführt werden. In verschiedenen Ausführungsformen sind eines oder beide der Verfahren 3330, 3340 Teil des Verfahrens 3300 oder basieren anderweitig auf diesem. Wie in 33B gezeigt, umfasst das Verfahren 3330 (bei 3332) eine Supervisand-P-Einheit eines ersten IC-Dies, die lokale Performanzüberwachungsstatistiken z.B. basierend auf einer Überwachung von Speicherzugriffen an dem ersten IC-Die bestimmt. In einem Ausführungsbeispiel umfasst das Bestimmen bei 3332, dass die P-Einheit 3203a die Statistiken von Performanzüberwachungsschaltungen der Speichersteuerung 3235a empfängt. Das Verfahren 3330 umfasst ferner (bei 3334), dass die Supervisand-P-Einheit die Statistiken, die bei 3332 bestimmt wurden, an eine Supervisor-P-Einheit eines anderen IC-Dies (wie etwa die P-Einheit 3202) sendet.
  • Unter Bezugnahme auf 33C umfasst das Verfahren 3340 (bei 3342), dass eine Supervisor-P-Einheit eines zweiten IC-Dies von einer Supervisand-P-Einheit Performanzüberwachungsstatistiken empfängt, wie etwa jene, die bei 3334 des Verfahrens 3330 gesendet werden. Das Verfahren 3340 umfasst ferner (bei 3344), dass die Supervisor-P-Einheit lokale Performanzüberwachungsstatistiken an der Supervisor-P-Einheit z.B. basierend auf einer Überwachung von Speicherzugriffen an dem zweiten IC-Die bestimmt. In einem Ausführungsbeispiel umfasst das Bestimmen bei 3332, dass die P-Einheit 3202 die Statistiken von Performanzüberwachungsschaltungen der Speichersteuerung 3225 empfängt.
  • Das Verfahren 3340 umfasst ferner (bei 3346), dass die Supervisor-P-Einheit einen oder mehrere MCLOS-Konfigurationsparameter (einschließlich zum Beispiel eines MCLOS-Zeitfensterparameters) bestimmt. In einer solchen Ausführungsform werden der eine oder die mehreren MCLOS-Konfigurationsparameter der Supervisor-P-Einheit durch ein Arbeitslastüberwachungsmodul eines Betriebssystems (oder eines anderen geeigneten Softwareprozesses) bereitgestellt, das - zum Beispiel - den einen oder die mehreren Parameter basierend auf aggregierten Performanzüberwachungsstatistiken erzeugt, die durch die Supervisor-P-Einheit bereitgestellt werden. In einer alternativen Ausführungsform stellt die Supervisor-P-Einheit Funktionalität bereit, um MCLOS-Konfigurationsparameter basierend auf den Statistiken, die bei 3342 und 3344 verschiedentlich bestimmt werden, lokal zu erzeugen. Das Verfahren 3340 umfasst ferner (bei 3348) Senden des einen oder der mehreren MCLOS-Konfigurationsparameter an die Supervisand-P-Einheit.
  • Unter erneuter Bezugnahme auf 33B umfasst das Verfahren 3330 ferner (bei 3336), dass die Supervisand-P-Einheit einen oder mehrere MCLOS-Konfigurationsparameter empfängt, wie etwa jene, die eine Supervisor-P-Einheit bei 3348 sendet. In einer solchen Ausführungsform wird die MCLOS-Funktionalität an der Supervisand-P-Einheit basierend auf dem einen oder den mehreren MCLOS-Konfigurationsparametern modifiziert, wobei z.B. Ereignisüberwachung an dem ersten IC-Die gemäß einem Zeitfenster- (oder anderen) MCLOS-Parameter durchgeführt wird, der bei 3336 empfangen wird.
  • 34 veranschaulicht ein Beispiel für eine dynamische Steuerung der Speicherbandbreitenzuteilung gemäß einigen Ausführungsformen. Das System 3400 von Komponenten beinhaltet einen Arbeitslastüberwacher 3412, der in Software implementiert ist. In einer Ausführungsform ist der Arbeitslastüberwacher 3412 eine Komponente innerhalb des OS 3410, um Arbeitslasten (z.B. Anwendungen oder Teile von Anwendungen), die auf Prozessorkernen 3440 laufen, zu überwachen. Das System 3400 beinhaltet Prozessorkerne 3440, eine Speichersteuerung (MC) 3450, eine P-Einheit 3402 und einen Speicherbandbreitenzuteiler (MBA) 3430, alle Teil eines IC-Die 3401, wie etwa eines der IC-Dies 3201_1, 3201_2,..., 3201_3. Die P-Einheit 3402 verwendet die MCLOS-Konfigurationsparameter 3414, die durch den Arbeitslastüberwacher 3412 eingestellt werden, um Verzögerungseinstellungen 3428 (auch Speicherbandbreiteneinstellungen genannt) zu bestimmen, die an den MBA 3430 weitergeleitet werden. Der MBA 3430 kommuniziert mit Prozessorkernen 3440, die mit MC 3450 gekoppelt sind. Da Prozessorkerne Anweisungen von Arbeitslasten verarbeiten, sammelt der MC-Performanzüberwacher (perfmon) 3452 innerhalb der MC 3450 die MC-Perfmon-Statistiken 3454 zumindest teilweise basierend auf Parametern, die in MC-perfmon-Konfigurationen (Konfigs) 3456 eingestellt sind. Die MC-Perfmon-Statistiken 3454 werden an die Regelschleifensteuerung (z.B. proportional-integralderivativ, PID) 3424 innerhalb der P-Einheit 3402 weitergeleitet, die dann bewirken kann, dass der Verzögerungsausgleicher 3426 Verzögerungseinstellungen 3428 nach Bedarf ändert. Somit implementieren die Regelschleifensteuerung 3424 (z.B. eine PID-Steuerung) und der Verzögerungsausgleicher 3426 einen Regelschleifenmechanismus, der eine Rückkopplung einsetzt, die weit verbreitet in Anwendungen verwendet wird, die eine kontinuierlich modulierte Steuerung erfordern. Die Regelschleifensteuerung 3424 berechnet kontinuierlich einen Fehlerwert als die Differenz zwischen einem gewünschten Sollwert (SP, set point) und einer gemessenen (z.B. überwachten) Prozessvariablen (PV) (wie etwa zum Beispiel RPQBelegung) und wendet eine Korrektur basierend auf proportionalen, integralen und abgeleiteten Termen (als P, I bzw. D bezeichnet) an. Die Regelschleifensteuerung 3424 wendet automatisch genaue und reaktive Korrekturen auf eine Steuerfunktion (z.B. Speicherbandbreitenzuteilung in einer Ausführungsform) an.
  • In Ausführungsformen der vorliegenden Erfindung bestimmt der Verzögerungsausgleicher 3426 zumindest teilweise basierend auf Eingaben von der Regelschleifensteuerung 3424 Verzögerungseinstellungen 3428 (z.B. Speicherbandbreiteneinstellungen), die durch den MBA 3430 für Prozessorkerne 3440 anzuwenden sind, um die Prioritäten der Speicherbandbreite für Arbeitslasten, die durch die Kerne verarbeitet werden, anzupassen.
  • In einer Ausführungsform werden die MCLOS-Konfigurationsparameter 3414 vom Arbeitslastüberwacher 3412 unter Verwendung einer Mailboximplementierung, die durch das OS 3410 bereitgestellt wird, an die P-Einheit 3402 kommuniziert. Eine Mailbox kann für SW/BIOS verwendet werden, um mit dem Prozessor für Merkmalsnachweis und - steuerung zu kommunizieren. Es gibt zwei Register, die die Mailboxschnittstelle bilden: eines ist das Schnittstellenregister, über das der Befehl gesteuert und spezifiziert wird, und das andere ist das Datenregister. Das Besetzt-Bit wird gesetzt und die zu modifizierende oder zu steuernde Operation wird spezifiziert. Wenn die Operation ein Schreibvorgang ist, enthält das Datenregister die Schreibdaten, und wenn die Operation ein Lesevorgang ist, wird der zurückgelesene Inhalt in dem Datenregister gespeichert.
  • In einer anderen Ausführungsform werden neue MSRs (in 34 nicht gezeigt) zum Speichern von MCLOS-Konfigurationsparametern 3414 definiert und in dem IC-Die 3401 implementiert, um existierende CLOS-Konfigurationen, wie in RDT definiert, zu erweitern.
  • In einigen Ausführungsformen werden Speicherbandbreite und Latenz auf eine oder mehrere konfigurierbare Metriken abgebildet. In einer Ausführungsform kann eine spezifische Metrik verwendet werden, die als RPQBelegung bezeichnet wird. Eine Regelschleife ist in Firmware der P-Einheit 3402 implementiert, die günstige Speicherlatenzeigenschaften für Aufgaben mit hoher Priorität beibehält und ungünstige Szenarien detektiert, bei denen Aufgaben mit hoher Priorität Performanzverlust aufgrund von Speicherbandbreite/Latenzverschlechterung erleiden können, indem zum Beispiel eine System-RPQBelegung überwacht wird. Der Verzögerungsausgleicher 3426 in der P-Einheit 3402 drosselt (verzögert) automatisch Zugriff auf die Speicherbandbreite von CLOS-Kernen mit niedriger Priorität, wenn zum Beispiel ein System-RPQBelegungswert einen Sollwert überschreitet, und stellt Speicherbandbreite/Latenz mit hoher Priorität wieder her. Der Verzögerungsausgleicher 3426 verwendet die RDT/MBA-Schnittstelle, die durch den MBA 3430 bereitgestellt wird, um eine Drosselung der Prozessorkerne 3440 mit niedriger Priorität zu erreichen.
  • In einer Ausführungsform umfasst die Vielzahl von Verzögerungseinstellungen (z.B. Speicherbandbreiteneinstellungen) einen Verzögerungswert für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit niedriger Priorität basierend auf einer Speicherdienstklasse („memCLOS“ oder „MCLOS“) des Prozessorkerns (z.B. diesem zugewiesen) mit niedriger Priorität. In einer Ausführungsform umfassen die eine oder die mehreren der Vielzahl von Verzögerungseinstellungen einen Verzögerungswert von null (z.B. keine Verzögerung) für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit hoher Priorität basierend auf einem MCLOS des Prozessorkerns (z.B. diesem zugewiesen) mit hoher Priorität.
  • In einer Ausführungsform überwacht eine Regelschleifensteuerung 3424 in Firmware der P-Einheit 3402 zum Beispiel eine RPQBelegung des IC-Dies 3401, und wenn die RPQBelegung einen Sollwert überschreitet, drosselt (verzögert) der Verzögerungsausgleicher 3426 die Prozessorkerne mit niedriger Priorität basierend auf ihrer MCLOS-Definition. In einer Ausführungsform können MCLOS-Konfigurationsparameter 3414 durch den Arbeitslastüberwacher 3412 programmiert werden, wie unten in den Tabellen 3 und 4 gezeigt, und die MC-Perfmon-Konfigs 3456 (wie etwa ein RPQBelegungssollwert) für das System können programmiert werden, wie unten in Tabelle 5 gezeigt. In anderen Ausführungsformen können andere MC-Perfmon-Statistiken 3454 als Bestimmungsmetriken zum dynamischen Anpassen der Speicherbandbreitenzuteilung (oder anderer gemeinsam genutzter Ressourcen) überwacht werden.
  • Somit wird eine praktisch gestaltete Schnittstelle zum Hinzufügen zusätzlicher QoS-Ebenen für Arbeitslasten unterschiedlicher Priorität in Ausführungsformen mit der CLOS-Erweiterung, MCLOS genannt, erreicht.
  • In einer Ausführungsform beinhalten die MCLOS-Konfigurationsparameter 3414 ein Steuerbit, das zum Aktivieren des MCLOS-Merkmals verwendet wird. Wenn dieses gesetzt ist (z.B. auf 1), wird das MCLOS-Merkmal für den IC-Die 3401 aktiviert. In einer Ausführungsform ist das MCLOS-Aktivierungssteuerbit als eine Sicherung in dem IC-Die 3401 implementiert, die durchgebrannt werden kann, wenn die MCLOS-Fähigkeit autorisiert wird.
  • Bei dem gezeigten Ausführungsbeispiel empfängt die P-Einheit 3402 MCLOS-Konfigurationsparameter 3414 von einem Arbeitslastüberwacher 3412 (oder einem anderen Softwareprozess), der zum Beispiel mit Prozessorkernen 3440 ausgeführt wird. Solche MCLOS-Konfigurationsparameter 3414 werden zum Beispiel bei der P-Einheit 3402 verwendet, um Operationen durchzuführen, die zur MCLOS-Funktionalität am IC-Die 3401 beitragen. In verschiedenen Ausführungsformen kommuniziert die P-Einheit 3402 zusätzlich oder alternativ manche oder alle solchen MCLOS-Konfigurationsparameter 3414 an eine oder mehrere andere P-Einheiten jeweils an einem anderen IC-Die, den das System 3400 beinhaltet (oder mit dem dieses alternativ gekoppelt werden soll). Zum Beispiel beinhaltet die P-Einheit 3402 eine HPM-Logik 3422 oder hat anderweitigen Zugriff darauf, die Kommunikation - über eine Hardwareschnittstelle 3404 der Schaltungsanordnung 3401 - mit jeweiligen P-Einheiten oder einem oder mehreren anderen IC-Dies unterstützt. In einer solchen Ausführungsform arbeiten die eine oder die mehreren anderen P-Einheiten jeweils als ein Supervisand für die P-Einheit 3402, indem z.B. Parameter verwendet werden, die von der P-Einheit 3402 bereitgestellt werden, um eine MCLOS-Funktionalität an dem einen oder den mehreren anderen IC-Dies zu implementieren.
  • In weiteren Ausführungsformen empfängt die P-Einheit 3402 stattdessen MCLOS-Konfigurationsparameter 3414 von einer anderen P-Einheit eines anderen IC-Die über eine Hardwareschnittstelle 3404, wobei z.B. die P-Einheit 3402 zumindest hinsichtlich der Verwaltung der MCLOS-Funktionalität ein Supervisand für die andere P-Einheit ist. In einer solchen Ausführungsform sind das OS 3410 und der Arbeitslastüberwacher 3412 stattdessen Softwareprozesse, die mit einem oder mehreren Prozessorkernen des anderen IC-Die ausgeführt werden.
  • 35 zeigt ein Zeitdiagramm 3500, das Signale veranschaulicht, die auf verschiedene Weise kommuniziert werden, um eine MCLOS-Funktionalität in einer HPM-Architektur zu ermöglichen, gemäß einer Ausführungsform. Signale, wie etwa jene, die in dem Zeitdiagramm 3500 gezeigt sind, werden zum Beispiel mit einem oder mehreren der IC-Dies 3201_1, 3201_2,..., 3201_3 oder mit einer Schaltungsanordnung 3401 kommuniziert, wobei z.B. eines der Verfahren 3300, 3330 oder 3340 solche Kommunikationen beinhaltet oder anderweitig auf diesen basiert.
  • Das Zeitdiagramm 3500 zeigt verschiedene Kommunikationen zwischen jeweiligen einer Supervisor-P-Einheit 3502 und Supervisand-P-Einheiten 3503a, 3503b, die sich jeweils an einem anderen jeweiligen IC-Die befinden als einem, der die Supervisor-P-Einheit 3502 beinhaltet. Wie in dem Zeitdiagramm 3500 gezeigt, führt die Supervisor-P-Einheit 3502 Operationen 3530 durch, um MCLOS-Informationen zu empfangen und zu verarbeiten, die (zum Beispiel) die Supervisor-P-Einheit 3502 von einem Arbeitslastüberwacher, einem Betriebssystem oder einer anderen solchen Quelle empfängt. Basierend auf den Operationen 3530 sendet die Supervisor-P-Einheit 3502 eine Nachricht 3532, die einen oder mehrere MCLOS-Konfigurationsparameter umfasst, die in diesem Ausführungsbeispiel ermöglichen, dass die Supervisand-P-Einheit 3503a ein jeweiliges Ereignis an dem IC-Die überwacht, der die Supervisand-P-Einheit 3503a beinhaltet. Des Weiteren sendet die Supervisor-P-Einheit 3502 eine andere Nachricht 3534, die einen oder mehrere andere (oder denselben) MCLOS-Konfigurationsparameter umfasst, um eine Ereignisüberwachung an dem IC-Diezu ermöglichen, der die Supervisand-P-Einheit 3503b beinhaltet.
  • In einer veranschaulichenden Ausführungsform weisen eine oder beide der Nachrichten 3532, 3534 ein Format auf, wie etwa dasjenige, das in Tabelle 3 unten gezeigt ist. Tabelle 3: MEMCLOS-Konfigurationsnachrichtenformat
    L15 L14 L13 L12 L11 L10 L9 L8 L7 L6 L5 L4 L3 L2 L1 L0
    SrcID DstID
    EH=1 Reserviert Opcode
    EH ID Reserviert
    SAI_PM_DIE-2-DIE
    RR PM-Agenten-ID MEMCLOS MSG
    Reserviert Reserviert SUB_CMD_TYP= 0(MEMCLOS_CONFIG)
    DDR_MEM_CLOS_EREIGNIS[7:0] Reserviert DDR MEMCLOS _EN[0]
    DDRT_MEM_CLOS_EREIGNIS [7:0] Reserviert DDRT_MEMCLOS_EN[0]
    Nutzdaten[47:32]
    Nutzdaten[63:48]
    Nutzdaten[79:64]
    Nutzdaten[95:80]
  • In Tabelle 3 ermöglicht der durch MEMCLOS_CONFIG angegebene Befehlsuntertyp die Identifizierung eines oder mehrerer Ereignisse, für die eine MCLOS-Überwachung aktiviert (oder alternativ deaktiviert) werden soll. Die Felder DDR_MEM_CLOS_EREIGNIS und DDRT_MEM_CLOS_EREIGNIS in Tabelle 3 erleichtern die Identifizierung jeweiliger Ereignistypen und die entsprechenden Felder DDR_MEMCLOS_EN und DDRT_MEMCLOS_EN ermöglichen die Identifizierung, ob die Ereignisse überwacht werden sollen.
  • Basierend auf der Nachricht 3532 führt die Supervisand-P-Einheit 3503a Operationen 3536 durch, um MCLOS-Konfigurationsparameter 3540 zu identifizieren, die dann in einem Speicher 3522a gespeichert werden, der lokal zu dem IC-Die ist, der die Supervisand-P-Einheit 3503a umfasst. Gleichermaßen identifizieren die Operationen 3538 durch die Supervisand-P-Einheit 3503b MCLOS-Konfigurationsparameter 3542, die dann in einem Speicher 3522a gespeichert werden, der lokal zu dem IC-Die ist, der die Supervisand-P-Einheit 3503a umfasst. Die Parameter 3540 und die Parameter 3542 werden auf verschiedene Weise verfügbar gemacht, um zu bestimmen, wie jeweilige Speicherbandbreitenzuteiler, Speichersteuerungen und/oder andere Ressourcen der Supervisand-IC-Dies MCLOS-Funktionalität bereitstellen sollen.
  • Bei dem gezeigten Ausführungsbeispiel stellt die Supervisor-P-Einheit 3502 zusätzliche MCLOS-Konfigurationsparameter an die Supervisand-P-Einheit 3503a und/oder die Supervisand-P-Einheit 3503b bereit. Die Nachrichten 3544, 3546 kommunizieren zum Beispiel (jeweils) den Supervisand-P-Einheiten 3503a, 3503b eine Entsprechung verschiedener Ebenen eines MCLOS-Klassifizierungsschemas jeweils mit einer jeweiligen Ebene eines alternativen Dienstklassen- (CLOS-) Klassifizierungsschemas. In einem Ausführungsbeispiel weisen eine oder beide der Nachrichten 3544, 3546 ein Format auf, wie etwa dasjenige, das in Tabelle 4 unten gezeigt ist. Tabelle 4: CLOS/MCLOS-Abbildungsnachrichtenformat
    L15 L14 L13 L12 L11 L10 L9 L8 L7 L6 L5 L4 L3 L2 L1 L0
    SrcID DstID
    EH=1 Reserviert Opcode
    EH ID Reserviert
    SAI_PM_DIE-2-DIE
    RR PM-Agenten-ID MEMCLOS_MSG
    Reserviert Reserviert SUB_CMD_TYP= 2(CLOS_MEMCLOS_ ABBILDUNG)
    CLOS7MC LOS[1:0] CLOS6MC LOS[1:0] CLOS5MC LOS[1:0] CLOS4MC LOS[1:0] CLOS3MC LOS[1:0] CLOS2MC LOS[1:0] CLOS1M CLOS[1:0] CLOS0M CLOS[1:0]
    CLOS15M CLOS[1:0] CLOS14M CLOS[1:0] CLOS13M CLOS[1:0] CLOS12M CLOS[1:0] CLOS11M CLOS[1:0] CLOS10M CLOS[1:0] CLOS9M CLOS[1:0] CLOS8M CLOS[1:0]
    Nutzlast[47:32]
    Nutzdaten[63:48]
    Nutzdaten[79:64]
    Nutzdaten[95:80]
  • In einer solchen Ausführungsform stellen Felder im obigen Format eine Abbildung bereit, wie in Tabelle 5 unten angegeben. Tabelle 5 - CLOS-auf-MemCLOS-Abbildungsfelder
    Feldname Beschreibung Bits Breite
    CLOS0MemCLOS Abbildung von CLOS0 auf MemCLOS 1:0 2
    CLOS1MemCLOS Abbildung von CLOS1 auf MemCLOS 3:2 2
    CLOS2MemCLOS Abbildung von CLOS2 auf MemCLOS 5:4 2
    CLOS3MemCLOS Abbildung von CLOS3 auf MemCLOS 7:6 2
    CLOS4MemCLOS Abbildung von CLOS4 auf MemCLOS 9:8 2
    CLOS5MemCLOS Abbildung von CLOS5 auf MemCLOS 11:10 2
    CLOS6MemCLOS Abbildung von CLOS6 auf MemCLOS 13:12 2
    CLOS7MemCLOS Abbildung von CLOS7 auf MemCLOS 15:14 2
    CLOS8MemCLOS Abbildung von CLOS8 auf MemCLOS 17:16 2
    CLOS9MemCLOS Abbildung von CLOS9 auf MemCLOS 19:18 2
    CLOS10MemCLOS Abbildung von CLOS10 auf MemCLOS 21:20 2
    CLOS11MemCLOS Abbildung von CLOS11 auf MemCLOS 23:22 2
    CLOSI2MemCLOS Abbildung von CLOS12 auf MemCLOS 25:24 2
    CLOSI3MemCLOS Abbildung von CLOS13 auf MemCLOS 27:26 2
    CLOSI4MemCLOS Abbildung von CLOS14 auf MemCLOS 29:28 2
    CLOS15MemCLOS Abbildung von CLOS15 auf MemCLOS 31:30 2
  • In verschiedenen Ausführungsformen melden manche oder alle Supervisand-P-Einheiten jeweils Performanzstatistiken, die basierend auf der Überwachung der Arbeitslastverarbeitung erzeugt werden, wobei z.B. die Supervisor-P-Einheit 3502 Performanzstatistiken 3556 von 3503a und Performanzstatistiken 3558 von der Supervisand-P-Einheit 3503b empfängt. Tabelle 6 unten zeigt ein Beispielformat zum Kommunizieren eines Typs von Performanzstatistiken - d.h. Bandbreitennutzung - gemäß einer Ausführungsform. Tabelle 6: * Supervisor-Supervisor-Nachrichtenübermittlung, die Nutzungsstatistiken zur Speicherbandbreite bereitstellt
    L15 L14 L13 L12 L11 L10 L9 L8 L7 L6 L5 L4 L3 L2 L1 L0
    SrcID DstID
    EH=1 Reserviert Opcode
    EH ID Reserviert
    SAI_PM_DIE-2-DIE
    RR PM-Agenten-ID MEMCLOS MSG
    Reserviert Reserviert SUB CMD TYP= 3(BB_PERFMON_STATISTIK)
    MEM_Statistik[15:7] MEM_Statistik[7:0]
    MEM_Statistik[31:24] MEM_Statistik[23:16]
    Nutzdaten[47:32]
    Nutzdaten[63:48]
    Nutzdaten[79:64]
    Nutzdaten[95:80]
  • Unter erneuter Bezugnahme auf das Zeitdiagramm 3500 bewertet die Supervisor-P-Einheit 3502 die Statistiken 3556, 3558 oder verarbeitet diese anderweitig, um verschiedene MCLOS-Parameter für eine oder mehrere Supervisand-P-Einheiten zu aktualisieren. Zur Veranschaulichung und nichteinschränkend führt die Supervisor-P-Einheit 3502 Operationen 3560 durch, um neue Zeitfensterparameter zum Überwachen jeweiliger Ereignisse an den anderen IC-Dies zu berechnen. Solche Zeitfensterparameter werden beispielsweise in den Nachrichten 3562, 3564 (jeweils) an die Supervisand-P-Einheiten 3503a, 3503b übermittelt. In einer veranschaulichenden Ausführungsform weisen eine oder beide der Nachrichten 3562, 3564 ein Format auf, wie etwa dasjenige, das in Tabelle 7 unten gezeigt ist. Tabelle 7: MEMCLOS-Zeitfensternachrichtenformat
    L15 L14 L13 L12 L11 L10 L9 L8 L7 L6 L5 L4 L3 L2 L1 L0
    SrcID DstID
    EH=1 Reserviert Opcode
    EH ID Reserviert
    SAI_PM_DIE-2-DIE
    RR PM-Agenten-ID MEMCLOS MSG
    Reserviert Reserviert SUB CMD TYP= 1(MEMCLOS_ZEITFENSTER)
    time_window1[15:8] time_window0[7:0]
    time_window3[31:24] time_window2[23:16]
    Nutzdaten[47:32]
    Nutzdaten[63:48]
    Nutzdaten[79:64]
    Nutzdaten[95:80]
  • In Tabelle 7 gibt der durch MEMCLOS_ZEITFENSTER angegebene Befehlsuntertyp an, dass ein oder mehrere Zeitfenster zu konfigurieren sind. Die verschiedenen Zeit_Fenster-Felder in Tabelle 7 ermöglichen die Identifizierung bestimmter zu aktualisierender oder anderweitig zu bestimmender Zeitfenster.
  • 36 zeigt Operationen eines Verfahrens 3600, das eine beispielhafte dynamische Steuerung einer Speicherbandbreitenzuteilungsverarbeitung gemäß einigen Ausführungsformen veranschaulicht. In einigen Ausführungsformen beinhaltet das Verfahren 3600 zum Beispiel Operationen eines der Verfahren 3300, 3330, 3340 oder basiert auf diesen. Zum Beispiel wird in einigen Ausführungsformen das Verfahren 3600 mit einem IC-Die durchgeführt, der eine Supervisand-P-Einheit umfasst. Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 3600 hier mit Bezug auf Operationen durch das System 3400 beschrieben. In anderen Ausführungsformen führt das System 3400 jedoch zusätzliche oder alternative Operationen durch und/oder das Verfahren 3600 wird mit anderen Schaltungsressourcen durchgeführt, die vorliegend beschriebene MCLOS- und HMP-Funktionalität unterstützen.
  • Bei Block 3602 stellt der Arbeitslastüberwacher 3412 die memCLOS-Konfigurationsparameter 3414 ein (z.B. aktiviert er die memCLOS-Funktionalität und stellt CLOS-auf-memCLOS-Abbildungen ein). In einigen Ausführungsformen wird der Arbeitslastüberwacher 3412 mit einem Prozessor eines IC-Die ausgeführt, der 3600 durchführt (oder alternativ an einem anderen IC-Die, der damit gekoppelt ist). Die Regelschleifensteuerung 3424 (in einer Ausführungsform als Firmware in der P-Einheit 3402 implementiert) wird aktiviert, wenn MemCLOS EN eingestellt ist. Bei Block 3604 stellt die Regelschleifensteuerung 3424 MC-Perfmon-Konfigurationen 3456 zumindest teilweise basierend auf memCLOS-Konfigurationsparametern 3414 ein. In einer Ausführungsform werden MC-Perfmon-Konfigurationen 3456 eingestellt, um Speicherstatistiken eines gewünschten Ereignisses zu ermöglichen, was Aufschluss über die Speicherbandbreitennutzung gibt. Bei Block 3606 erzeugt MC-Perfmon 3452 MC-Perfmon-Statistiken 3454 basierend auf Arbeitslasten, die durch die Prozessorkerne 3440 ausgeführt werden. Bei Block 3608 liest die Steuerung 3424 periodisch MC-Perfmon-Statistiken 3456, die durch MC-Perfmon 3452 erzeugt werden, und analysiert die MC-Perfmon-Statistiken. Falls die Regelschleifensteuerung 3424 basierend auf einer Analyse der MC-Perfmon-Statistiken bestimmt, dass ein memCLOS-Sollwert erreicht wurde, dann bewirkt die Regelschleifensteuerung 3424 bei Block 3612, dass der Verzögerungsausgleicher 3426 Verzögerungseinstellungen 3428 aktualisiert. Die Verzögerungseinstellungen 3428 werden verwendet, um die Speicherbandbreite beliebiger Verarbeitungskerne mit niedriger Priorität dynamisch zu drosseln, wenn Bandbreitenkonkurrenzprobleme auftreten. In einer Ausführungsform verteilt der Verzögerungsausgleicher 3426 ein Verzögerungsbudget unter den verschiedenen memCLOS-Klassen basierend auf einem Prioritätswert für jede memCLOS. Beispielsweise kann Verarbeitungskernen mit hoher Priorität eine geringere Verzögerung gegeben werden (vielleicht sogar ein Verzögerungswert von null) und Verarbeitungskernen mit niedriger Priorität kann mehr Verzögerung gegeben werden. Andernfalls wird, falls der Sollwert nicht erreicht wurde, keine Aktualisierung der Verzögerungseinstellungen vorgenommen. In beiden Fällen fährt die Verarbeitung mit Block 3614 fort, bei dem der Speicherbandbreitenzuteiler 3440 Verzögerungseinstellungen 3428 auf Prozessorkerne anwendet. Bei Block 3616 verwenden die Prozessorkerne 3440 die Verzögerungseinstellungen zum Ausführen von Arbeitslasten. Die Verarbeitung geht in einer Regelschleife zurück zu Block 3606 mit der Erfassung neuer MC-Perfmon-Statistiken. In einer Ausführungsform wird die Regelschleife periodisch wiederholt, um die Speicherbandbreite kontinuierlich dynamisch anzupassen.
  • 37 zeigt Operationen des Verfahrens 3700, das mit einem Verzögerungsausgleicher einer P-Einheit durchgeführt wird, gemäß einigen Ausführungsformen. Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 3700 hier mit Bezug auf Operationen durch das System 3400 beschrieben. In anderen Ausführungsformen führt das System 3400 jedoch zusätzliche oder alternative Operationen durch und/oder das Verfahren 3700 wird mit anderen Schaltungsressourcen durchgeführt, die vorliegend beschriebene MCLOS- und HMP-Funktionalität unterstützen.
  • Bei Block 3702 setzt der Verzögerungsausgleicher 3426 einen Verzögerungswert für jede memCLOS auf einen minimalen memCLOS-Wert. Bei Block 3704 bestimmt der Verzögerungsausgleicher 3426 ein Gesamtverzögerungsbudget für den IC-Die 3401. In einer Ausführungsform wird das Gesamtverzögerungsbudget auf die Ausgabe der Regelschleifensteuerung 3424 multipliziert mit der Anzahl aktivierter memCLOS eingestellt. Falls das Gesamtverzögerungsbudget größer als eine Summe der memCLOS-Minimalwerte ist, stellt der Verzögerungsausgleicher 3426 bei Block 3708 eine Gesamtverzögerungsgrenze auf das Gesamtverzögerungsbudget minus der Summe der memCLOS-Minimalwerte ein. Andernfalls stellt der Verzögerungsausgleicher 3426 bei Block 3710 die Gesamtverzögerungsgrenze auf das Gesamtverzögerungsbudget ein. Die Verarbeitung fährt bei Block 3712 mit einer ersten memCLOS fort. Falls die Priorität dieser memCLOS 0 ist (was in einer Ausführungsform eine hohe Priorität angibt), dann stellt der Verzögerungsausgleicher 3426 bei Block 3714 eine Verzögerung für diesen memCLOS auf die Gesamtverzögerungsgrenze dividiert durch die Anzahl freigegebener memCLOS ein. Falls die Priorität dieser memCLOS nicht 0 ist (was eine niedrigere Priorität als die höchste Einstellung angibt), dann stellt der Verzögerungsausgleicher 3426 bei Block 3716 die Verzögerung für diese memCLOS auf die Priorität dieser memCLOS dividiert durch die Summe aller Prioritätswerte multipliziert mit der Gesamtverzögerungsgrenze ein. Somit basiert in einer Ausführungsform das Einstellen jeder der Vielzahl von Verzögerungseinstellungen auf einen Verzögerungswert zumindest teilweise auf dem Gesamtverzögerungsbudget und der Priorität der ausgewählten memCLOS.
  • Als Nächstes werden bei Block 3718, falls nicht alle memCLOS verarbeitet wurden, Block 3712, 3714 oder 3716 für die nächste memCLOS durchgeführt. Falls alle memCLOS verarbeitet worden sind, endet die Verzögerungsausgleicherverarbeitung bei Block 3720. Die aktualisierten Verzögerungseinstellungen 3428 werden dann in den Speicherbandbreitenzuteiler 3440 eingegeben. Mit Merkmalen einiger Ausführungsformen, die aktiviert sind, behält eine Firmware-basierte dynamische Ressourcensteuerung (DRC, dynamic resource controller) zur Speicherbandbreitenzuteilung, wie vorliegend beschrieben, ungefähr 90 % bis 97 % der Performanz von Arbeitslasten hoher Priorität bezüglich Suche, Redis und specCPU2006 bei, die zusammen mit rauschbehafteten Arbeitslasten niedriger Priorität wie Stream und specCPU2006 gestartet werden. Verrauschte Aggressoren, wie etwa Stream- und specCPU-Arbeitslasten, können die Performanz von Arbeitslasten mit hoher Priorität um etwa 18 % bis 40 % verschlechtern, falls DRC nicht vorhanden ist. Mit einem rauschbehafteten Speicheraggressor und aktivierter DRC können einige Ausführungsformen etwa 90 % bis 97 % der Kernbasisperformanz mit hoher Priorität beibehalten. In einigen Ausführungsformen wird die Gesamtprozessorausnutzung von etwa 65 % bis 90 % gegenüber etwa 25 % bis 45 % allein mit Kernen hoher Priorität verbessert.
  • Außerdem wird die Firmware-basierte dynamische Ressourcensteuerung, wie hier unter Verwendung vorhandener Prozessorhardware implementiert, im Vergleich zu softwareimplementierter ähnlicher Steuerlogik bis zu 90 % eines Prozessorkerns in Abhängigkeit von dem Abtastintervall speichern und Überwachungs-/Steuerungs- und Reaktionshandlungskonvergenz in einigen 10 Millisekunden (ms) Granularität verbessern. Im Gegensatz dazu kann eine SW-Steuerung aufgrund von Kernel-/Benutzerraum-SW-Overheads nur innerhalb einiger 100 ms reagieren.
  • Es ergeben sich zumindest mehrere Vorteile verschiedener Ausführungsformen. Die dynamische Ressourcensteuerung, wie hier beschrieben, die RDT-Merkmale verwendet, wie etwa Speicherbandbreitenzuteilung (MBA), kann leicht in verschiedenen CSP-SW-Frameworks übernommen werden, ohne irgendwelche Änderungen an ihren SW-Frameworks zu erfordern. Ausführungsformen stellen eine schnelle Antwort (Ziel 1 Millisekunde (ms)) durch einen Steuermechanismus (z.B. P-Einheit 3402) in Prozessor-Firmware bereit. Wenn schlechtes Verhalten detektiert wird, drosselt die Prozessor-Firmware-Logik in der P-Einheit 3402 die Bandbreite auf eine memCLOS niedrigerer Priorität durch MBA in einer Regelschleifenaktion, was dabei hilft, potentiellen Performanz-Jitter innerhalb eines schnellen Intervalls zu beseitigen. Der Endverbraucher wird die geräuschbehaftete Arbeitslastbeeinträchtigung aufgrund der schnellen Aktion nicht bemerken. Verschiedene Ausführungsformen sind autonom, dynamisch und beinhalten keinen zusätzlichen Hardwareaufwand. Derzeitige RDT-Lösungen sind statisch und können für Fälle, in denen keine Drosselung erforderlich ist, übermäßig einschränkend sein. Manche Ausführungsformen stellen eine dynamische Steuerung bereit, die den Speicherbandbreitenzugriff nur bei Bedarf drosselt. Messungen zeigen, dass, wenn die Regelschleife in SW implementiert ist, die Regelschleife nahezu einen einzelnen Prozessorkern beanspruchen kann. Ausführungsformen können eine einzelne virtuelle Zentraleinheit- (vcpu, virtual central processing unit) Rechenressource speichern, indem der Steuermechanismus in der Steuerung der Package-Steuereinheit (PCU, package control unit) ausgeführt wird.
  • 38 veranschaulicht Merkmale des Systems 3800 zum Bestimmen von Prozessorfrequenzen in einer Mehrchip-Package-Einrichtung gemäß einer Ausführungsform. Das System 3800 ist ein Beispiel für eine Ausführungsform, in der mehrere IC-Dies einer Package-Einrichtung jeweilige P-Einheiten umfassen, die miteinander in einer Architektur für hierarchische Leistungsverwaltung arbeiten sollen. Die P-Einheiten unterstützen verschiedentlich Kommunikationen und/oder andere Operationen, um das Bestimmen von Betriebsfrequenzen jeweils für einen jeweiligen IC-Die zu erleichtern. In einer solchen Ausführungsform umfasst die Vielzahl von IC-Dies ferner jeweilige Prozessoren, wobei eine P-Einheit den Leistungsverbrauch durch die Package-Einrichtung evaluiert und basierend auf einer Leistungsverbrauchsschwelle und Dienstklasseninformationen mit einer oder mehreren anderen P-Einheiten kommuniziert, um Betriebsfrequenzen eines oder mehrerer Prozessorkerne - z.B. einschließlich eines Rechenkerns und/oder eines Grafikkerns - und, in einigen Ausführungsformen, Betriebsfrequenzen eines oder mehrerer Beschleuniger, Nichtkernschaltungen oder dergleichen anzupassen. In einigen Ausführungsformen ist das System 3800 vollständig mit der Package-Einrichtung oder alternativ mit einem beliebigen von verschiedenen Typen von Computern, Smartphones oder ähnlichen Einrichtungen implementiert, die eine solche Package-Einrichtung beinhalten.
  • Wie in 38 gezeigt, umfasst das System 3800 IC-Dies 3810, 3830, 3850, die über eine oder mehrere Interconnect-Strukturen, wie etwa das gezeigte veranschaulichende Fabric 3807 (z.B. ein P2P-Fabric), unterschiedlich miteinander gekoppelt sind. In einer Ausführungsform umfasst das Fabric 3807 zum Beispiel Interconnects, die einen Teil oder die gesamte Funktionalität des Kommunikationsnetzwerks 107 bereitstellen. Jeweilige Prozessoren der IC-Dies 3810, 3830, 3850 umfassen jeweils einen oder mehrere jeweilige Kerne - wobei z.B. ein Prozessor 3812 des IC-Die 3810 Kerne 3814a,..., 3814x umfasst, ein Prozessor 3832 des IC-Die 3830 Kerne 3834a,..., 3834x umfasst und ein Prozessor 3852 des IC-Die 3850 Kerne 3854a,..., 3854x umfasst. Solche Kerne schließen zum Beispiel einen beliebigen von verschiedenen kommerziell erhältlichen Prozessorkernen ein, einschließlich, ohne Einschränkung, Intel® Atom®-, Celeron®-, Core (2) Duo®-, Core i3-, Core i5-, Core i7-, Itanium®-, Pentium®-, Xeon®- oder Xeon Phi®-Prozessoren, ARM-Prozessoren, Prozessoren von Applied Micro Devices, Inc., und ähnliche Prozessoren. Einige Ausführungsformen sind nicht auf eine bestimmte Anzahl der mehreren IC-Dies des Systems 3800 oder auf einen bestimmten Typ und/oder eine bestimmte Anzahl eines oder mehrerer Prozessorkerne (und bei einigen Ausführungsformen einen bestimmten Typ und/oder eine bestimmte Anzahl von Beschleunigern, Nichtkernschaltungsanordnungen oder dergleichen) eines gegebenen IC-Dies beschränkt.
  • In verschiedenen Ausführungsformen umfassen IC-Dies 3810, 3830, 3850 verschiedene zusätzliche Schaltungsressourcen (nicht gezeigt), um die Ausführung von Softwareprozessen mit verschiedenen Kernen der Prozessoren 3812, 3832, 3852 zu erleichtern. Zur Veranschaulichung und nichteinschränkend beinhalten solche Schaltungsressourcen, ohne jedoch hierauf eingeschränkt zu sein, einen oder mehrere Beschleuniger, Speichersteuerungen, gemeinsam genutzte Caches und eine oder mehrere Speichereinrichtungen einschließlich beliebiger verschiedener Typen von flüchtigem und/oder nichtflüchtigem Speicher.
  • Zu einer gegebenen Zeit während des Betriebs des Systems 3800 unterliegen einige oder alle Prozessorkerne jeweils unterschiedlichen Übergängen zwischen jeweiligen Betriebsfrequenzen. Solche Übergänge werden zum Beispiel durchgeführt, um einen oder mehrere Zustände der Leistungslieferung an das System 3800 zu kompensieren (oder alternativ verfügbar zu machen). Um solche Übergänge zu ermöglichen, umfassen IC-Dies 3810, 3830, 3850 ferner jeweilige P-Einheiten 3802, 3803-1, 3803 2, die in Kombination miteinander arbeiten, um eine Architektur für hierarchische Leistungsverwaltung bereitzustellen. Zum Beispiel umfasst die P-Einheit 3802 eine HPM-Kommunikationsschaltungsanordnung 3821, die Kommunikationen über das Fabric 3807 sowohl mit der HPM-Kommunikationsschaltungsanordnung 3841 der P-Einheit 3803_1 als auch mit der HPM-Kommunikationsschaltungsanordnung 3861 der P-Einheit 3803 2 unterstützt. In einer solchen Ausführungsform soll die P-Einheit 3802 als ein Supervisor-P-Einheitstyp fungieren, wobei die P-Einheiten 3803_1, 3803_2 jeweils als ein jeweiliger Supervisand-P-Einheitstyp fungieren sollen, der in einer oder mehreren Hinsichten durch die P-Einheit 3802 gesteuert wird.
  • Der Betrieb der P-Einheit 3802 als eine Supervisor-P-Einheit - zumindest in Bezug auf die Verwaltung von Kernfrequenzen - wird mit einer Leistungsbudgetzuteilungsschaltungsanordnung ermöglicht, die eine oder mehrere Zustandsmaschinen, programmierbare Gate-Arrays, Mikrocontroller, anwendungsspezifische integrierte Schaltungen und/oder verschiedene andere geeignete Schaltungsanordnungen umfasst. Eine solche Leistungsbudgetzuteilungsschaltungsanordnung bestimmt jeweilige Leistungsbudgets für verschiedene IC-Dies basierend auf einem Maß eines Leistungsverbrauchs durch die Package-Einrichtung. In dem gezeigten Ausführungsbeispiel umfasst die Leistungsbudgetzuteilungsschaltungsanordnung einen Detektor 3823, eine Steuerung 3824 und eine Frequenzverteilungsschaltungsanordnung 3825.
  • Der Detektor 3823 umfasst eine Schaltungsanordnung zum Empfangen, Berechnen oder anderweitigen Identifizieren einer Metrik des Leistungsverbrauchs durch die Package-Einrichtung. In einer solchen Ausführungsform ist der Detektor 3823 gekoppelt, um Leistungsverbrauchsinformationen von einer beliebigen der Vielfalt von Schaltungsressourcen (nicht gezeigt) zu empfangen, die zum Beispiel mit der Package-Einrichtung gekoppelt sind. Solche Informationen werden zum Beispiel von einem Spannungsregler empfangen, der über eine Leiterplatte (z.B. ein Motherboard) mit der Package-Einrichtung gekoppelt ist. Der Detektor 3823 stellt Funktionalität bereit, um zu bestimmen, ob ein aktueller Wert der Leistungsverbrauchsmetrik eine gegebene Leistungsverbrauchsschwelle überschreitet, wobei z.B. der Detektor 3823 eine Differenz zwischen dem aktuellen Metrikwert und der Leistungsverbrauchsschwelle identifiziert.
  • Der Detektor 3823 kommuniziert diese Differenz an die Steuerung 3824, die eine Schaltungsanordnung zum Bestimmen von Leistungsbudgetinformationen basierend auf der Differenz bereitstellt. Zur Veranschaulichung und nichteinschränkend stellt die Steuerung 3824 proportional-integral-derivative (PID-) Steuerfunktionalität bereit, wie etwa jene, die aus einer beliebigen von verschiedenen bekannten Prozessorleistungsverwaltungsmethoden angepasst ist. In einer solchen Ausführungsform spezifizieren oder geben die Leistungsbudgetinformationen ein durchschnittliches Leistungsbudget an, das verfügbar gemacht werden soll (z.B. auf einer Pro-Kern-Basis oder alternativ über alle Kerne der Package-Einrichtung hinweg).
  • Basierend auf den Leistungsbudgetinformationen, die durch die Steuerung 3824 bestimmt werden, erzeugt die Frequenzverteilungsschaltungsanordnung 3825 Signalisierung, um jeweilige Frequenzschwellen jeweils für einen jeweiligen Kern der Prozessoren 3812, 3832, 3852 zu spezifizieren oder anderweitig anzugeben. Eine solche Signalisierung wird zum Beispiel basierend auf der Gesamtanzahl von Kernen 3834a,..., 3834x und der Gesamtanzahl von Kernen 3854a,..., 3854x (wie zum Beispiel durch P-Einheiten 3803_1, 3850 identifiziert) und der Gesamtanzahl von Kernen 3814a,..., 3814x erzeugt. Alternativ oder zusätzlich wird eine solche Signalisierung basierend auf Informationen erzeugt, die eine Entsprechung mehrerer Dienstklassen- (CLOS) Gruppen jeweils mit einem oder mehreren jeweiligen Kernen der Prozessoren 3812, 3832, 3852 identifizieren.
  • In einem veranschaulichenden Szenario gemäß einer Ausführungsform kommuniziert die HPM-Kommunikationsschaltungsanordnung 3821 mit dem Prozessor 3812 - in Reaktion auf die Frequenzverteilungsschaltungsanordnung 3825 -, um für manche oder alle der Kerne 3814a,..., 3814x jeweilige Maximalfrequenzen und/oder jeweilige Minimalfrequenzen einzustellen. Alternativ oder zusätzlich kommuniziert die HPM-Kommunikationsschaltungsanordnung 3821 - in Reaktion auf die Frequenzverteilungsschaltungsanordnung 3825 - mit der HPM-Kommunikationsschaltungsanordnung 3841, um Operationen der Frequenzverteilungsschaltungsanordnung 3845 zu bestimmen, die jeweilige Maximalfrequenzen und/oder jeweilige Minimalfrequenzen für einige oder alle der Kerne 3834a,..., 3834x einstellen sollen. Alternativ oder zusätzlich kommuniziert die HPM-Kommunikationsschaltungsanordnung 3821 - in Reaktion auf die Frequenzverteilungsschaltungsanordnung 3825 - mit der HPM-Kommunikationsschaltungsanordnung 3861, um Operationen der Frequenzverteilungsschaltungsanordnung 3865 zu bestimmen, die jeweilige Maximalfrequenzen und/oder jeweilige Minimalfrequenzen für einige oder alle der Kerne 3854a,..., 3854x einstellen sollen.
  • In einigen Ausführungsformen stellt die Leistungsbudgetzuteilungsschaltungsanordnung der P-Einheit 3802 Funktionalität bereit, um erste Auswertungen durchzuführen, um den Prozessorleistungsverbrauch basierend auf einer Leistungsschwelle PL1 (und zum Beispiel basierend auf einer ersten Metrik des durchschnittlichen Leistungsverbrauchs über ein Zeitfenster TW1) zu regeln. In einigen Ausführungsformen soll die Leistungsbudgetzuteilungsschaltungsanordnung ferner zweite Auswertungen durchführen, um den Prozessorleistungsverbrauch basierend auf einer anderen Leistungsschwelle PL2 (und zum Beispiel basierend auf einer zweiten Metrik des durchschnittlichen Leistungsverbrauchs über ein Zeitfenster TW2) weiter zu regulieren. Die Leistungsschwellen PL1, PL2 sind jeweils kleiner als eine Grenzspezifikation der Maximalleistung (Pmax) für die Package-Einrichtung, wobei z.B. PL2 größer als PL1 ist (und zum Beispiel TW2 kleiner als TW1 ist) und wobei PL1 gleich einer thermischen Sollleistung (TDP, thermal design power) für die Package-Einrichtung ist oder anderweitig auf dieser basiert.
  • Die Durchführung der ersten Auswertungen erfolgt in einigen Ausführungsformen gleichzeitig, parallel oder anderweitig zeitlich überlappend mit der Durchführung der zweiten Auswertungen. Alternativ oder zusätzlich werden die ersten Auswertungen sukzessive mit einer Leistungsbudgetzuteilungsschaltungsanordnung der P-Einheit 3802 bei einer ersten Frequenz durchgeführt, wobei die zweiten Auswertungen sukzessive mit einer solchen Leistungsbudgetzuteilungsschaltungsanordnung bei einer zweiten Frequenz durchgeführt werden, die (zum Beispiel) größer als die erste Frequenz ist.
    In einer solchen Ausführungsform drosselt die Leistungsbudgetzuteilungsschaltungsanordnung - in Reaktion auf das Detektieren eines Überschreitens der Leistungsschwelle PL2 (z.B. länger als eine einmalige Schwelle) - Kerne sukzessive, um den Leistungsverbrauch der Prozessoren 3812, 3832, 3852 zu zyklisieren. Diese sukzessive Drosselung führt zu einer zyklischen Variation einer Metrik des Leistungsverbrauchs durch die Package-Einrichtung, wobei z.B. eine solche Variation zwischen PL2 und einer anderen Leistungsschwelle PL3 liegt, die zum Beispiel zwischen PL2 und der Pmax-Grenzspezifikation liegt. Im Gegensatz dazu passt die Leistungsbudgetzuteilungsschaltungsanordnung - in Reaktion auf das Detektieren eines Überschreitens der Leistungsschwelle PL1 (z.B. länger als eine andere Zeitschwelle) - einfach Kernfrequenzen an, um ein Leistungsverbrauchsniveau wieder auf PL1 abzusenken. In einigen Ausführungsformen, bei denen mehr als eine der Auswertungen bestimmen, dass eine Leistungsbegrenzung angegeben ist, drosseln Kernfrequenzen auf ein Niveau, das alle Leistungsbegrenzerinstanzen des Systems 3800 erfüllt.
  • 39 zeigt Merkmale eines Verfahrens 3900 zum Bestimmen von Frequenzschwellen, die jeweils an einem jeweiligen Kern eines Mehrchip-Package anzuwenden sind, gemäß einer Ausführungsform. Das Verfahren 3900 wird zum Beispiel mit einer oder mehreren P-Einheiten einer Package-Einrichtung durchgeführt, wobei die eine oder die mehreren P-Einheiten in einer HPM-Architektur, wie etwa jener des Systems 3800, arbeiten.
  • Wie in 39 gezeigt, umfasst das Verfahren 3900 (bei 3910) Operationen 3905, die an einer ersten P-Einheit eines Mehrchip-Package durchgeführt werden. Ein erster IC-Die und ein zweiter IC-Die des Mehrchip-Package umfassen (jeweils) die erste P-Einheit und eine zweite P-Einheit, die als eine Supervisor-P-Einheit bzw. Supervisand-P-Einheit einer Leistungsverwaltungshierarchie arbeiten.
  • Die Operationen 3905 umfassen (bei 3910), dass die erste P-Einheit eine Differenz zwischen einer Metrik des Leistungsverbrauchs und einer Leistungsschwelle bewertet, die gleich oder größer als eine thermische Sollleistungsspezifikation der Package-Einrichtung ist. Die Leistungsschwelle ist kleiner als eine Spezifikation einer maximalen Leistungsgrenze (Pmax) der Package-Einrichtung. Die Metrik wird an der Package-Einrichtung zum Beispiel von einem Spannungsregler und/oder einer anderen geeigneten Schaltungsressource - z.B. außerhalb der Package-Einrichtung - empfangen, die den Leistungsverbrauch durch die Package-Einrichtung überwacht. In einigen Ausführungsformen repräsentiert die Metrik einen Durchschnitt des Leistungsverbrauchs durch die Package-Einrichtung für einen bestimmten Zeitraum.
  • Die Operationen 3905 umfassen ferner (bei 3912) Bestimmen eines ersten Leistungsbudgets und eines zweiten Leistungsbudgets basierend auf der Differenz und ferner basierend auf jeweiligen Gewichtungen von Dienstklassen (CLOSs), die mit einem ersten Prozessor des ersten IC-Die und einem zweiten Prozessor eines zweiten IC-Die bereitgestellt werden sollen. Das Bestimmen bei 3912 - das z.B. mit der Frequenzverteilungsschaltungsanordnung 3825 durchgeführt wird - beinhaltet oder basiert anderweitig darauf, dass die Supervisor-P-Einheit zum Beispiel eine erste Gesamtanzahl eines oder mehrerer erster Prozessorkerne (wie etwa eine Gesamtanzahl aktuell aktiver Kerne) des ersten Prozessors bestimmt und ferner eine zweite Gesamtanzahl eines oder mehrerer zweiter Prozessorkerne (z.B. aktive Kerne) des zweiten Prozessors bestimmt. Das Bestimmen bei 3912 basiert zusätzlich oder alternativ darauf, dass die Supervisor-P-Einheit mit einer oder mehreren Supervisand-P-Einheiten kommuniziert, um eine Entsprechung mehrerer Dienstklassen- (CLOS) Gruppen jeweils mit einem oder mehreren jeweiligen Kernen des ersten Prozessors und des zweiten Prozessors zu bestimmen. In verschiedenen Ausführungsformen wird das Bestimmen bei 3912 basierend auf einer detektierten Änderung einer Anzahl von aktiven Kernen durchgeführt (während sich zum Beispiel die konfigurierten CLOS-Gruppen nicht geändert haben).
  • In einem veranschaulichenden Szenario gemäß einer Ausführungsform bestimmt die Supervisor-P-Einheit, dass eine erste CLOS-Gruppe und eine zweite CLOS-Gruppe (jeweils) einen ersten Kern des ersten Prozessors und einen zweiten Kern des zweiten Prozessors beinhalten. Basierend auf solchen Zuordnungen von Kernen zu jeweiligen CLOS-Gruppen berechnet oder bestimmt die Überwachungs-P-Einheit anderweitig, dass das erste Leistungsbudget an dem ersten Prozessor anzuwenden ist und dass das zweite Leistungsbudget an dem zweiten Prozessor anzuwenden ist. In einer Ausführungsform wird eines oder jedes des ersten Leistungsbudgets und des zweiten Leistungsbudgets als ein jeweiliges Frequenzbudget dargestellt - d.h. eine Menge verfügbarer Frequenz, die an einen Kern gegeben werden soll oder (alternativ) über mehrere Kerne aufgeteilt werden soll.
  • Die Operationen 3905 umfassen ferner (bei 3914), dass die Supervisor-P-Einheit das erste Leistungsbudget auf den ersten Prozessor mit einer oder mehreren ersten Frequenzschwellen anwendet, die jeweils einem jeweiligen eines oder mehrerer erster Kerne des ersten Prozessors entsprechen. Das Anwenden des ersten Leistungsbudgets bei 3914 umfasst zum Beispiel Regeln einer oder mehrerer Kernfrequenzen an dem ersten Prozessor basierend auf der einen oder den mehreren ersten Frequenzschwellen. In verschiedenen Ausführungsformen führen einige oder alle des einen oder der mehreren ersten Kerne Anweisungen eines ersten Anweisungssatzes aus, wobei die eine oder die mehreren ersten Frequenzschwellen basierend auf dem ersten Anweisungssatz bestimmt werden (wobei z.B. Anweisungssätze, die unterschiedlichen jeweiligen Anweisungssatzlizenzen entsprechen, unterschiedlichen Leistungsverhaltenseigenschaften zugeordnet sind). Alternativ oder zusätzlich umfasst das Anwenden des ersten Leistungsbudgets bei 3914 in einigen Ausführungsformen ferner Regeln einer oder mehrerer Frequenzen (z.B. jeweils mit einer jeweiligen Frequenzschwelle) jeweils bei einem jeweiligen Beschleuniger des ersten IC-Dies.
  • Operationen 3905 umfassen ferner (bei 3916) Anzeigen des zweiten Leistungsbudgets an die zweite (Supervisand-) P-Einheit. In einer veranschaulichenden Ausführungsform umfasst das Anzeigen bei 3916, dass eine P-Einheit 3802 mit der P-Einheit 3803_1 (oder alternativ mit der P-Einheit 3803 2) eine Kennung eines Frequenzbudgets kommuniziert, das dem zweiten Leistungsbudget entspricht.
  • In einigen Ausführungsformen umfasst das Verfahren 3900 zusätzlich oder alternativ eine oder mehrere Operationen, die durch mindestens eine Supervisand-P-Einheit der Package-Einrichtung durchgeführt werden, um Leistungsverwaltung auf einem oder mehreren anderen IC-Dies basierend auf Operationen 3905 zu implementieren. Zum Beispiel umfasst das Verfahren 3900 (bei 3918) ferner, dass die zweite P-Einheit das zweite Leistungsbudget auf den zweiten Prozessor mit einer oder mehreren zweiten Frequenzschwellen anwendet, die jeweils einem jeweiligen eines zweiten oder mehrerer zweiter Kerne des zweiten Prozessors entsprechen. Das Anwenden des zweiten Leistungsbudgets bei 3914 umfasst Regeln einer oder mehrerer Kernfrequenzen an dem zweiten Prozessor basierend auf der einen oder den mehreren zweiten Frequenzschwellen. In verschiedenen Ausführungsformen führen einige oder alle des einen oder der mehreren zweiten Kerne Anweisungen eines zweiten Anweisungssatzes aus, wobei die eine oder die mehreren zweiten Frequenzschwellen basierend auf dem zweiten Anweisungssatz bestimmt werden. Beispielsweise entsprechen in einer solchen Ausführungsform der erste Anweisungssatz und der zweite Anweisungssatz einer ersten Anweisungssatzlizenz bzw. einer zweiten Anweisungssatzlizenz und entsprechen unterschiedlichen jeweiligen Leistungsverhaltenseigenschaften. Alternativ oder zusätzlich umfasst das Anwenden des zweiten Leistungsbudgets bei 3918 in einigen Ausführungsformen ferner Regeln einer oder mehrerer Frequenzen (z.B. jeweils mit einer jeweiligen Frequenzschwelle) jeweils bei einem jeweiligen Beschleuniger des zweiten IC-Dies.
  • 40A zeigt ein System 4000 zum Begrenzen des Leistungsverbrauchs durch Prozessorkerne eines Mehrchip-Package gemäß einer Ausführungsform. Das System 4000 stellt beispielsweise einige oder die gesamte Funktionalität des Systems 3800 bereit, wobei z.B. eine oder mehrere Operationen des Verfahrens 3900 mit dem System 4000 durchgeführt werden.
  • Wie in 40A gezeigt, umfasst das System 4000 eine Leistungsbegrenzerschaltungsanordnung einer Supervisor-P-Einheit (zum Beispiel der P-Einheit 3802), wobei die Schaltungsanordnung eine Auswertungsschaltung 4010, eine Regelschleifen- (z.B. PID-) Steuerung 4014 und einen Ausgleicher 4026 beinhaltet, die in einigen Ausführungsformen funktionell dem Detektor 3823, der Steuerung 3824 bzw. der Frequenzverteilungsschaltungsanordnung 3825 entsprechen.
  • Das System 4000 umfasst IC-Dies 4030 einer Package-Einrichtung, von denen einige oder alle jeweils eine jeweilige Supervisand-P-Einheit beinhalten, die wenigstens teilweise durch die Supervisor-P-Einheit gesteuert wird. In einigen Ausführungsformen ist die Package-Einrichtung gekoppelt mit - oder beinhaltet alternativ - einem oder mehreren Stromüberwachern, Spannungsreglern und/oder einer anderen geeigneten Schaltungsanordnung (wie etwa dem gezeigten veranschaulichenden Überwacher 4034), die gekoppelt sind, um einen oder mehrere Ströme, Spannungen und/oder andere Indizien des Leistungsverbrauchs durch die Package-Einrichtung zu überwachen. Informationen über einen solchen Leistungsverbrauch werden der Supervisor-P-Einheit als Rückkopplung bereitgestellt, um eine dynamische Verwaltung des Leistungsverbrauchs durch Kerne der IC-Dies 4030 zu ermöglichen.
  • Bestimmte Merkmale des Systems 4000 gemäß verschiedenen Ausführungsformen sind vorliegend unter Bezugnahme auf verschiedene Bezeichnungen beschrieben, die in der folgenden Tabelle identifiziert sind: Tabelle 8: Bezeichnungen in der Beschreibung des Systems 4000
    Bezeichnung Beschreibung
    n c Gesamtzahl der Kerne in der Package-Einrichtung
    n d Gesamtanzahl an Dies in der Package-Einrichtung
    n g Anzahl der Dienstklassen- (CLOS-) Gruppen
    n l Anzahl der Lizenzstufen
    k Index zur Bezugnahme auf eine gegebene CLOS-Gruppe
    n c,k k ∈ [1, n g ] Anzahl der Kerne innerhalb der CLOS-Gruppe k
    R T Gesamtleistungsbudget für die Package-Einrichtung
    i Index zur Bezugnahme auf einen gegebenen Kern
    ƒ i* ∀ i ∈ [1, n c ] Optimale Frequenz jedes Kerns i
    ƒ min,i i ∈ [1, n c ] Minimale Frequenz für jeden Kern i
    ƒ min,k minimale Frequenz für jeden Kern in der CLOS-Gruppe k
    ƒ max,k maximale Frequenz für jeden Kern in der CLOS-Gruppe k
    ƒ clos,k Frequenzobergrenze für jeden Kern in der CLOS-Gruppe k (für eine gegebene Softwaredomäne)
    w k k ∈ [1, n g ] CLOS-Prioritätsgewichtung für jeden Kern in einer CLOS-Gruppe k
    R + Verbleibendes Budget (positiv)
    R - Verbleibendes Budget (negativ)
    u Entscheidungsvariable für Priorität (z.B. u = 1 für geordnete Drosselung, u = 0 für proportionale Drosselung)
    ηkk ∈ [1, n g ] CLOS-Priorität jedes Kerns in einer CLOS-Gruppe k
    η max Maximaler CLOS-Prioritätswert
  • In einigen Ausführungsformen wird eine Metrik des Gesamtleistungsverbrauchs durch die Package-Einrichtung - z.B. unter Verwendung eines oder mehrerer Stromüberwacher (wie etwa des gezeigten veranschaulichenden Überwachers 4034) - bestimmt und über einen vorbestimmten Zeitraum gemittelt. Die Metrik wird über ein Signal 4036 an die Auswertungsschaltung 4010 kommuniziert, die auch zum Empfangen eines Signals 4002 gekoppelt ist, das eine Kennung einer Leistungsverbrauchsschwelle PL1 umfasst. Die Schwelle PL1 repräsentiert (zum Beispiel) einen Zielleistungsverbrauch für die Package-Einrichtung, wobei z.B. PL1 gleich einer TDP der Package-Einrichtung ist oder anderweitig auf dieser basiert.
  • Basierend auf dem Signal 4036 und dem Signal 4002 erzeugt die Auswertungsschaltung 4010 ein Signal 4012, das eine Differenz zwischen PL1 und der Leistungsverbrauchsmetrik angibt. Basierend auf dem Signal 4012 (und zum Beispiel einer vorbestimmten maximalen Zeitdauer, während der die Metrik über PL1 liegen kann) gibt die Regelschleifensteuerung 4014 - wie etwa eine PID-Steuerung - ein anderes Signal 4016 aus, das (zum Beispiel) ein Durchschnittsfrequenzbudget pro Kern angibt, wobei z.B. das Signal 4016 einen p-Zustand identifiziert, der dem Frequenzbudget entspricht. In verschiedenen Ausführungsformen ist die Regelschleifensteuerung 4014 als Firmware (z.B. pCode) an der Supervisor-P-Einheit implementiert.
  • In einigen Ausführungsformen wird dieses durchschnittliche Pro-Kern-Frequenzbudget z.B. durch die gezeigte veranschaulichende Multiplizierer-/Teilerschaltung 4020 basierend auf der Anzahl aktiver Kerne in der Package-Einrichtung skaliert. Eine solche Gesamtzahl an Kernen wird wenigstens teilweise durch ein oder mehrere Signale - wie etwa das gezeigte veranschaulichende Signal 4018 - angegeben, die durch eine oder mehrere (nicht gezeigte) Supervisand-P-Einheiten von IC-Dies 4030 bereitgestellt werden.
  • Das skalierte Frequenzbudget wird über ein Signal 4022 von der Multiplizierer-/Teilerschaltung 4020 an den Ausgleicher 4026 übermittelt. Basierend auf dem Signal 4022 erzeugt der Ausgleicher 4026 Signale 4028, die jeweils unterschiedlich zu einem oder mehreren jeweiligen der IC-Dies 4030 kommuniziert werden. Für einen gegebenen solchen IC-Die spezifizieren oder geben Signale 4028 für einen oder mehrere Kerne dieses IC-Die eine oder mehrere jeweilige Schwellenfrequenzen (z.B. einschließlich einer oder mehrerer Schwellenminimalfrequenzen, einer Schwellenmaximalfrequenz und/oder einer Schwellenzielfrequenz) an, gemäß denen dieser Kern arbeiten soll. Bei dem gezeigten Ausführungsbeispiel ist der Ausgleicher 4026 zentral an einer Supervisor-P-Einheit eines IC-Die implementiert, wobei z.B. die Signale 4028 Signale beinhalten, die an eine oder mehrere Supervisand-P-Einheiten jeweils an einem jeweiligen anderen IC-Die kommuniziert werden. In einigen alternativen Ausführungsformen ist die Funktionalität, wie etwa die des Ausgleichers 4026, auf zwei oder mehr P-Einheiten auf verschiedenen Ebenen einer Architektur für hierarchische Leistungsverwaltung verteilt.
  • In verschiedenen Ausführungsformen basiert die Erzeugung der Signale 4028 durch den Ausgleicher 4026 ferner auf Signalen 4024, die ein oder mehrere Kriterien zum Einstellen von Betriebsparametern eines gegebenen Kerns identifizieren. Zum Beispiel identifizieren die Signale 4024 bei einer solchen Ausführungsform für jeden Kern der IC-Dies 4030 eine jeweilige Dienstklassen- (CLOS-) Gruppe, zu der dieser Kern gehört. Zur Veranschaulichung und nichteinschränkend werden nc Kerne unterschiedlich - z.B. durch einen Benutzer, eine Leistungsverwaltungssoftware und/oder einen beliebigen von verschiedenen anderen geeigneten externen Agenten - jeweils einer jeweiligen von ng CLOS-Gruppen zugewiesen. In einer solchen Ausführungsform entspricht eine gegebene CLOS-Gruppe k einem oder mehreren Performanzparametern, gemäß denen ein beliebiger gegebener Kern i dieser CLOS-Gruppe k arbeiten soll. Zur Veranschaulichung und nichteinschränkend beinhalten ein oder mehrere solche Performanzparameter eine minimale Frequenz ƒmin,k und eine maximale Frequenz ƒmax,k. Einer solchen CLOS-Gruppe k wird auch ein Wert - z.B. wie etwa eine Gewichtung wk - zugewiesen, der angibt, wie diese CLOS-Gruppe k relativ zu einer oder mehreren anderen der CLOS-Gruppen priorisiert, geordnet oder anderweitig eingestuft werden soll. In einigen Ausführungsformen wird in einer gegebenen Softwaredomäne erwartet, dass die Kerne innerhalb einer einzelnen CLOS-Gruppe die gleiche Frequenzobergrenze ƒclos,k aufweisen. Eine solche Frequenzobergrenze muss bei manchen Ausführungsformen nicht zwischen verschiedenen CLOS-Gruppen oder zwischen verschiedenen Softwaredomänen (z.B. verschiedenen Sockeln) gelten.
  • Der Ausgleicher 4026 stellt eine beliebige einer Vielzahl von Methoden bereit, um eine Zuteilung von Frequenzen jeweils zu einem jeweiligen Kern zu ermöglichen. Zur Veranschaulichung und nichteinschränkend unterstützt der Ausgleicher 4026 ein Frequenzzuteilungsschema mit gleicher Priorität (EP, equal priority), wobei immer die gleiche Frequenzgrenze auf alle Kerne einer Package-Einrichtung angewendet wird. Alternativ oder zusätzlich unterstützt der Ausgleicher 4026 ein Prioritätsproportionalitäts-(PP-) Frequenzzuteilungsschema, wobei eine Basisminimalfrequenz allen Kernen der Package-Einrichtung zugewiesen wird und wobei ein verbleibendes Frequenzbudget (falls vorhanden) auf verschiedene der Kerne basierend auf den jeweiligen Gewichtungswerten der CLOS-Gruppen unterschiedlich zugeteilt wird.
  • Alternativ oder zusätzlich unterstützt der Ausgleicher 4026 ein geordnetes Prioritätsgeordnetes (OP, ordered with priority) Frequenzzuteilungsschema, wobei für jeden Kern einer CLOS-Gruppe mit höchster Priorität jedem Kern dieser CLOS-Gruppe eine höchstmögliche Frequenz zugewiesen wird (bis zu den jeweiligen maximalen Frequenzen, die dieser Kern unterstützen kann). Die weitere Zuteilung des Frequenzbudgets wird durch das OP-Schema für CLOS-Gruppen mit sukzessive niedrigerer Priorität ebenfalls sequenziell wiederholt - wobei jedem Kern dieser CLOS-Gruppe eine nächsthöhere mögliche Frequenz zugewiesen wird (bis zu einer jeweiligen maximalen unterstützten Frequenz für diesen Kern) - bis alle Frequenzbudgets zugeteilt sind.
  • Alternativ oder zusätzlich unterstützt der Ausgleicher 4026 ein lizenzbewusstes Frequenzzuteilungsschema mit gleicher Priorität (LEP, license-aware with equal priority). In einer solchen Ausführungsform umfasst die Implementierung eines LEP-Schemas pCode oder eine andere geeignete Leistungsverwaltungslogik, die jeweilige Frequenzen für jeden von mehreren Befehlssatztypen (auch als „Lizenzen“ bezeichnet) berechnet oder anderweitig bestimmt, wobei der Ausgleicher 4026 eine solche Frequenz für einen gegebenen Kern basierend auf dem Befehlstyp auswählt, den dieser Kern verwendet.
  • Alternativ oder zusätzlich unterstützt der Ausgleicher 4026 ein lizenzbewusstes Zuordnungsschema mit ungleicher Priorität (LUP, license-aware with unequal priority), wobei normalisierte Werte - die verschiedene Frequenzen repräsentieren - gemäß einem ungleichen Schema, wie etwa PP-Zuteilung oder einer OP-Zuteilung, bestimmt werden. In einer solchen Ausführungsform werden diese normalisierten Frequenzwerte - die z.B. als irgendeinem Basisbefehlssatz (wie etwa SSE) entsprechend angenommen werden - unterschiedlich jeweils in eine jeweilige Frequenz für einen gegebenen Kern übersetzt, basierend auf einem entsprechenden Befehlstyp, der von diesem Kern verwendet wird.
  • Bei diversen Ausführungsformen wird die EP-Frequenzzuteilung durchgeführt, indem jedem Kern i der nc Kerne der Package-Einrichtung dieselbe Obergrenzenfrequenz ƒceil,k zugewiesen wird, wobei z.B. ƒceil,k wie folgt bestimmt wird: ƒ c e i l , k = R T n c , i [ 1, n c ]
    Figure DE102021124514A1_0008
  • Demgegenüber umfasst eine ungleiche Frequenzzuweisung in verschiedenen anderen Ausführungsformen (z.B. gemäß einem PP-Frequenzzuteilungsalgorithmus oder einem OP-Frequenzzuteilungsalgorithmus) für jede CLOS Gruppe k erfolgendes Bestimmen eines jeweiligen Frequenzbudgets Δƒclos,k, ∀ k ∈ [1, ng], das z.B. zusätzlich zu einer minimalen Frequenz, die jedem Kern i der nc Kerne der Package-Einrichtung zugewiesen ist, ferner auf den einen oder die mehreren Kerne dieser CLOS-Gruppe k aufgeteilt werden soll.
  • Zur Veranschaulichung und nichteinschränkend umfasst das Identifizieren des zusätzlichen Frequenzbudgets Δƒclos,k für eine jeweilige CLOS-Gruppe k Auswerten einer Beziehung des Gesamtleistungsbudgets RT zu den jeweiligen Frequenzgrenzen ƒmin und ƒmax der CLOS-Gruppen. Beispielsweise umfasst eine solche ungleiche Frequenzzuteilung eine bedingte Auswertung von Δƒclos,k gemäß den folgenden Gleichungen (4)-(5): falls R T > = i = 1 n c ƒ m a x , i ,
    Figure DE102021124514A1_0009
    dann Δ ƒ c l o s , k = n c , k ( ƒ m a x , k ƒ m i n , k ) , k [ 1, n g ] .
    Figure DE102021124514A1_0010
  • Wird die Auswertung von Δƒclos,k gemäß Gleichung (5) nicht durchgeführt, so führt die ungleiche Frequenzzuweisung stattdessen bedingt eine alternative Auswertung gemäß den folgenden Gleichungen (6)-(10) durch: andernfalls wenn i = 1 n c ƒ m i n , i < = R T < i = 1 n c ƒ m a x , i ,
    Figure DE102021124514A1_0011
    dann R + = ( R T k = 1 n g n c , k ƒ m i n , k ) ,
    Figure DE102021124514A1_0012
    wobei basierend auf der Auswertung eines verbleibenden (positiven) Leistungsbudgets R+ gemäß Gleichung (7) ein vorläufiger Wert von Δƒclos,k wie folgt bestimmt wird: Δ ƒ c l o s , k = R + ( u + ( 1 u ) { n c , k w k j = k n g ( n c , j w j ) } ) , j [ 1, n g ] ,
    Figure DE102021124514A1_0013
  • Dieser vorläufige Wert von Δƒclos,k wird dann nach Bedarf (damit jeder Kern der CLOS-Gruppe k unter der entsprechenden maximalen Frequenz ƒmax,k liegt) gemäß dem Folgenden abgeschnitten: Δ ƒ c l o s , k = m i n ( Δ ƒ c l o s , k , n c , k ( ƒ m a x , k ƒ m i n , k ) ) .
    Figure DE102021124514A1_0014
  • Das verbleibende positive Energiebudget R+ wird dann wie folgt neu berechnet: R + = R + Δ ƒ c l o s , k
    Figure DE102021124514A1_0015
  • In einem Ausführungsbeispiel wird die Gewichtung wk in Gleichung (8) nach Folgendem bestimmt: w k = 1 + η m a x η k
    Figure DE102021124514A1_0016
  • Wenn die bedingte Auswertung von Δƒclos,k gemäß Gleichungen (6)-(10) nicht durchgeführt wird, führt der ungleiche Frequenzzuteilungsalgorithmus bedingt eine alternative Auswertung gemäß den folgenden Gleichungen (12)-(16) durch: andernfalls wenn R T < i = 1 n c ƒ m i n , i :
    Figure DE102021124514A1_0017
    dann R = ( R T k = 1 n g n c , k ƒ m i n , k )
    Figure DE102021124514A1_0018
    wobei basierend auf der Auswertung des (negativen) Leistungsbudgets R_ gemäß Gleichung (13) der ungleiche Frequenzausgleich einen vorläufigen Wert von Δƒclos,k wie folgt bestimmt: Δ ƒ c l o s , k = R ( u + ( 1 u ) { n c , k η k j = k n g ( n c , j η j ) } ) , j [ 1, n g ]
    Figure DE102021124514A1_0019
  • In einer solchen Ausführungsform nimmt der Parameter u in Gleichung (14) im Falle einer PP-Frequenzzuteilung den Wert Null (0) oder im Falle einer OP-Frequenzzuteilung den Wert (1) an. Anschließend ergänzt der Frequenzzuteilungsalgorithmus selektiv diesen vorläufigen Wert von Δƒclos,k, je nach Bedarf (so dass jeder Kern der CLOS-Gruppe k über der entsprechenden minimalen Frequenz ƒmin,k liegen wird), wie folgt: Δ ƒ c l o s , k = m a x ( Δ ƒ c l o s , k , n c , k ( ƒ P m ƒ m i n , k ) ) ,
    Figure DE102021124514A1_0020
  • Ein aktualisierter Wert des (negativen) Leistungsbudgets R_ wird dann wie folgt berechnet: R = R Δ ƒ c l o s , k
    Figure DE102021124514A1_0021
  • Für eine OP-Frequenzzuteilung gemäß einigen Ausführungsformen werden die Auswertungen gemäß Gleichungen (6)-(10) nacheinander zuerst für eine der CLOS-Gruppen mit höchster Priorität durchgeführt und dann sequenziell jeweils für eine der CLOS-Gruppen mit sukzessiv niedrigerer Priorität wiederholt. In einer solchen Ausführungsform führt die OP-Frequenzzuteilung ferner die Auswertungen gemäß Gleichungen (12)-(15) zuerst für eine der CLOS-Gruppen mit niedrigster Priorität durch und führt dann sequenziell ähnliche Auswertungen jeweils für eine der CLOS-Gruppen mit sukzessive höherer Priorität durch.
  • Nach dem Bestimmen jeweiliger Frequenzbudgets Δƒclos,k jeweils für eine jeweilige CLOS-Gruppe k berechnen einige Ausführungsformen für jede derartige CLOS-Gruppe unterschiedlich eine jeweilige Obergrenzenfrequenz ƒclos,k gemäß dem Folgenden: ƒ c e i l , k = ƒ m i n , k + Δ ƒ c l o s , k / n c , k , i [ 1, n c ]
    Figure DE102021124514A1_0022
  • Einige Ausführungsformen stellen verschiedentlich einen oder mehrere normalisierte Frequenzwerte bereit, um jeweilige Frequenzschwellen (z.B. einschließlich einer oder mehrerer einer minimalen Schwellenfrequenz, einer maximalen Schwellenfrequenz oder einer Schwellenzielfrequenz) zu identifizieren, die jeweils auf einen entsprechenden Kern anzuwenden sind. Solche normalisierten Werte ermöglichen eine Frequenzzuteilung, die Unterschiede zwischen verschiedenen GPU-Kerntypen und/oder verschiedenen CPU-Kerntypen, Unterschiede zwischen Befehlssatztypen und/oder andere Variationen über verschiedene IPs hinweg berücksichtigt. Die Verwendung von normalisierten Frequenzinformationen befreit zum Beispiel Firmware (und/oder eine andere Logik einer Supervisor-P-Einheit) davon, eine oder mehrere implementierungsspezifische Einzelheiten eines anderen IC-Die, der eine Supervisand-P-Einheit beinhaltet, kennen zu müssen.
  • In einer solchen Ausführungsform wird ein Bereich normalisierter Frequenzwerte für einen oder mehrere gegebene Kerne durch ein 3-Tupel (ƒ'min, ƒ'P1, ƒ'max) repräsentiert. Eine Supervisand-P-Einheit wandelt dieses normalisierte 3-Tupel in ein entsprechendes denormalisiertes 3-Tupel (ƒmin, ƒP1, ƒmax) um, das spezifische Frequenzen für den einen oder die mehreren Kerne identifiziert. Zur Veranschaulichung und nichteinschränkend wird ein normalisierter Obergrenzen-ƒ'ceil-Wert, der von einer Supervisor-P-Einheit gesendet wird, durch eine Supervisand-P-Einheit in ein entsprechendes vorläufigen denormalisiertes Obergrenzen-ƒceil gemäß dem Folgenden umgewandelt: ƒ c e i l = ƒ P 1 + ( ƒ ' c e i l ƒ ' P 1 ) s c a l e f a c t o r .
    Figure DE102021124514A1_0023
  • Dieser vorläufige Wert von ƒceil wird dann nach Bedarf gemäß dem Folgenden abgeschnitten: ƒ c e i l = m a x ( ƒ m i n , m i n ( ƒ m a x , ƒ c e i l ) )
    Figure DE102021124514A1_0024
  • In Gleichung (18) ist der Skalierungsfaktor scalefactor ein Parameter, den die Supervisor-P-Einheit bei manchen Ausführungsformen nicht benötigt (und zum Beispiel nicht kennt). Bei einer solchen Ausführungsform wird der Skalierungsfaktor wie folgt bestimmt: s c a l e f a c t o r = ƒ m a x ƒ P 1 ƒ ' m a x ƒ ' P 1
    Figure DE102021124514A1_0025
  • In einigen Ausführungsformen basieren Denormalisierungsberechnungen, wie etwa jene gemäß Gleichungen (18)-(20), auf den folgenden zwei Bedingungen: ƒ ' m i n < = ƒ m i n ƒ P 1 s c a l e f a c t o r + ƒ ' P 1
    Figure DE102021124514A1_0026
    ƒ i L I C = m a x ( ƒ m i n L I C , m i n ( ƒ m a x L I C , ƒ i L I C ) )
    Figure DE102021124514A1_0027
  • In verschiedenen Ausführungsformen führt das Zuteilen von Kernfrequenzen gemäß einem gegebenen Schema (wie etwa einem der vorliegend beschriebenen) zu einer Änderung des Leistungsverbrauchs durch die Package-Einrichtung. Der Leistungsverbrauch wird zum Beispiel durch einen Spannungsregler überwacht, der über eine Leiterplatte (z.B. ein Motherboard) mit der Package-Einrichtung gekoppelt ist, und/oder als Telemetrie von dem Die, der die Leistung verbraucht, und/oder als Hybrid (d.h. teilweise durch einen MBVR und teilweise durch einen oder mehrere Dies). Der Überwacher 4034 ist gekoppelt, um - basierend auf einer Ausgabe, wie etwa dem veranschaulichenden Signal 4032 von IC-Dies 4030 - einen aktualisierten Wert einer Metrik des Leistungsverbrauchs zu bestimmen. Dieser aktualisierte metrische Wert wird als eine Rückkopplung über das Signal 4036 bereitgestellt, um eine dynamisch adaptive Leistungsbudgetzuteilung an Kerne der IC-Dies 4030 zu ermöglichen.
  • 40B zeigt ein System 4001 zum Begrenzen des Leistungsverbrauchs durch Prozessorkerne eines Mehrchip-Package gemäß einer anderen Ausführungsform. Das System 4001 stellt beispielsweise einige oder die gesamte Funktionalität eines der System 3800, 4000 bereit, wobei z.B. eine oder mehrere Operationen des Verfahrens 3900 mit dem System 4001 durchgeführt werden.
  • Wie in 40B gezeigt, umfasst das System 4001 gleichermaßen die Auswertungsschaltung 4010, die Regelschleifensteuerung 4014, die Multiplizierer-/Teilerschaltung 4020, den Ausgleicher 4026, die IC-Dies 4030 und den Überwacher 4034 in dem System 4000. Des Weiteren werden die Signale 4002, 4012, 4016, 4018, 4022, 4024, 4028, 4032, 4036 unterschiedlich in dem System 4001 kommuniziert (ähnlich einer solchen Kommunikation in dem System 4000), wobei z.B. ein Signal 4004 für die Regelschleifensteuerung 4014 ein Zeitfenster TW1 identifiziert, das eine maximale Zeitdauer repräsentiert, während der die Metrik des durchschnittlichen Leistungsverbrauchs über PL1 liegen kann.
  • In verschiedenen Ausführungsformen empfängt eine andere Auswertungsschaltung 4011 des Systems 4001 - z.B. über ein Signal 4036 - die gleiche (oder eine andere) Metrik des Package-Leistungsverbrauchs, die mit dem Überwacher 4034 bestimmt wird. Die Auswerteschaltung 4011 empfängt ferner ein Signal 4006, das eine Kennung einer zweiten Leistungsverbrauchsschwelle PL2 (die zum Beispiel größer als PL1 ist) umfasst.
  • In einer solchen Ausführungsform ist eine andere Regelschleifensteuerung 4015 (z.B. eine PID-Steuerung) des Systems 4001 gekoppelt, um ein Signal 4013 zu empfangen, das eine Differenz zwischen PL2 und der Leistungsverbrauchsmetrik angibt, die an die Auswertungsschaltung 4011 kommuniziert wird. Ein anderes Signal 4008 identifiziert für die Regelschleifensteuerung 4015 ein Zeitfenster TW2, das eine maximale Zeitdauer repräsentiert, während der die Metrik des durchschnittlichen Leistungsverbrauchs über PL2 liegen kann. Basierend auf dem Signal 4013 und einem Zeitfenster TW2 gibt die Regelschleifensteuerung 4015 ein anderes Signal 4017 aus, das (zum Beispiel) ein zweites Durchschnittsfrequenzbudget pro Kern angibt. Ein niedrigeres der Budgets, das durch die Signale 4016, 4017 angegeben wird, wird bestimmt und - über ein Signal 4019 - an die Multiplizierer-/Teilerschaltung 4020 zur Verwendung beim Bestimmen des Signals 4022 kommuniziert, wie z.B. unter Bezugnahme auf das System 4000 beschrieben.
  • 40C zeigt das System 4050 zum Begrenzen des Leistungsverbrauchs durch ein Mehrchip-Package gemäß einer anderen Ausführungsform. Das System 4050 stellt beispielsweise einige oder die gesamte Funktionalität des Systems 3800 bereit, wobei z.B. eine oder mehrere Operationen des Verfahrens 3900 mit dem System 4050 durchgeführt werden. In einigen Ausführungsformen umfasst das System 4050 ferner Merkmale eines der Systeme 4000, 4001, wobei z.B. das System 4050 gleichzeitig für das Überschreiten einer beliebigen von mehreren unterschiedlichen Leistungsschwellen durch das Mehrchip-Package detektieren soll und auf diese verschieden reagieren soll.
  • Wie in 40C gezeigt, umfasst das System 4050 eine Leistungsbegrenzerschaltungsanordnung einer Supervisor-P-Einheit (zum Beispiel der P-Einheit 3802), wobei die Schaltungsanordnung eine Auswertungsschaltung 4060, einen Arbeitszyklusdurchsetzer 4064 und eine Leistungsverteilerschaltungsanordnung 4068 beinhaltet, die in einigen Ausführungsformen funktionell der Auswertungsschaltung 4010, der Steuerung 3824 bzw. der Frequenzverteilungsschaltungsanordnung 3825 entsprechen. Zum Beispiel entsprechen die Signale 4052, 4062, 4076 und 4084 - die in dem System 4000 als unterschiedlich kommuniziert gezeigt sind - in einigen Ausführungsformen funktionell den Signalen 4002, 4012, 4028 bzw. 4036.
  • Das System 4050 umfasst IC-Dies 4078 einer Package-Einrichtung, von denen einige oder alle jeweils eine jeweilige Supervisand-P-Einheit beinhalten, die wenigstens teilweise durch die Supervisor-P-Einheit gesteuert wird. In einigen Ausführungsformen ist die Package-Einrichtung gekoppelt mit - oder beinhaltet alternativ - einer Schaltungsanordnung (wie etwa dem gezeigten veranschaulichenden Überwacher 4082), die Hinweise auf einen Leistungsverbrauch durch die Package-Einrichtung überwacht. Informationen über einen solchen Leistungsverbrauch werden der Supervisor-P-Einheit als Rückkopplungssignal 4084 bereitgestellt, um eine dynamische Verwaltung des Leistungsverbrauchs durch Kerne der IC-Dies 4078 zu ermöglichen.
  • In einigen Ausführungsformen gibt das Signal 4084 eine Metrik des Gesamtleistungsverbrauchs an, die über einen vorbestimmten Zeitraum gemittelt wird. In einer solchen Ausführungsform ist dieser Zeitraum kleiner als ein entsprechender Zeitraum, der für die Mittelung einer anders berechneten Metrik verwendet wird, die (zum Beispiel) durch das Signal 4036 angegeben wird. Das Signal 4084 wird durch eine Auswerteschaltung 4060 empfangen, die auch ein Signal 4052 empfängt, das eine Kennung einer Leistungsverbrauchsschwelle PL2 umfasst. In einigen Ausführungsformen ist PL2 größer als die Schwelle PL1, die durch das Signal 4002 identifiziert wird, wobei z.B. PL2 kleiner als eine Pmax-Spezifikation für die Package-Einrichtung ist.
  • Basierend auf dem Signal 4084 und dem Signal 4052 erzeugt die Auswertungsschaltung 4060 ein Signal 4062, das eine Differenz zwischen PL2 und der Leistungsverbrauchsmetrik angibt. Basierend auf dem Signal 4062 bestimmt der Arbeitszyklusdurchsetzer 4064 einen oder mehrere Parameter eines Zyklisierens des Leistungsverbrauchs durch einen oder mehrere Kerne, wobei z.B. der eine oder die mehreren Parameter eine Zyklusdauer, einen Arbeitszyklus oder dergleichen angeben. Ein solches Zyklisieren ist zum Beispiel durch sukzessives Drosseln einer oder mehrerer Kernfrequenzen für eine vorbestimmte Anzahl von Malen oder bis irgendeine andere Testbedingung erfüllt ist, durchzuführen.
  • Der eine oder die mehreren Parameter werden über ein Signal 4066 an einen domänenübergreifenden Verteiler 4070 der Leistungsverteilerschaltungsanordnung 4068 kommuniziert, der eine Funktionalität (ähnlich jener des Ausgleichers 4026) bereitstellt, um basierend auf dem einen oder den mehreren Parametern ein oder mehrere entsprechende erste Frequenzbudgets zum Implementieren der Leistungszyklisierung zu bestimmen. In einer solchen Ausführungsform entsprechen das eine oder die mehreren ersten Frequenzbudgets jeweils einem anderen jeweiligen IC-Die des Mehrchip-Packages (und sind diesen zuzuteilen). Das eine oder die mehreren ersten Frequenzbudgets werden dann über das Signal 4072 einem domäneninternen Verteiler 4074 der Leistungsverteilerschaltungsanordnung 4068 angegeben.
  • Basierend auf dem Signal 4072 bestimmt die Leistungsverteilerschaltungsanordnung 4068 für jeden von einem oder mehreren der IC-Dies 4078 eine oder mehrere jeweilige Frequenzschwellen (z.B. einschließlich einer Schwellenminimalfrequenz, einer Schwellenmaximalfrequenz und/oder einer Schwellenzielfrequenz), die jeweils einem jeweiligen Prozessorkern dieses IC-Die entsprechen sollen. Mit einem oder mehreren Signalen (wie etwa dem gezeigten veranschaulichenden Signal 4076) gibt der domäneninterne Verteiler 4074 die verschiedenen Frequenzschwellen jeweils einem jeweiligen der IC-Dies 4078 an. P-Einheiten von IC-Dies 4078 identifizieren zum Beispiel eine oder mehrere jeweilige Frequenzschwellen auf verschiedene Weise, die dann auf verschiedene Weise angewendet werden, um Frequenzen zu bestimmen, bei denen jeweilige Prozessorkerne arbeiten sollen.
  • 41 zeigt Merkmale einer HPM-Architektur 4100 zum Bestimmen jeweiliger Frequenzen von Prozessorkernen in einem Mehrchip-Package gemäß einer Ausführungsform. Die HPM-Architektur 4100 ist ein Beispiel für eine Ausführungsform, bei der die Funktionalität zum Bestimmen einer Aufteilung eines Frequenzbudgets unter Prozessorkernen über mehrere P-Einheiten verteilt ist, die jeweils an einem anderen jeweiligen IC-Die angeordnet sind. In einigen Ausführungsformen ist die HPM-Architektur 4100 mit einer Package-Einrichtung eines der Systeme 3800, 4000, 4001, 4050 versehen, wobei z.B. eine oder mehrere P-Einheiten der HPM-Architektur 4100 einen Teil oder das gesamte Verfahren 3900 durchführen sollen.
  • Wie in 41 gezeigt, umfasst die HPM-Architektur 4100 eine Mehrfachchip-Package-Einrichtung einschließlich eines IC-Die 4110 und eines IC-Die 4140, die damit gekoppelt sind. Der IC-Die 4110 umfasst eine erste P-Einheit und einen ersten Prozessor, der mit der ersten P-Einheit gekoppelt ist, wobei der erste Prozessor einen oder mehrere erste Kerne (wie etwa die gezeigten veranschaulichenden Kerne 4126a, 4126b) umfasst. Der IC-Die 4140 umfasst eine zweite P-Einheit und einen zweiten Prozessor, der damit gekoppelt ist, wobei der zweite Prozessor einen oder mehrere zweite Kerne (wie etwa die gezeigten veranschaulichenden Kerne 4156a, 4156b) umfasst. In einer Ausführungsform arbeiten die erste P-Einheit und die zweite P-Einheit als eine Supervisor-P-Einheit bzw. eine Supervisand-P-Einheit der HPM-Architektur 4100. In einer solchen Ausführungsform entspricht der IC-Die 4110 funktionell dem IC-Die 3810, wobei z.B. der IC-Die 4140 funktionell einem der IC-Dies 3830, 3850 entspricht.
  • Die erste (Supervisor-) P-Einheit des IC-Die 4110 umfasst eine Steuerung 4116 und einen Frequenzverteiler 4120, die zum Beispiel einige oder die gesamte Funktionalität der Regelschleifensteuerung 4014 bzw. des Ausgleichers 4026 bereitstellen. Alternativ oder zusätzlich stellen die Steuerung 4116 und der Frequenzverteiler 4120 einige oder die gesamte Funktionalität des Arbeitszyklusdurchsetzers 4064 bzw. der Leistungsverteilerschaltungsanordnung 4068 bereit. Zum Beispiel unterstützt die erste P-Einheit des IC-Die 4110 gleichzeitige Operationen zum Regeln des Leistungsverbrauchs basierend auf zwei Leistungsschwellen (wie etwa den vorliegend unter Bezugnahme auf die Systeme 4000, 4001, 4050 beschriebenen Schwellen PL1, PL2).
  • In einer Ausführungsform entsprechen die Signale 4112, 4114 und 4118, die verschiedentlich mit der ersten P-Einheit kommuniziert werden, funktionell den Signalen 4002, 4036 bzw. 4016 und/oder den Signalen 4052, 4084 bzw. 4062. Basierend auf dem Signal 4118 berechnet oder bestimmt der Frequenzverteiler 4120 verschiedene Frequenzschwellen jeweils für einen jeweiligen der Kerne 4126a, 4126b. Solche Schwellen werden mit Steuersignalen 4124a, 4124b angewendet, die (jeweils) der Frequenzverteiler 4120 an den Kern 4126a, 4126b kommuniziert. In einer solchen Ausführungsform basiert die Erzeugung der Signale 4124a, 4124b ferner auf Performanzinformationen 4122, die (zum Beispiel) eine Anzahl von aktiven Kernen des IC-Die 4110, eine Entsprechung des Kerns 4126a, 4126b jeweils zu einer jeweiligen CLOS-Gruppe, eine relative Rangfolge von CLOS-Gruppen und/oder dergleichen identifizieren. Solche Performanzinformationen 4122 werden zum Beispiel mit Kommunikationen zwischen P-Einheiten der HPM-Architektur 4100 gesammelt. In einer Ausführungsform wird eine Änderung an einer Anzahl von aktiven Kernen kommuniziert, zum Beispiel unter der Voraussetzung, dass sich die konfigurierten CLOS-Gruppen nicht geändert haben.
  • Die zweite (Supervisand-) P-Einheit des IC-Die 4140 umfasst einen Frequenzverteiler 4150, der zum Beispiel wenigstens eine gewisse Funktionalität des Ausgleichers 4026 und/oder wenigstens eine gewisse Funktionalität des domäneninternen Verteilers 4074 bereitstellt. Der Frequenzverteiler 4150 ist gekoppelt, um ein Signal 4117 zu empfangen, das ein Leistungsbudget spezifiziert oder anderweitig angibt, das dem IC-Die 4140 verfügbar gemacht werden soll. Das Leistungsbudget, das durch das Signal 4117 angegeben wird, wird zum Beispiel als ein Frequenzbudget repräsentiert, das unterschiedlich auf die Kerne 4156a, 4156b aufgeteilt werden soll. Auch wenn gezeigt ist, dass das Signal 4117 von der Steuerung 4116 gesendet wird, wird in einer alternativen Ausführungsform das Signal 4117 stattdessen durch den Frequenzverteiler 4120 erzeugt, z.B. basierend auf einer Verarbeitung des Signals 4118, um eine Aufteilung des Leistungsbudgets zwischen den IC-Dies 4110, 4140 zu bestimmen.
  • Basierend auf dem Signal 4117 berechnet oder bestimmt der Frequenzverteiler 4150 verschiedene Frequenzschwellen jeweils für einen jeweiligen der Kerne 4156a, 4156b. Solche Schwellen werden mit Steuersignalen 4154a, 4154b angewendet, die (jeweils) der Frequenzverteiler 4150 an den Kern 4156a, 4156b kommuniziert. In einer solchen Ausführungsform basiert die Erzeugung der Signale 4154a, 4154b ferner auf Performanzinformationen 4152, die (zum Beispiel) eine Anzahl von Kernen des IC-Die 4140, eine Entsprechung des Kerns 4156a, 4156b jeweils zu einer jeweiligen CLOS-Gruppe, eine relative Rangfolge von CLOS-Gruppen und/oder dergleichen identifizieren.
  • In einigen Ausführungsformen umfasst die HPM-Architektur 4100 ferner (oder ist alternativ vorgesehen zur Kopplung mit) einen Überwacher 4130, der zum Beispiel eine Funktionalität eines oder beider der Überwacher 4034, 4082 bereitstellt. Der Überwacher 4130 ist gekoppelt, um von einem oder mehreren Messern 4128 des IC-Die 4110 eine Ausgabe (z.B. einschließlich des gezeigten veranschaulichenden Signals 4129) zu empfangen, die eine Strom- und/oder Spannungsverwendung durch die Kerne 4126a, 4126b spezifiziert oder anderweitig angibt. Der Überwacher 4130 empfängt ferner von einem oder mehreren Messern 4158 des IC-Die 4140 ein Signal 4159, das eine Strom- und/oder Spannungsverwendung durch die Kerne 4156a, 4156b spezifiziert oder anderweitig angibt. Basierend auf den Signalen 4129, 4159 berechnet der Überwacher 4130 regelmäßig eine oder mehrere Metriken des durchschnittlichen Leistungsverbrauchs durch die Package-Einrichtung, wobei z.B. solche Metriken als ein Rückkopplungssignal 4114 an die Steuerung 4116 geliefert werden.
  • 42 ist ein Zeitdiagramm 4200, das hierarchische Leistungsverwaltung mit einer Mehrchip-Package-Einrichtung gemäß einer Ausführungsform veranschaulicht. Das Zeitdiagramm 4200 zeigt einen durchschnittlichen Verbrauch 4205 von Leistung 4202 durch die Package-Einrichtung über einen Zeitraum 4204 hinweg. Leistungsverwaltung, wie etwa die, die durch den durchschnittlichen Leistungsverbrauch 4205 veranschaulicht ist, wird zum Beispiel mit einem der Systeme 3800, 4000, 4001 oder der HPM-Architektur 4100 bereitgestellt, wobei z.B. eine solche Leistungsverwaltung dem Verfahren 3900 entspricht.
  • In der gezeigten veranschaulichenden Ausführungsform liegt der durchschnittliche Leistungsverbrauch 4205 anfänglich unter einer ersten Leistungsschwelle PL1, die kleiner als eine Maximalleistungs- (Pmax-) Spezifikation der Package-Einrichtung ist. PL1 ist zum Beispiel gleich einer TDP der Package-Einrichtung oder basiert anderweitig auf dieser. Zu einer gegebenen Zeit tA vollzieht der durchschnittliche Leistungsverbrauch 4205 einen Übergang 4210 über PL1. Basierend auf dem Übergang 4210 (z.B. basierend darauf, dass der durchschnittliche Leistungsverbrauch 4205 für einen Zeitraum, der länger als eine Dauer TW1 ist, über PL1 bleibt) arbeitet eine Architektur für hierarchische Leistungsverwaltung der Package-Einrichtung, um den durchschnittlichen Leistungsverbrauch 4205 auf ein Zielniveau gleich PL1 zu bringen.
  • HPM-Mechanismen, wie etwa die vorliegend beschriebenen, modifizieren zum Beispiel eine oder mehrere Kernfrequenzen, um den durchschnittlichen Leistungsverbrauch 4205 auf ein höheres Niveau (wie etwa die gezeigte veranschaulichende Leistungsschwelle P2) zu begrenzen, bis eine oder mehrere Arbeitslasten der Kerne abgeschlossen sind oder anderweitig abnehmen. Eine solche Abnahme der Arbeitslasten führt zu einem Übergang 4212 des durchschnittlichen Leistungsverbrauchs 4205 zu einer Zeit tB zurück zu (oder zum Beispiel darunter) PL1.
  • 43 ist ein weiteres Zeitdiagramm 4300, das zusätzliche hierarchische Leistungsverwaltung mit einer Mehrchip-Package-Einrichtung gemäß einigen Ausführungsformen veranschaulicht. Das Zeitdiagramm 4300 zeigt einen durchschnittlichen Verbrauch 4305 von Leistung 4302 durch die Package-Einrichtung über einen Zeitraum 4304 hinweg. Leistungsverwaltung, wie etwa die, die durch den durchschnittlichen Leistungsverbrauch 4305 veranschaulicht ist, wird zum Beispiel mit einem der Systeme 3800, 4050 oder der HPM-Architektur 4100 bereitgestellt, wobei z.B. eine solche Leistungsverwaltung dem Verfahren 3900 entspricht.
  • In der gezeigten veranschaulichenden Ausführungsform liegt der durchschnittliche Leistungsverbrauch 4305 anfänglich unterhalb einer Leistungsschwelle PL1, die (zum Beispiel) gleich einer TDP der Package-Einrichtung ist oder anderweitig auf dieser basiert. Zu einer gegebenen Zeit t1 vollzieht der durchschnittliche Leistungsverbrauch 4305 einen Übergang 4310 nach oberhalb von PL1 und auch oberhalb einer höheren Schwelle PL2. In Reaktion auf den Übergang 4310 arbeitet eine Architektur für hierarchische Leistungsverwaltung der Package-Einrichtung zum wiederholten Zyklisieren des durchschnittlichen Leistungsverbrauchs 4305 in einem Bereich oberhalb von PL1 (und zum Beispiel über PL2) durch sukzessives Drosseln der jeweiligen Frequenzen eines oder mehrerer Kerne.
  • HPM-Mechanismen, wie etwa die vorliegend beschriebenen, modifizieren zum Beispiel eine oder mehrere Kernfrequenzen, um den durchschnittlichen Leistungsverbrauch 4305 für eine gewisse vorbestimmte Zeitdauer - z.B. eine Zeitdauer gleich der Differenz (t3 - t1) zwischen den Zeiten t1, t3 - auf eine dritte Schwelle Pmax.app zu begrenzen. Anschließend werden die eine oder die mehreren Kernfrequenzen unterschiedlich gedrosselt, um einen Übergang 4312 des durchschnittlichen Leistungsverbrauchs 4305 hinab auf PL2 zu bewirken. Die eine oder die mehreren Kernfrequenzen bleiben bis zu einer Zeit t4 gedrosselt, woraufhin eine weitere Zyklisierung des durchschnittlichen Leistungsverbrauchs 4305 durchgeführt wird.
  • Zum Beispiel führt eine Zunahme einer oder mehrerer Kernfrequenzen zu einem Übergang 4320 des durchschnittlichen Leistungsverbrauchs 4305 zurück zu Pmax.app bis zu t5, wenn die Kerndrosselung wieder einen Übergang 4322 des durchschnittlichen Leistungsverbrauchs 4305 zurück zu PL2 bewirkt. Die eine oder die mehreren Kernfrequenzen bleiben wieder bis zu einer Zeit t7 gedrosselt, woraufhin eine weitere Zyklisierung des durchschnittlichen Leistungsverbrauchs 4305 durchgeführt wird. Zum Beispiel werden eine oder mehrere Kernfrequenzen wieder erhöht, um einen Übergang 4330 des durchschnittlichen Leistungsverbrauchs 4305 zurück zu Pmax.app bis zu t8 zu bewirken, wenn noch eine weitere Kerndrosselung einen Übergang 4332 des durchschnittlichen Leistungsverbrauchs 4305 zurück zu PL2 bewirkt. In einigen Ausführungsformen ermöglicht ein solches wiederholtes Zyklisieren des durchschnittlichen Leistungsverbrauchs 4305 ein Erfüllen von Leistungslieferungseinschränkungen und eine effiziente Wärmeableitung aus der Package-Einrichtung während eines Betriebs der Kerne mit relativ hoher Frequenz. In einer solchen Ausführungsform bringt dieser Hochfrequenzbetrieb das Mehrchip-Package schneller in einen Verarbeitungszustand, der niedrigere Leistungsverbrauchsniveaus ermöglicht. In einem Ausführungsbeispiel basiert das Zyklisieren des durchschnittlichen Leistungsverbrauchs 4305 auf einer TDP aus mehreren „lokalisierten“ TDPs, die (zum Beispiel) jeweils einer anderen jeweiligen Leistungsdomäne des Prozessors entsprechen.
  • In verschiedenen Ausführungsformen führt die HPM-Architektur regelmäßig erste Auswertungen durch, um eine Leistungsregelung, wie etwa bei der durch das Zeitdiagramm 4200 veranschaulichten, bereitzustellen, während sie zudem regelmäßig zweite Auswertungen durchführt, um eine Leistungsregelung, wie etwa bei der durch das Zeitdiagramm 4300 veranschaulichten, bereitzustellen. Zum Beispiel werden die ersten Auswertungen mit einer ersten Frequenz wiederholt, wobei z.B. der Leistungsverbrauch 4205 als ein Mittelwert über eine erste Zeitdauer berechnet wird. Demgegenüber werden die zweiten Auswertungen mit einer zweiten Frequenz wiederholt, die größer ist als die erste Frequenz, wobei z.B. der Leistungsverbrauch 4305 als Mittelwert über eine zweite Zeitdauer berechnet wird, die kleiner ist als die erste Zeitdauer. In einer solchen Ausführungsform liegt die erste Zeitdauer in der Größenordnung von 0,5 bis 1,5 Sekunden, wobei z.B. die zweite Zeitdauer (t4 - t1) in der Größenordnung von 5-15 Mikrosekunden liegt.
  • In einigen Ausführungsformen basiert das Zyklisieren des durchschnittlichen Leistungsverbrauchs 4305 auf einer beliebigen einer Vielfalt anderer überwachter Bedingungen (z.B. einschließlich eines thermischen Echtzeitzustands, eines durchschnittlichen Stroms oder dergleichen) eines oder mehrerer Kerne. Für eine oder mehrere gegebene P-Einheiten unterstützt zum Beispiel jede solche P-Einheit eine Echtzeitüberwachung einer oder mehrerer Bedingungen einer entsprechenden Leistungsdomäne oder arbeitet anderweitig darauf basierend. Die eine oder die mehreren P-Einheiten führen unterschiedlich Leistungsdrosselung durch, wie etwa jene, die in dem Zeitdiagramm 4300 gezeigt ist, um eine vorbestimmte Schwelle für die eine oder die mehreren Bedingungen anzuwenden.
  • 44A, 44B zeigen jeweilige Sequenzdiagramme 4400, 4470, die verschiedene Kommunikationen in einer HPM-Architektur veranschaulichen, um einen zyklischen Leistungsverbrauch durch eine Mehrchip-Package-Einrichtung gemäß einer Ausführungsform zu bestimmen. Kommunikationen, wie etwa jene, die in den Sequenzdiagrammen 4400, 4470 gezeigt sind, werden zum Beispiel mit der HPM-Architektur 4100 oder mit P-Einheiten eines der Systeme 3800, 4050 durchgeführt. Alternativ oder zusätzlich beinhaltet das Verfahren 3900 einige oder alle solchen Kommunikationen oder basiert anderweitig auf diesen.
  • Wie in 44A, 44B gezeigt, umfasst eine HPM-Architektur eine Supervisor-P-Einheit 4410 und zwei Supervisand-P-Einheiten 4420, 4422, die verschieden von der Supervisor-P-Einheit 4410 gesteuert werden. In einer solchen Ausführungsform sind die P-Einheiten 4410, 4420, 4422 P-Einheiten einer mehrstufigen Leistungsverwaltungshierarchie, wobei z.B. eine der Supervisand-P-Einheiten 4420, 4422 ferner als eine lokale Supervisor-P-Einheit für eine oder mehrere andere (nicht gezeigte) P-Einheiten der Leistungsverwaltungshierarchie fungieren soll. In einem veranschaulichenden Szenario gemäß einer Ausführungsform führt die Supervisor-P-Einheit 4410 Operation 4430 durch, die zu einer gegebenen Zeit detektiert, dass ein durchschnittlicher Leistungsverbrauch durch die Package-Einrichtung mehr als eine Leistungsschwelle beträgt, die bei oder über PL2 liegt. Basierend auf einer solchen Detektion führt die Supervisor-P-Einheit 4410 Operationen durch, um eine Stromaufnahme durch einen oder mehrere Kerne (und, in einigen Ausführungsformen, durch einen oder mehrere Beschleuniger, Nichtkernschaltungen oder dergleichen) zu verringern, während der durchschnittliche Package-Leistungsverbrauch so groß wie eine gewisse höhere Schwelle sein darf (z.B. Pmax.app).
  • Basierend auf Operation 4430 kommuniziert die Überwachungs-P-Einheit 4410 zum Beispiel EDP-(electrical design point, elektrischer Auslegungspunkt) Nachrichten 4432, 4434, die jeweilige Maximalstrom- (Iccmax-) Parameter identifizieren, an die Supervisand-P-Einheiten 4420, 4422. Basierend auf den Nachrichten 4432, 4434 führen die Supervisand-P-Einheiten 4420, 4422 jeweilige Operationen 4436, 4438 durch, um die Ströme, die durch unterschiedliche Kerne gezogen werden, unterschiedlich (gemäß den angegebenen Iccmax-Parametern) zu reduzieren.
  • In einer solchen Ausführungsform verringert die Supervisor-P-Einheit 4410 eine solche Stromaufnahme wiederholt inkrementell, z.B. bis zu einer gewissen maximalen Anzahl von Malen vor dem Implementieren einer Kerndrosselung, die zumindest vorübergehend den durchschnittlichen Leistungsverbrauch auf PL2 reduzieren soll. Zur Veranschaulichung und nichteinschränkend führt die Supervisor-P-Einheit 4410 eine weitere Operation 4440 durch, z.B. eine letzte in einer Runde solcher Operationen, um zu detektieren, ob der durchschnittliche Leistungsverbrauch durch die Package-Einrichtung auf (oder unter) PL2 gesunken ist. Wenn Operation 4440 angibt, dass der Leistungsverbrauch immer noch über PL2 liegt, erzeugt die Supervisor-P-Einheit 4410 Signale 4442, 4444, um zu bewirken, dass die Supervisand-P-Einheiten 4420, 4422 jeweilige Operationen 4446, 4448 durchführen, die jeweils einen jeweiligen vordefinierten Drosselmodus auf alle ihre Kerne anwenden. In einigen Ausführungsformen werden die Signale 4442, 4444 (und/oder andere schnelle Drosselsignale), z.B. statt über ein P2P-Fabric, das für andere Kommunikationen zwischen verschiedenen P-Einheiten verwendet wird, über direkte Drähte an Supervisand-P-Einheiten 4420, 4422 kommuniziert. In diesem speziellen Zusammenhang bezeichnet „direkter Draht“ eine Signalleitung, die direkt mit den jeweiligen Hardwareschnittstellen zweier entsprechender P-Einheiten gekoppelt ist. In einigen Ausführungsformen sind direkte Drähte in einer Daisy-Chain-Konfiguration angeordnet, um die Kommunikation schneller Drosselsignale zwischen P-Einheiten zu ermöglichen. In anderen Ausführungsformen sind direkte Drähte verschiedentlich jeweils zwischen einer globalen Supervisor-P-Einheit und einer anderen jeweiligen Supervisand-P-Einheit gekoppelt, die sich in der Hierarchie direkt unter dieser globalen Supervisor-P-Einheit befindet. In einer solchen Ausführungsform sind für jede lokale Supervisor-P-Einheit (falls vorhanden) in der Hierarchie jeweils ein oder mehrere andere direkte Drähte verschieden zwischen dieser lokalen Supervisor-P-Einheit und einer entsprechenden Supervisand-P-Einheit gekoppelt, die sich direkt unter dieser lokalen Supervisor-P-Einheit in der Hierarchie befindet.
  • Nachfolgende Nachrichten 4450, 4452 von der Supervisor-P-Einheit 4410 kommunizieren verschiedentlich EDP-Budgets, gemäß welchen Supervisand-P-Einheiten 4420, 4422 ihre Kerne (in jeweiligen Operationen 4454, 4456) drosseln. Nach den Operationen 4454, 4456 stellen die Supervisand-P-Einheiten 4420, 4422 Nachrichten 4460, 4462 bereit, um die Initiierung der Drosselung an die Supervisor-P-Einheit 4410 zu bestätigen. Danach führt die Supervisor-P-Einheit 4410 Operation 4470 durch, die bestimmen soll, wann es möglich ist, jeweilige Signale 4472, 4474 für die Supervisand-P-Einheiten 4420, 4422 zu senden, um eine schnelle Die-Drosselung zu unterbrechen (z.B. mit den jeweiligen gezeigten Operationen 4476, 4478).
  • In einer solchen Ausführungsform detektiert eine nachfolgende Operation 4480 durch die Supervisor-P-Einheit 4410, dass der Leistungsverbrauch der gedrosselten Kerne für zumindest eine vorbestimmte Haltezeit bei oder unter PL2 war. In Reaktion auf ein solches Detektieren bereitet die Supervisor-P-Einheit 4410 eine weitere Zyklisierung des Leistungsverbrauchs vor, wobei z.B. Nachrichten 4482, 4484, 4490, 4492 sukzessive kommuniziert werden, um eine Obergrenze des Leistungsverbrauchs inkrementell anzuheben. Verschiedene Operationen 4486, 4488, 4494, 4496 basierend auf Nachrichten 4482, 4484, 4490, 4492 ermöglichen in verschiedenen Ausführungsformen, dass Kernfrequenzen ansteigen, z.B. um einen der Übergänge 4320, 4330 zu ermöglichen.
  • 45 zeigt Merkmale einer HPM-Architektur 4500 zum Verwalten des Leistungsverbrauchs durch Kerne verschiedener jeweiliger IC-Dies gemäß einer Ausführungsform. In 45 sind P-Einheiten der HPM-Architektur 4500 als miteinander verbundene Knoten dargestellt, die an Kommunikationen teilnehmen, wie etwa jenen, die zum Beispiel in Sequenzdiagrammen 4400, 4470 gezeigt sind. In einigen Ausführungsformen stellt die HPM-Architektur 4500 Funktionalität eines der Systeme 3800, 4000, 4001, 4050 oder der HPM-Architektur 4100 bereit, wobei z.B. die HPM-Architektur 4500 betreibbar ist, um einen Teil oder das gesamte Verfahren 3900 durchzuführen.
  • Die HPM-Architektur 4500 veranschaulicht eine Ausführungsform, die mehrere Ebenen einer Hierarchie von P-Einheiten umfasst, wobei die mehreren Ebenen unter einer „globalen“ Supervisor-P-Einheit liegen. Zum Beispiel befinden sich P-Einheiten der HPM-Architektur 4500 jeweils an einem anderen jeweiligen IC-Die eines Mehrchip-Package, wobei eine P-Einheit 4510 als eine globale Supervisor-P-Einheit arbeitet und eine oder mehrere andere P-Einheiten (z.B. einschließlich der gezeigten veranschaulichenden P-Einheiten 4520, 4530, 4540) jeweils eine jeweilige Supervisand-P-Einheit sind, die direkt durch die Supervisor-P-Einheit 4510 gesteuert wird. In einer solchen Ausführungsform ist die Supervisand-P-Einheit 4540 (zum Beispiel) gekoppelt, um sowohl als eine Supervisand-P-Einheit unter der Supervisor-P-Einheit 4510 als auch - in einer oder mehreren Hinsichten - als „lokaler“ Supervisor einer oder mehrerer anderer P-Einheiten (wie etwa der gezeigten veranschaulichenden Supervisand-P-Einheiten 4550, 4560, 4570) zu arbeiten.
  • Die Supervisand-P-Einheit 4540 ist gekoppelt, um jeweilige Nachrichten 4552, 4562, 4572 zu empfangen, die für jede der Supervisand-P-Einheiten 4550, 4560, 4570 (jeweils) den Konfigurationszustand des jeweiligen Die beschreiben, der diese P-Einheit beinhaltet. Zur Veranschaulichung und nichteinschränkend beinhalten solche Zustandsinformationen eine Gesamtanzahl an aktiven Kernen eines gegebenen IC-Dies und/oder Befehlstypen, die durch einen gegebenen Kern verwendet werden, und/oder eine mit einem gegebenen Kern bereitzustellende CLOS und/oder dergleichen. In einer Ausführungsform wird eine Änderung an einer Anzahl von aktiven Kernen in der Leistungsverwaltungshierarchie kommuniziert, zum Beispiel abhängig davon, dass sich die konfigurierten CLOS-Gruppen nicht geändert haben und/oder dass Dies konfiguriert sind, um Frequenzanpassungs-Dies auf lokale Kerne basierend auf Befehlssätzen anzuwenden. Gleichermaßen ist die Supervisor-P-Einheit 4510 gekoppelt, um jeweilige Nachrichten 4522, 4532, 4542 zu empfangen, die für jede der Supervisand-P-Einheiten 4520, 4530, 4540 (jeweils) den Konfigurationszustand des jeweiligen Die beschreiben, der diese P-Einheit beinhaltet. In einer solchen Ausführungsform aggregiert die Supervisand-P-Einheit 4540 Zustandsinformationen, die über die Nachrichten 4552, 4562, 4572 empfangen werden, wobei solche aggregierten Zustandsinformationen dann über die Nachricht 4542 an die Supervisor-P-Einheit 4510 geliefert werden. Basierend auf solchen Zustandsinformationen führen die P-Einheiten 4510, 4540 Operationen durch, um zu bestimmen, wie ein Frequenzbudget jeweiligen Kernen der HPM-Architektur 4500 zugeteilt werden soll.
  • Die HPM-Architektur 4500 verteilt zum Beispiel eine Funktionalität (wie etwa die des Ausgleichers 4026) über die P-Einheiten 4510, 4540, um eine Zuteilung von Kernfrequenzbandbreiten basierend auf einem verfügbaren Leistungsbudget zu bestimmen. In einer solchen Ausführungsform spezifiziert die Leistungsbegrenzerlogik PL 4512 der Supervisor-P-Einheit 4510 basierend auf einer oder beiden der Leistungsschwellen PL1, PL2 für jede der P-Einheiten 4520, 4530 (z.B. über Nachrichten 4514, 4516) eine oder mehrere jeweilige Frequenzschwellen, die jeweils auf einen entsprechenden Kern anzuwenden sind, oder zeigt diese anderweitig an. Des Weiteren spezifiziert der PL 4512 der Supervisor-P-Einheit 4510 für die P-Einheit 4540 ein Leistungsbudget, das über eine Kombination der jeweiligen IC-Dies anzuwenden ist, die P-Einheiten 4540, 4550, 4560, 4570 beinhalten, oder zeigt dieses anderweitig an. Die P-Einheit 4540 stellt eine Ausgleicherfunktionalität bereit, um basierend auf einem solchen Leistungsbudget mehrere Kernfrequenzschwellen zu bestimmen, die jeweils durch eine jeweilige der P-Einheiten 4540, 4550, 4560, 4570 unterschiedlich anzuwenden sind.
  • In einer solchen Ausführungsform bestimmt die Supervisand-P-Einheit 4540 Leistungsbudgets, die von den jeweiligen P-Einheiten 4540, 4550, 4560, 4570 unterschiedlich anzuwenden sind. Zum Beispiel spezifiziert die P-Einheit 4540 dann für jede der P-Einheiten 4550, 4560, 4570 (z.B. über Nachrichten 4544, 4546, 4548) eine oder mehrere jeweilige Frequenzschwellen an, die jeweils auf einen entsprechenden Kern anzuwenden sind, oder zeigt diese anderweitig an. Des Weiteren wendet die Supervisand-P-Einheit 4540 selbst eine oder mehrere andere Frequenzschwellen jeweils auf einen jeweiligen Kern des IC-Die an, der die Supervisand-P-Einheit 4540 beinhaltet.
  • In einem veranschaulichenden Szenario gemäß einer Ausführungsform empfangen einige oder alle der P-Einheiten 4520, 4530, 4540 jeweils von der P-Einheit 4510 eine jeweilige Kommunikation, die ein Leistungsbudget für eine entsprechende Leistungsdomäne spezifiziert oder anderweitig angibt (wobei z.B. eine Kommunikation ein Frequenzbudget identifiziert, um ein entsprechendes Leistungsbudget zu implementieren). Zum Beispiel gibt Nachricht 4514 der P-Einheit 4520 ein erstes Frequenzbudget für eine erste Leistungsdomäne an, wobei z.B. die Nachricht 4516 der P-Einheit 4530 ein zweites Frequenzbudget für eine zweite Leistungsdomäne angibt. Des Weiteren gibt Nachricht 4518 der P-Einheit 4540 ein drittes Frequenzbudget für einen dritten Leistungsbereich an.
  • Die P-Einheiten 4520 verteilen in ihrer Eigenschaft als Supervisand das erste Frequenzbudget unter einem oder mehreren ersten Prozessorkernen der ersten Leistungsdomäne, wobei z.B. die P-Einheiten 4530 das zweite Frequenzbudget gleichermaßen unter einem oder mehreren zweiten Prozessorkernen der zweiten Leistungsdomäne verteilen.
  • Die P-Einheit 4540 identifiziert in ihrer Eigenschaft als Supervisand einen ersten Teil des dritten Frequenzbudgets und verteilt den ersten Teil unter einem oder mehreren dritten Kernen einer ersten Unterdomäne der dritten Leistungsdomäne. Des Weiteren identifiziert die P-Einheit 4540 in ihrer Eigenschaft als „lokaler“ Supervisor ferner einen verbleibenden zweiten, dritten und vierten Teil des dritten Frequenzbudgets, wobei z.B. der zweite, dritte und vierte Teil durch die P-Einheiten 4550, 4560, 4570 (jeweils) unterschiedlich unter jeweiligen zweiten, dritten und vierten Unterdomänen der dritten Leistungsdomäne zu verteilen sind.
  • In einer solchen Ausführungsform identifiziert Nachricht 4544 den zweiten Unterabschnitt des dritten Leistungsbudgets an die P-Einheit 4550, wobei z.B. Nachricht 4546 den dritten Unterabschnitt des dritten Leistungsbudgets an die P-Einheit 4560 identifiziert und wobei Nachricht 4548 den vierten Unterabschnitt des dritten Leistungsbudgets an die P-Einheit 4570 identifiziert. Basierend auf den Nachrichten 4544, 4546 und 4548 verteilen P-Einheiten 4550, 4560, 4570 den zweiten, dritten und vierten Unterabschnitt des dritten Leistungsbudgets jeweils auf einen oder mehrere jeweilige Kerne.
  • Es gibt viele technische Wirkungen verschiedener Ausführungsformen. In einigen Ausführungsformen stellt zum Beispiel eine Supervisor-P-Einheit eine Schnittstelle bereit, wodurch ein Softwareprozess in der Lage ist, auf eine beliebige von verschiedenen P-Einheiten einer HPM-Architektur zuzugreifen. In einer solchen Ausführungsform ermöglicht die Schnittstelle dem Softwareprozess, Funktionalität, wie etwa die der Intel® Speed Select Technology, zur Verfügung zu stellen. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • 46 ist ein Blockdiagramm, das eine Package-Einrichtung 4600 zum Bereitstellen einer Schnittstelle gemäß einer Ausführungsform veranschaulicht, durch die ein Softwareprozess oder ein anderer Agent auf eine HPM-Architektur zugreifen soll. Die Package-Einrichtung 4600 ist ein Beispiel für eine Ausführungsform, bei der mehrere IC-Dies eines Package jeweilige P-Einheiten umfassen, wobei eine P-Einheit eine „Supervisor“-P-Einheit für eine oder mehrere andere „Supervisand“-P-Einheiten sein soll (zumindest hinsichtlich des Bereitstellens einer Funktionalität, auf die über die Schnittstelle zugegriffen wird).
  • In der gezeigten veranschaulichenden Ausführungsform sind die IC-Dies 4601_1, 4601_2 der Package-Einrichtung 4600 über eine Interconnect-Schaltungsanordnung, wie etwa das gezeigte veranschaulichende Fabric 4607, miteinander gekoppelt. In einer Ausführungsform umfasst das Fabric 4607 zum Beispiel Interconnects, die einen Teil oder die gesamte Funktionalität des Kommunikationsnetzwerks 107 bereitstellen. IC-Dies 4601_1, 4601_2 umfassen jeweilige Prozessoren 4640, 4670, die z.B. jeweils eine CPU oder GPU einschließlich eines oder mehrerer Verarbeitungskerne umfassen, wobei eine P-Einheit 4602 des Prozessors 4640 über das Fabric 4607 (z.B. ein P2P-Fabric) mit einer P-Einheit 4603 des Prozessors 4670 gekoppelt ist. In einer Ausführungsform ist die P-Einheit 4602 ein Mikrocontroller, der mit pCode 4652 (zum Beispiel Firmware) programmiert ist, wobei z.B. die P-Einheit 4603 ein Mikrocontroller ist, der mit pCode 4682 programmiert ist. Die pCodes 4652, 4682 beinhalten verschiedentlich Codecodierfunktionalitäten, die mit dem Verwalten von Betriebsparametern der Prozessoren 4640 bzw. 4670 verbunden sind. In einer Ausführungsform ermöglicht die Ausführung des pCodes 4652 eine Schnittstelle, durch die ein ausführender Softwareprozess in der Lage ist, einen oder mehrere Betriebsparameter eines gegebenen Prozessors zu lesen, einzustellen oder anderweitig zu bestimmen. Zusätzlich oder alternativ liest die p-Einheit 4602, die den pCode 4652 ausführt, während eines Hochfahrens BIOS- (basic input output system) Anweisungen 4632, die in der BIOS-Schaltungsanordnung 4630 gespeichert sind, um eine Initialisierung der Package-Einrichtung 4600 durchzuführen.
  • Die P-Einheit 4602 stellt zum Beispiel eine Schnittstelle 4654 bereit - die z.B. eine Anwendungsprogrammierschnittstelle (API) umfasst - durch die ein oder mehrere Agenten (z.B. einschließlich Softwareprozessen, wie etwa der der Systemsoftware 4690, oder der ausgeführten BIOS-Anweisungen 4632) Zugriff haben, um den Betrieb eines oder mehrerer Prozessorkerne zu bestimmen und/oder auf Informationen zuzugreifen, die einen solchen Betrieb beschreiben. In verschiedenen Ausführungsformen umfasst die Systemsoftware 4690 einen Planungsagenten (z.B. eines OS oder alternativ dazu ausgeführt auf dem OS). Ein solcher Planungsagent stellt Funktionalität bereit, um einen gegebenen Thread selektiv von der Ausführung auf einem Kern zu der Ausführung auf einem alternativen Kern zu migrieren. In einer solchen Ausführungsform wird ein Thread zwischen heterogenen Kernen migriert, wobei z.B. ein „großer“ Kern im Vergleich zu jenen eines anderen, vergleichsweise „kleinen“ Kerns relativ große Leistungsverbrauchseigenschaften aufweist.
  • Zumindest teilweise basierend auf Kommunikationen über die Schnittstelle 4654 arbeitet die P-Einheit 4602 als eine Supervisor-P-Einheit zum Steuern der P-Einheit 4603 (als eine entsprechende Supervisand-P-Einheit), um Operationen durch einen Prozessor 4670 zu bestimmen. Alternativ oder zusätzlich stellt die Schnittstelle 4654 Zugriff auf Informationen bereit, die die P-Einheit 4602 als Supervisor-P-Einheit basierend auf Kommunikation mit der P-Einheit 4603 bestimmt hat. In verschiedenen Ausführungsformen ist die Schnittstelle 4654 eine Firmware-Schnittstelle, die zum Beispiel mit der UEFI-(Unified Extensible Firmware Interface) Spezifikation, Version 2.0, 31. Januar 2006, der UEFI-Spezifikation, Version 2.1, 7. Januar 2007 oder einer anderen solchen UEFI-Spezifikation kompatibel ist. Eine solche Firmware-Schnittstelle unterstützt System-Boot-Dienste und/oder Laufzeitdienste.
  • Zur Veranschaulichung und nichteinschränkend umfasst der Prozessor 4640 einen oder mehrere Verarbeitungskerne (z.B. einschließlich der gezeigten veranschaulichenden Kerne 4642) und Steuerregister 4644, 4646, 4648, durch die die P-Einheit 4602 verschiedentlich eine oder mehrere Operationen der Kerne 4642 bestimmt. Gleichermaßen umfasst der Prozessor 4670 ferner einen oder mehrere Verarbeitungskerne (z.B. einschließlich der gezeigten veranschaulichenden Kerne 4672) und Steuerregister 4674, 4676, 4678, durch die die P-Einheit 4603 verschiedentlich eine oder mehrere Operationen der Kerne 4672 bestimmt. Die Verarbeitungskerne 4642, 4672 werden in verschiedenen Implementierungen durch reihenfolgetreue Kerne oder reihenfolgeveränderte Kerne bereitgestellt. Alternativ oder zusätzlich weisen manche oder alle Verarbeitungskerne 4642, 4672 jeweils eine Mikroarchitektur auf, die Prozessorlogik und Schaltungen beinhaltet, die zum Implementieren einer jeweiligen Befehlssatzarchitektur (ISA) verwendet werden.
  • Mit der Schnittstelle 4654 stellt die P-Einheit 4602 eine Schnittstelle zwischen einem OS-Prozess (und/oder einem BIOS-Prozess) und der Architektur für hierarchische Leistungsverwaltung bereit. Die Schnittstelle 4654 erleichtert zum Beispiel den Zugriff auf die P-Einheit 4602 - und zum Beispiel den indirekten Zugriff über die P-Einheit 4602 auf eine oder mehrere Supervisand P-Einheiten - durch die Systemsoftware 4690 und/oder eine BIOS-Benutzeroberfläche (UI) 4634 und/oder einen anderen solchen Agenten. Die BIOS-UI 4634 wird zum Beispiel durch eine Ausführung von BIOS-Anweisungen 4632 bereitgestellt, die an der BIOS-Schaltungsanordnung 4630 (zum Beispiel des IC-Die 4601_1) gespeichert sind, wobei z.B. die BIOS-Benutzeroberfläche 4634 mit einer Anzeigeeinrichtung, einer Tastatur, einer Maus und/oder einer oder mehreren Eingabe-/Ausgabeeinrichtungen (nicht gezeigt) präsentiert wird. In einem Ausführungsbeispiel speichert die BIOS-Schaltungsanordnungen 4630 Systeminitiierungsanweisungen zur Verwendung während des System-Boots (z.B. beim Einschalten), wobei z.B. die BIOS-Schaltungsanordnung 4630 einen Nur-Lese-Speicher (ROM) oder einen Flashspeicher zum Speichern der Anweisungen beinhaltet.
  • Bei einer Ausführungsform legt die Schnittstelle 4654 gegenüber einer Systemsoftware 4690 (und/oder einem BIOS-Prozess) eine oder mehrere HPM-Funktionalitäten - z.B. einschließlich der gezeigten veranschaulichenden Tools 4656 - frei, die über die P-Einheit 4602 verfügbar sind. Die hierarchische Leistungsverwaltung basierend auf Kommunikationen über die Schnittstelle 4654 beinhaltet zum Beispiel einige oder alle Tools 4656, die jeweils ein oder mehrere entsprechende Tools jeweils einer jeweiligen Supervisand-P-Einheit steuern, wobei z.B. die Tools 4686 der P-Einheit 4603 jeweils durch ein anderes jeweiliges der Tools 4656 gesteuert werden.
  • Basierend auf Kommunikationen über die Schnittstelle 4654 greift die P-Einheit 4602 auf den Konfigurationszustand des Prozessors 4670 zu, modifiziert diesen oder bestimmt diesen anderweitig. Zum Beispiel signalisiert die P-Einheit 4602 im Auftrag der Systemsoftware 4690 (oder eines anderen solchen Agenten) die P-Einheit 4603, Operationen durchzuführen, um den Konfigurationszustand eines oder mehrerer Register, Sicherungen und/oder einer anderen geeigneten Schaltungsanordnung des Prozessors 4670 (z.B. einschließlich eines oder mehrerer der gezeigten veranschaulichenden Register 4672, 4674, 4678) zu erhalten, einzustellen oder anderweitig darauf zuzugreifen. Alternativ oder zusätzlich bewirken solche Kommunikationen über die Schnittstelle 4654, dass die P-Einheit 4602 auf den Konfigurationszustand des Prozessors 4640 zugreift, diesen modifiziert oder anderweitig bestimmt, wobei z.B. die P-Einheit 4602 auf ein oder mehrere Register, Sicherungen und/oder eine andere geeignete Schaltungsanordnung, wie etwa eines oder mehrere der gezeigten veranschaulichenden Register 4642, 4644, 4648, zugreift. In verschiedenen Ausführungsformen wird der Zugriff durch einen oder mehrere Typen von Softwareprozessen auf eine Supervisand-P-Einheit wie etwa die P-Einheit 4603 - wobei ein solcher Zugriff zum Zweck des Konfigurierens und/oder Bestimmens der Leistungsverwaltung eines oder mehrerer gegebener Prozessorkerne dient - indirekt (zum Beispiel nur indirekt) über die P-Einheit 4602 und deren Schnittstelle 4654 bereitgestellt.
  • In einigen Ausführungsformen führen Kommunikationen über die Schnittstelle 4654 dazu, dass die P-Einheit 4602 einen oder mehrere Betriebsparameter einstellt, die jeweils für verschiedene Ressourcen eines jeweiligen Prozessors gelten sollen. In einem veranschaulichenden Szenario gemäß einer Ausführungsform bestimmt ein Hersteller während der Herstellung und des Testens der Package-Einrichtung 4600 jeweilige Basistaktfrequenzwerte für einen oder mehrere Prozessoren (z.B. einschließlich Prozessoren 4640, 4670). Ein Basistaktfrequenzwert ist die höchste zertifizierte Taktgeschwindigkeit, mit der ein Prozessor mit einer vorbestimmten Arbeitslast (z.B. einer schwersten Arbeitslast) laufen kann. Eine Arbeitslast einer Aufgabe, die auf einem solchen Prozessor läuft, wird zum Beispiel mit Bezug auf die Anzahl von Taktzyklen gemessen, die zum Durchführen der Aufgabe verwendet werden. Eine Obergrenze von Befehlen, die pro Taktzyklus ausgeführt werden können, wird basierend auf vielen Faktoren bestimmt, einschließlich zum Beispiel der Wärme, die durch die Ausführung dieser Befehle erzeugt wird. In einigen Ausführungsformen speichern jeweilige Steuerregister 4644, 4674 der Prozessoren 4640, 4670 - als Prozessorbasistaktfrequenz- (BCF-) Register bezeichnet - jeweils einen jeweiligen Basistaktfrequenzwert, der auf den entsprechenden Prozessor anzuwenden ist. In einer solchen Ausführungsform modifiziert die P-Einheit 4602, oder bestimmt anderweitig, einen Frequenzwert des BCF-Registers 4674 (und zum Beispiel einen Frequenzwert des BCF-Registers 4644) basierend auf einer Eingabe, die über die Schnittstelle 4654 empfangen wird.
  • In einigen Ausführungsformen führen Kommunikationen über die Schnittstelle 4654 dazu, dass die P-Einheit 4602 der P-Einheit 4603 signalisiert, einen oder mehrere Betriebsparameter einzustellen, die jeweils für einen jeweiligen der Kerne 4672 spezifisch sind. Alternativ oder zusätzlich führen solche Kommunikationen dazu, dass die P-Einheit 4602 eine oder mehrere Konfigurationseinstellungen einstellt, die jeweils für einen jeweiligen der Kerne 4642) spezifisch sind. Zum Beispiel entsprechen die Verarbeitungskerne 4642 jeweils einem anderen jeweiligen der Steuerregister 4646, die jeweilige Basistaktfrequenzwerte speichern, die jeweils für den entsprechenden der Kerne 4642 spezifisch sind. Des Weiteren entsprechen die Verarbeitungskerne 4672 jeweils einem anderen jeweiligen der Steuerregister 4676, die jeweilige Basistaktfrequenzwerte speichern, die jeweils für den entsprechenden der Kerne 4672 spezifisch sind. In einer solchen Ausführungsform führen Kommunikationen über die Schnittstelle 4654 dazu, dass die P-Einheit 4602 auf eines oder mehrere der Steuerregister 4646 zugreift und/oder (über die P-Einheit 4603) auf eines oder mehrere der Steuerregister 4676 zugreift. In verschiedenen Ausführungsformen unterstützen ein oder mehrere Kerne jeweils eine gewisse autonome Kernfunktionalität, wodurch ein gegebener Kern in der Lage ist, die Anwendung eines oder mehrerer Betriebsparameter (zum Beispiel eine oder mehrere Frequenzschwellen) autonom auszusetzen, abzuschwächen oder anderweitig zu modifizieren, die eine P-Einheit konfiguriert hat - z.B. basierend auf einer CLOS oder einer Kerngruppe, zu der der Kern gehört -, um anderweitig den Betrieb dieses Kerns zu bestimmen.
  • Alternativ oder zusätzlich stellt der Prozessor 4640 eine Affinitätsmaske 4648 (z.B. jeweils an seinem Steuerregister) bereit, um anzugeben, welche Verarbeitungskerne 4642 aktiv sind, wobei z.B. eine andere Affinitätsmaske 4648 des Prozessors 4640 gleichermaßen angibt, welche Verarbeitungskerne 4672 aktiv sind. In einem Ausführungsbeispiel ist eine oder jede der Affinitätsmasken 4648, 4678 eine Bitmap, wobei jedes Bit einen Aktivitätsstatus für einen entsprechenden Verarbeitungskern speichert. Wenn zum Beispiel ein Bit auf einen aktiven Status gesetzt wird (z.B. „1“), soll der entsprechende Verarbeitungskern gemäß dem dem Verarbeitungskern zugehörigen Basistaktfrequenzwert laufen. Wenn das Bit auf einen inaktiven Status gesetzt wird (z.B. „0“), steht der entsprechende Verarbeitungskern für Softwareanwendungen nicht zur Verfügung oder ist im Leerlauf. In einer solchen Ausführungsform führen Kommunikationen über die Schnittstelle 4654 dazu, dass die P-Einheit 4602 bestimmt, welche der Prozessorkerne 4642, 4672 aktiv (oder inaktiv) sein sollen. Basierend auf einer solchen Bestimmung setzt die P-Einheit 4602 ein oder mehrere Bits in der Affinitätsmaske 4648 und/oder signalisiert die P-Einheit 4603, ein oder mehrere Bits in der Affinitätsmaske 4678 zu setzen. Es versteht sich, dass andere Verfahren von der P-Einheit verwendet werden könnten, um eine Kernauswahl, z.B. in Abhängigkeit von einem speziell implementierten OS, zu ermöglichen.
  • Beim Ermöglichen des Zugriffs auf eine oder mehrere Supervisand-P-Einheiten über die Schnittstelle 4654 der Supervisor-P-Einheit 4602 erweitern einige Ausführungsformen Funktionalität - wie etwa die des Performanzprofil- (SST-PP-) Merkmals in der Intel® Speed Select Technologie -, wodurch verschiedene Performanzprofile jeweils als einem oder mehreren anderen jeweiligen Kernen eines gegebenen Prozessors entsprechend identifiziert werden. Einige Ausführungsformen ermöglichen zum Beispiel einem Softwarebenutzer (oder einem anderen Agenten), eine Eingabe über die Schnittstelle 4654 bereitzustellen, um - für einen IC-Die außer dem IC-Die 4601_1 - einen oder mehrere Betriebsparameter eines gegebenen Performanzprofils und/oder eine Entsprechung eines oder mehrerer jeweiliger Kerne dieses IC-Die mit diesem Performanzprofil zu bestimmen. Ein Performanzprofil identifiziert zum Beispiel eine thermische Sollleistung (TDP), eine Basisfrequenz, eine Turbofrequenz und/oder einen beliebigen von verschiedenen anderen Betriebsparametern, um den Betrieb jedes oder des einen oder der mehreren entsprechenden Kerne zu bestimmen.
  • Alternativ oder zusätzlich erweitern die Ausführungsformen die Funktionalität - wie etwa die des SST-CP- (core power) Merkmals in der Intel® Speed Select Technologie -, wodurch Kerne eines gegebenen Prozessors relativ zueinander unterschiedlich priorisiert werden, um eine Zuteilung eines Leistungsbudgets zwischen den Kernen zu bestimmen. Einige Ausführungsformen ermöglichen zum Beispiel, dass ein Agent eine Eingabe über die Schnittstelle 4654 bereitstellt, um eine relative Priorisierung der Kerne 4672 (oder anderer solcher Kerne eines IC-Die außer dem IC-Die 4601_1) zu bestimmen.
  • Alternativ oder zusätzlich erweitern diese Ausführungsformen die Funktionalität - wie etwa die des Grundfrequenz- (SST-BF-, base frequency) Merkmals in der Intel® Speed Select Technologie -, wodurch die Grundfrequenz eines oder mehrerer Kerne eines Prozessors im Austausch mit einer niedrigeren Grundfrequenz anderer Kerne dieses Prozessors zu erhöhen ist. Einige Ausführungsformen ermöglichen zum Beispiel, dass die P-Einheit 4602 die P-Einheit 4603 - basierend auf Kommunikationen über die Schnittstelle 4654 - steuert, um eine erhöhte Basisfrequenz für einige der Kerne 4676 (oder Kerne eines anderen IC-Die außer dem IC-Die 4601_1) im Austausch mit einer verringerten Basisfrequenz für andere der Kerne 4676 zu ermöglichen.
  • Alternativ oder zusätzlich erweitern diese Ausführungsformen die Funktionalität - wie etwa die des Turbofrequenz- (SST-TF-, turbo frequency) Merkmals in der Intel® Speed Select Technologie -, wodurch jeweilige Turbofrequenzen eines oder mehrerer Kerne eines Prozessors im Austausch gegen niedrigere jeweilige Turbofrequenzen anderer Kerne dieses Prozessors erhöht werden. Einige Ausführungsformen ermöglichen zum Beispiel, dass die P-Einheit 4602 die P-Einheit 4603 - basierend auf Kommunikationen über die Schnittstelle 4654 - steuert, um eine erhöhte Turbofrequenz für einige der Kerne 4676 (oder Kerne eines anderen IC-Die außer dem IC-Die 4601_1) im Austausch mit einer verringerten Turbofrequenz für andere der Kerne 4676 zu ermöglichen.
  • 47 zeigt Operationen des Verfahrens 4700 zum Ermöglichen einer Leistungsverwaltung eines Mehrchip-Package, das eine HPM-Architektur bereitstellt, gemäß einer Ausführungsform. Das Verfahren 4700 ist ein Beispiel für eine Ausführungsform, bei der Operationen durch eine Supervisor-P-Einheit einer HPM-Architektur eine Schnittstelle implementieren, wodurch einem Softwareprozess Zugriff auf eine Supervisand-P-Einheit der HPM-Architektur bereitgestellt wird. Die Schnittstelle ermöglicht, dass Leistungsverwaltungsmerkmale, wie etwa jene der Intel® Speed Select Technology, zur Verwendung durch Software in einem HPM-Kontext erweitert werden. In einem Ausführungsbeispiel wird das Verfahren 4700 mit dem System 4600 durchgeführt.
  • Wie in 47 gezeigt, umfasst das Verfahren 4700 (bei 4710) Ausführen eines Leistungsverwaltungsprozesses mit einem ersten Prozessor eines ersten IC-Die, wobei z.B. der Prozessor 4640 des IC-Die 4601 1 das Ausführen bei 4710 durchführt. In einer Ausführungsform beinhaltet ein Multi-Die-Package den ersten IC-Die (der den ersten Prozessor und eine erste P-Einheit umfasst) sowie einen zweiten IC-Die, der einen zweiten Prozessor und eine zweite P-Einheit umfasst. Die erste P-Einheit und die zweite P-Einheit - die gekoppelt sind, um miteinander zu kommunizieren - sind dazu ausgelegt, zum Beispiel als eine Supervisor-P-Einheit bzw. eine Supervisand-P-Einheit einer Architektur für hierarchische Leistungsverwaltung zu arbeiten. In verschiedenen anderen Ausführungsformen lässt das Verfahren 4700 das Ausführen bei 4710 weg (wird aber zum Beispiel in Kombination mit diesem durchgeführt).
  • Das Verfahren 4700 umfasst ferner (bei 4712), dass eine erste P-Einheit des ersten IC-Die eine Schnittstelle - z.B. Schnittstelle 4654 - bereitstellt, um mit dem Leistungsverwaltungsprozess zu kommunizieren. In verschiedenen Ausführungsformen soll zum Beispiel jeder Zugriff auf die zweite P-Einheit durch den Leistungsverwaltungsprozess über die erste P-Einheit (und die Schnittstelle, die sie bereitstellt) erfolgen. Das Verfahren 4700 umfasst ferner (bei 4714) Kommunizieren, von der ersten P-Einheit zu der zweiten P-Einheit, einer Nachricht, die auf einer Eingabe basiert, die von dem Leistungsverwaltungsprozess über die Schnittstelle empfangen wird. In einer Ausführungsform gibt die Nachricht eine Konfiguration eines oder mehrerer Kerne des zweiten Prozessors an.
  • Das Verfahren 4700 umfasst ferner (bei 4716), dass die zweite P-Einheit einen oder mehrere Betriebsparameter des zweiten Prozessors basierend auf der Nachricht modifiziert. Zur Veranschaulichung und nichteinschränkend umfassen der eine oder die mehreren Betriebsparameter einen Basisfrequenzparameter, einen Turbofrequenzparameter und/oder einen anderen solchen Konfigurationszustand. In verschiedenen Ausführungsformen identifiziert die bei 4714 kommunizierte Nachricht eine Zugehörigkeit des einen oder der mehreren Kerne zu einer Kerngruppe von mehreren Kerngruppen, wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter bei 4716 basierend auf der Zugehörigkeit modifiziert. Zusätzlich oder alternativ identifiziert die bei 4714 kommunizierte Nachricht eine Gewichtung einer Kerngruppe relativ zu einer oder mehreren anderen Kerngruppen, wobei z.B. die zweite P-Einheit den einen oder die mehreren Betriebsparameter bei 4716 basierend auf der Gewichtung modifiziert. In verschiedenen Ausführungsformen gibt die Nachricht der zweiten P-Einheit ein Leistungsbudget an, das auf mehrere Kerne des zweiten Prozessors verteilt werden soll, wobei das Modifizieren bei 4716 eine solche Verteilung ermöglicht.
  • 48 zeigt ein Sequenzdiagramm 4800, das verschiedene Kommunikationen mit einer HPM-Architektur und Systemsoftware veranschaulicht, um Betriebsparameter einer Multi-Die-Package-Einrichtung zu bestimmen, gemäß einer Ausführungsform. Kommunikationen, wie etwa jene, die in Sequenzdiagramm 4800 gezeigt sind, werden zum Beispiel mit dem System 4600 durchgeführt. Alternativ oder zusätzlich beinhaltet das Verfahren 4700 einige oder alle solchen Kommunikationen oder basiert anderweitig auf diesen.
  • Wie in 48 gezeigt, umfasst eine HPM-Architektur eines Multi-Die-Package eine Supervisor-P-Einheit 4802 und zwei Supervisand-P-Einheiten 4803_1, 4803 2 (die verschiedentlich durch die Supervisor-P-Einheit 4802 gesteuert werden) jeweils an einem anderen jeweiligen IC-Die. Ein Betriebssystem OS 4820 - das z.B. durch einen Prozessor ausgeführt wird, der die Überwachungs-P-Einheit 4802 beinhaltet - unterstützt die Ausführung einer Leistungsverwaltungsanwendung 4824, mit der ein Benutzer eine Leistungsverwaltungskonfiguration für das Multi-Die-Package auswählen oder anderweitig anfordern soll. Ein HPM-Treiber 4822 (der zum Beispiel als Teil eines Boot-Prozesses des OS 4820 geladen wird) erleichtert den Zugriff auf eine Schnittstelle - z.B. Schnittstelle 4654 -, die in einigen Ausführungsformen mit Firmware der Supervisor-P-Einheit 4802 versehen ist.
  • In einem veranschaulichenden Szenario gemäß einer Ausführungsform tauschen der HPM-Treiber 4822 und die Supervisor-P-Einheit 4802 Nachrichten 4830, 4832 aus, wodurch der HPM-Treiber 4822 eine HPM-Funktionalität auffindet, die durch die Supervisor-P-Einheit 4802 unterstützt wird. Zum Beispiel kommuniziert der HPM-Treiber 4822 mit einer Schnittstelle der Supervisor-P-Einheit 4802, die in einigen Ausführungsformen Merkmale der Schnittstelle 4654 aufweist.
  • Anschließend tauschen die Leistungsverwaltungsanwendung 4824 und der HPM-Treiber 4822 Nachrichten 4834, 4846 aus, wodurch die Leistungsverwaltungsanwendung 4824 die HPM-Funktionalitat auffindet, die durch die Überwachungs-P-Einheit 4802 gegenüber dem HPM-Treiber 4822 identifiziert wird. In einigen Ausführungsformen identifiziert die Nachricht 4832 (oder andere derartige Kommunikationen von der Supervisor-P-Einheit 4802) einen aktuellen Konfigurationszustand eines oder mehrerer Prozessoren, die durch die HPM-Architektur verwaltet werden, wobei z.B. die Leistungsverwaltungsanwendung 4824 ferner den aktuellen Konfigurationszustand basierend auf Nachricht 4836 und/oder anderen Kommunikationen mit dem HPM-Treiber 4822 bestimmt. Zur Veranschaulichung und nichteinschränkend umfasst der Konfigurationszustand für einen oder mehrere gegebene Prozessorkerne jeweils eine Basisfrequenz und/oder eine Turbofrequenz und/oder eine Zugehörigkeit des einen oder der mehreren Kerne zu einer gegebenen Kerngruppe und/oder eine relative Gewichtung (z.B. Priorität) einer solchen Kerngruppe mit Bezug auf eine oder mehrere andere Kerngruppen und/oder eine thermische Sollleistung (TDP) und/oder ein beliebiges von verschiedenen Schwellenfrequenzniveaus und/oder ein beliebiges von verschiedenen Schwellenleistungsverbrauchsniveaus und/oder dergleichen. In verschiedenen Ausführungsformen ist der aktuelle Konfigurationszustand derjenige eines oder mehrerer Prozessoren, die sich jeweils an einem anderen jeweiligen IC-Die des Multi-Die-Package befinden, wobei z.B. ein solcher Prozessor eine Supervisand-P-Einheit der HPM-Architektur beinhaltet.
  • Zu einem späteren Zeitpunkt während der Ausführung des OS 4820 sendet die Leistungsverwaltungsanwendung 4824 eine Nachricht 4838 an den HPM-Treiber 4822, die eine Änderung des aktuellen Konfigurationszustands des einen oder der mehreren Prozessoren anfordert. In Reaktion darauf sendet der HPM-Treiber 4822 eine Nachricht 4840 an die Supervisor-P-Einheit 4802, die die Änderungsanforderung in der Supervisor-P-Einheit 4802 weiterleitet. Basierend auf der Nachricht 4840 führt die Supervisor-P-Einheit 4802 Operationen 4846 durch, um die Änderung des Konfigurationszustands zu ermöglichen. Zur Veranschaulichung und nichteinschränkend umfassen die Operationen 4846, dass die Supervisor-P-Einheit 4802 einen oder mehrere Kerne des Prozessors konfiguriert, der die Supervisor-P-Einheit 4802 beinhaltet. Alternativ oder zusätzlich umfassen die Operationen, 4846, dass die Supervisor-P-Einheit 4802 eine beliebige von verschiedenen Berechnungen und/oder anderen Prozessen durchführt, um eine Konfiguration eines anderen Prozessors an einem anderen IC-Die zu bestimmen.
  • In einigen Ausführungsformen sendet der HPM-Treiber 4822 ferner eine Nachricht 4842 basierend auf der Nachricht 4838, um dem OS 4820 anzugeben, dass erwartet wird, dass ein oder mehrere Prozessorkerne offline sind (z.B. einschließlich eines Kerns eines Prozessors, der auch eine der Supervisand-P-Einheiten 4803_1, 4803_2 umfasst). In einer solchen Ausführungsform führt das OS 4820 Operationen 4844 in Reaktion auf die Nachricht 4842 aus, um einen Ausführungsprozess für den einen oder die mehreren Kerne, die offline sind, auszusetzen oder anderweitig vorzubereiten.
  • In einem Ausführungsbeispiel führen die Operationen 4846 dazu, dass die Supervisor-P-Einheit 4802 für eine oder jede der Supervisand-P-Einheit 4803_1 und der Supervisand-P-Einheit 4803 2 eine jeweilige Konfiguration identifiziert, die durch die Supervisand-P-Einheit durchzuführen ist. Zur Veranschaulichung und nichteinschränkend sendet die Supervisor-P-Einheit 4802 an die Supervisand-P-Einheit 4803_1 eine Nachricht 4848, die eine erste Konfiguration spezifiziert oder anderweitig angibt, die für einen oder mehrere Kerne des Prozessors bereitzustellen ist, der die Supervisand-P-Einheit 4803_1 beinhaltet. Alternativ oder zusätzlich sendet die Supervisor-P-Einheit 4802 eine Nachricht 4850 an die Supervisand-P-Einheit 4803_2, die eine zweite Konfiguration spezifiziert oder anderweitig angibt, die für einen oder mehrere Kerne des Prozessors bereitzustellen ist, der die Supervisand-P-Einheit 4803 2 beinhaltet. Basierend auf Nachricht 4848 führt die Supervisand-P-Einheit 4803_1 Operationen 4852 durch, um die erste Konfiguration bereitzustellen, wobei z.B. die Supervisand-P-Einheit 4803 2 andere Operationen 4854 basierend auf Nachricht 4850 durchführt, um die zweite Konfiguration bereitzustellen.
  • Anschließend senden die Supervisand-P-Einheiten 4803_1, 48032 jeweilige Nachrichten 4856, 4858, die der Supervisor-P-Einheit 4802 angeben, dass die erste und die zweite Konfiguration abgeschlossen wurden. In einer solchen Ausführungsform sendet die Supervisor-P-Einheit 4802 eine Nachricht 4860 - z.B. basierend auf einer oder beiden der Nachrichten 4856, 4858 -, um das OS 4820 zu benachrichtigen, dass ein oder mehrere Kerne, die zuvor offline waren, wieder verfügbar sind (oder voraussichtlich verfügbar sein werden). In Reaktion auf die Nachricht 4860 führt das OS 4820 Operationen 4862 durch, die eine Wiederaufnahme der Ausführung einer oder mehrerer Softwareoperationen mit dem einen oder den mehreren zuvor offline gewesenen Kernen vorbereiten.
  • 49A veranschaulicht ein Verfahren 4900 zum Bestimmen einer Basistaktfrequenz über eine HPM-Architektur gemäß einer Ausführungsform der vorliegenden Offenbarung. Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 4900 unter Bezugnahme auf Operationen beschrieben, die mit Funktionalität der Package-Einrichtung 4600 durchgeführt werden. Das Verfahren 4900 wird jedoch in verschiedenen Ausführungsformen mit beliebigen einer Vielfalt von zusätzlichen oder alternativen HPM-Ressourcen durchgeführt.
  • Bei der in 49A gezeigten veranschaulichenden Ausführungsform umfasst das Verfahren 4900 einen Boot-Prozess der Package-Einrichtung 4600 (bei 4910) oder basiert alternativ auf diesem. Eine Steuerung (z.B. P-Einheit 4602) des Prozessors 4640 liest die Sequenz von Anweisungen, die in dem BIOS-Chipsatz gespeichert sind, um verschiedene Einrichtungen einzurichten, die der Package-Einrichtung 4600 zugeordnet sind. In einigen Ausführungsformen präsentiert der Boot-Prozess auch den Status des Boot-Prozesses auf einer Anzeigeeinrichtung. In Reaktion auf das Ausführen von Anweisungen zum Einrichten von Prozessoren der Package-Einrichtung 4600 (z.B. einschließlich der Prozessoren 4640, 4670) umfasst das Verfahren 4900, dass der Boot-Prozess eine Liste von Nutzungsszenarien für den Benutzer zum Auswählen auf der Anzeigeeinrichtung anzeigt (bei 4912). In einigen Ausführungsformen basiert das Präsentieren der Liste von Nutzungsszenarien auf Kommunikationen zwischen dem Boot-Prozess und der P-Einheit 4602 über die Schnittstelle 4654, wobei z.B. solche Kommunikationen Informationen bereitstellen sollen, die die P-Einheit 4602 von der P-Einheit 4603 und/oder einer oder mehreren anderen Supervisand-P-Einheiten der Package-Einrichtung 4600 empfängt. Jedes Nutzungsszenario spezifiziert einen Satz von Parametern für einen oder mehrere entsprechende Prozessorkerne. Zur Veranschaulichung und nichteinschränkend beinhaltet ein solcher Satz von Parametern eine Zielanzahl von zu verwendenden Verarbeitungskernen, eine eine thermische Ziel-Sollleistung (TDP), eine Zielarbeitslast (z.B. als ein Prozentsatz der TDP), eine Zielzuverlässigkeitsmessung und/oder dergleichen. Bei diversen Ausführungsformen beinhaltet die Liste von Nutzungsszenarien Szenarien für Prozessoren, die sich an unterschiedlichen jeweiligen IC-Dies der Package-Einrichtung 4600 befinden. Alternativ oder zusätzlich beinhaltet die Liste von Nutzungsszenarien ein Nutzungsszenario für einen Satz von Verarbeitungskernen, der Kerne unterschiedlicher jeweiliger Prozessoren (an unterschiedlichen jeweiligen IC-Dies) beinhaltet.
  • Der Benutzer wählt aus der Liste von Nutzungsszenarien ein Nutzungsszenario aus, das mit seinem Bedarf übereinstimmt. Bei 4914 empfangen die System-Boot-Anweisungen die Auswahl und bestimmen bei 4916 ferner, ob das ausgewählte Nutzungsszenario ein Standardnutzungsszenario ist, wobei z.B. das Standardnutzungsszenario das eine dieser Szenarien ist, das durch einen Hersteller getestet wird und dem der auf dem Prozessor ausgewiesene Basistaktfrequenzwert zugewiesen ist. In Reaktion auf das Bestimmen, dass das ausgewählte Nutzungsszenario das Standardnutzungsszenario ist, fährt der Boot-Prozess bei 4930 mit anderen Anweisungen fort, um Einrichtungen außer den Prozessoren der Package-Einrichtung 4600 (z.B. einschließlich der Prozessoren 4640, 4670) einzurichten, während der eine oder die mehreren Prozessoren jeweils mit einer jeweiligen Standardbasistaktfrequenz laufen sollen. Anschließend wird die Steuerung an die Systemsoftware 4690 transferiert, nachdem der Boot-Prozess abgeschlossen ist.
  • In Reaktion auf das Bestimmen, dass das ausgewählte Nutzungsszenario nicht das Standardnutzungsszenario ist, fährt der Boot-Prozess bei 4918 mit dem Ausführen von Anweisungen fort, um für jeden von einem oder mehreren Kernen - z.B. einschließlich eines der Kerne 4672 (und zum Beispiel eines der Kerne 4642) - eine jeweilige Zielbasistaktfrequenz basierend auf dem ausgewählten Nutzungsszenario zu bestimmen. Die Liste von Nutzungsszenarien wird beispielsweise bei der Fertigung des Prozessors als zusätzliche Nutzungsszenarien angelegt und eine entsprechende Basistaktfrequenz bestimmt. Die Steuerung (z.B. P-Einheit 4602, die pCode 4652 ausführt) bestimmt den einen oder die mehreren Zielbasistaktfrequenzwerte für das ausgewählte Verwendungsszenario. In einer Ausführungsform ist dies als eine Umwandlungstabelle implementiert, die Abbildungen von Benutzungsszenarien auf Zielbasistaktfrequenzwerte beinhaltet. Zum Beispiel enthält die Tabelle eine Liste mit Zählungen aktiver Kerne und einen entsprechenden Basisfrequenzwert. In Abhängigkeit von der ausgewählten Anzahl der Zählung aktiver Kerne wird der entsprechende Basisfrequenzwert verwendet. Ein bestimmter Zielbasistaktfrequenzwert wird einem oder mehreren gegebenen Prozessoren zugeordnet, z.B. einschließlich des Prozessors 4670 (somit für alle Verarbeitungskerne 4672 des Prozessors 4670). In einer solchen Ausführungsform wird der bestimmte Zielbasistaktfrequenzwert auch weniger als allen Verarbeitungskernen eines gegebenen Prozessors zugeordnet. Bei 4920 fährt der Boot-Prozess mit dem Ausführen von Anweisungen fort, um eine Basistaktfrequenzanfrage an die Supervisor-P-Einheit 4602 zu übertragen. Die Basistaktfrequenzanfrage beinhaltet den Zielbasistaktfrequenzwert und optional die Anzahl von Verarbeitungskernen, die dem Zielbasistaktfrequenzwert zugeordnet sind.
  • Bei 4922 erhält die P-Einheit 4602 über die Schnittstelle 4654 die Basistaktfrequenzanfrage aus der Ausführung von Anweisungen, die in der BIOS-Schaltungsanordnung 4630 gespeichert sind. Bei 4924 aktualisiert die P-Einheit 4602 auf den Zielbasistaktfrequenzwert einen Basistaktfrequenzwert, der in einer Supervisand-P-Einheit verwendet wird (zum Beispiel durch einen oder mehrere andere Algorithmen in pCode 4682), wobei z.B. die P-Einheit 4602 eine entsprechende Basistaktfrequenznachricht an die P-Einheit 4603 kommuniziert. In einigen Ausführungsformen aktualisiert die P-Einheit 4602 zusätzlich oder alternativ einen Basistaktfrequenzwert, der in einem oder mehreren Algorithmen im pCode 4652 verwendet wird, auf denselben oder einen anderen Zielbasistaktfrequenzwert in der empfangenen Anfrage.
  • Zum Beispiel passen ein oder mehrere solcher pCode-Algorithmen eine Prozessorarbeitslast an, um eine Verletzung einer entsprechenden TDP und/oder einer anderen Performanzbeschränkung zu verhindern. Eine solche Arbeitslast wird zum Beispiel durch Auslagern der Aufgabe an eine andere Verarbeitungseinrichtung oder durch Reduzieren der Basistaktfrequenzwerte eines oder mehrerer Verarbeitungskerne angepasst. In verschiedenen Ausführungsformen signalisiert die P-Einheit 4602 der P-Einheit 4603, Basistaktfrequenzwerte für den Prozessor 4670 und/oder einen oder mehrere der Verarbeitungskerne 4672 einzurichten, wobei z.B. die P-Einheit 4602 ferner Basistaktfrequenzwerte für den Prozessor 4640 und/oder einen oder mehrere Verarbeitungskerne 4642 einrichtet.
  • In einer Ausführungsform legt die Supervisor-P-Einheit 4602 bei 4926 einen oder mehrere solche Zielbasisfrequenzwerte auf der Schnittstelle 4654 frei, wobei z.B. ein CPUID- (oder ähnlicher) Befehl einen oder mehrere Basistaktfrequenzwerte jeweils für einen jeweiligen Prozessor freilegt und/oder ein oder mehrere modellspezifische Register (MSRs) jeweils eines jeweiligen Kerns freilegt. Die Freilegung der Zielbasistaktfrequenz kann erreicht werden, indem einige oder alle Register 4644, 4646, 4648, 4674, 4676, 4678 für die Systemsoftware 4690 sichtbar gemacht werden. Dadurch kann die Systemsoftware 4690 die Zielbasisfrequenzwerte abfragen. Falls die P-Einheit 4602 eine Basistaktfrequenzanfrage empfängt, die einen Zielbasistaktfrequenzwert für den Prozessor 4670 (d.h. alle Verarbeitungskerne 4672) beinhaltet, signalisiert die P-Einheit 4602 der P-Einheit 4603, den Zielbasistaktfrequenzwert in dem Steuerregister 4674 zu speichern. Der Prozessor 4670 (und alle Verarbeitungskerne 4672) läuft gemäß dem Zielbasistaktfrequenzwert, wobei der Zielbasistaktfrequenzwert höher als der ausgewiesene Wert sein kann. Falls die P-Einheit 4602 die Basistaktfrequenzanfrage einschließlich eines Satzes (z.B. weniger als alle) von Verarbeitungskernen 4672 und ihrer entsprechenden Zielbasistaktfrequenzwerte empfängt, signalisiert die P-Einheit 4602 der P-Einheit 4603, diese Zielbasistaktfrequenzwerte in entsprechenden Steuerregistern 4676 zu speichern. Die P-Einheit 4602 setzt auch den Aktivitätsstatus (z.B. entsprechende Bits in der Affinitätsmaske), der dem Satz von Verarbeitungskernen 4672 zugeordnet ist, auf den aktiven Status, so dass sie mit den Zielbasistaktfrequenzwerten laufen können. Diese Zielbasistaktfrequenzwerte können sich von dem ausgewiesenen Wert unterscheiden (z.B. höher sein). Alternativ oder zusätzlich, falls die P-Einheit 4602 gleichermaßen auf einige oder alle Register 4644, 4646, 4648 zugreift, um Operationen der Kerne 4642 und/oder einer anderen Schaltungsanordnung des Prozessors 4640 zu bestimmen.
  • Bei 4928 stellt die P-Einheit 4602 optional andere Hardwarekomponenten, die basierend auf einer ausgewählten Basistaktfrequenz laufen, ein. Zum Beispiel stellt die P-Einheit 4602 einen Zeitstempelzähler (TSC) ein, um mit dem Zielbasistaktfrequenzwert zu laufen. In Reaktion auf das Einstellen aller Hardwarekomponenten, mit der Zielbasistaktfrequenz zu laufen, fährt der Boot-Prozess bei 4930 mit anderen Anweisungen fort, um andere Einrichtungen als die Prozessoren 4640, 4670 einzurichten. In einer anderen Ausführungsform ermöglicht die Systemsoftware 4690 zudem eine Darstellung von Nutzungsszenarien für den Benutzer, um diese auszuwählen. Basierend auf der Benutzerauswahl überträgt die Systemsoftware 4690 über die Schnittstelle 4654 eine Basistaktfrequenzanfrage an die P-Einheit 4602, um eine Änderung eines oder mehrerer jeweiliger Basistaktfrequenzwerte für einen oder mehrere Prozessoren - z.B. einschließlich eines oder beider der Prozessoren 4640, 4670 - und/oder für einen oder mehrere Verarbeitungskerne (wie etwa einige oder alle der Kerne 4642, 4672) anzufordern. Die P-Einheit 4602 stellt gleichermaßen den Prozessor 4640 ein und/oder signalisiert der P-Einheit 4603, den Prozessor 4670 einzustellen, um mit einer jeweiligen zielbasierten Taktfrequenz zu laufen.
  • 49B veranschaulicht ein Verfahren 4950 zum Ändern der Basistaktfrequenz basierend auf Nutzungsszenarien gemäß einer anderen Ausführungsform der vorliegenden Offenbarung. Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 4950 unter Bezugnahme auf Operationen beschrieben, die mit Funktionalität der Package-Einrichtung 4600 durchgeführt werden. Das Verfahren 4950 wird jedoch in verschiedenen Ausführungsformen mit beliebigen einer Vielfalt von zusätzlichen oder alternativen HPM-Ressourcen durchgeführt.
  • Wie in 49B gezeigt, wird bei 4960 eine tatsächliche oder erwartete/erforderliche Änderung an einem detektierten Nutzungsszenario - z.B. aufgrund einer Änderung in der Softwareumgebung - detektiert. Bei 4962 bestimmt die Systemsoftware 4690 in Reaktion auf das Detektieren der Nutzungsszenarioänderung (z.B. Änderung von einem ersten Nutzungsszenario zu einem zweiten Nutzungsszenario) ein neues Nutzungsszenario für einen oder mehrere Prozessoren, einschließlich (zum Beispiel) Prozessor 4670 oder irgendeines anderen Prozessors, der eine Supervisand-P-Einheit der HPM-Architektur umfasst. In einer solchen Ausführungsform spezifiziert das neue Verwendungsszenario eine Zielanzahl von Verarbeitungskernen in einem oder mehreren gegebenen Prozessoren, die verwendet werden sollen, eine thermische Zielsollleistung, eine Zielarbeitslast (z.B. als ein Prozentsatz der TDP), eine Zielzuverlässigkeitsmessung und/oder dergleichen. Bei 4964 stellt die Systemsoftware 4690, die auf dem Prozessor 4640 läuft, das neue Verwendungsszenario über die Schnittstelle 4654 an die P-Einheit 4602 bereit, um z.B. eine Aktualisierung eines Basistaktfrequenzwerts für den Prozessor 4670 und/oder einen oder mehrere Verarbeitungskerne 4672 anzufordern (und in manchen Ausführungsformen eine Aktualisierung eines Basistaktfrequenzwerts für den Prozessor 4640 und/oder einen oder mehrere Verarbeitungskerne 4642 anzufordern).
  • Bei 4966 empfängt die Supervisor-P-Einheit 4602 das neue Verwendungsszenario und berechnet in einigen Ausführungsformen einen Zielbasistaktfrequenzwert und optional eine Anzahl von Verarbeitungskernen, die mit dem Zielbasistaktfrequenzwert arbeiten sollen. In einer alternativen Ausführungsform signalisiert die Supervisor-P-Einheit 4602 der P-Einheit 4603, den Zielbasistaktfrequenzwert und/oder die Anzahl von Kernen zu berechnen, die mit dem Zielbasistaktfrequenzwert arbeiten sollen. Ähnlich dem Bootprozess signalisiert die P-Einheit 4602 bei 4968 der P-Einheit 4603, Parameter, die dem dem pCode 4682 zugeordnet sind, zu aktualisieren, um einen Zielbasistaktfrequenzwert wiederzugeben. Somit überwacht pCode 4682 den Prozessor 4670 basierend auf dem Zielbasistaktfrequenzwert. In einigen Ausführungsformen aktualisiert die P-Einheit 4602 ferner Parameter, die dem pCode 4652 zugeordnet sind, um denselben oder einen anderen Zielbasistaktfrequenzwert wiederzugeben.
  • Bei 4970 speichert die P-Einheit 4603 einen oder mehrere Taktfrequenzwerte in dem BCF-Register 4674 und/oder den Steuerregistern 4676, die denen der Zielverarbeitungskerne 4672 zugeordnet sind, die (pro Affinitätsmaske 4678) aktiv sein sollen. Ein solches Speichern ermöglicht es dem Prozessor 4670 und/oder einem oder mehreren Verarbeitungskernen 4672, jeweils bei einem jeweiligen Zielbasistaktfrequenzwert unter dem neuen Verwendungsszenario zu laufen. In Reaktion darauf, dass der Prozessor 4670 vorbereitet wird, mit dem Zielbasistaktfrequenzwert zu laufen, signalisiert die P-Einheit 4603 der P-Einheit 4602, die Systemsoftware 4690 über die Schnittstelle 4654 über die Basistaktfrequenzwertaktualisierung zu benachrichtigen. In einer Ausführungsform sendet die P-Einheit 4602 die Benachrichtigung durch Auslösen eines Interrupt-Ereignisses, das durch die Systemsoftware 4690 eingefangen werden kann.
  • Bei 4972 empfängt (z.B. durch Detektieren des Interrupt-Ereignisses) die Systemsoftware 4690, die auf dem Prozessor 4640 ausgeführt wird, die Benachrichtigung über eine Aktualisierung des Basistaktfrequenzwerts. Die Benachrichtigung beinhaltet zum Beispiel den Zielbasistaktfrequenzwert, bei dem der Prozessor 4670 (oder ein Satz von Verarbeitungskernen 4672) laufen soll. Auf diese Weise ändert die Package-Einrichtung 4600 ihren Basistaktfrequenzwert basierend auf dem Nutzungsszenario dynamisch.
  • 50 veranschaulicht ein Verfahren 5000 zum Anpassen der Basistaktfrequenzwerte, um ein Zieldienstniveau zu erfüllen, gemäß einer Ausführungsform der vorliegenden Offenbarung. Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 5000 unter Bezugnahme auf Operationen beschrieben, die mit Funktionalität der Package-Einrichtung 4600 durchgeführt werden. Das Verfahren 5000 wird jedoch in verschiedenen Ausführungsformen mit beliebigen einer Vielfalt von zusätzlichen oder alternativen HPM-Ressourcen durchgeführt.
  • Wie in 50 gezeigt, empfängt die Systemsoftware 4690, die auf dem Prozessor 4640 ausgeführt wird, bei 5010 von einem Benutzer eine Anfrage, die eine Zieldienststufe spezifiziert, unter der ein Satz aus einem oder mehreren Softwareobjekten laufen soll. Die Zieldienststufe beinhaltet zum Beispiel die Zeit, die benötigt wird, um eine spezifische Aufgabe zu erfüllen. Somit wird in einem veranschaulichenden Szenario die Zieldienststufe durch Verwenden unterschiedlicher Kombinationen von Verarbeitungskernen, die bei unterschiedlichen Basistaktfrequenzwerten laufen, erfüllt. Bei 5012 erzeugt die Systemsoftware 4690 den Satz von Softwareobjekten (z.B. VMs oder Container) und speichert die Zieldienststufe in einer Dienststufen-Datenstruktur. Bei 5014 bestimmt die Systemsoftware 4690 über die Schnittstelle 4654, welche verfügbaren Verarbeitungskerne (bei ihren aktuellen Basistaktfrequenzwerten) die in der Dienststufen-Datenstruktur gespeicherte Zieldienststufe unterstützen können.
  • In Reaktion auf Kommunikationen mit der Systemsoftware 4690 über die Schnittstelle 4654 kommuniziert die P-Einheit 4602 zum Beispiel mit der P-Einheit 4603 (und in einigen Ausführungsformen einer oder mehreren anderen Supervisand-P-Einheiten der Package-Einrichtung 4600), um die Verfügbarkeit jeweiliger Verarbeitungsressourcen an einem oder mehreren IC-Dies außer dem IC-Die 4640 zu bestimmen. Basierend auf den Kommunikationen mit einer oder mehreren Supervisand-P-Einheiten stellt die P-Einheit 4602 eine Ausgabe über die Schnittstelle 4654 bereit, um der Systemsoftware 4690 eine Verfügbarkeit von Kernen und zum Beispiel ein verfügbares Leistungsbudget der Kerne zu identifizieren (z.B. wobei das verfügbare Leistungsbudget der Systemsoftware 4690 als ein verfügbares Frequenzbudget repräsentiert wird).
  • Bei 5016 bestimmt die Systemsoftware 4690 ferner basierend auf einer solchen Kommunikation mit der P-Einheit 4602, ob ausreichend Verarbeitungskerne verfügbar sind, um die Zieldienststufe zu unterstützen. In Reaktion auf das Bestimmen, dass es genügend Verarbeitungskerne gibt, um die vom Benutzer angeforderte Zieldienststufe zu unterstützen, signalisiert die Systemsoftware 4690 bei 5018 der P-Einheit 4602 über die API, zu veranlassen, dass die P-Einheit 4602 diese unterstützten Verarbeitungskerne so einrichtet, dass sie mit ihren aktuellen Basistaktfrequenzwerten laufen. Bei 5020 führt die Systemsoftware 4690 ferner Anweisungen aus, um die Affinitätsmaske einzurichten, um Dienste, die dem Benutzer bereitgestellt werden sollen, auf jene zu beschränken, die mit einem oder mehreren der verfügbaren und fähigen Verarbeitungskerne bereitgestellt werden, die bei 5014 und 5016 identifiziert wurden. Bei 5022 setzt die Systemsoftware 4690 Softwareobjekte auf dem Prozessor 4640 ein, die auf den identifizierten Verarbeitungskernen gemäß der Affinitätsmaske laufen.
  • In Reaktion auf das Bestimmen, dass es nicht genug Verarbeitungskerne gibt, um die vom Benutzer angeforderte Zieldienststufe zu unterstützen, weist die Systemsoftware 4690 bei 5024 die P-Einheit 4602 an, eine oder mehrere Basistaktfrequenzen für die verfügbaren Verarbeitungskerne jeweils auf einen jeweiligen Zielbasistaktfrequenzwert zu erhöhen, wodurch die vom Benutzer angeforderte Zieldienststufe erfüllt wird. In einer solchen Ausführungsform signalisiert die P-Einheit 4602 der P-Einheit 4603 (und/oder einer oder mehreren anderen Supervisand-P-Einheiten), einige oder alle der einen oder mehreren Basistaktfrequenzen unterschiedlich zu erhöhen. Bei 5026 bestimmt die P-Einheit 4602 - z.B. basierend auf Kommunikationen mit einer oder mehreren Supervisand-P-Einheiten, wie etwa der P-Einheit 4603 -, ob Hardwareänderungsoptionen zum Erfüllen der Zieldienststufe erschöpft sind. In einer Ausführungsform basiert die Bestimmung auf einem Überschreiten einer Schwellenanzahl von Malen, die ein Basistaktfrequenzwert erhöht wurde. Alternativ oder zusätzlich basiert die Bestimmung auf einem Überschreiten einer Obergrenze eines Basistaktfrequenzwerts. Falls die P-Einheit 4602 bestimmt, dass Hardwareänderungsoptionen nicht erschöpft sind, signalisiert die P-Einheit 4602 der Systemsoftware 4690 (z.B. durch Senden eines Interrupt-Ereignisses über die Schnittstelle 4654), welchen der verfügbaren Verarbeitungskerne (bei ihren vorgeschlagenen Basistaktfrequenzwerten) ausreichen, damit das eine oder die mehreren Softwareobjekte Aufgaben auf der Zieldienststufe ausführen können. Falls die P-Einheit 4602 bestimmt, dass Hardwareänderungsoptionen erschöpft sind, benachrichtigt die P-Einheit 4602 bei 5028 die Systemsoftware 4690 (z.B. durch Senden eines Interrupt-Ereignisses über die Schnittstelle 4654), den Einsatz von Softwareobjekten, die durch den Benutzer angefordert werden, abzulehnen oder alternativ die Softwareobjekte gegenüber anderen Systemen offline zu nehmen.
  • 51 ist ein Blockdiagramm eines Verfahrens 5100 zum Einstellen des Basistaktfrequenzwerts basierend auf einer Zieldienststufe gemäß einer Ausführungsform der vorliegenden Offenbarung. Das Verfahren 5100 wird durch Verarbeitungslogik durchgeführt, die Hardware (z.B. Schaltungsanordnung, dedizierte Logik, programmierbare Logik, Mikrocode usw.), Software (wie etwa Anweisungen, die auf einer Verarbeitungseinrichtung, einem Allzweckcomputersystem oder einer dedizierten Maschine ausgeführt werden), Firmware oder eine Kombination davon beinhaltet. Zur Vereinfachung der Erklärung ist das Verfahren 5100 als eine Reihe von Handlungen dargestellt und beschrieben. Handlungen gemäß dieser Offenbarung können jedoch in verschiedenen Reihenfolgen und/oder gleichzeitig und mit anderen Handlungen auftreten, die vorliegend nicht dargestellt und beschrieben sind. Des Weiteren werden nicht alle veranschaulichten Handlungen durchgeführt, um das Verfahren 5100 gemäß dem offenbarten Gegenstand zu implementieren. Außerdem versteht ein Fachmann, dass das Verfahren 5100 alternativ als eine Reihe von miteinander in Beziehung stehenden Zuständen über ein Zustandsdiagramm oder Ereignisse repräsentiert werden könnte.
  • Um bestimmte Merkmale verschiedener Ausführungsformen zu veranschaulichen, wird das Verfahren 5100 unter Bezugnahme auf Operationen beschrieben, die mit Funktionalität der Package-Einrichtung 4600 durchgeführt werden. Zum Beispiel empfängt die Supervisor-P-Einheit 4602 des Prozessors 4640 bei 5110 über die Schnittstelle 4654 eine Spezifikation von der Systemsoftware 4690, wobei die Spezifikation eine Zieldienststufe umfasst, die einem Softwareobjekt zugeordnet ist. Die Zieldienststufe umfasst einen ersten Basistaktfrequenzwert, der einem oder mehreren der Kerne 4672 des Prozessors 4670 zugeordnet ist.
  • Bei 5112 bestimmt die P-Einheit 4602 - z.B. basierend auf Kommunikationen mit der P-Einheit 4603 -, ob eine Verfügbarkeit von Verarbeitungskernen der Package-Einrichtung 4600 (einschließlich eines oder mehrerer der Kerne 4672) ausreicht, um die Zieldienststufe zu unterstützen.
  • Bei 5114 überträgt die P-Einheit 4602 in Reaktion auf das Bestimmen, dass die Verarbeitungseinrichtung unzureichend ist, eine Anfrage an die P-Einheit 4603, um zu bewirken, dass einer oder mehrere der Kerne 4672 mit einem zweiten Basistaktfrequenzwert laufen, der höher als der erste Basistaktfrequenzwert ist.
  • 52A, 52B zeigen Flussdiagramme 5200, 5250, die ein Verfahren veranschaulichen, das Frequenz an mehrere Rechenelemente verteilt, gemäß einer Ausführungsform der Erfindung. Das in den Diagrammen 5200, 5250 gezeigte Verfahren ist ein Beispiel für eine Ausführungsform, die zum Beispiel mit Funktionalität der Package-Einrichtung 4600 versehen ist, wobei z.B. das Verfahren das Verfahren 4700 beinhaltet oder anderweitig darauf basiert.
  • In der folgenden Beschreibung der Flussdiagramme 5200, 5250 sind die folgenden Ausdrücke definiert:
    • N - die Gesamtanzahl an Elementen, über die Leistung verteilt wird.
    • i - eines der Elemente 1 bis N
    • fi - Die Mindestfrequenz, die für Element i verwendet wird, wenn eine Mindestleistungsstufe eingehalten werden muss.
    • Fi - Die maximal gewünschte Frequenz für Element i. Das heißt, eine beliebige höhere Frequenz, die Performanz für Element i jenseits der gewünschten Performanzstufe erreicht. Abschneiden bei dieser Frequenz ermöglicht es, dass andere Elemente mit höherer Priorität die zusätzliche verfügbare Leistung nutzen.
    • wi- Gewichtung. Ein einheitenloses Maß für die relative Priorität des Rechenelements i. Im Allgemeinen geben höhere Gewichtungen eine höhere Priorität an.
    • Wmax - Die maximale Gewichtung, der ein Rechenelement zugewiesen ist.
    • Nw - Die Anzahl der Rechenelemente mit einer bestimmten Gewichtung w.
    • Bucket - ein konzeptioneller Begriff, der eine Gruppe aller Elemente angibt, denen die gleiche Gewichtung w zugewiesen wurde.
    • bw - Das kombinierte Frequenzbudget, das allen Rechenelementen mit der Gewichtung w gewährt wird. Da Leistungsverbrauch und Wärmeerzeugung die letztendlichen relevanten Ressourcen sind und beide proportional zur Frequenz sind, wird der Begriff „Frequenzbudget“ auf die gleiche Weise wie „Leistungsbudget“ oder „Energiebudget“ in anderen Beschreibungen verwendet.
    • B - das gesamte Frequenzbudget, das allen Rechenelementen, die in allen Buckets kombiniert sind, gewährt wird.
    • Aw - Die ‚gesamte Frequenzreserve‘ der Gewichtung w Das heißt, die kollektive Frequenz, die alle Elemente in einem Bucket möglicherweise über die mindestens angeforderte Frequenz jedes Elements in diesem Bucket hinaus nutzen können, bevor sie aufgrund der maximalen Frequenz Fw jedes Elements abgeschnitten werden. Mit anderen Worten ist Aw gleich der Summe von (Fii) für alle Elemente in diesem Bucket. Möglicherweise ist nicht diese gesamte Reserve nutzbar. Sie ist durch das diesem Bucket zur Verfügung stehende Budget bw begrenzt.
    • Pi - Die Performanz (Frequenz) des Rechenelements i, das gemäß dem Algorithmus ausgegeben wird.
  • Im Flussdiagramm 5200 bestimmt eine Supervisor-P-Einheit einer Package-Einrichtung bei 5210 das Gesamtleistungsbudget für Prozessoren der Package-Einrichtung. In einigen Ausführungsformen wird dies als ein Frequenzbudget ausgedrückt, wobei z.B. Leistungseinsparvorgänge auf einem Steuern von Kernfrequenzen basieren. Bei 5212 werden zumindest einige Verarbeitungsressourcen der Package-Einrichtung in N Elemente unterteilt, wobei jedes Element eine unabhängig zuweisbare Betriebsfrequenz aufweisen wird. In einigen Ausführungsformen ist jedes Element ein Verarbeitungskern, jedoch können sich andere Ausführungsformen hiervon unterscheiden. Zur Veranschaulichung und nichteinschränkend ist N die Anzahl von Kernen eines gegebenen Prozessors eines IC-Die, wobei z.B. der Prozessor eine Supervisand-P-Einheit beinhaltet. In einer alternativen Ausführungsform ist N eine Anzahl von Prozessoren unterschiedlicher jeweiliger IC-Dies. Für die Zwecke dieser Erörterung wird jedes Element und die anderen Parameter, die mit diesem Element assoziiert sind, mit der Kennung i angegeben, wobei die Werte für i im Bereich von 1 bis N liegen. In einer solchen Ausführungsform beinhaltet mindestens eines der N Elemente einen oder mehrere Kerne eines Prozessors, der ferner eine Supervisand-P-Einheit umfasst, wobei eine Verteilung von Frequenzen unter den N Elementen auf Kommunikationen durch eine Supervisor-P-Einheit über eine Schnittstelle mit einem Softwareprozess basiert.
  • Zum Beispiel werden bei 5214 Fi und ƒi für jedes Element i bestimmt. Bei 5216 wird jedem Element i eine relative Gewichtung wi zugewiesen. Zum Beispiel bestimmt die P-Einheit 4602 unter erneuter Bezugnahme auf das Ausführungsbeispiel der Package-Einrichtung 4600 eine oder mehrere der relativen Gewichtungen wi basierend auf Kommunikationen über die Schnittstelle 4654 mit der Systemsoftware 4690 (oder alternativ mit einem BIOS-Prozess). Gewichtung ist ein Maß für Priorität oder Wichtigkeit und mehrere Elemente weisen zum Beispiel die gleiche Gewichtung auf. In einigen Ausführungsformen geben Gewichtungen mit einem höheren Wert eine höhere Priorität für die entsprechenden Elemente an, während Gewichtungen mit einem niedrigeren Wert eine niedrigere Priorität für die entsprechenden Elemente angeben. In einigen Ausführungsformen sind die Werte, die den verschiedenen Gewichtungen zugewiesen sind, proportional zu ihren relativen Prioritäten (nicht nur nach Rang geordnet). In anderen Ausführungsformen spielt die Proportionalität keine Rolle. Obwohl an einer bestimmten Stelle im Fluss gezeigt, erfolgt die Zuweisung von Gewichtungen zu Elementen in anderen Ausführungsformen früher als gezeigt. In 52A, 52B sind die Werte von Gewichtungen wi und Frequenzen ƒi und Fi alle an bestimmten Punkten im Fluss gezeigt. In einigen Ausführungsformen werden diese Werte jedoch zu anderen Zeiten neu definiert.
  • Bei 5218 wird bestimmt, ob das Gesamtfrequenzbudget B ausreicht, um das minimale angeforderte Budget ƒi für jedes Element i der N Verarbeitungselemente der Package-Einrichtung bereitzustellen. Falls hierfür unzureichende Leistung vorhanden ist, wird der Mangel an verfügbarer Frequenz bei 5220 auf verschiedene Weisen verteilt. In einigen Ausführungsformen wird zum Beispiel der Frequenzmangel proportional zu der Minimalfrequenzanforderung jedes Elements verteilt. In anderen Ausführungsformen werden manche Elemente vollständig abgeschaltet und ihre vorgesehene Frequenz den übrigen Elementen zur Verfügung gestellt. Auch andere Methoden kommen zum Einsatz. In jedem Fall zeigt Operation 5220 an, dass einige oder alle der Elemente ihre angeforderte Mindestfrequenz f nicht erhalten werden. In einem veranschaulichenden Szenario gemäß einer Ausführungsform identifiziert die P-Einheit 4602 zum Beispiel lokal eine Verteilung einer oder mehrerer Frequenzen jeweils zu einem jeweiligen der Kerne 4672. In einer alternativen Ausführungsform kommuniziert die P-Einheit 4602 über das Fabric 4607, um der P-Einheit 4603 ein Frequenzbudget für mehrere Kerne des Prozessors 4670 anzugeben, wobei z.B. die P-Einheit 4603 basierend auf dem angegebenen Frequenzbudget einen oder mehrere Frequenzparameter berechnet, die jeweils auf einen jeweiligen der Kerne 4672 anzuwenden sind.
  • Falls B ausreicht, um die mindestens angeforderte Fi für alle N Elemente der Package-Einrichtung zu erfüllen, bestimmt die Supervisor-P-Einheit (oder eine Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) bei 5222, ob B ausreicht, um die maximal angeforderte Fi für alle Elemente in der Package-Einrichtung zu erfüllen. Falls B diese Menge erfüllt oder überschreitet, wird jedem der N Elemente bei 5224 seine Fi zugewiesen, und jede verbleibende Frequenz für alle Elemente kombiniert bleibt ungenutzt. Falls B jedoch ausreicht, um die Gesamtheit aller ƒi zu liefern, während es nicht ausreicht, um die Gesamtheit aller Fi zu liefern, dann geht der Fluss zu 5260 über, um zu bestimmen, wie das verfügbare Frequenzbudget unter den verschiedenen Elementen zu verteilen ist.
  • Fortfahrend mit dem Flussdiagramm 5250 bei 5260 in 52B sortiert die Supervisor-P-Einheit (oder eine Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) die verschiedenen Elemente nach den Gewichtungen, die ihnen bei 5216 zugewiesen wurden, und gruppiert diese (virtuelle ‚Eimer‘ oder Buckets), wobei jedes Element in einem Bucket die gleiche Gewichtung aufweist. Zu Diskussionszwecken wird jeder Bucket als „Bucket w“ bezeichnet, der einen Bucket mit Elementen angibt, die alle eine Gewichtung w aufweisen. Nach dem Gruppieren der Elemente in Buckets bei 5260 fährt der Fluss bei 5262 fort, indem w = Wmax gesetzt wird, was effektiv den Bucket auswählt, der die Elemente mit der höchsten Priorität enthält.
  • Innerhalb dieses Bucket wird bei 5264 die Gesamtreserve für alle Elemente in dem Bucket bestimmt. In einigen Ausführungsformen wird dies durch Subtrahieren von ƒi von Fi für jedes Element in dem Bucket und Summieren der Ergebnisse für alle Elemente in diesem Bucket bestimmt. Diese Summe repräsentiert die gesamte Reserve für diesen Bucket, d.h. die maximale Menge an Frequenz, die allen Elementen in diesem Bucket allein basierend auf Fi und ƒi zugewiesen wird. Das Budget bw ist jedoch kleiner als dieser Maximalbetrag und begrenzt daher diese Zuteilung der Frequenz. Daher ist bei 5266 die Frequenz, die den Elementen dieses Bucket zugewiesen ist, die kleinere von 1) dem Budget bw, das diesem Bucket zugewiesen ist, und 2) der Gesamtreserve für diesen Bucket. Das Budget bw, das diesem Bucket zugewiesen wird, wird auf verschiedene Weisen bestimmt, wie etwa unter anderem Skalieren des gesamten verfügbaren Budgets B durch die relative Gewichtung von Bucket w zu dem Gewicht aller Buckets i < w (beispielsweise bw = [B * nw * w]/(Summe (ni * i)). In einigen Ausführungsformen wird die Verteilung der Frequenz unter den Elementen in diesem Bucket anteilig verteilt, und zwar basierend auf den verschiedenen Parametern, wie etwa, ohne jedoch hierauf eingeschränkt zu sein: 1) die relativen Werte von ƒi, 2) die relativen Werte von Fi oder 3) die relative Reserve für jedes Element.
  • Sobald das zugewiesene Budget bei 5266 auf die Elemente in diesem Bucket verteilt wurde, wird bei 5268 das verbleibende Gesamtbudget B für die N Elemente bestimmt. In einigen Ausführungsformen wird dies durch Subtrahieren des soeben zugeteilten Budgets von dem vorherigen Budget bestimmt. Falls bei 5270 alle Buckets verarbeitet wurden, wie in den Operationen 5264-5268 beschrieben, endet der Prozess bei 5272. Falls dies nicht der Fall ist, wird der Bucket mit der nächstniedrigeren Priorität bei 5274 ausgewählt und der Fluss kehrt zu 5264 zurück, um das Frequenzbudget innerhalb dieses Bucket zu verteilen. Dies wird fortgesetzt, bis alle Buckets verarbeitet worden sind oder bis das gesamte Frequenzbudget zugeteilt wurde.
  • 53 veranschaulicht Operationen eines Verfahrens 5300 zum unterschiedlichen Reservieren von Leistung für jeweilige Gruppen von Prozessorkernen gemäß einer Ausführungsform. Das Verfahren 5300 veranschaulicht eine Ausführungsform, bei der Leistung einem Gruppenkern basierend auf Kommunikation zwischen einem Softwareprozess und einer Supervisor-P-Einheit einer HPM-Architektur reserviert wird. Das Verfahren 5300 wird zum Beispiel mit Funktionalität der Package-Einrichtung 4600 durchgeführt, wobei z.B. das Verfahren 5300 das Verfahren 4700 beinhaltet oder anderweitig darauf basiert.
  • Wie in 53 gezeigt, erfolgt bei 5310 eine Package-Einrichtungsmerkmalskonfiguration. Konfigurieren der Package-Einrichtung beinhaltet unterschiedliches Zuteilen von Kernen jeweils zu einer jeweiligen Kerngruppe zum Zweck der Leistungsbudgetzuteilung (z.B. durch Frequenzabstimmung). In einer solchen Ausführungsform beinhaltet mindestens eine Kerngruppe einen oder mehrere Kerne eines Prozessors (wie etwa Prozessor 4670), der ferner eine Supervisand-P-Einheit der HPM-Architektur umfasst. Die Zuordnung des einen oder der mehreren Kerne zu der Kerngruppe basiert (zum Beispiel) auf einer Kommunikation über eine Schnittstelle, wie etwa Schnittstelle 4654, zwischen einer Supervisor-P-Einheit der HPM-Architektur und einem OS oder einem anderen Softwareprozess, der (zum Beispiel) an einem Prozessor ausgeführt wird, der die Supervisor-P-Einheit beinhaltet. Alternativ oder zusätzlich basiert das Zuteilungsleistungsbudget (z.B. einschließlich der Zuteilung einer oder mehrerer Frequenzen) zu der Kerngruppe auf der gleichen oder anderen Kommunikationen mit der Schnittstelle der Supervisor-P-Einheit.
  • In einer Ausführungsform beinhaltet die Package-Einrichtung mehrere IC-Dies, die jeweils einen jeweiligen Prozessor und (zum Beispiel) eine oder mehrere jeweilige andere Ressourcen - wie etwa eine E/A-Schaltungsanordnung, eine Beschleunigerschaltungsanordnung (z.B. Entschlüsselung, Verschlüsselung, TCP-Segmentierungs-Offload usw.) usw. - beinhalten, die leistungs- oder frequenzgesteuert sein können. Die Package-Einrichtung ist zum Beispiel vorbereitet, Tags zu empfangen, die jeweils eine Priorität eines jeweiligen Prozesses (z.B. die einer Funktion als Dienst (function as a service) oder eines 5G-Netzwerk-Slice) identifizieren, so dass die Package-Einrichtung den Prozess der Kerngruppe mit der geeigneten Priorität zuweisen kann. In einer solchen Ausführungsform werden die Tags über die Schnittstelle 4654 (oder eine andere solche Schnittstelle einer Supervisor-P-Einheit) empfangen.
  • Bei 5312 wird eine Menge garantierter Leistung für Kerne in einer Kerngruppe basierend auf Priorität reserviert, wobei z.B. das Reservieren bei 5312 mit der Supervisor-P-Einheit (und/oder einer Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) durchgeführt wird. In einem Ausführungsbeispiel wird Kernen einer Kerngruppe ein Betriebsfrequenzband von minimaler Frequenz in Abhängigkeit von einer Prioritätsstufe der Kerngruppe zugewiesen. Die garantierte Leistung ist zum Beispiel eine Mindestleistungsstufe oder eine Mindestfrequenzstufe. In einem Ausführungsbeispiel wird einer Kerngruppe, die als höchste Priorität identifiziert wird, um Prozesse mit kritischer oder höchster Priorität auszuführen, eine höchste Basis- (Mindest-) Frequenz zugewiesen. Einer Kerngruppe, die als nächsthöhere Priorität identifiziert wird, wird dann eine gleiche oder eine niedrigere Basisfrequenz (Minimum) zugewiesen usw. Dementsprechend wird eine Kerngruppe mit höchster Priorität zugeteilt, um zum Beispiel kritische Komponenten durchzuführen, wohingegen eine Kerngruppe mit niedrigerer Priorität zugeteilt werden kann, um weniger kritische Prozesse mit niedrigerer Priorität durchzuführen.
  • Bei 5314 wird eine Burst-Leistungsstufe für eine Kerngruppe basierend auf der Prioritätsstufe reserviert, wobei z.B. das Reservieren bei 5314 mit der Supervisor-P-Einheit (und/oder einer Supervis-P-Einheit unter Steuerung der Supervisor-P-Einheit) durchgeführt wird. Zum Beispiel wird die Burst-Leistungsstufe für eine gegebene Kerngruppe durch Konfigurieren einer Spitzentaktfrequenz konfiguriert, die durch diese Kerngruppe angewendet wird. In einigen Ausführungsformen wird die Burst-Leistungsstufe basierend auf der Prioritätsstufe der Kerngruppe zugeteilt. Zum Beispiel wird einer Kerngruppe, die als höchste Priorität identifiziert wird, die höchste Burst-Leistungsstufe (z.B. Frequenzstufe) gewährt. Gleichermaßen wird einer Kerngruppe, die als nächsthöhere Priorität identifiziert wird, die nächsthöhere Burst-Leistungsstufe (z.B. Frequenz) gewährt.
  • Bei 5316 wird während der Laufzeit von Prozessen auf der Kerngruppe geprüft, dass eine ausgewählte Frequenz nicht dazu führt, dass eine TDP eines gegebenen Prozessors erreicht oder überschritten wird. Falls eine ausgewählte Frequenz für eine Kerngruppe bewirkt, dass die TDP erfüllt oder überschritten wird, wird die Frequenz für die Kerngruppe - z.B. durch die Supervisor-P-Einheit (und/oder eine Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) - basierend auf der Gruppenpriorität reduziert, bis die TDP nicht mehr erfüllt oder überschritten wird. Beispielsweise können RAPL- (laufender Durchschnitt der Leistungsgrenze) Zählerwerte verwendet werden, um zu schätzen, ob die TDP erfüllt wird oder nicht.
  • 54A, 54B zeigen Flussdiagramme 5400, 5450 von veranschaulichenden Operationen eines Verfahrens zum Konfigurieren von Betriebsfrequenzen eines Multi-Die-Package basierend auf Kommunikation zwischen einem Softwareprozess und einer Supervisor-P-Einheit einer HPM-Architektur gemäß einer Ausführungsform. Das durch die Flussdiagramme 5400, 5450 veranschaulichte Verfahren wird zum Beispiel mit Funktionalität der Package-Einrichtung 4600 durchgeführt, wobei z.B. das Verfahren das Verfahren 4700 beinhaltet (oder anderweitig basiert). Alternativ oder zusätzlich wird das Verfahren in einigen Ausführungsformen mit einer Supervisor-P-Einheit (oder einer Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) des Multi-Die-Package durchgeführt.
  • In einer Ausführungsform ermöglicht das durch 54A, 54B dargestellte Verfahren Frequenzabstimmung, Frequenzsuchen und/oder Leistungszuweisung zu Ressourcen zur Laufzeit, wobei z.B. einige oder alle derartigen Operationen auf relativen Prioritäten von Ressourcen basieren und zum Beispiel einer minimal erforderlichen Systemagenten- (Nichtkern-) Performanz unterliegen. Frequenzsuche versucht, eine Betriebsfrequenz auf das maximale Niveau für eine Gruppe oder einen oder mehrere Kerne zu erhöhen, während z.B. sichergestellt wird, dass TDP (oder irgendeine andere Einschränkung) nicht erfüllt oder überschritten wird, während Überbelegung eines oder mehrerer Prozessoren vermieden wird, während vermieden wird, dass ein Systemagent die Frequenz drosseln muss, und/oder dergleichen.
  • In einigen Ausführungsformen basiert das Verfahren auf oder beinhaltet alternativ eine Initialisierung, die (zum Beispiel) Definieren einer Gruppe von Kernen in einer Prioritätsgruppe, Einstellen einer Zielfrequenz für eine Gruppe höchster Priorität, Einstellen eines Frequenzziels für eine Standardprioritätsgruppe, Einstellen eines Frequenzziels (z.B. untere Grenze) für einen Systemagenten und/oder dergleichen umfasst. In einer solchen Ausführungsform beinhaltet oder basiert anderweitig die Initialisierung auf einer Kommunikation, über eine Schnittstelle wie etwa die Schnittstelle 4654, zwischen einer Supervisor-P-Einheit der HPM-Architektur und einem OS oder einem anderen Softwareprozess, der (zum Beispiel) an einem Prozessor ausgeführt wird, der die Supervisor-P-Einheit beinhaltet. Basierend auf einer solchen Kommunikation wird zum Beispiel eine gegebene Kerngruppe als einen oder mehrere Kerne eines Prozessors enthaltend definiert, der ferner eine Supervisand-P-Einheit der HPM-Architektur umfasst. Alternativ oder zusätzlich bestimmen solche Kommunikationen eine Priorität der gegebenen Kerngruppe relativ zu einer oder mehreren anderen Kerngruppen.
  • Bei 5410 werden eine oder mehrere Prioritätsstufen für Kerne und Systemagenten verschieden eingestellt, wobei z.B. die Supervisor-P-Einheit (oder eine Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit) eine Priorität für Kerne eines Prozessors einstellt, der eine Supervisand-P-Einheit der HPM-Architektur beinhaltet. In einem veranschaulichenden Szenario gemäß einer Ausführungsform wird einem Systemagenten eines IC-Die eine Priorität 1 (zum Beispiel eine oberste Priorität) gegeben, wobei z.B. einer ersten Gruppe von einem oder mehreren Kernen des IC-Die eine Priorität 2 gegeben wird und einer zweiten Gruppe von einem oder mehreren anderen Kernen des IC-Die eine Priorität 3 gegeben wird. Bei 5412 wird ein stationärer Zustand für die Package-Einrichtung eingestellt, wobei z.B. 5412 5414 und/oder 5416 beinhaltet. Bei 5414 wird eine minimale und maximale Systemagentenfrequenz aus einer Konfigurationsdatei gelesen. Die Initialisierungsoperation spezifiziert zum Beispiel Parameter in der Konfigurationsdatei. Bei 5416 werden jeweilige Basisfrequenzen von Kerngruppen verschiedener Prioritätsstufen gelesen.
  • Fortfahrend zu 5460 (54B) wird bestimmt - z.B. durch die Supervisor-P-Einheit oder alternativ durch eine Supervisand-P-Einheit unter Steuerung der Supervisor-P-Einheit - ob eine Systemagentenfrequenz eines gegebenen IC-Die (z.B. einer, der die Supervisand-P-Einheit beinhaltet) bei oder über einer Zielfrequenz für den Systemagenten liegt. In einer Ausführungsform ist die Zielfrequenz eine untere Grenzfrequenz für den Systemagenten und wird (zum Beispiel) gegenüber der Supervisor-P-Einheit bei der Initialisierung spezifiziert. Falls die Systemagentenfrequenz bei oder über einer Zielfrequenz für den Systemagenten liegt, folgt 5462. Liegt die Systemagentenfrequenz unterhalb einer Zielfrequenz für den Systemagenten, folgt 5468.
  • Bei 5462 wird eine Frequenz für eine Kerngruppe (z.B. einschließlich eines oder mehrerer der Kerne 4672) gelesen. Bei 5464 wird bestimmt, ob die Frequenz der Kerngruppe eine Zielmaximalfrequenz erfüllt. Erfüllt die Frequenz der Kerngruppe eine Zielmaximalfrequenz, so folgt 5460. Erfüllt die Frequenz der Kerngruppe eine Zielfrequenz nicht, so folgt 5466.
  • Bei 5466 wird eine Frequenz der Kerngruppe in der Frequenz erhöht, z.B. abhängig davon, dass die Frequenz eine Zielmaximalfrequenz nicht überschreitet. Zum Beispiel wird die Frequenz um ein Schrittintervall irgendeines vorbestimmten Werts (z.B. 100 MHz) erhöht. Auf die Aktion 5466 folgt Aktion 5460. In einigen Beispielen wird die Frequenz in einen „Turbo“-Frequenzbereich oder eine „Turbo“-Spanne erhöht, der bzw. die für eine Kerngruppe verfügbar ist. Beispielsweise steht ein Turbofrequenzbereich unter Verwendung von Intel® Turbo Boost Technology zur Verfügung.
  • Wenn eine Betriebsfrequenz eines Systemagenten unter einer Zielfrequenz liegt, wird bei 5468 bestimmt, ob die aktuelle Frequenz für die Kerngruppe höher als eine Basisfrequenz ist. Die Basisfrequenz ist eine Mindestfrequenz der Kerngruppe. Ist die aktuelle Frequenz für die Kerngruppe höher als eine Basisfrequenz, so folgt 5470. Falls die aktuelle Frequenz für die Gruppe von einem oder mehreren Kernen bei oder unter einer Basisfrequenz liegt, dann folgt 5460.
  • Bei 5470 wird die Kerngruppenfrequenz verringert und die Systemagentenfrequenz erhöht. Der Betrag der Zunahme oder Abnahme beträgt zum Beispiel 100 MHz oder einen beliebigen anderen geeigneten Schrittfrequenzbetrag. In einigen Beispielen wird die Systemagentenfrequenz auf ein maximales (Ziel-) Niveau eingestellt. In einigen Beispielen versuchen 5468 und 5470, die Frequenz von Kerngruppen mit niedrigerer Priorität zu reduzieren, um die Frequenz des Systemagenten zu erhöhen, bevor versucht wird, eine Frequenz einer Kerngruppe mit höherer Priorität zu reduzieren.
  • 55 veranschaulicht eine intelligente Einrichtung oder ein Computersystem oder ein SoC (System-on-Chip, Ein-Chip-System) mit HPM gemäß einigen Ausführungsformen. In einigen Ausführungsformen stellt die Vorrichtung 5500 eine geeignete Rechenvorrichtung, wie ein Rechen-Tablet, ein Mobiltelefon oder Smartphone, einen Laptop, einen Desktop, eine Internet-der Dinge-Vorrichtung (IdD-Vorrichtung), einen Server, eine am Körper tragbare Vorrichtung, eine Set-Top-Box, einen drahtlosfähigen e-Reader oder dergleichen, dar. Es versteht sich, dass gewisse Komponenten allgemein gezeigt sind, und nicht alle Komponenten einer derartigen Vorrichtung sind in der Vorrichtung 5500 gezeigt.
  • In einem Beispiel umfasst die Vorrichtung 5500 ein SoC (System-on-Chip) 5501. Eine beispielhafte Grenze des SoC 5501 ist unter Verwendung gestrichelter Linien in 55 veranschaulicht, wobei einige beispielhafte Komponenten als in dem SoC 5501 enthalten veranschaulicht sind - jedoch kann das SoC 5501 beliebige geeignete Komponenten der Einrichtung 5500 einschließen.
  • In einigen Ausführungsformen schließt die Vorrichtung 5500 einen Prozessor 5504 ein. Der Prozessor 5504 kann eine oder mehrere physische Vorrichtungen, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrocontroller, programmierbare Logikvorrichtungen, Verarbeitungskerne oder andere Verarbeitungsmittel, beinhalten. Die durch den Prozessor 5504 durchgeführten Verarbeitungsoperationen beinhalten die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf der bzw. dem Anwendungen und/oder Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsoperationen beinhalten Operationen im Zusammenhang mit E/A (Eingabe/Ausgabe) mit einem menschlichen Benutzer oder mit anderen Einrichtungen, Operationen im Zusammenhang mit Leistungsverwaltung, Operationen im Zusammenhang mit dem Verbinden der Recheneinrichtung 5500 mit einer anderen Einrichtung und/oder dergleichen. Die Verarbeitungsoperationen können auch Operationen in Bezug auf Audio-E/A und/oder Anzeige-E/A einschließen.
  • In einigen Ausführungsformen schließt der Prozessor 5504 mehrere Prozessorkerne (auch als Kerne bezeichnet) 5508a, 5508b, 5508c ein. Wenngleich lediglich drei Kerne 5508a, 5508b, 5508c in 55 veranschaulicht sind, kann der Prozessor 5504 eine beliebige andere geeignete Anzahl von Verarbeitungskernen, z. B. dutzende oder sogar hunderte von Verarbeitungskernen, einschließen. Die Prozessorkerne 5508a, 5508b, 5508c können auf einem einzelnen Chip mit integrierter Schaltung (IC-Chip) implementiert sein. Darüber hinaus kann der Chip einen oder mehrere geteilte und/oder private Caches, Busse oder Verschaltungen, Grafik- und/oder Speichersteuerungen oder andere Komponenten einschließen.
  • In einigen Ausführungsformen schließt der Prozessor 5504 einen Cache 5506 ein. In einem Beispiel können Abschnitte des Cache 5506 für einzelne Kerne 5508 vorgesehen sein (z. B. kann ein erster Abschnitt des Cache 5506 für den Kern 5508a vorgesehen sein, ein zweiter Abschnitt des Cache 5506 für den Kern 5508b vorgesehen sein und so weiter). In einem Beispiel können ein oder mehrere Abschnitte des Cache 5506 unter zwei oder mehr Kernen 5508 geteilt werden. Der Cache 5506 kann in verschiedene Level, z. B. Level 1-Cache (L1-Cache), Level 2-Cache (L2-Cache), Level 3-Cache (L3-Cache) usw., geteilt sein.
  • In einigen 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 einschließen. Die Anweisungen können von beliebigen Speicherungsvorrichtungen, wie dem Speicher 5530, abgerufen werden. Der Prozessorkern 5504 kann auch eine Decodiereinheit zum Decodieren der abgerufenen Anweisung einschließen. Zum Beispiel kann die Decodiereinheit die abgerufene Anweisung in eine Vielzahl von Mikrooperationen decodieren. Der Prozessorkern 5504 kann eine Planungseinheit zum Durchführen verschiedener dem Speichern decodierter Anweisungen zugeordneter Operationen einschließen. Zum Beispiel kann die Planungseinheit Daten von der Decodiereinheit halten, bis die Anweisungen zum Übermitteln bereit sind, z. B. bis alle Quellwerte einer decodierten Anweisung verfügbar werden. In einer Ausführungsform kann die Planungseinheit decodierte Anweisungen planen und/oder diese an eine 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 (wie eine Bildgebungsberechnungseinheit, eine Grafikberechnungseinheit, eine Universalberechnungseinheit usw.) einschließen. Die Ausführungseinheit kann auch verschiedene arithmetische Operationen, wie Addition, Subtraktion, Multiplikation und/oder Division, durchführen und kann eine oder mehrere ///eine arithmetische Logikeinheiten (ALUs) einschließen. In einer Ausführungsform kann ein Co-Prozessor (nicht gezeigt) verschiedene arithmetische Operationen in Verbindung mit der Ausführungseinheit durchführen.
  • Außerdem kann die Ausführungseinheit Anweisungen nicht der Reihenfolge nach (out-of-order) ausführen. Somit kann der Prozessorkern 5504 in einer Ausführungsform ein Out-Of-Order-Prozessorkern sein. Der Prozessorkern 5504 kann auch eine Rückzugseinheit einschließen. Die Rückzugseinheit kann ausgeführte Anweisungen zurückziehen, nachdem sie übergeben wurden. In einer Ausführungsform kann das Zurückziehen der ausgeführten Befehle dazu führen, dass der Prozessorzustand von der Ausführung der Anweisungen übergeben wird, physische Register, die durch die Anweisungen verwendet werden, freigegeben werden usw. Der Prozessorkern 5504 kann auch eine Buseinheit einschließen, um eine Kommunikation zwischen Komponenten des Prozessorkerns 5504 und anderen Komponenten über einen oder mehrere Busse zu ermöglichen. Der Prozessorkern 5504 kann auch ein oder mehrere Register zum Speichern von Daten, auf die durch verschiedene Komponenten des Kerns 5504 zugegriffen wird, einschließen (wie Werte, die sich auf zugewiesene App-Proritäten und/oder eine Zuordnung von Untersystemzuständen (Untersystemmodi) beziehen///.
  • In einigen Ausführungsformen umfasst die Vorrichtung 5500 Konnektivitätsschaltungsanordnungen 5531. Zum Beispiel schließen die Konnektivitätsschaltungsanordnungen 5531 Hardwarevorrichtungen (z. B. drahtlose und/oder drahtgebundene Verbinder und Kommunikationshardware) und/oder Softwarekomponenten (z. B. Treiber, Protokollstapel) ein, um der Vorrichtung 5500 eine Kommunikation mit externen Vorrichtungen zu ermöglichen. Die Vorrichtung 5500 kann von den externen Vorrichtungen, wie anderen Rechenvorrichtungen, Drahtloszugangspunkten oder Basisstationen usw., getrennt sein.
  • In einem Beispiel können die Konnektivitätsschaltungsanordnungen 5531 mehrere unterschiedliche Konnektivitätstypen einschließen. Verallgemeinert können die Konnektivitätsschaltungsanordnungen 5531 Mobilfunkkonnektivitätsschaltungsanordnungen, Drahtloskonnektivitätsschaltungsanordnungen usw. einschließen. Mobilfunkkonnektivitätsschaltungsanordnungen der Konnektivitätsschaltungsanordnungen 5531 bezieht sich allgemein auf Mobilfunknetzwerkkonnektivität, die durch drahtlose Träger bereitgestellt wird, wie über GSM (Global System for Mobile Communications) oder Variationen oder Ableitungen, CDMA (Code Division Multiple Access) oder Variationen oder Ableitungen, TDM (Time Division Multiplexing) oder Variationen oder Ableitungen, ein 3rd Generation Partnership Project Universal Mobile Telecommunications Systems-System (3GPP-UMTS-System) oder Variationen oder Ableitungen, ein 3GPP-Long-Term Evolution-System (3GPP-LTE-System) oder Variationen oder Ableitungen, ein 3GPP-LTE-Advanced-System (3GPP-LTE-A-System) oder Variationen oder Ableitungen, ein drahtloses System der fünften Generation (drahtloses 5G-System) oder Variationen oder Ableitungen, ein 5G-Mobilfunknetz-System oder Variationen oder Ableitungen, , ein 5G-New Radio-System (5G-NR-System) oder Variationen oder Ableitungen oder andere Mobilfunkdienststandards bereitgestellt. Drahtloskonnektivitätsschaltungsanordnungen (oder eine Drahtlosschnittstelle) der Konnektivitätsschaltungsanordnungen 5531 bezieht sich auf eine Drahtloskonnektivität, die nicht zellular ist, und kann persönliche Netzwerke (wie Bluetooth, Nahfeld usw.), lokale Netzwerke (wie WiFi) und/oder Weitverkehrsnetzwerke (wie WiMax) und/oder eine andere drahtlose Kommunikation einschließen. In einem Beispiel können die Konnektivitätsschaltungsanordnungen 5531 eine Netzwerkschnittstelle, wie eine drahtgebundene oder drahtlose Schnittstelle, einschließen, sodass zum Beispiel eine Systemausführungsform in eine drahtlose Vorrichtung, zum Beispiel ein Mobiltelefon oder einen Personal Digital Assisstant, integriert werden kann.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 einen Steuerungs-Hub 5532, der Hardwareeinrichtungen und/oder Softwarekomponenten, die sich auf eine Interaktion mit einer oder mehreren E/A-Vorrichtungen beziehen, darstellt. Der Prozessor 5504 kann zum Beispiel mit einer Anzeige 5522 und/oder einer oder mehreren Peripherieeinrichtungen 5524 und/oder Speichereinrichtungen 5528 und/oder einer oder mehreren anderen externen Einrichtungen 5529 usw. über den Steuerungs-Hub 5532 kommunizieren. Der Steuerungs-Hub 5532 kann ein Chipsatz, ein Plattform-Steuerungs-Hub (PCH) und/oder dergleichen sein.
  • Beispielsweise veranschaulicht der Steuerungs-Hub 5532 einen oder mehrere Verbindungspunkte für zusätzliche Einrichtungen, die mit der Einrichtung 5500 verbindbar sind und durch die z. B. ein Benutzer mit dem System interagieren könnte. Einrichtungen (z. B. die Einrichtungen 5529), die an die Einrichtung 5500 angeschlossen werden können, schließen zum Beispiel Mikrofoneinrichtungen, Lautsprecher- oder Stereosysteme, Audioeinrichtungen, Videosysteme oder andere Anzeigeeinrichtungen, Tastatur- oder Tastenfeldeinrichtungen oder andere E/A-Einrichtungen zur Verwendung mit spezifischen Anwendungen, wie Kartenlesegeräte oder andere Einrichtungen, ein.
  • Wie oben erwähnt, kann der Steuerungs-Hub 5532 mit Audioeinrichtungen, der Anzeige 5522 usw. interagieren. Zum Beispiel kann eine Eingabe durch ein Mikrofon oder eine andere Audioeinrichtung eine Eingabe oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Einrichtung 5500 bereitstellen. Zusätzlich dazu kann eine Audioausgabe anstelle einer Anzeigeausgabe oder zusätzlich dazu bereitgestellt werden. In einem anderen Beispiel, wenn die Anzeige 5522 einen Touchscreen einschließt, wirkt die Anzeige 5522 auch als eine Eingabeeinrichtung, die zumindest teilweise durch den Steuerungs-Hub 5532 verwaltet sein kann. Es können auch zusätzliche Tasten oder Schalter an der Recheneinrichtung 5500 vorhanden sein, um durch den Steuerungs-Hub 5532 verwaltete E/A-Funktionen bereitzustellen. In einer Ausführungsform verwaltet der Steuerungs-Hub 5532 Einrichtungen, wie Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umgebungssensoren, oder andere Hardware, die in der Einrichtung 5500 enthalten sein kann. Die Eingabe kann Teil einer direkten Benutzerinteraktion sein sowie dem System Umgebungseingaben zur Beeinflussung seiner Operationen (wie Rauschfiltern, Anpassen von Anzeigen zur Helligkeitsdetektion, Anwenden eines Blitzes für eine Kamera oder andere Merkmale) bereitstellen.
  • In einigen Ausführungsformen kann der Steuerungs-Hub 5532 an verschiedene Einrichtungen unter Verwendung eines beliebigen geeigneten Kommunikationsprotokolls, z. B. PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), Thunderbolt, High Definition Multimedia Interface (HDMI), Firewire usw., koppeln.
  • In einigen Ausführungsformen stellt die Anzeige 5522 Hardwarekomponenten (z. B. Anzeigeeinrichtungen) und Softwarekomponenten (z. B. Treiber) dar, die eine visuelle und/oder taktile Anzeige für einen Benutzer zum Interagieren mit der Einrichtung 5500 bereitstellen. Die Anzeige 5522 kann eine Anzeigeschnittstelle, einen Anzeigebildschirm und/oder eine Hardwareeinrichtung, die zum Bereitstellen einer Anzeige für einen Benutzer verwendet wird, einschließen. In einigen Ausführungsformen schließt die Anzeige 5522 eine Touchscreen- (oder Touchpad-) Einrichtung ein, die einem Benutzer sowohl eine Ausgabe als auch eine Eingabe bereitstellt. In einem Beispiel kann die Anzeige 5522 direkt mit dem Prozessor 5504 kommunizieren. Die Anzeige 5522 kann eines oder mehrere von einer internen Anzeigeeinrichtung, wie in einer mobilen elektronischen Einrichtung oder einer Laptop-Einrichtung, oder einer externen Anzeigeeinrichtung, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angebracht ist, sein. In einer Ausführungsform kann die Anzeige 5522 eine Head-Mounted-Anzeige (HMD) sein, wie etwa eine stereoskopische Anzeigeeinrichtung zur Verwendung in Virtual-Reality (VR)-Anwendungen oder Augmented Reality (AR)-Anwendungen.
  • In einigen Ausführungsformen und, wenngleich in der Figur nicht veranschaulicht, kann die Einrichtung 5500 zusätzlich zu (oder anstelle von) dem Prozessor 5504, eine Grafikverarbeitungseinheit (GPU) einschließen, die einen oder mehrere Grafikverarbeitungskerne umfasst, die einen oder mehrere Gesichtspunkte des Anzeigens von Inhalt auf der Anzeige 5522 steuern können.
  • Der Steuerungs-Hub 5532 (oder ein Plattform Controller Hub) kann Hardwareschnittstellen und -Verbinder sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) einschließen, um Peripherieverbindungen, z. B. mit den Peripherievorrichtungen 5524, herzustellen.
  • Es versteht sich, dass die Vorrichtung 5500 sowohl eine Peripherievorrichtung für andere Rechenvorrichtungen sein kann als auch Peripherievorrichtungen aufweisen kann, die mit ihr verbunden sind. Die Einrichtung 5500 kann einen „Andock“-Verbinder zum Verbinden mit anderen Recheneinrichtungen für Zwecke, wie das Verwalten (z. B. Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalt auf der Einrichtung 5500, aufweisen. Zusätzlich dazu kann es ein Andockverbinder der Einrichtung 5500 ermöglichen, eine Verbindung mit bestimmten Peripherieeinrichtungen herzustellen, die es der Recheneinrichtung 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 Einrichtung 5500 Peripherieverbindungen über übliche oder standardbasierte Verbinder herstellen. Übliche Typen können einen Universal Serial Bus-Verbinder (USB-Verbinder) (der eine beliebige einer Anzahl verschiedener Hardwareschnittstellen einschließen kann), DisplayPort, einschließlich MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire oder andere Typen einschließen.
  • In einigen Ausführungsformen können die Konnektivitätsschaltungsanordnungen 5531 an den Steuerungs-Hub 5532 gekoppelt sein, z. B. zusätzlich dazu oder anstelle davon, direkt an den Prozessor 5504 gekoppelt zu sein. In einigen Ausführungsformen kann die Anzeige 5522 mit dem Steuerungs-Hub 5532 gekoppelt sein, z.B. zusätzlich oder anstatt direkt mit dem Prozessor 5504 gekoppelt zu sein.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 den Speicher 5530, der über eine Speicherschnittstelle 5534 an den Prozessor 5504 gekoppelt ist. Der Speicher 5530 schließt Speichereinrichtungen zum Speichern von Informationen in der Einrichtung 5500 ein.
  • In einigen Ausführungsformen schließt der Speicher 5530 eine Einrichtung zum Beibehalten einer stabilen Taktgebung ein, wie in Bezug auf verschiedene Ausführungsformen beschrieben. Speicher kann nichtflüchtige (keine Zustandsänderung bei Unterbrechung der Stromzufuhr zur Speichereinrichtung) und/oder flüchtige (unbestimmter Zustand bei Unterbrechung der Stromzufuhr zur Speichereinrichtung) Speichereinrichtungen einschließen. Die Speichereinrichtung 5530 kann eine Einrichtung eines dynamischen Direktzugriffsspeichers (DRAM-Einrichtung), eine Einrichtung eines statischen Direktzugriffsspeichers (SRAM-Einrichtung), eine Flashspeichereinrichtung, eine Phasenwechselspeichereinrichtung oder eine andere Speichereinrichtung, die eine geeignete Leistungsfähigkeit zum Dienen als Prozessspeicher aufweist, sein. In einer Ausführungsform kann der Speicher 5530 als Systemspeicher für die Einrichtung 5500 arbeiten, um Daten und Anweisungen zur Verwendung zu speichern, 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) in Bezug auf die Ausführung der Anwendungen und Funktionen der Einrichtung 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, ohne darauf beschränkt zu sein, Flash-Speicher, optische Platten, CD-ROMs, DVD-ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Phasenwechselspeicher (PCM) oder andere Typen zur Speicherung elektronischer oder computerausführbarer Anweisungen geeigneter maschinenlesbarer Medien einschließen. Zum Beispiel können Ausführungsformen der Offenbarung 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 anfordernden Computer (z. B. einen Client) übertragen werden kann.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 Temperaturmessungsschaltungsanordnungen 5540, zum Beispiel zum Messen einer Temperatur von verschiedenen Komponenten der Einrichtung 5500. In einem Beispiel können die Temperaturmessungsschaltungsanordnungen 5540 eingebettet sein, oder an verschiedene Komponenten, deren Temperatur gemessen und überwacht werden soll, gekoppelt oder an solchen angebracht sein. Zum Beispiel können die Temperaturmessungsschaltungsanordnungen 5540 die Temperatur eines (oder innerhalb eines) oder mehrerer der Kerne 5508a, 5508b, 5508c, des Spannungsreglers 5514, des Speichers 5530, einem Motherboard des SoC 5501 und/oder einer beliebigen geeigneten Komponente der Einrichtung 5500 messen. In einigen Ausführungsformen schließen die Temperaturmessungsschaltungsanordnungen 5540 eine Low Power Hybrid Reverse-Bandabstandreferenz (LPHR-BGR) und einen digitalen Temperatursensor (DTS), der einen Subschwellen-Metalloxid-Halbleiter-Transistor (MOS-Transistor) und die parasitäre PNP-Bipolartransistor-Einrichtung (parasitäre PNP-BJT-Einrichtung) nutzt, um eine umgekehrte BGR zu bilden, die als die Basis für konfigurierbare BGR- oder DTS-Betriebsmodi dient, ein. Die LPHR-Architektur verwendet kostengünstige MOS-Transistoren und die standardmäßige parasitäre PNP-Einrichtung. Basierend auf einer umgekehrten Bandabstandsspannung 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 Übertragungsfunktion mit Einzeltemperaturtrimmung für eine hohe Genauigkeit arbeiten.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 Leistungsmessungsschaltungsanordnungen 5542, z. B. zum Messen einer durch eine oder mehrere Komponenten der Einrichtung 5500 verbrauchten Leistung. In einem Beispiel können die Leistungsmessungsschaltungsanordnungen 5542 zusätzlich zu oder anstelle von einem Messen der Leistung eine Spannung und/oder einen Strom messen. In einem Beispiel können die Leistungsmessungsschaltungsanordnungen 5542 eingebettet sein oder an verschiedene 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 bereitgestellt werden, Leistung, die an das SoC 5501 bereitgestellt wird, Leistung, die an die Einrichtung 5500 bereitgestellt wird, Leistung, die durch den Prozessor 5504 (oder eine beliebige andere Komponente) der Einrichtung 5500 verbraucht wird, usw. messen.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 eine oder mehrere Spannungsreglerschaltungsanordnungen, die allgemein als Spannungsregler (VR) 5514 bezeichnet werden. Der VR 5514 erzeugt Signale mit geeigneten Spannungspegeln, die zum Betreiben beliebiger geeigneter Komponenten der Einrichtung 5500 bereitgestellt werden können. Der VR 5514 ist lediglich als ein Beispiel derart veranschaulicht, dass er dem Prozessor 5504 der Einrichtung 5500 Signale bereitstellt. In einigen Ausführungsformen empfängt der VR 5514 ein oder mehrere Spannungsidentifikationssignale (VID-Signale) und erzeugt basierend auf den VID-Signalen das Spannungssignal mit einem geeigneten Pegel. Verschiedene Typen von VRs können für den VR 5514 genutzt werden. Der VR 5514 kann zum Beispiel einen „Abwärts“-VR, einen „Aufwärts“-VR, eine Kombination von Abwärts- und Aufwärts-VRs, einen Low-Dropout-Regler (LDO-Regler), einen DC-DC-Schaltregler, steuerungsbasierten DC-DC-Regler mit konstanter Ein-Zeit usw. einschließen. Ein Abwärts-VR wird im Allgemeinen in Leistungsbereitstellungsanwendungen verwendet, in denen eine Eingangsspannung mit einem kleineren Verhältnis als eins in eine Ausgangsspannung transformiert werden muss. Ein Aufwärts-VR wird im Allgemeinen in Leistungsbereitstellungsanwendungen verwendet, in denen eine Eingangsspannung mit einem größeren Verhältnis als eins in eine Ausgangsspannung transformiert werden muss. In einigen Ausführungsformen weist jeder Prozessorkern seinen eigenen VR auf, der durch PCU 55 10a/b und/oder PMIC 5512 gesteuert wird. In einigen 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 einigen Ausführungsformen beinhaltet der VR 5514 eine Stromverfolgungseinrichtung zum Messen eines Stroms durch die Stromversorgungsschiene(n).
  • In einigen 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 Regelschema regelt den Integrator des PID-Filters, um eine nichtlineare Regelung 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 ///wird, 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 vollständigen EIN-Zustand (der die Ausgangsspannung Vout zurück zu einem Regelfenster bringt) zu einem Tastverhältnis mit offenem Regelkreis, das die Ausgangsspannung etwas höher als die erforderliche Referenzspannung Vref hält. Nach einem gewissen Zeitraum in diesem Zustand mit offenem Regelkreis bei dem angewiesenen Tastverhältnis senkt die Zustandsmaschine dann den Wert des Tastverhältnisses mit offenem Regelkreis, bis die Ausgangsspannung nahe der angewiesenen Vref liegt. Deshalb wird ein Ausgangs-Chatter an der Ausgangsversorgung von dem VR 5514 vollständig beseitigt (oder im Wesentlichen beseitigt), und es gibt lediglich einen einzigen Unterschwingungü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 einigen Ausführungsformen schließt der VR 5514 eine separate Selbststartsteuerung, die ohne Sicherungs- und/oder Trimminformationen funktionsfähig ist, ein. 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-Referenzrampe (Voltage Identification-Referenzrampe) zu folgen, die durch das System auferlegt wird. In einigen 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 an den Oszillator gekoppelt, um das Tastverhältnis für den Betrieb mit geschlossenem Regelkreis einzustellen. Der Regler ist natürlich so vorgespannt, dass die Ausgangsspannung immer geringfügig höher als der Sollwert ist, wodurch die Notwendigkeit für Prozess-, Spannungs- und/oder Temperaturvorgegebene (PVT-vorgegebene) Trimmungen beseitigt wird.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 eine oder mehrere Taktgeneratorschaltungsanordnungen, die allgemein als Taktgenerator 5516 bezeichnet werden. Der Taktgenerator 5516 erzeugt Signale mit geeigneten Frequenzpegeln, die beliebigen passenden Komponenten der Einrichtung 5500 bereitgestellt werden können. Der Taktgenerator 5516 ist lediglich als ein Beispiel derart veranschaulicht, dass er dem Prozessor 5504 der Einrichtung 5500 Taktsignale bereitstellt. In einigen Ausführungsformen empfängt der Taktgenerator 5516 ein oder mehrere Frequenzidentifikationssignale (FID-Signale) und erzeugt basierend auf den FID-Signalen die Taktsignale mit einer geeigneten Frequenz.
  • In einigen Ausführungsformen umfasst die Vorrichtung 5500 eine Batterie 5518, die verschiedenen Komponenten der Vorrichtung 5500 Leistung bereitstellt. Die Batterie 5518 ist lediglich als ein Beispiel derart veranschaulicht, dass sie dem Prozessor 5504 Leistung bereitstellt. Wenngleich in den Figuren nicht veranschaulicht, kann die Vorrichtung 5500 eine Ladungsschaltungsanordnung umfassen, z. B. zum Aufladen der Batterie, basierend auf einer von einem AC-Adapter empfangenen Wechselstromleistungsversorgung (AC-Leistungsversorgung).
  • In einigen 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 in Bezug auf DrMOS beschrieben. Die Ausführungsformen sind jedoch auf DrGaN anwendbar. Die DrMOS-Einrichtungen ermöglichen eine bessere Effizienz bei der Leistungsumwandlung aufgrund eines reduzierten parasitären und optimierten MOSFET-Packaging. Da die Totzeitverwaltung innerhalb des DrMOS ist, 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 DrMOSbasierten Abwärts-Aufwärts-Wandler umfasst. Der Abwärts-Aufwärts-Wandler verschiedener Ausführungsformen umfasst doppelt gefaltetes Bootstrap für DrMOS-Vorrichtungen. In einigen Ausführungsformen werden zusätzlich zu den herkömmlichen Bootstrap-Kondensatoren gefaltete Bootstrap-Kondensatoren hinzugefügt, die Induktorknoten mit den zwei Sätzen von DrMOS-Schaltern kreuzkoppeln.
  • In einigen Ausführungsformen umfasst die Einrichtung 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 Verarbeitungskerne 5508 implementiert sein, und diese Abschnitte der PCU 5510 sind symbolisch unter Verwendung eines gestrichelten Kastens veranschaulicht und mit PCU 55 10b gekennzeichnet. Die PCU 5510 kann verschiedene Leistungsverwaltungsoperationen für die Einrichtung 5500 implementieren. Die PCU 5510 kann Hardwareschnittstellen, Hardwareschaltungsanordnungen, Verbinder, Register usw. sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) einschließen, um verschiedene Leistungsverwaltungsoperationen für die Einrichtung 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 weiterhin auf Autonomieinseln ausgerichtet sind, die über das zugehörige Die im Package bestehen könnten. HPM übernimmt keine vorbestimmte Zuordnung physischer Partitionen zu Domänen an. Eine HPM-Domäne kann an einer Funktion ausgerichtet sein, die innerhalb eines Dielet, in einer Dielet-Grenze, in einem oder mehreren Dielets, in einem Begleit-Die oder sogar einer diskreten CXL-Vorrichtung integriert ist. HPM behandelt die Integration mehrerer Instanzen desselben Dies, gemischt mit proprietären Funktionen oder Drittfunktionen, die auf demselben Die oder einem separaten Die integriert sind, und sogar von Beschleunigern, die über CXL (z. B. Flexbus) verbunden sind, die sich innerhalb des Packages oder in einem diskreten Formfaktor befinden können.
  • HPM ermöglicht Konstrukteuren, die Ziele der Skalierbarkeit, Modularität und späten Bindung zu erfüllen. HPM ermöglicht auch, dass PMU-Funktionen, die bereits auf anderen ///Würfeln bestehen können, genutzt werden, anstatt im flachen Schema deaktiviert zu werden. HPM ermöglicht die Verwaltung einer beliebigen Sammlung von Funktionen unabhängig von deren Integrationsgrad. Die HPM verschiedener Ausführungsformen ist skalierbar, modular und arbeitet sowohl mit symmetrischen Mehrchipprozessoren (MCPs) als auch 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 mit Knoten unterschiedlicher Prozesstechnologien aufweisen, die in einem einzigen Package gekoppelt sind. HPM adressiert auch den Bedarf an begleitenden Die-Integrationslösungen - innerhalb und außerhalb eines Package. Andere technische Auswirkungen werden anhand der verschiedenen Figuren und Ausführungsformen ersichtlich.
  • In einigen Ausführungsformen umfasst die Einrichtung 5500 eine integrierte Schaltung für die Leistungsverwaltung (PMIC) 5512, z. B. zum Implementieren verschiedener Leistungsverwaltungsoperationen für die Einrichtung 5500. In einigen Ausführungsformen ist die PMIC 5512 eine integrierte Schaltung für die rekonfigurierbare Leistungsverwaltung (RPMIC) und/oder eine IMVP (Intel® Mobile Voltage Positioning). In einem Beispiel befindet sich die PMIC innerhalb eines IC-Die, der von dem Prozessor 5504 getrennt ist. Die ///kann verschiedene Leistungsverwaltungsoperationen für die Einrichtung 5500 implementieren. Die PMIC 5512 kann Hardwareschnittstellen, Hardwareschaltungsanordnungen, Verbinder, Register usw. sowie Softwarekomponenten (z.B. Treiber, Protokollstapel) einschließen, um verschiedene Leistungsverwaltungsoperationen für die Einrichtung 5500 zu implementieren.
  • In einem Beispiel umfasst die Einrichtung 5500 PCU 5510 und/oder PMIC 5512. In einem Beispiel kann eine der PCU 5510 oder der PMIC 5512 in der Einrichtung 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 der PCU 5510 und der PMIC 5512 durchgeführt werden. Zum Beispiel kann die PCU 5510 und/oder die PMIC 5512 einen Leistungszustand (z.B. P-Zustand) für verschiedene Komponenten der Einrichtung 5500 auswählen. Zum Beispiel können die PCU 5510 und/oder die PMIC 5512 einen Leistungszustand (z.B. gemäß der ACPI- (Advanced Configuration and Power Interface) Spezifikation) für verschiedene Komponenten der Einrichtung 5500 auswählen. Lediglich als ein Beispiel kann die PCU 5510 und/oder die PMIC 5512 verschiedene Komponenten der Einrichtung 5500 veranlassen, in einen Standby-Zustand, in einen Aktivzustand, in einen geeigneten C-Zustand (z. B. C0-Zustand oder einen anderen geeigneten C-Zustand gemäß der ACPI-Spezifikation) usw. überzugehen. In einem Beispiel können die PCU 5510 und/oder die PMIC 5512 eine Spannungsausgabe durch den VR 5514 und/oder eine Frequenz einer Taktsignalausgabe durch den Taktgenerator steuern, z. B. durch Ausgeben des VID-Signals bzw. das FID-Signals. In einem Beispiel kann die PCU 5510 und/oder die PMIC 5512 die Batterieleistungsnutzung, Laden der Batterie 5518 und auf einen Leistungseinsparungsbetrieb bezogene Merkmale steuern.
  • Der Taktgenerator 5516 kann eine Phasenregelschleife (PLL), eine Frequenzregelschleife (FLL) oder eine beliebige geeignete Taktquelle umfassen. In einigen Ausführungsformen weist jeder Kern des Prozessors 5504 seine eigene Taktquelle auf. Deshalb kann jeder Kern bei einer von der Betriebsfrequenz des anderen Kerns unabhängigen Frequenz arbeiten. In einigen Ausführungsformen führt die PCU 5510 und/oder die PMIC 5512 eine adaptive oder dynamische Frequenzskalierung oder -anpassung durch. Die Taktfrequenz eines Prozessorkerns kann zum Beispiel erhöht werden, wenn der Kern nicht bei dessen Maximalleistungsverbrauchsschwelle oder -grenze betrieben wird. In einigen Ausführungsformen bestimmt die PCU 5510 und/oder die PMIC 5512 den Betriebszustand für jeden Kern eines Prozessors und passt die Frequenz und/oder die Leistungsversorgungsspannung dieses Kerns opportun an, ohne dass die Kerntaktquelle (z. B. die PLL dieses Kerns) ihre Verriegelung verliert, wenn die PCU 5510 und/oder die PMIC 5512 bestimmt, dass der Kern unterhalb einer Zielperformanzstufe arbeitet. Falls zum Beispiel ein Kern Strom von einer Leistungsversorgungsschiene bezieht, der geringer als ein Gesamtstrom ist, der für diesen Kern oder Prozessor 5504 zugewiesen ist, dann kann die PCU 5510 und/oder PMIC 5512 temporär die Leistungsaufnahme für diesen Kern oder Prozessor 5504 erhöhen (z. B. durch Erhöhen der Taktfrequenz und/oder des Leistungsversorgungsspannungspegels), so dass der Kern oder Prozessor 5504 mit einer höheren Performanzstufe arbeiten kann. Deshalb 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 basierend auf einem Empfangen von Messwerten der Leistungsmessungsschaltungsanordnungen 5542, der Temperaturmessungsschaltungsanordnungen 5540, des Ladestands der Batterie 5518 und/oder beliebiger anderer geeigneter 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-/thermische Verhalten des Systems/der Plattform haben, zu erfassen bzw. zu detektieren. Beispiele für den einen oder die mehreren Faktoren schließen elektrischen Strom, Spannungsabfall, Temperatur, Betriebsfrequenz, Betriebsspannung, Leistungsverbrauch, Zwischenkernkommunikationsaktivität usw. ein. Einer oder mehrere dieser Sensoren können in physischer Nähe (und/oder thermischem Kontakt/thermischer Kopplung) mit einer oder mehreren Komponenten oder Logik-/IP-Blöcken eines Rechensystems bereitgestellt sein. Zusätzlich kann der Sensor/können die Sensoren in zumindest einer Ausführungsform direkt an die PCU 5510 und/oder die PMIC 5512 gekoppelt sein, um der PCU 5510 und/oder der PMIC 5512 zu ermöglichen, Prozessorkernenergie zumindest teilweise basierend auf einem Wert/Werten, der/die durch einen oder mehrere der Sensoren detektiert werde(n), zu verwalten.
  • Außerdem ist ein beispielhafter Softwarestapel der Vorrichtung 5500 veranschaulicht (wenngleich 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. Die 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 einschließen. Das OS 5552 kann auch verschiedene Treiber 5554a, 5554b, 5554c usw. einschließen, von denen einige für Leistungsverwaltungszwecke spezifisch sein können. In einigen Ausführungsformen kann die Einrichtung 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 den PM-Anwendungen 5558, 5556, den Treibern 5554, dem BIOS 5520 usw. können zum Beispiel zum Implementieren von leistungsverwaltungsspezifischen Aufgaben verwendet werden, z. B. zum Regeln von Spannung und/oder Frequenz von verschiedenen Komponenten der Vorrichtung 5500, zum Regeln eines Reaktivierungszustands, eines Standby-Zustands und/oder eines beliebigen anderen geeigneten Leistungszustands verschiedener Komponenten der Vorrichtung 5500, zum Regeln 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, Federteller usw. beinhalten. Die Außenhaut der Druckkammer kann sich frei biegen, an ihren Rändern durch eine (Metall-)Haut zurückgehalten werden, ü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 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 bezieht sich pCode auf eine Firmware, die durch die PCU 5510a/b zur Leistungsverwaltung des 5501 ausgeführt wird. 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. verschiedene Komponenten des SoC 5501) anzeigt, durch Maschinenlernvorhersage eingestellt 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 einigen 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 einigen 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 einigen 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 einigen Ausführungsformen beinhaltet der VR 5514 einen Stromsensor zum Erfassen und/oder Messen eines Stroms durch einen High-Side-Schalter des VR 5514. In einigen 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 einigen 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 einigen 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 einigen 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.
  • In der Spezifikation bedeutet ein Bezug auf „eine Ausführungsform“, „einige 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 Bezugnahmen auf „eine Ausführungsform“, „(genau) eine Ausführungsform“ oder „einige Ausführungsformen“ beziehen sich nicht notwendigerweise alle auf die gleichen Ausführungsformen. Falls die Spezifikation angibt, dass eine Komponente, ein Merkmal, eine Struktur oder eine Charakteristik enthalten sein „kann“ oder „könnte“, muss diese spezielle Komponente, dieses spezielle Merkmal, diese spezielle Struktur oder diese spezielle Charakteristik nicht enthalten sein. Falls sich die Spezifikation oder der Anspruch auf „ein“ Element bezieht, bedeutet dies nicht, dass es nur eines der Elemente gibt. 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.
  • 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. Zum Beispiel kann eine erste Ausführungsform überall dort mit einer zweiten Ausführungsform kombiniert werden, wo sich die speziellen Merkmale, Strukturen, Funktionen oder Charakteristiken, die mit den zwei Ausführungsformen assoziiert sind, 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 hierin beschriebenen Vorrichtung können auch in Bezug auf ein Verfahren oder einen Prozess implementiert werden. Die Beispiele können in beliebigen Kombinationen kombiniert werden. Beispielsweise kann Beispiel 4 mit Beispiel 2 kombiniert werden.
  • Beispiel 1: Vorrichtung, umfassend: eine Vielzahl von Dies, die Prozessor-Dies und E/A-Dies beinhalten; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl von Dies eine Leistungsverwaltungseinheit beinhaltet, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert; ein erstes Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist; und ein zweites Interconnect-Fabric, das mit der Supervisor-Einheit und den Supvervisand-Einheiten gekoppelt ist, wobei das zweite Interconnect-Fabric schneller als das erste Interconnect-Fabric ist.
  • Beispiel 2: Vorrichtung nach Beispiel 1, wobei das zweite Interconnect-Fabric ein synchrones Fabric umfasst.
  • Beispiel 3: Vorrichtung nach Beispiel 1, wobei jede Leistungsverwaltungseinheit Zugriff auf einen dedizierten Teil eines Speichers hat.
  • Beispiel 4: Vorrichtung nach Beispiel 3, wobei jede Leistungsverwaltungseinheit eine Firmware ausführt, die eine Sendermailbox und eine Empfängermailbox beinhaltet.
  • Beispiel 5: Vorrichtung nach Beispiel 4, wobei die Empfängermailbox empfangene Daten in dem dedizierten Abschnitt des Speichers speichert.
  • Beispiel 6: Vorrichtung nach Beispiel 1, wobei die Supervisor-Einheit eine erste Supervisor-Einheit ist und wobei die Leistungsverwaltungseinheiten eine zweite Supervisor-Einheit beinhalten, wobei die zweite Supervisor-Einheit an die erste Supervisor-Einheit meldet.
  • Beispiel 7: Vorrichtung nach Beispiel 1, wobei die Prozessor-Dies ein Betriebssystem ausführen, wobei das Betriebssystem mit einer Leistungsverwaltung in der Vorrichtung kommuniziert, die die Supervisor-Einheit ist, um eine Leistung der Vorrichtung zu steuern.
  • Beispiel 8: Vorrichtung nach Beispiel 1, wobei die Vielzahl von Dies Steckkarten und Plattformkomponenten beinhaltet.
  • Beispiel 9: Vorrichtung, umfassend: eine Vielzahl von Dies, die Rechen-Dies und E/A-Dies beinhaltet; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl von Dies eine Leistungsverwaltungseinheit beinhaltet, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert; und eine Vielzahl von Maximalleistungsdetektoren zum Detektieren eines Abfalls einer Spannung einer Eingangsleistungsversorgungsschiene, wobei jeder Maximalleistungsdetektor in einem der Rechen-Dies positioniert ist, wobei ein Rechen-Die, der zwischen mindestens zwei Rechen-Dies positioniert ist, ein Inhaber von Entscheidungen ist, die mit einem Maximalleistungsdetektor des Rechen-Die assoziiert sind.
  • Beispiel 10: Vorrichtung nach Beispiel 9, wobei die Maximalleistungsdetektoren in den mindestens zwei Rechen-Dies deaktiviert sind.
  • Beispiel 11: Vorrichtung nach Beispiel 9, umfassend eine Vielzahl von Schnellabfalldetektoren, wobei jeder Rechen-Die der Vielzahl einen Schnellabfalldetektor beinhaltet.
  • Beispiel 12: Vorrichtung nach Beispiel 11, wobei der Schnellabfalldetektor in allen Rechen-Dies aktiviert ist.
  • Beispiel 13: Vorrichtung nach Beispiel 10, umfassend eine Vielzahl von Schnellabfalldetektoren, wobei jeder Maximalleistungsdetektor einen Schnellabfalldetektor beinhaltet, wobei die Schnellabfalldetektoren auch dann aktiviert sind, wenn die Maximalleistungsdetektoren deaktiviert sind.
  • Beispiel 14: Vorrichtung nach Beispiel 9, wobei eine Leistungsverwaltungseinheit eines der E/A-Dies die Supervisor-Einheit ist und wobei die Leistungsverwaltungseinheiten der Rechen-Dies die Supervisand-Einheiten sind.
  • Beispiel 15: Vorrichtung nach Beispiel 9, wobei der Maximalleistungsdetektor des Rechen-Die ein Mehrfachschwellenleistungsdetektor zum Detektieren des Abfalls bei mehreren Schwellen einschließlich einer Schnelldetektionsschwelle zum Detektieren eines schnellen Abfalls der Spannung der Eingangsleistungsversorgungsschiene ist.
  • Beispiel 16: Vorrichtung nach Beispiel 15, wobei bei Detektion des schnellen Abfalls der Maximalleistungsdetektor eine harte Drosselung zu allen Prozessorkernen aller Rechen-Dies auslösen soll.
  • Beispiel 17: Vorrichtung nach Beispiel 16, umfassend: ein erstes Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist; und ein zweites Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist, wobei das zweite Interconnect-Fabric schneller ist als das erste Interconnect-Fabric, und wobei die harte Drosselung über das zweite Interconnect-Fabric gesendet wird.
  • Beispiel 18: Vorrichtung nach Beispiel 16, wobei die harte Drosselung eine Reduzierung einer Betriebsspannung und/oder -frequenz aller Rechen-Dies innerhalb einer vorbestimmten Zeit umfasst, wonach die Supervisor-Einheit eine globale gemeinsam genutzte Frequenzobergrenze für alle Supervisand-Einheiten innerhalb einer Domäne der Supervisor-Einheit senden soll.
  • Beispiel 19: Vorrichtung nach Beispiel 18, wobei die Supervisand-Einheiten eine Nachricht an die Supervisor-Einheit senden sollen, die die globale gemeinsam genutzte Frequenzobergrenze angibt, und wobei die Supervisand-Einheiten die globale gemeinsam genutzte Frequenzobergrenze innerhalb ihrer jeweiligen Dies durchsetzen sollen.
  • Beispiel 20: Vorrichtung nach Beispiel 19, wobei der Rechen-Die, der der Inhaber von Entscheidungen ist, die mit dem Maximalleistungsdetektor des Rechen-Die assoziiert sind, die harte Drosselung deaktivieren soll, nachdem die Rechen-Dies dem Rechen-Die angeben, dass die globale gemeinsam genutzte Frequenzobergrenze durchgesetzt wird und die mehreren Rechen-Dies auf einer sicheren Leistungsstufe arbeiten.
  • Beispiel 21: Vorrichtung nach Beispiel 20, wobei die Supervisor-Einheit dazu ausgelegt ist, die globale gemeinsam genutzte Frequenzobergrenze für Rechen-Dies allmählich zu erhöhen, nachdem eine vorbestimmte Wartezeit ab einer Zeit abläuft, zu der die harte Drosselung deaktiviert wird.
  • Beispiel 22: Vorrichtung nach Beispiel 15, wobei bei Detektion, dass die Spannung des Abfalls eine oder mehrere der mehreren Schwellen überquert hat, während die Spannung des Abfalls die Schnelldetektionsschwelle nicht überquert, der Maximalleistungsdetektor eine sanfte Drosselung zu allen Prozessorkernen aller Rechen-Dies auslösen soll.
  • Beispiel 23: Vorrichtung nach Beispiel 22, wobei die sanfte Drosselung Strecken eines Arbeitszyklus von einem oder mehreren Takten zu allen Prozessorkernen des Rechen-Dies umfasst.
  • Beispiel 24: Vorrichtung, umfassend: eine Vielzahl von Dies, die Rechen-Dies und E/A-Dies beinhaltet, wobei jeder Die ein Interconnect-Fabric mit Fabric-Komponenten beinhaltet und ein Interconnect die Fabric-Komponenten miteinander verbindet; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl eine Leistungsverwaltungseinheit aufweist, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert, wobei jede Supervisand-Einheit eine Frequenz ihres Interconnect-Fabric in Konsultation mit benachbarten Supervisand-Einheiten und einer oder mehreren Einschränkungen von der Supervisor-Einheit bestimmt.
  • Beispiel 25: Vorrichtung nach Beispiel 24, wobei eine individuelle Supervisand-Einheit eine Arbeitslastaktivität ihres Die basierend auf Telemetriedaten und Heuristiken bestimmt.
  • Beispiel 26: Vorrichtung nach Beispiel 25, wobei die Telemetriedaten eine Wertänderung eines oder mehrerer Hardwareperformanzzähler beinhalten.
  • Beispiel 27: Vorrichtung nach Beispiel 25, wobei die individuelle Supervisand-Einheit Teil eines Die ist, der mit einem Speicher gekoppelt ist, wobei die Heuristiken Verkehr auf einem Bus beinhalten, der zwischen den Die und den Speicher gekoppelt ist.
  • Beispiel 28: Vorrichtung nach Beispiel 25, wobei die individuelle Supervisand-Einheit eine aktuelle Betriebsspannung und/oder -frequenz ihrer benachbarten Supervisand-Einheit über einen Interconnect zwischen den Supervisand-Einheiten empfängt.
  • Beispiel 29: Vorrichtung nach Beispiel 28, wobei die individuelle Supervisand-Einheit eine Frequenzanfrage basierend auf Frequenzanfragen benachbarter Supervisand-Einheiten auflöst.
  • Beispiel 30: Vorrichtung nach Beispiel 29, wobei die eine oder die mehreren Einschränkungen eine oder mehrere der Folgenden beinhalten: maximale Gesamtleistungsgrenze eines Sockels, minimale Gesamtleistungsgrenze des Sockels, minimale Performanzstufe des Sockels, thermische Einschränkungen oder Benutzergrenzen.
  • Beispiel 31: Vorrichtung nach Beispiel 30, wobei die individuelle Supervisand-Einheit die Frequenz ihres Interconnect-Fabric durch Anwendung eines Skalierungsfaktors bestimmt, der eine Kernfrequenz in eine Frequenz für das Interconnect-Fabric umwandelt.
  • Beispiel 32: Vorrichtung nach Beispiel 24, wobei das Interconnect-Fabric eines Die mit einem Interconnect-Fabric eines anderen Die gekoppelt ist.
  • Beispiel 33: Vorrichtung nach Beispiel 24, wobei jeder Die wenigstens zwei Leistungsverwaltungseinheiten beinhaltet.
  • Beispiel 34: Erster IC- (integrated circuit) Chip, umfassend: eine Hardwareschnittstelle zum Koppeln des ersten IC mit einem zweiten IC-Chip; und eine erste P-Einheit zum Kommunizieren mit einer zweiten P-Einheit des zweiten IC-Chips über die Hardwareschnittstelle, und um zu bestimmen, ob die erste P-Einheit eine Supervisor-P-Einheit oder eine Supervisand-P-Einheit ist, wobei, wenn bestimmt wird, dass die erste P-Einheit die Supervisor-P-Einheit ist, die erste P-Einheit Speicherdienstklassen- (MCLOS-) Parameter an die zweite P-Einheit senden soll, wobei die erste P-Einheit ansonsten die MCLOS-Parameter von der zweiten P-Einheit empfangen soll; wobei an dem einen von dem ersten IC-Chip oder dem zweiten IC-Chip, der die Supervisand-P-Einheit umfasst, die Supervisand-P-Einheit einem Speicherbandbreitenzuteiler signalisieren soll, basierend auf den MCLOS-Parametern, eine Vielzahl von Speicherbandbreiteneinstellungen anzuwenden, um Prioritäten von Speicherbandbreiten dynamisch anzupassen, die einer oder mehreren Arbeitslasten zugeteilt werden sollen, die durch eine Vielzahl von Prozessorkernen zu verarbeiten sind.
  • Beispiel 35: Erster IC-Chip nach Beispiel 34, wobei die MCLOS-Parameter eine Kennung eines zu überwachenden Ereignistyps umfassen, wobei an dem einen des ersten IC-Chips oder des zweiten IC-Chips, der die Supervisand-P-Einheit umfasst, ein Performanzüberwacher einer Speichersteuerung Performanzüberwachungsstatistiken basierend auf der Kennung des Ereignistyps erzeugen soll, indem eine Durchführung der einen oder der mehreren Arbeitslasten durch die Vielzahl von Prozessorkernen zumindest teilweise basierend auf Performanzüberwachungskonfigurationsparametern überwacht wird.
  • Beispiel 36: Erster IC-Chip nach Beispiel 35, wobei die erste P-Einheit ferner die Performanzüberwachungsstatistiken mit der zweiten P-Einheit kommunizieren soll.
  • Beispiel 37: IC-Chip nach Beispiel 34, wobei die MCLOS-Parameter Informationen umfassen, die eine Entsprechung verschiedener Ebenen eines MCLOS-Klassifizierungsschemas jeweils mit einer jeweiligen Ebene eines anderen Dienstklassen-Klassifizierungsschemas identifizieren.
  • Beispiel 38: Erster IC-Chip nach Beispiel 34, wobei die MCLOS-Parameter eine Kennung eines Überwachungszeitfensters umfassen.
  • Beispiel 39: Erster IC-Chip nach Beispiel 34, wobei eine oder mehrere der Vielzahl von Speicherbandbreiteneinstellungen einen ersten Wert für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit niedriger Priorität basierend auf einer zugewiesenen Speicherdienstklasse des Prozessorkerns mit niedriger Priorität umfassen.
  • Beispiel 40: Erster IC-Chip nach Beispiel 39, wobei eine oder mehrere der Vielzahl von Speicherbandbreiteneinstellungen einen zweiten Wert für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit hoher Priorität basierend auf einer zugewiesenen Speicherdienstklasse des Prozessorkerns mit hoher Priorität umfassen, wobei der erste Wert kleiner ist als der zweite Wert.
  • Beispiel 41: Package-Einrichtung, umfassend: einen ersten IC-Chip, der eine Supervisor-P-Einheit umfasst; einen zweiten IC-Chip, der mit dem ersten IC-Chip gekoppelt ist, wobei der zweite IC-Chip Folgendes umfasst: eine Supervisand-P-Einheit zum Empfangen von Speicherdienstklassen- (MCLOS-) Parametern von der Supervisor-P-Einheit; eine Vielzahl von Prozessorkernen; und einen Speicherbandbreitenzuteiler, der mit der Supervisand-P-Einheit und der Vielzahl von Prozessorkernen gekoppelt ist, um eine Vielzahl von Speicherbandbreiteneinstellungen basierend auf den MCLOS-Parametern anzuwenden, um Prioritäten von Speicherbandbreiten, die für eine oder mehrere Arbeitslasten zugeteilt sind, die durch die Vielzahl von Prozessorkernen verarbeitet werden sollen, dynamisch anzupassen.
  • Beispiel 42: Package-Einrichtung nach Beispiel 41, wobei die MCLOS-Parameter eine Kennung eines zu überwachenden Ereignistyps umfassen, wobei an dem zweiten IC-Chip ein Performanzüberwacher einer Speichersteuerung Performanzüberwachungsstatistiken basierend auf der Kennung des Ereignistyps erzeugen soll durch Überwachen einer Durchführung der einen oder der mehreren Arbeitslasten durch die Vielzahl von Prozessorkernen zumindest teilweise basierend auf Performanzüberwachungskonfigurationsparametern.
  • Beispiel 43: Package-Einrichtung nach Beispiel 42, wobei die erste P-Einheit ferner die Performanzüberwachungsstatistiken mit der zweiten P-Einheit kommunizieren soll.
  • Beispiel 44: Package-Einrichtung nach Beispiel 41, wobei die MCLOS-Parameter Informationen umfassen, die eine Entsprechung verschiedener Ebenen eines MCLOS-Klassifizierungsschemas jeweils mit einer jeweiligen Ebene eines anderen Dienstklassen-Klassifizierungsschemas identifizieren.
  • Beispiel 45: Package-Einrichtung nach Beispiel 41, wobei die Speicherdienstklassenparameter eine Vielzahl von Sätzen von Parametern umfassen, wobei jeder Satz für eine ausgewählte Speicherdienstklasse eine Priorität, einen minimalen Verzögerungswert und einen maximalen Verzögerungswert und eine Kennung der ausgewählten Speicherdienstklasse beinhaltet.
  • Beispiel 46: Package-Einrichtung nach Beispiel 41, wobei die erste P-Einheit Folgendes umfasst: eine proportional-integral-derivative (PID-) Steuerung zum kontinuierlichen Berechnen eines Fehlerwerts als eine Differenz zwischen einem Sollwert und einer Prozessvariablen der Performanzüberwachungsstatistiken; und einen Speicherbandbreitenausgleicher zum Erzeugen der Speicherbandbreiteneinstellungen zumindest teilweise basierend auf dem Fehlerwert.
  • Beispiel 47: Package-Einrichtung nach Beispiel 46, wobei die Performanzüberwachungskonfigurationsparameter den Sollwert, ein Zeitfenster, eine Vielzahl von Ereignissen und eine Vielzahl von Aktivierungsbits, die der Vielzahl von Ereignissen entsprechen, umfassen.
  • Beispiel 48: Verfahren, umfassend: Bestimmen, ob eine erste P-Einheit eines ersten IC-Chips eine Supervisor-P-Einheit oder eine Supervisand-P-Einheit ist; und wenn bestimmt wird, dass die erste P-Einheit die Supervisor-P-Einheit ist, Senden von Speicherdienstklassen- (MCLOS-) Parametern von der ersten P-Einheit an eine zweite P-Einheit eines zweiten IC-Chips; oder wenn bestimmt wird, dass die erste P-Einheit die Supervisand-P-Einheit ist, Empfangen der MCLOS-Parameter mit der ersten P-Einheit von der zweiten P-Einheit; wobei an dem einen von dem ersten IC-Chip oder dem zweiten IC-Chip, der die Supervisand-P-Einheit umfasst, die Supervisand-P-Einheit einem Speicherbandbreitenzuteiler signalisiert, basierend auf den MCLOS-Parametern, eine Vielzahl von Speicherbandbreiteneinstellungen anzuwenden, um Prioritäten von Speicherbandbreiten dynamisch anzupassen, die einer oder mehreren Arbeitslasten zugeteilt sind, die durch eine Vielzahl von Prozessorkernen verarbeitet werden.
  • Beispiel 49: Verfahren nach Beispiel 48, wobei die MCLOS-Parameter eine Kennung eines zu überwachenden Ereignistyps umfassen, wobei an dem einen des ersten IC-Chips oder des zweiten IC-Chips, der die Supervisand-P-Einheit umfasst, ein Performanzüberwacher einer Speichersteuerung Performanzüberwachungsstatistiken basierend auf der Kennung des Ereignistyps erzeugt, indem eine Durchführung der einen oder der mehreren Arbeitslasten durch die Vielzahl von Prozessorkernen zumindest teilweise basierend auf Performanzüberwachungskonfigurationsparametern überwacht wird.
  • Beispiel 50: Verfahren nach Beispiel 49, ferner umfassend, dass die erste P-Einheit die Performanzüberwachungsstatistiken mit der zweiten P-Einheit kommuniziert.
  • Beispiel 51: Verfahren nach Beispiel 48, wobei die MCLOS-Parameter Informationen umfassen, die eine Entsprechung verschiedener Ebenen eines MCLOS-Klassifizierungsschemas jeweils mit einer jeweiligen Ebene eines anderen Dienstklassen-Klassifizierungsschemas identifizieren.
  • Beispiel 52: Verfahren nach Beispiel 48, wobei eine oder mehrere der Vielzahl von Speicherbandbreiteneinstellungen einen ersten Wert für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit niedriger Priorität basierend auf einer zugewiesenen Speicherdienstklasse des Prozessorkerns mit niedriger Priorität umfassen.
  • Beispiel 53: Verfahren nach Beispiel 52, wobei eine oder mehrere der Vielzahl von Speicherbandbreiteneinstellungen einen zweiten Wert für eine Speicherbandbreitenzuteilung für einen Prozessorkern mit hoher Priorität basierend auf einer zugewiesenen Speicherdienstklasse des Prozessorkerns mit hoher Priorität umfassen, wobei der erste Wert kleiner ist als der zweite Wert.
  • Beispiel 54: Package-Einrichtung, umfassend: einen ersten IC-Chip, der eine erste P-Einheit und einen ersten Prozessor umfasst; und einen zweiten IC-Chip, der mit dem ersten IC-Chip gekoppelt ist, wobei der zweite IC-Chip eine zweite P-Einheit und einen zweiten Prozessor umfasst; wobei die erste P-Einheit Schaltungen umfasst, um: eine Differenz zwischen einer Metrik eines Leistungsverbrauchs und einer Leistungsschwelle zu bewerten, die gleich oder größer als eine thermische Sollleistungspezifikation der Package-Einrichtung ist; ein erstes Leistungsbudget und ein zweites Leistungsbudget basierend auf der Differenz und auf jeweiligen Gewichtungen von Dienstklassen zu bestimmen, die mit dem ersten Prozessor und dem zweiten Prozessor bereitgestellt werden sollen; das erste Leistungsbudget mit einer oder mehreren ersten Frequenzschwellen anzuwenden, die jeweils einem jeweiligen eines oder mehrerer erster Kerne des ersten Prozessors entsprechen; und das zweite Leistungsbudget der zweiten P-Einheit anzuzeigen; wobei die zweite P-Einheit Schaltungen zum Anwenden des zweiten Leistungsbudgets mit einer oder mehreren zweiten Frequenzschwellen umfasst, die jeweils einem jeweiligen eines oder mehrerer zweiter Kerne des zweiten Prozessors entsprechen.
  • Beispiel 55: Package-Einrichtung nach Beispiel 54, wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das allen Kernen der Package-Einrichtung eine minimale Frequenzschwelle zuweisen soll und das ein verbleibendes Frequenzbudget auf mehrere Kerne der Package-Einrichtung basierend auf den jeweiligen Gewichtungen von Dienstklassen zuweisen soll.
  • Beispiel 56: Package-Einrichtung nach Beispiel 54, wobei Kerne der Package-Einrichtung jeweils zu einer jeweiligen von mehreren CLOS-Gruppen gehören; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das jedem Kern einer der mehreren CLOS-Gruppen mit höchster Priorität eine jeweilige höchstmögliche Frequenzschwelle zuteilen soll, und das dann einem oder mehreren Kernen einer anderen der mehreren CLOS-Gruppen ein verbleibendes Leistungsbudget zuteilen soll.
  • Beispiel 57: Package-Einrichtung nach Beispiel 54, wobei ein erster Kern der Package-Einrichtung Befehle eines ersten Befehlssatzes ausführen soll; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das dem ersten Kern basierend auf dem ersten Befehlssatz eine Frequenzschwelle zuteilen soll.
  • Beispiel 58: Package-Einrichtung nach Beispiel 54, wobei die Metrik des Leistungsverbrauchs eine erste Metrik ist und die Leistungsschwelle eine erste Leistungsschwelle ist, und wobei die erste P-Einheit: erste Auswertungen der ersten Metrik basierend auf der ersten Leistungsschwelle durchführen soll; zweite Auswertungen einer zweiten Metrik des Leistungsverbrauchs durchführen soll, wobei die zweite Metrik kleiner als die Maximalleistungsgrenzenspezifikation ist, wobei eine erste Frequenz der ersten Auswertungen kleiner als eine zweite Frequenz der zweiten Auswertungen ist; und basierend auf den zweiten Auswertungen sukzessive eine oder mehrere Frequenzen des ersten Prozessors und des zweiten Prozessors drosseln soll, um die zweite Metrik zwischen der zweiten Leistungsschwelle und einer dritten Leistungsschwelle zu zyklisieren.
  • Beispiel 59: Package-Einrichtung nach Beispiel 58, wobei die erste Metrik einen Durchschnitt eines Leistungsverbrauchs über einen ersten Zeitraum repräsentiert und wobei die zweite Metrik einen Durchschnitt des Leistungsverbrauchs über einen zweiten Zeitraum repräsentiert, der kürzer ist als der erste Zeitraum.
  • Beispiel 60: Package-Einrichtung nach Beispiel 54, ferner umfassend einen dritten IC-Die, der eine dritte P-Einheit und einen dritten Prozessor umfasst, wobei: die erste P-Einheit als eine globale Supervisor-P-Einheit einer Leistungsverwaltungshierarchie arbeiten soll, wobei die globale Supervisor-P-Einheit die zweite P-Einheit steuern soll; und die zweite P-Einheit als lokale Supervisor-P-Einheit der Leistungsverwaltungshierarchie arbeiten soll, wobei die lokale Supervisor-P-Einheit die dritte P-Einheit steuern soll.
  • Beispiel 61: Package-Einrichtung nach Beispiel 54, wobei: die erste P-Einheit das erste Leistungsbudget ferner mit einer oder mehreren dritten Frequenzschwellen anwenden soll, die jeweils einem jeweiligen Beschleuniger des ersten IC-Die entsprechen; oder die zweite P-Einheit das zweite Leistungsbudget ferner mit einer oder mehreren vierten Frequenzschwellen anwenden soll, die jeweils einem jeweiligen Beschleuniger des zweiten IC-Die entsprechen.
  • Beispiel 62: Verfahren an einer Package-Einrichtung, wobei das Verfahren Folgendes umfasst: mit einer ersten P-Einheit eines ersten IC-Die: Bewerten einer Differenz zwischen einer Metrik eines Leistunsverbrauchs und einer Leistungsschwelle, die gleich oder größer als eine thermische Sollleistungsspezifikation der Package-Einrichtung ist; Bestimmen eines ersten Leistungsbudgets und eines zweiten Leistungsbudgets basierend auf der Differenz und auf jeweiligen Gewichtungen von Dienstklassen, die mit einem ersten Prozessor des ersten IC-Die und einem zweiten Prozessor eines zweiten IC-Die bereitgestellt werden sollen; Anwenden des ersten Leistungsbudgets mit einer oder mehreren ersten Frequenzschwellen, die jeweils einem jeweiligen eines oder mehrerer erster Kerne des ersten Prozessors entsprechen; und Anzeigen des zweiten Leistungsbudgets an die zweite P-Einheit; und mit einer zweiten P-Einheit des zweiten IC-Dies Anwenden des zweiten Leistungsbudgets mit einer oder mehreren zweiten Frequenzschwellen, die jeweils einem jeweiligen eines oder mehrerer zweiter Kerne des zweiten Prozessors entsprechen.
  • Beispiel 63: Verfahren nach Beispiel 62, wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen, das allen Kernen der Package-Einrichtung eine minimale Frequenzschwelle zuweist und das ein verbleibendes Frequenzbudget auf mehrere Kerne der Package-Einrichtung basierend auf den jeweiligen Gewichtungen von Dienstklassen zuweist.
  • Beispiel 64: Verfahren nach Beispiel 62, wobei Kerne der Package-Einrichtung jeweils zu einer jeweiligen von mehreren CLOS-Gruppen gehören; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen, das jedem Kern einer der mehreren CLOS-Gruppen mit höchster Priorität eine jeweilige höchstmögliche Frequenzschwelle zuteilt, und das dann einem oder mehreren Kernen einer anderen der mehreren CLOS-Gruppen ein verbleibendes Leistungsbudget zuteilt.
  • Beispiel 65: Verfahren nach Beispiel 62, wobei ein erster Kern der Package-Einrichtung Befehle eines ersten Befehlssatzes ausführt; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen, das dem ersten Kern basierend auf dem ersten Befehlssatz eine Frequenzschwelle zuweist.
  • Beispiel 66: Verfahren nach Beispiel 62, wobei die Metrik des Leistungsverbrauchs eine erste Metrik ist und die Leistungsschwelle eine erste Leistungsschwelle ist, und wobei die erste P-Einheit erste Auswertungen der ersten Metrik basierend auf der ersten Leistungsschwelle durchführt; zweite Auswertungen einer zweiten Metrik des Leistungsverbrauchs durchführt, wobei die zweite Metrik kleiner als die Maximalleistungsgrenzenspezifikation ist, wobei eine erste Frequenz der ersten Auswertungen kleiner als eine zweite Frequenz der zweiten Auswertungen ist; und basierend auf den zweiten Auswertungen sukzessive eine oder mehrere Frequenzen des ersten Prozessors und des zweiten Prozessors drosselt, um die zweite Metrik zwischen der zweiten Leistungsschwelle und einer dritten Leistungsschwelle zu zyklisieren.
  • Beispiel 67: Verfahren nach Beispiel 66, wobei die erste Metrik einen Durchschnitt eines Leistungsverbrauchs über einen ersten Zeitraum repräsentiert und wobei die zweite Metrik einen Durchschnitt des Leistungsverbrauchs über einen zweiten Zeitraum repräsentiert, der kürzer ist als der erste Zeitraum.
  • Beispiel 68: Verfahren nach Beispiel 62, ferner umfassend einen dritten IC-Die, der eine dritte P-Einheit und einen dritten Prozessor umfasst, wobei: die erste P-Einheit als eine globale Supervisor-P-Einheit einer Leistungsverwaltungshierarchie arbeitet, wobei die globale Supervisor-P-Einheit die zweite P-Einheit steuern soll; und die zweite P-Einheit als lokale Supervisor-P-Einheit der Leistungsverwaltungshierarchie arbeitet, wobei die lokale Supervisor-P-Einheit die dritte P-Einheit steuern soll.
  • Beispiel 69: System, umfassend: eine Package-Einrichtung, umfassend: einen ersten IC-Chip, der eine erste P-Einheit und einen ersten Prozessor umfasst; und einen zweiten IC-Chip, der mit dem ersten IC-Chip gekoppelt ist, wobei der zweite IC-Chip eine zweite P-Einheit und einen zweiten Prozessor umfasst; wobei die erste P-Einheit Schaltungen umfasst, um: eine Differenz zwischen einer Metrik eines Leistungsverbrauchs und einer Leistungsschwelle zu bewerten, die gleich oder größer als eine thermische Sollleistungspezifikation der Package-Einrichtung ist; ein erstes Leistungsbudget und ein zweites Leistungsbudget basierend auf der Differenz und auf jeweiligen Gewichtungen von Dienstklassen zu bestimmen, die mit dem ersten Prozessor und dem zweiten Prozessor bereitgestellt werden sollen; das erste Leistungsbudget mit einer oder mehreren ersten Frequenzschwellen anzuwenden, die jeweils einem jeweiligen eines oder mehrerer erster Kerne des ersten Prozessors entsprechen; und das zweite Leistungsbudget der zweiten P-Einheit anzuzeigen; wobei die zweite P-Einheit Schaltungen zum Anwenden des zweiten Leistungsbudgets mit einer oder mehreren zweiten Frequenzschwellen umfasst, die jeweils einem jeweiligen eines oder mehrerer zweiter Kerne des zweiten Prozessors entsprechen, und eine Anzeigeeinrichtung, die mit der Package-Einrichtung gekoppelt ist, wobei die Anzeigeeinrichtung ein Bild basierend auf einem mit dem ersten IC-Die kommunizierten Signal anzeigen soll.
  • Beispiel 70: System nach Beispiel 69, wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das allen Kernen der Package-Einrichtung eine minimale Frequenzschwelle zuweisen soll und das ein verbleibendes Frequenzbudget auf mehrere Kerne der Package-Einrichtung basierend auf den jeweiligen Gewichtungen von Dienstklassen zuweisen soll.
  • Beispiel 71: System nach Beispiel 69, wobei Kerne der Package-Einrichtung jeweils zu einer jeweiligen von mehreren CLOS-Gruppen gehören; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das jedem Kern einer der mehreren CLOS-Gruppen mit höchster Priorität eine jeweilige höchstmögliche Frequenzschwelle zuteilen soll, und das dann einem oder mehreren Kernen einer anderen der mehreren CLOS-Gruppen ein verbleibendes Leistungsbudget zuteilen soll.
  • Beispiel 72: System nach Beispiel 69, wobei ein erster Kern der Package-Einrichtung Befehle eines ersten Befehlssatzes ausführen soll; und wobei die erste P-Einheit und die zweite P-Einheit ein Frequenzzuteilungsschema ermöglichen sollen, das dem ersten Kern basierend auf dem ersten Befehlssatz eine Frequenzschwelle zuteilen soll.
  • Beispiel 73: System nach Beispiel 69, wobei die Metrik des Leistungsverbrauchs eine erste Metrik ist und die Leistungsschwelle eine erste Leistungsschwelle ist, und wobei die erste P-Einheit: erste Auswertungen der ersten Metrik basierend auf der ersten Leistungsschwelle durchführen soll; zweite Auswertungen einer zweiten Metrik des Leistungsverbrauchs durchführen soll, wobei die zweite Metrik kleiner als die Maximalleistungsgrenzenspezifikation ist, wobei eine erste Frequenz der ersten Auswertungen kleiner als eine zweite Frequenz der zweiten Auswertungen ist; und basierend auf den zweiten Auswertungen sukzessive eine oder mehrere Frequenzen des ersten Prozessors und des zweiten Prozessors drosseln soll, um die zweite Metrik zwischen der zweiten Leistungsschwelle und einer dritten Leistungsschwelle zu zyklisieren.
  • Beispiel 74: Package-Einrichgung, umfassend: einen ersten IC-Chip, der einen ersten Prozessor und eine erste P-Einheit umfasst; und einen zweiten IC-Chip, der einen zweiten Prozessor und eine zweite P-Einheit umfasst, die mit der ersten P-Einheit gekoppelt ist, wobei die erste P-Einheit und die zweite P-Einheit als eine Supervisor-P-Einheit bzw. eine Supervisant-P-Einheit einer hierarchischen Leistungsverwaltungsarchitektur arbeiten sollen; wobei die erste P-Einheit Schaltungen umfasst, um: eine Schnittstelle zum Kommunizieren mit einem Leistungsverwaltungsprozess bereitzustellen, der mit dem ersten Prozessor auszuführen ist; und eine Nachricht an die zweite P-Einheit basierend auf einer Eingabe zu kommunizieren, die von dem Leistungsverwaltungsprozess über die Schnittstelle empfangen wird, wobei die Nachricht eine Konfiguration eines oder mehrerer Kerne des zweiten Prozessors anzeigt; und wobei die zweite P-Einheit Schaltungen zum Modifizieren eines oder mehrerer Betriebsparameter des zweiten Prozessors basierend auf der Nachricht umfasst.
  • Beispiel 75: Package-Einrichtung nach Beispiel 74, wobei der eine oder die mehreren Betriebsparameter einen Basisfrequenzparameter umfassen.
  • Beispiel 76: Package-Einrichtung nach Beispiel 74, wobei der eine oder die mehreren Betriebsparameter einen Turbofrequenzparameter umfassen.
  • Beispiel 77: Package-Einrichtung nach Beispiel 74, wobei die Nachricht eine Zugehörigkeit des einen oder der mehreren Kerne zu einer Kerngruppe mehrerer Kerngruppen identifiziert und wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter basierend auf der Zugehörigkeit modifizieren soll.
  • Beispiel 78: Package-Einrichtung nach Beispiel 74, wobei die Nachricht eine Gewichtung einer Kerngruppe relativ zu einer oder mehreren anderen Kerngruppen identifiziert und wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter basierend auf der Gewichtung modifizieren soll.
  • Beispiel 79: Package-Einrichtung nach Beispiel 74, wobei die Nachricht der zweiten P-Einheit ein Leistungsbudget angeben soll, das auf mehrere Kerne des zweiten Prozessors verteilt werden soll.
  • Beispiel 80: Package-Einrichtung nach Beispiel 74, wobei ein beliebiger Zugriff auf die zweite P-Einheit durch den Leistungsverwaltungsprozess über die erste P-Einheit erfolgen soll.
  • Beispiel 81: Package-Einrichtung nach Beispiel 74, ferner umfassen: einen dritten IC-Die, der einen dritten Prozessor und eine dritte P-Einheit, die mit der dritten P-Einheit gekoppelt ist, umfasst, wobei die dritte P-Einheit als eine weitere Supervisand-P-Einheit der Architektur für hierarchische Leistungsverwaltung arbeiten soll; wobei die erste P-Einheit ferner Schaltungen umfasst, um: eine zweite Nachricht an die dritte P-Einheit basierend auf der Eingabe zu kommunizieren, die von dem Leistungsverwaltungsprozess empfangen wird, wobei die zweite Nachricht eine zweite Konfiguration eines oder mehrerer zweiter Kerne des dritten Prozessors anzeigt; und wobei die dritte P-Einheit Schaltungen zum Modifizieren eines oder mehrerer zweiter Betriebsparameter des dritten Prozessors basierend auf der zweiten Nachricht umfasst.
  • Beispiel 82: System, umfassend: einen ersten IC-Chip, der einen ersten Prozessor und eine erste P-Einheit umfasst; und einen zweiten IC-Chip, der einen zweiten Prozessor und eine zweite P-Einheit umfasst, die mit der ersten P-Einheit gekoppelt ist, wobei die erste P-Einheit und die zweite P-Einheit als eine Supervisor-P-Einheit bzw. eine Supervisant-P-Einheit einer hierarchischen Leistungsverwaltungsarchitektur arbeiten sollen; wobei die erste P-Einheit Schaltungen umfasst, um: eine Schnittstelle zum Kommunizieren mit einem Leistungsverwaltungsprozess bereitzustellen, der mit dem ersten Prozessor auszuführen ist; und eine Nachricht an die zweite P-Einheit basierend auf einer Eingabe zu kommunizieren, die von dem Leistungsverwaltungsprozess über die Schnittstelle empfangen wird, wobei die Nachricht eine Konfiguration eines oder mehrerer Kerne des zweiten Prozessors anzeigt; und wobei die zweite P-Einheit Schaltungen zum Modifizieren eines oder mehrerer Betriebsparameter des zweiten Prozessors basierend auf der Nachricht umfasst, und eine Anzeigeeinrichtung, die mit der Package-Einheit gekoppelt ist, wobei die Anzeigeeinrichtung ein Bild basierend auf einem mit dem ersten Prozessor kommunizierten Signal anzeigen soll.
  • Beispiel 83: System nach Beispiel 82, wobei der eine oder die mehreren Betriebsparameter einen Basisfrequenzparameter umfassen.
  • Beispiel 84: System nach Beispiel 82, wobei der eine oder die mehreren Betriebsparameter einen Turbofrequenzparameter umfassen.
  • Beispiel 85: System nach Beispiel 82, wobei die Nachricht eine Zugehörigkeit des einen oder der mehreren Kerne zu einer Kerngruppe mehrerer Kerngruppen identifiziert und wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter basierend auf der Zugehörigkeit modifizieren soll.
  • Beispiel 86: System nach Beispiel 82, wobei die Nachricht eine Gewichtung einer Kerngruppe relativ zu einer oder mehreren anderen Kerngruppen identifiziert und wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter basierend auf der Gewichtung modifizieren soll.
  • Beispiel 87: System nach Beispiel 82, wobei die Nachricht der zweiten P-Einheit ein Leistungsbudget angeben soll, das auf mehrere Kerne des zweiten Prozessors verteilt werden soll.
  • Beispiel 88: System nach Beispiel 82, wobei ein beliebiger Zugriff auf die zweite P-Einheit durch den Leistungsverwaltungsprozess über die erste P-Einheit erfolgen soll.
  • Beispiel 89: System nach Beispiel 82, wobei die Package-Einrichtung ferner Folgendes umfasst: einen dritten IC-Die, der einen dritten Prozessor und eine dritte P-Einheit, die mit der dritten P-Einheit gekoppelt ist, umfasst, wobei die dritte P-Einheit als eine weitere Supervisand-P-Einheit der Architektur für hierarchische Leistungsverwaltung arbeiten soll; wobei die erste P-Einheit ferner Schaltungen umfasst, um: eine zweite Nachricht an die dritte P-Einheit basierend auf der Eingabe zu kommunizieren, die von dem Leistungsverwaltungsprozess empfangen wird, wobei die zweite Nachricht eine zweite Konfiguration eines oder mehrerer zweiter Kerne des dritten Prozessors anzeigt; und wobei die dritte P-Einheit Schaltungen zum Modifizieren eines oder mehrerer zweiter Betriebsparameter des dritten Prozessors basierend auf der zweiten Nachricht umfasst.
  • Beispiel 90: Verfahren an einer Package-Einrichtung, wobei das Verfahren Folgendes umfasst: Bereitstellen, mit einer ersten P-Einheit eines ersten IC-Die, einer Schnittstelle zum Kommunizieren mit einem Leistungsverwaltungsprozess, der mit einem ersten Prozessor des ersten IC-Die ausgeführt wird, wobei ein zweiter IC-Die einen zweiten Prozessor und eine zweite P-Einheit umfasst, die mit der ersten P-Einheit gekoppelt ist, wobei die erste P-Einheit und die zweite P-Einheit als eine Supervisor-P-Einheit bzw. eine Supervisand-P-Einheit einer Architektur für hierarchische Leistungsverwaltungsarchitektur arbeiten sollen; basierend auf einer von dem Leistungsverwaltungsprozess über die Schnittstelle empfangenen Eingabe erfolgendes Kommunizieren einer Nachricht von der ersten P-Einheit an die zweite P-Einheit, wobei die Nachricht eine Konfiguration eines oder mehrerer Kerne des zweiten Prozessors anzeigt; und mit der zweiten P-Einheit erfolgendes Modifizieren eines oder mehrerer Betriebsparameter des zweiten Prozessors basierend auf der Nachricht.
  • Beispiel 91: Das Verfahren nach Beispiel 90, wobei der eine oder die mehreren Betriebsparameter einen Basisfrequenzparameter umfassen.
  • Beispiel 92: Verfahren nach Beispiel 90, wobei der eine oder die mehreren Betriebsparameter einen Turbofrequenzparameter umfassen.
  • Beispiel 93: Verfahren nach Beispiel 90, wobei die Nachricht eine Zugehörigkeit des einen oder der mehreren Kerne zu einer Kerngruppe mehrerer Kerngruppen identifiziert und wobei die zweite P-Einheit den einen oder die mehreren Betriebsparameter basierend auf der Zugehörigkeit modifizieren soll.
  • Es wird eine Zusammenfassung bereitgestellt, die es dem Leser ermöglicht, das Wesen und den Kern der technischen Offenbarung zu ermitteln. 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.

Claims (33)

  1. Vorrichtung, umfassend eine Vielzahl von Dies, die Prozessor-Dies und E/A-Dies beinhaltet; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl von Dies eine Leistungsverwaltungseinheit beinhaltet, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert; ein erstes Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist; und ein zweites Interconnect-Fabric, das mit der Supervisor-Einheit und den Supvervisand-Einheiten gekoppelt ist, wobei das zweite Interconnect-Fabric schneller ist als das erste Interconnect-Fabric.
  2. Vorrichtung nach Anspruch 1, wobei das zweite Interconnect-Fabric ein synchrones Fabric umfasst.
  3. Vorrichtung nach Anspruch 1 oder Anspruch 2, wobei jede Leistungsverwaltungseinheit Zugriff auf einen dedizierten Abschnitt eines Speichers hat.
  4. Vorrichtung nach Anspruch 3, wobei jede Leistungsverwaltungseinheit eine Firmware ausführt, die eine Sendermailbox und eine Empfängermailbox beinhaltet.
  5. Vorrichtung nach Anspruch 4, wobei die Empfängermailbox empfangene Daten in dem dedizierten Abschnitt des Speichers speichert.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei die Supervisor-Einheit eine erste Supervisor-Einheit ist und wobei die Leistungsverwaltungseinheiten eine zweite Supervisor-Einheit beinhalten, wobei die zweite Supervisor-Einheit an die erste Supervisor-Einheit meldet.
  7. Vorrichtung nach einem der Ansprüche 1 bis 6, wobei die Prozessor-Dies ein Betriebssystem ausführen, wobei das Betriebssystem mit einer Leistungsverwaltung in der Vorrichtung kommuniziert, die die Supervisor-Einheit ist, um eine Leistung der Vorrichtung zu steuern.
  8. Vorrichtung nach einem der Ansprüche 1 bis 7, wobei die Vielzahl von Dies Steckkarten und Plattformkomponenten umfasst.
  9. Vorrichtung, umfassend eine Vielzahl von Dies, die Rechen-Dies und E/A-Dies beinhaltet; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl von Dies eine Leistungsverwaltungseinheit beinhaltet, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert; und eine Vielzahl von Maximalleistungsdetektoren zum Detektieren eines Abfalls einer Spannung einer Eingangsleistungsversorgungsschiene, wobei jeder Maximalleistungsdetektor in einem der Rechen-Dies positioniert ist, wobei ein Rechen-Die, der zwischen mindestens zwei Rechen-Dies positioniert ist, ein Inhaber von Entscheidungen ist, die mit einem Maximalleistungsdetektor des Rechen-Die assoziiert sind.
  10. Vorrichtung nach Anspruch 9, wobei die Maximalleistungsdetektoren in den mindestens zwei Rechen-Dies deaktiviert sind.
  11. Vorrichtung nach Anspruch 9 oder Anspruch 10, ferner umfassend eine Vielzahl von Schnellabfalldetektoren, wobei jeder Rechen-Die der Vielzahl einen Schnellabfalldetektor beinhaltet.
  12. Vorrichtung nach Anspruch 11, wobei der Schnellabfalldetektor in allen Rechen-Dies aktiviert ist.
  13. Vorrichtung nach Anspruch 10, ferner umfassend eine Vielzahl von Schnellabfalldetektoren, wobei jeder Maximalleistungsdetektor einen Schnellabfalldetektor beinhaltet, wobei die Schnellabfalldetektoren auch dann aktiviert sind, wenn die Maximalleistungsdetektoren deaktiviert sind.
  14. Vorrichtung nach einem der Ansprüche 9 bis 13, wobei eine Leistungsverwaltungseinheit eines der E/A-Dies die Supervisor-Einheit ist und wobei die Leistungsverwaltungseinheiten der Rechen-Dies die Supervisand-Einheiten sind.
  15. Vorrichtung nach einem der Ansprüche 9 bis 14, wobei der Maximalleistungsdetektor des Rechen-Die ein Mehrfachschwellenleistungsdetektor zum Detektieren des Abfalls bei mehreren Schwellen einschließlich einer Schnelldetektionsschwelle zum Detektieren eines schnellen Abfalls der Spannung der Eingangsleistungsversorgungsschiene ist.
  16. Vorrichtung nach Anspruch 15, wobei bei Detektion des schnellen Abfalls der Maximalleistungsdetektor eine harte Drosselung zu allen Prozessorkernen aller Rechen-Dies auslösen soll.
  17. Einrichtung nach Anspruch 16, ferner umfassend: ein erstes Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist; und ein zweites Interconnect-Fabric, das mit der Supervisor-Einheit und den Supervisand-Einheiten gekoppelt ist, wobei das zweite Interconnect-Fabric schneller ist als das erste Interconnect-Fabric, und wobei die harte Drosselung über das zweite Interconnect-Fabric gesendet wird.
  18. Vorrichtung nach Anspruch 16 oder Anspruch 17, wobei die harte Drosselung eine Reduzierung einer Betriebsspannung und/oder -frequenz aller Rechen-Dies innerhalb einer vorbestimmten Zeit umfasst, wonach die Supervisor-Einheit eine globale gemeinsam genutzte Frequenzobergrenze für alle Supervisand-Einheiten innerhalb einer Domäne der Supervisor-Einheit senden soll.
  19. Vorrichtung nach Anspruch 18, wobei die Supervisand-Einheiten eine Nachricht an die Supervisor-Einheit senden sollen, die die globale gemeinsam genutzte Frequenzobergrenze angibt, und wobei die Supervisand-Einheiten die globale gemeinsam genutzte Frequenzobergrenze innerhalb ihrer jeweiligen Dies durchsetzen sollen.
  20. Vorrichtung nach Anspruch 19, wobei der Rechen-Die, der der Inhaber von Entscheidungen ist, die mit dem Maximalleistungsdetektor des Rechen-Die assoziiert sind, die harte Drosselung deaktivieren soll, nachdem die Rechen-Dies dem Rechen-Die angeben, dass die globale gemeinsam genutzte Frequenzobergrenze durchgesetzt wird und die mehreren Rechen-Dies auf einer sicheren Leistungsstufe arbeiten.
  21. Vorrichtung nach Anspruch 20, wobei die Supervisor-Einheit dazu ausgelegt ist, die globale gemeinsam genutzte Frequenzobergrenze für Rechen-Dies allmählich zu erhöhen, nachdem eine vorbestimmte Wartezeit ab einer Zeit abläuft, zu der die harte Drosselung deaktiviert wird.
  22. Vorrichtung nach einem der Ansprüche 15 bis 21, wobei bei Detektion, dass die Spannung des Abfalls eine oder mehrere der mehreren Schwellen überquert hat, während die Spannung des Abfalls die Schnelldetektionsschwelle nicht überquert, der Maximalleistungsdetektor eine sanfte Drosselung zu allen Prozessorkernen aller Rechen-Dies auslösen soll.
  23. Vorrichtung nach Anspruch 22, wobei die sanfte Drosselung Strecken eines Arbeitszyklus von einem oder mehreren Takten zu allen Prozessorkernen des Rechen-Dies umfasst.
  24. Vorrichtung, umfassend eine Vielzahl von Dies, die Rechen-Dies und E/A-Dies beinhaltet, wobei jeder Die ein Interconnect-Fabric mit Fabric-Komponenten beinhaltet und ein Interconnect die Fabric-Komponenten miteinander verbindet; eine Vielzahl von Leistungsverwaltungseinheiten, wobei jeder Die der Vielzahl eine Leistungsverwaltungseinheit aufweist, so dass mindestens eine der Leistungsverwaltungseinheiten eine Supervisor-Einheit ist und mindestens zwei der Leistungsverwaltungseinheiten Supervisand-Einheiten sind, wobei die Leistungsverwaltungseinheiten hierarchisch so angeordnet sind, dass die Supervisor-Einheit die mindestens zwei Supervisand-Einheiten steuert, wobei jede Supervisand-Einheit eine Frequenz ihres Interconnect-Fabric in Konsultation mit benachbarten Supervisand-Einheiten und einer oder mehreren Einschränkungen von der Supervisor-Einheit bestimmt.
  25. Vorrichtung nach Anspruch 24, wobei eine individuelle Supervisand-Einheit eine Arbeitslastaktivität ihres Die basierend auf Telemetriedaten und Heuristiken bestimmt.
  26. Vorrichtung nach Anspruch 25, wobei die Telemetriedaten eine Wertänderung eines oder mehrerer Hardwareperformanzzähler beinhalten.
  27. Vorrichtung nach Anspruch 25 oder Anspruch 26, wobei die individuelle Supervisand-Einheit Teil eines Die ist, der mit einem Speicher gekoppelt ist, wobei die Heuristiken Verkehr auf einem Bus beinhalten, der zwischen den Die und den Speicher gekoppelt ist.
  28. Vorrichtung nach einem der Ansprüche 25 bis 27, wobei die individuelle Supervisand-Einheit eine aktuelle Betriebsspannung und/oder -frequenz ihrer benachbarten Supervisand-Einheit über einen Interconnect zwischen den Supervisand-Einheiten empfängt.
  29. Vorrichtung nach Anspruch 28, wobei die individuelle Supervisand-Einheit eine Frequenzanfrage basierend auf Frequenzanfragen benachbarter Supervisand-Einheiten auflöst.
  30. Vorrichtung nach Anspruch 29, wobei die eine oder die mehreren Einschränkungen eine oder mehrere der Folgenden beinhalten: maximale Gesamtleistungsgrenze eines Sockels, minimale Gesamtleistungsgrenze des Sockels, minimale Performanzstufe des Sockels, thermische Einschränkungen oder Benutzergrenzen.
  31. Vorrichtung nach Anspruch 30, wobei die individuelle Supervisand-Einheit die Frequenz ihres Interconnect-Fabric durch Anwendung eines Skalierungsfaktors bestimmt, der eine Kernfrequenz in eine Frequenz für das Interconnect-Fabric umwandelt.
  32. Vorrichtung nach einem der Ansprüche 24 bis 31, wobei das Interconnect-Fabric eines Die mit einem Interconnect-Fabric eines anderen Die gekoppelt ist.
  33. Vorrichtung nach einem der Ansprüche 24 bis 32, wobei jeder Die mindestens zwei Leistungsverwaltungseinheiten beinhaltet.
DE102021124514.1A 2020-09-26 2021-09-22 Vorrichtung und verfahren für hierarchische leistungsverwaltung Pending DE102021124514A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/033,753 US12093100B2 (en) 2020-09-26 2020-09-26 Hierarchical power management apparatus and method
US17/033,753 2020-09-26

Publications (1)

Publication Number Publication Date
DE102021124514A1 true DE102021124514A1 (de) 2022-05-25

Family

ID=78650010

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021124514.1A Pending DE102021124514A1 (de) 2020-09-26 2021-09-22 Vorrichtung und verfahren für hierarchische leistungsverwaltung

Country Status (7)

Country Link
US (1) US12093100B2 (de)
EP (1) EP4217823A4 (de)
CN (1) CN116097196A (de)
DE (1) DE102021124514A1 (de)
NL (1) NL2029059B1 (de)
TW (1) TW202219698A (de)
WO (1) WO2022067120A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527714B (zh) * 2020-11-13 2023-03-28 苏州浪潮智能科技有限公司 一种服务器的peci信号互联方法、系统、设备以及介质
US12056535B2 (en) * 2020-12-30 2024-08-06 Ati Technologies Ulc Method and apparatus for providing non-compute unit power control in integrated circuits
EP4024222A1 (de) * 2021-01-04 2022-07-06 Imec VZW Integrierte schaltung mit 3d-partitionierung
US11960338B2 (en) * 2021-02-23 2024-04-16 Microsoft Technology Licensing, Llc Activity smoothener circuit controlling rates of change of localized processing activity in an integrated circuit (IC), and related methods
US11822411B2 (en) * 2021-05-06 2023-11-21 Apple Inc. Telemetry push aggregation
US11507285B1 (en) * 2021-05-12 2022-11-22 TORmem Inc. Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics
US11960339B2 (en) * 2021-07-09 2024-04-16 Advanced Micro Devices, Inc. Multi-die stacked power delivery
JP2023021662A (ja) * 2021-08-02 2023-02-14 富士通株式会社 プログラムおよび管理方法
US20230205306A1 (en) * 2021-12-24 2023-06-29 Advanced Micro Devices, Inc Default Boost Mode State for Devices
DE102022114625B3 (de) * 2022-06-10 2023-07-27 Elmos Semiconductor Se Zeitgenerator als taktgeber für eine elektronische schaltung
US11941742B2 (en) * 2022-06-23 2024-03-26 Apple Inc. Tiled processor communication fabric
US20240071437A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Die Disablement
US20240095168A1 (en) * 2022-09-15 2024-03-21 Mediatek Inc. Dynamic Cache Resource Allocation for Quality of Service and System Power Reduction
US20240118740A1 (en) * 2022-10-06 2024-04-11 Google Llc Workload-Aware Voltage Regulator Tuning
US20240160581A1 (en) * 2022-11-14 2024-05-16 Intel Corporation Cache optimization mechanism
CN116191445B (zh) * 2023-04-07 2023-08-08 费莱(浙江)科技有限公司 一种用于分布式电源的自适应电压控制方法及系统
CN116545591B (zh) * 2023-07-05 2023-09-26 库尔兹电子科技(南通)有限公司 一种基于bms电池管理系统的数据传输方法
KR102643030B1 (ko) * 2023-10-10 2024-03-04 주식회사 잇다반도체 시스템 온 칩 및 멀티 칩 전력 관리 시스템

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389493B1 (en) 1999-06-29 2002-05-14 Cisco Technology, Inc. System and method for dynamically allocating bandwidth to a plurality of slave cards coupled to a bus
US6802014B1 (en) * 2000-10-26 2004-10-05 Apple Computer, Inc. Method and apparatus for managing power in computer systems
US7805697B2 (en) 2002-12-06 2010-09-28 Multigig Inc. Rotary clock synchronous fabric
KR100992177B1 (ko) 2003-05-07 2010-11-04 모사이드 테크놀로지스 코포레이션 파워 아일랜드를 사용한 집적 회로의 파워 관리
US7213084B2 (en) 2003-10-10 2007-05-01 International Business Machines Corporation System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US7509506B2 (en) 2005-06-09 2009-03-24 International Business Machines Corporation Hierarchical system and method for managing power usage among server data processing systems
US7421601B2 (en) 2006-02-17 2008-09-02 International Business Machines Corporation Method and system for controlling power in a chip through a power-performance monitor and control unit
KR100866604B1 (ko) 2007-01-23 2008-11-03 삼성전자주식회사 전원제어 장치 및 전원제어 방법
US8448001B1 (en) 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US8595721B2 (en) 2009-12-22 2013-11-26 International Business Machines Corporation Preserving a dedicated temporary allocation virtualization function in a power management environment
US8364997B2 (en) 2009-12-22 2013-01-29 Intel Corporation Virtual-CPU based frequency and voltage scaling
US8527929B2 (en) 2009-12-23 2013-09-03 Cadence Design Systems, Inc. Method and system for optimally connecting interfaces across multiple fabrics
US8990591B2 (en) 2009-12-31 2015-03-24 Intel Corporation Power management system for selectively changing the power state of devices using an OS power management framework and non-OS power management framework
US8700926B2 (en) 2010-01-11 2014-04-15 Qualcomm Incorporated System and method of tuning a dynamic clock and voltage switching algorithm based on workload requests
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
KR101689556B1 (ko) * 2010-09-20 2016-12-26 삼성전자주식회사 계층적 전력 제어 회로, 이를 이용한 전력 제어 방법, 및 이를 포함하는 SoC 장치
CN106125885B (zh) 2010-12-21 2019-12-31 英特尔公司 用于功率管理的系统和方法
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US20130262826A1 (en) 2011-10-06 2013-10-03 Alexander Gendler Apparatus and method for dynamically managing memory access bandwidth in multi-core processor
US9348656B2 (en) 2011-12-19 2016-05-24 Advanced Micro Devices, Inc. Apparatus and method for managing power among a plurality of processors sharing a thermal platform
WO2013115829A2 (en) 2012-02-04 2013-08-08 Empire Technology Development Llc Core-level dynamic voltage and frequency scaling in a chip multiprocessor
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US8928678B2 (en) 2012-08-02 2015-01-06 Intel Corporation Media workload scheduler
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
CN103326714B (zh) 2013-05-31 2016-03-30 华为技术有限公司 数字控制振荡器、硬件性能检测方法、系统和检测器
JP5958774B2 (ja) 2014-02-04 2016-08-02 株式会社村田製作所 電力増幅モジュール
KR20150106224A (ko) 2014-03-11 2015-09-21 삼성전자주식회사 시스템-온-칩 및 그의 부하 불균형 검출 방법
US9507405B2 (en) 2014-06-18 2016-11-29 Oracle International Corporation System and method for managing power in a chip multiprocessor using a proportional feedback mechanism
US9874927B2 (en) * 2014-06-26 2018-01-23 Intel Corporation Method and apparatus for precision CPU maximum power detection
KR102222752B1 (ko) 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법
CN105573463A (zh) 2014-10-17 2016-05-11 深圳市中兴微电子技术有限公司 一种功耗管理方法及装置
US9287208B1 (en) 2014-10-27 2016-03-15 Intel Corporation Architecture for on-die interconnect
US20160154449A1 (en) 2014-11-27 2016-06-02 Eui Choel LIM System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same
US9645935B2 (en) 2015-01-13 2017-05-09 International Business Machines Corporation Intelligent bandwidth shifting mechanism
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US10248177B2 (en) * 2015-05-22 2019-04-02 Advanced Micro Devices, Inc. Droop detection and regulation for processor tiles
US10090674B2 (en) 2015-09-21 2018-10-02 Silicon Laboratories Inc. Maximum supply voltage selection
US9934048B2 (en) 2016-03-29 2018-04-03 Intel Corporation Systems, methods and devices for dynamic power management of devices using game theory
CN110199242B (zh) 2017-02-24 2023-08-29 英特尔公司 基于使用参数配置处理器的基本时钟频率
US20190007747A1 (en) 2017-06-29 2019-01-03 Intel Corporation Technologies for providing adaptive platform quality of service
US10642338B2 (en) 2017-09-28 2020-05-05 Intel Corporation Hierarchical power management unit for low power and low duty cycle devices
WO2019104087A1 (en) 2017-11-21 2019-05-31 Google Llc Managing processing system efficiency
JP7214746B2 (ja) 2018-05-01 2023-01-30 インテル コーポレイション 電力制御アービトレーション
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
US11726910B2 (en) 2019-03-13 2023-08-15 Intel Corporation Dynamic control of memory bandwidth allocation for a processor
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor

Also Published As

Publication number Publication date
CN116097196A (zh) 2023-05-09
EP4217823A1 (de) 2023-08-02
EP4217823A4 (de) 2024-09-11
NL2029059B1 (en) 2022-07-27
US20220100247A1 (en) 2022-03-31
WO2022067120A1 (en) 2022-03-31
NL2029059A (en) 2022-05-24
US12093100B2 (en) 2024-09-17
TW202219698A (zh) 2022-05-16

Similar Documents

Publication Publication Date Title
DE102021124514A1 (de) Vorrichtung und verfahren für hierarchische leistungsverwaltung
US20220113790A1 (en) Intent-driven power management
DE102021209145A1 (de) Verfahren und vorrichtung zum koordinieren von edge-plattformen
CN104798008B (zh) 控制处理器的可配置的峰值性能极限
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
US20180173538A1 (en) Systems, methods and devices for dynamic power management of devices using game theory
DE102021126686A1 (de) Leistungsverwaltungseinrichtung und -verfahren für mehrebenenspeichersysteme
DE112013005278T5 (de) Dynamisches Abgleichen von Leistung über eine Mehrzahl von Prozessordomänen gemäß Leistungsabgleichsteuerungs-BIAS
DE102021207160A1 (de) Verfahren und einrichtung zur verwaltung der dienstgüte in bezug auf service-level-agreements in einer rechenvorrichtung
DE102022203266A1 (de) Verfahren und einrichtungen zum automatischen aktualisieren von künstliche-intelligenz-modellen für autonome fabriken
DE102022202554A1 (de) Verfahren, einrichtungen und herstellungsartikel zum dynamischen zuweisen von cache
DE102021119090A1 (de) Einrichtung und verfahren für energieeffiziente kernspannungsauswahl
DE102021213195A1 (de) Zeitbewusste universelle eingabe/ausgabe für industrielle steuerungssysteme
US20220407317A1 (en) Adaptive burst power and fast battery charging apparatus and method
DE102022128300A1 (de) Verfahren und einrichtungen zum implementieren einer edge-skalierbaren adaptiv granulierten überwachung und telemetrieverarbeitung für multi-qos-dienste
DE102021128527A1 (de) Vorrichtung, verfahren und system zur programmierung einer leistungsversorgung zur erleichterung von dynamischer leistungsabstimmung
EP4075237A2 (de) Vorrichtung und verfahren zur reduzierung der bereitschaftsleistung für systeme im batteriebetrieb mit einer angeschlossenen busbetriebenen vorrichtung
DE102021130628A1 (de) Sicherheitsverriegelungseinrichtung und verfahren für geistiges eigentum
DE102021132804A1 (de) Ospm-richtlinienverfahren und -einrichtung zur dynamischen usb-c-modusauswahl
US12117469B2 (en) Per-part real-time load-line measurement apparatus and method
DE102022132399A1 (de) Verfahren, systeme, einrichtungen und herstellungsartikel zum zwischenspeichern von medien auf grundlage eines dienstgütevereinbarungstyps
US20210167014A1 (en) Apparatus and method to increase effective capacitance with layout staples
DE102022105892A1 (de) Einrichtung und verfahren zum wiederherstellen einer kennwortgeschützten endpunktvorrichtung in einen betriebszustand aus einem niedrigleistungszustand
US20220197364A1 (en) Power management for universal serial bus (usb) type-c port
US12124314B2 (en) Apparatus and method to detect power supply security attack and risk mitigation