DE102020134491A1 - System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften - Google Patents

System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften Download PDF

Info

Publication number
DE102020134491A1
DE102020134491A1 DE102020134491.0A DE102020134491A DE102020134491A1 DE 102020134491 A1 DE102020134491 A1 DE 102020134491A1 DE 102020134491 A DE102020134491 A DE 102020134491A DE 102020134491 A1 DE102020134491 A1 DE 102020134491A1
Authority
DE
Germany
Prior art keywords
processor
core
cores
background
mode
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
DE102020134491.0A
Other languages
English (en)
Inventor
Jianfang Zhu
Deepak Samuel Kirubakaran
Raoul Rivas Toledano
Chee Lim Nge
Rajshree Chabukswar
James Hermerding II
Sudheer Nair
William Braun
Zhongsheng WANG
Russell Fenger
Udayan Kapaley
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 DE102020134491A1 publication Critical patent/DE102020134491A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3231Monitoring the presence, absence or movement of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

In einer Ausführungsform beinhaltet ein Prozessor Folgendes: mindestens einen Kern; und einen Energiecontroller, der mit dem mindestens einen Kern gekoppelt ist. Der Energiecontroller kann Folgendes beinhalten: eine Arbeitslast-Überwachungsschaltung zum Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, während der mindestens eine Kern während einer aktiven Laufzeit Hintergrundaufgaben ausführte, und eine Steuerschaltung zum dynamischen Anwenden einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Prozessors zu verringern. Weitere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Gebiet der Erfindung
  • Ausführungsformen betreffen Arbeitslastplanung in einem Prozessor.
  • Stand der Technik
  • Bei Computersystemen, die Teil großer Arbeitsplatz- oder anderer Entitäten sind, ermöglicht die Unternehmens-Informationstechnologie (IT) die Verwaltung eines Einsatzes von Software und Diensten in großem Maßstab. Diese Einsätze stellen mit Hilfe von z. B. geplanten Aufgaben vielfältige Verwaltungs-, Wartungs- und Sicherheitsdienste auf Plattformen bereit. Ein derartiger Betrieb geht zulasten der Batterielebensdauer und der Vordergrund-Reaktionsfähigkeit gegenüber Endbenutzern. Viele Systeme führen eine große Anzahl von routinemäßigen Wartungs- und Hintergrundaufgaben aus, deren Ablauf geplant ist und über die Endbenutzer keine Kontrolle haben, da diese Richtlinien von IT-Administratoren konfiguriert und verwaltet werden. Geplante Hintergrundausgabenaktivität in einem System im Leerlauf kann zeitweise hohe Prozessorauslastung verursachen.
  • Zusätzlich zum Einfluss auf die Batterielebensdauer werden geplante Aufgaben gleichzeitig mit benutzerkritischen Vordergrundaufgaben abgearbeitet, was zu Ressourcenkonkurrenz und häufigen Thread-Migrationen führt, die sich auf die Vordergrundleistung und das Reaktionsvermögen auf benutzerkritische Aufgaben auswirkt. Die durchschnittliche Batterielebensdauer in Systemen kann durch Hintergrund-Software und -Dienste beeinflusst werden, da sie basierend auf vom Administrator konfigurierten IT-Richtlinien so geplant sind, dass sie als Routineaufgaben ablaufen. Dies beeinflusst Mobilität und Benutzererlebnis. Um Erwartungen an die Batterielebensdauer zu erfüllen, können Erstausrüster (Original Equipment Manufacturers - OEMs) niedrige Energiegrenzen für eine Plattform konfigurieren, während im Gleichstrommodus gearbeitet wird, was das Benutzererlebnis und das Reaktionsvermögen aufgrund von Frequenzbeschränkungen negativ beeinflussen kann und im Wechselstrom- und in Gleichstrommodus ein uneinheitliches Benutzererlebnis bewirken kann. Zusätzlich zu Belangen der Batterielebensdauer verursacht eine starke Prozessorauslastung wegen Hintergrundaufgaben bei lüfterlosen Gestaltungen eine starke Wärmeabstrahlung, was sich auf das Benutzererlebnis auswirkt. Und bei Gestaltungen, die einen Lüfter aufweisen, bewirken Hintergrundaktivitäten eine hohe Drehzahl des Lüfters, was selbst bei inaktivem System zu schlechter Akustik führt, was das Benutzererlebnis beeinflusst.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Abschnitts eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockdiagramm eines Mehrdomänen-Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne beinhaltet.
    • 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform.
    • 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform.
    • 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform.
    • 9 ist ein Blockdiagramm eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 10 ist ein Blockdiagramm eines repräsentativen SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 11 ist ein Blockdiagramm eines weiteren beispielhaften SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 12 ist ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
    • 13 ist ein Blockdiagramm eines weiteren beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
    • 14 ist ein Blockdiagram eines repräsentativen Computersystems.
    • 15 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 16 ist ein Blockdiagramm, das ein IP-Kern-Entwicklungssystem darstellt, das verwendet wird, um eine integrierte Schaltung herzustellen, um Operationen gemäß einer Ausführungsform durchzuführen.
    • 17 ist ein Blockdiagramm einer Systemanordnung gemäß einer Ausführungsform.
    • 18 ist ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform.
    • 19 ist ein Ablaufdiagramm eines Verfahrens gemäß einer weiteren Ausführungsform.
  • Detaillierte Beschreibung
  • In verschiedenen Ausführungsformen plant ein Rechensystem mit einem oder mehreren Mehrkernprozessoren Aufgaben auf Basis von Benutzerreaktionsvermögensaufgaben und geplanten oder Hintergrundaufgaben. Des Weiteren kann das Rechensystem die Fähigkeit zum dynamischen Erkennen von weniger performanten Kernen unter mehreren Kernen eines oder mehrerer der Prozessoren. Diese dynamische Erkennung kann auf Hardware der Kerne selbst in Systemen basieren, in denen verschiedene Kerne heterogene Fähigkeiten besitzen. Beispielsweise können diese heterogenen Kerne Unterschiede in der Mikroarchitektur, der Befehlssatzarchitektur (ISA), der Spannung/Frequenz(VF)-Kurve und/oder allgemeiner der Energie/Leistungs-Eigenschaften aufweisen. In anderen Fällen kann diese Erkennung auf Hardware-Rückmeldungsinformationen basieren, die Herstellungsabweichungen berücksichtigen. In noch anderen Fällen kann die Bestimmung von Leistungsfähigkeiten zumindest teilweise auf einer Betriebsumgebung und unterschiedlichem Energieverbrauch von Kernen in einer derartigen Umgebung basieren.
  • Mit all diesen Informationen können Hintergrund- oder geplante Aufgaben auf einen oder mehrere weniger performante Kerne beschränkt werden. Auf diese Weise können Reaktionsvermögen und benutzerkritische Vordergrundaufgaben durch Beseitigen von Ressourcenkonkurrenz zwischen benutzergesteuerten und geplanten Aufgaben verbessert werden.
  • In verschiedenen Ausführungsformen kann das Rechensystem ein clientbasiertes System sein, das von einem kleinen tragbaren Gerät, wie beispielsweise einem Smartphone, Laptop usw. bis zu einem Desktop-Computer reicht. Noch weitere Ausführungsformen können in Verbindung mit Unternehmens-Informationstechnologie(IT)-Systemen verwendet werden. Mit Ausführungsformen kann ein verbessertes Reaktionsvermögen realisiert werden, ohne die Batterielebensdauer zu beeinflussen, und es kann über mehrere Unternehmensumgebungen, Betriebssysteme usw. skalierbar sein.
  • In einem Beispiel kann ein System seine Kerne (oder anderen Verarbeitungseinheiten) in zwei Klassen identifizieren, und zwar in am meisten performante und am wenigsten performante Kerne. Wie vorstehend beschrieben können diese unterschiedlichen Leistungsniveaus entweder auf Herstellungsabweichungen oder heterogenen Architekturen basieren. Derartige Informationen können von verschiedenen Systementitäten unterstützt werden, einschließlich Betriebssystem(OS)-Aufgabenplanern und Plattformenergie- und -leistungsverwaltungen neben anderen Entitäten, um die Prozessorzuweisung für Reaktionsvermögen, Batterielebensdauer und Leistung zu optimieren. Natürlich kann eine zusätzliche Klassifizierung von Kernen in mehr als zwei Leistungs-Bins verwendet werden. Zum Beispiel kann eine Ausführungsform Kerne in drei Leistungs-Bins einteilen, und zwar in einen am meisten performanten Bin, einen Mittelleistungs-Bin und einen am wenigsten performanten Bin. Und mehr als drei Klassifizierungen von Kernen sind natürlich ebenfalls möglich.
  • Informationen bezüglich verschiedener Fähigkeiten von Kernen können in einigen Fällen von einem Energiecontroller des Prozessors für ein Betriebssystem oder eine andere Software-Entität bereitgestellt werden. Dieser Energiecontroller kann basierend auf aktueller Leistung und Effizienz von Kernen des Prozessors Hardware-Rückmeldungsinformationen bereitstellen. In Ausführungsformen können Hintergrundaufgaben basierend auf dynamischem Erkennen von am wenigsten performanten Verarbeitungskernen mit eingeschränkter Ressourcenzuweisung geplant werden. Eine derartige Steuerung basierend auf hardware-gesteuertem Leistungszustand (P-Zustand), Energiebegrenzungssteuerung und heterogenen Hardware-Rückmeldungsinformationen kann Vordergrundreaktionsvermögen für eine Vielfalt verschiedener benutzerkritischer Aufgaben verbessern, einschließlich der Inbetriebnahme von Anwendungen, Browsen und Produktivitätsnutzung, ohne die Batterielebensdauer in Unternehmensumgebungen zu beeinflussen.
  • Ausführungsformen können ferner dynamische Energieverwaltungs-Richtlinien in die Lage versetzen, basierend auf der Benutzeraktivität und der Art der in Ausführung befindlichen Aufgaben Systemoptimierungen umzusetzen. Durch genaues Identifizieren geplanter Hintergrundaufgaben und benutzerkritischer Vordergrundaufgaben können Ausführungsformen wechselstromähnliches Reaktionsvermögen umsetzen, während Ziele für die Batterielebensdauer erreicht werden, wenn mit Batterieenergie gearbeitet wird. In einigen Ausführungsformen kann von mehreren Betriebsmodi ein Plattformmodus bestimmt werden, einschließlich eines aktiven Betriebsmodus, eines Ruhebetriebsmodus und eines Reaktionsvermögensbetriebsmodus. In einer Ausführungsform ist der aktive Betriebsmodus einer, in dem sich ein Prozessor in einem aktiven Zustand befindet und in zumindest gewissem Umfang auf Benutzer reagierende oder vom Benutzer ausgelöste Aufgaben laufen, auch wenn möglicherweise ein Benutzer nicht aktiv mit der Plattform interagiert. In einer Ausführungsform ist ein Betriebsruhemodus einer, in den ein relativ hoher Prozentsatz geplanter Hintergrund/Wartungsaufgaben ohne Benutzerinteraktion mit der Plattform läuft. Und schließlich ist ein Reaktionsvermögensmodus einer, in dem Vordergrundaufgaben aktiv auf der Plattform laufen, wobei der Benutzer in Echtzeit mit der Plattform interagiert. Zu beachten ist, dass der Betrieb in diesem Reaktionsvermögensmodus wesentlich für das Verbessern des Reaktionsvermögens und des Benutzererlebnisses sein kann. Beispielsweise kann der aktive Modus Video- oder Audioabspielanwendungen, das Herunterladen von Dateien durch einen Benutzer oder das Kompilieren von Software im Hintergrund beinhalten; Aufgaben des Ruhemodus können Situationen enthalten, in denen ein Benutzer nicht anwesend ist, wobei im Hintergrund geplante oder Routinewartungsaufgaben laufen, z. B. periodische Speicher-/Plattenabtastungen, und Aufgaben des Reaktionsvermögensmodus können benutzergesteuerte Aufgaben beinhalten, bei denen ein Benutzer aktiv mit der Plattform interagiert. Beispiele für Aufgaben des Reaktionsvermögensmodus können Anwendungsstart-, Dateiexport-, Dokument-in-PDF-Umwandlungs- oder andere Burst-Aufgaben mit kurzer Dauer usw. beinhalten. Während dieser erkannten Betriebsmodi können unterschiedliche Energieverwaltungs-Richtlinien konfiguriert und auf den Prozessor (neben anderen Plattformkomponenten) angewandt werden.
  • Mit Ausführungsformen können Gelegenheiten zum Optimieren der Batterielebensdauer während geplanter Hintergrundaktivität in einem System identifiziert werden, während zur gleichen Zeit Reaktionsvermögen geliefert wird, wenn ein Benutzer anwesend ist. Diese Ausführungsformen können mit zusätzlichen Technologien integriert sein, einschließlich einer Lösung des Intel® Dynamic Platform and Thermal Framework (DPTF), Benutzeranwesenheits-Erkennungsfähigkeiten und auf Maschinenlernen (ML) basierende Lösungen, die trainiert werden, um Interaktionsverhalten und Muster der Kontaktaufnahme eines Benutzers mit der Plattform zu erkennen.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf spezifische integrierte Schaltungen beschrieben sind, wie beispielsweise die in Rechenplattformen oder Prozessoren, sind andere Ausführungsformen auf andere Arten von integrierten Schaltungen und logischen Geräten anwendbar. Ähnliche Techniken und Lehren von im Vorliegenden beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitergeräten angewandt werden, die ebenfalls von besserer Energieeffizienz und Energiekonservierung profitieren. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf eine bestimmte Art von Computersystemen beschränkt. Das heißt, offenbarte Ausführungsformen können in vielen verschiedenen Systemarten verwendet werden, die von Servercomputern (z. B. Tower-, Rack-, Blade-, Mikroserver usw.), Kommunikationssystemen, Speichersystemen, Desktop-Computern jedweder Konfiguration, Laptop, Notebook und Tablets reichen (einschließlich 2:1-Tablets, Phablets usw.), und die außerdem in anderen Geräten verwendet werden können, wie beispielsweise in handgeführten Geräten, Systemen auf einem Chip (SoCs) und eingebetteten Anwendungen. Einige Beispiele für handgeführte Geräte sind Mobiltelefone wie beispielsweise Smartphones, Internetprotokollgeräte, Digitalkameras, PDAs (Personal Digital Assistant) und handgeführte PCs. Eingebettete Anwendungen können typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), Netzwerk-Computer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, WAN(Wide Area Network)-Weichen, am Körper tragbare Geräte oder ein anderes Systembeinhalten, das die im Weiteren gelehrten Funktionen und Operationen durchführen kann. Darüber hinaus können Ausführungsformen in mobilen Endgeräten umgesetzt sein, die Standardsprachfunktionalität aufweisen, wie beispielsweise Mobiltelefone, Smartphones und Phablets, und/oder in nichtmobilen Endgeräten ohne standardmäßige Fähigkeit zur drahtlosen Sprachfunktionskommunikation, wie beispielsweise viele Wearables, Tablets, Notebooks, Desktops, Mikroserver, Server usw. Des Weiteren sind die im Vorliegenden beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechengeräte beschränkt, sondern können auch Software-Optimierungen betreffen.
  • In 1 ist nun ein Blockdiagramm eines Abschnitts eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt, kann das System 100 verschiedene Komponenten beinhalten, einschließlich eines Prozessors 110, der wie gezeigt ein Mehrkernprozessor. Der Prozessor 110 kann über einen externen Spannungsregler 160, der eine erste Spannungsumwandlung durchführen kann, um für den Prozessor 110 eine geregelte Primärspannung bereitzustellen, mit einer Energiezufuhr 150 gekoppelt sein.
  • Wie zu sehen ist, kann der Prozessor 110 ein Einzel-Chip-Prozessor sein, der mehrere Kerne 120a - 120n beinhaltet. Des Weiteren kann jeder Kern einem integrierten Spannungsregler (IVR) 125a - 125n zugeordnet sein, der die geregelte Primärspannung empfängt und eine Betriebsspannung erzeugt, die für einen oder mehrere Agents des Prozessors bereitgestellt wird, dem der IVR zugeordnet ist. Dementsprechend kann eine IVR-Umsetzung bereitgestellt sein, um eine feinkörnige Steuerung der Spannung und somit der Energie und Leistung jedes einzelnen Kerns zu ermöglichen. Somit kann jeder Kern mit einer unabhängigen Spannung und Frequenz arbeiten, was eine große Flexibilität ermöglicht und viele Möglichkeiten zum Ausgleichen von Energieverbrauch und Leistung bietet. In einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVR das Gruppieren von Komponenten in separate Energieebenen, so dass Energie geregelt und von dem IVR nur diesen Komponenten in der Gruppe zugeführt wird. Während der Energieverwaltung kann eine gegebene Energieebene eines IVR heruntergeregelt oder abgeschaltet werden, wenn der Prozessor in einen bestimmten Niedrigenergiezustand versetzt wird, während eine andere Energienebene eines anderen IVR aktiv oder vollständig mit Energie versorgt bleibt.
  • Mit weiterem Bezug auf 1 können zusätzliche Komponenten in dem Prozessor vorhanden sein, einschließlich einer Eingabe-/Ausgabe-Schnittstelle 132, einer weiteren Schnittstelle 134 und eines integrierten Speichercontrollers 136. Wie zu sehen ist, kann jede dieser Komponenten von einem anderen integrierten Spannungsregler 125x versorgt werden. In einer Ausführungsform kann die Schnittstelle 132 den Betrieb einer Intel®-Quick-Path-Interconnect-(QPI)-Verbindung ermöglichen, die Punkt-zu-Punkt(PtP)-Links in einem Cache-Kohärenz-Protokoll bereitstellt, das mehrere Schichten beinhaltet, einschließlich einer physikalischen Schicht, einem Link-Layer und einer Protokollschicht. Die Schnittstelle 134 kann wiederum über ein PCIe™(Peripheral Component Interconnect Express)-Protokoll kommunizieren.
  • Ebenfalls gezeigt ist eine Energiesteuereinheit (PCU) 138, die Hardware, Software und/oder Firmware beinhalten kann, um Energieverwaltungsoperationen bezüglich des Prozessors 110 durchzuführen. Wie zu sehen ist, stellt die PCU 138 über eine digitale Schnittstelle Steuerinformationen für den externen Spannungsregler 160 bereit, um den Spannungsregler zu veranlassen, die geeignete geregelte Spannung zu erzeugen. Die PCU 138 stellt über eine andere digitale Schnittstelle außerdem Steuerinformationen für die IVRs 125 bereit, um die erzeugte Betriebsspannung zu steuern (oder um zu bewirken, dass ein entsprechender IVR in einen Niedrigenergiemodus deaktiviert wird). In verschiedenen Ausführungsformen kann die PCU 138 eine Vielfalt von Energieverwaltungs-Logikeinheiten beinhalten, um hardware-basierte Energieverwaltung durchzuführen. Eine derartige Energieverwaltung kann gänzlich von einem Prozessor gesteuert sein (z. B. durch verschiedene Prozessor-Hardware, und die durch Arbeitslast und/oder energetische, thermische oder andere Prozessorbeschränkungen ausgelöst werden kann) und/oder die Energieverwaltung kann in Reaktion auf externe Quellen durchgeführt werden (wie beispielsweise eine Plattform- oder Verwaltungsenergie-Verwaltungsquelle oder -System-Software).
  • In vorliegenden Ausführungsformen kann die PCU 138 dafür konfiguriert sein, dynamisch Hardware-Rückmeldungsinformationen bezüglich Leistungs- und Energieeffizienzfähigkeiten von Hardware-Schaltungen zu bestimmen, wie beispielsweise der Kerne 120. Des Weiteren kann die PCU 138 auch eine Arbeitslast-Überwachungsschaltung beinhalten, um Aufgabenverhältnisse für Vordergrund- und Hintergrundaufgaben zu errechnen. Die PCU 138 kann ferner Steuerschaltungen beinhalten, um eine Energieverwaltungs-Richtlinie zumindest teilweise basierend auf einem oder mehreren von Hardware-Rückmeldungsinformationen, Arbeitslastinformationen und/oder Modushinweisen zu aktualisieren, wie im Vorliegenden eingehender beschrieben werden wird.
  • Darüber hinaus zeigt 1 eine Umsetzung, in der die PCU 138 eine separate Verarbeitungsmaschine ist (die als ein Mikrocontroller umgesetzt sein kann), doch es versteht sich, dass in einigen Fällen jeder Kern zusätzlich oder anstelle eines zugewiesenen Leistungscontrollers einen Energiesteuer-Agent beinhalten oder einem solchen zugeordnet sein kann, um den Energieverbrauch autonomer und unabhängig zu steuern. In einigen Fällen kann eine hierarchische Energieverwaltungsarchitektur bereitgestellt sein, wobei die PCU 138 in Verbindung mit entsprechenden Energieverwaltungs-Agents steht, die jedem der Kerne 120 zugeordnet sind.
  • Obwohl zur Erleichterung der Veranschaulichung nicht gezeigt, versteht es sich, dass in dem Prozessor 110 zusätzliche Komponenten vorhanden sein können, wie beispielsweise Uncore-Logik und weitere Komponenten wie beispielsweise interne Speicher, z. B. eine oder mehrere Ebenen einer Cache-Speicher-Hierarchie usw. Darüber hinaus sind Ausführungsformen, obwohl sie in der Umsetzung von 1 mit einem integrierten Spannungsregler gezeigt sind, nicht darauf beschränkt.
  • Im Vorliegenden beschriebene Prozessoren können Energieverwaltungstechniken wirkungsvoll einsetzen, die unabhängig von und komplementär zu einem Energieverwaltungs(OSPM)-Mechanismus auf Basis des Betriebssystems (OS) sind. Gemäß einer beispielhaften OSPM-Technik kann ein Prozessor in verschiedenen Leistungszuständen oder -ebenen arbeiten, so genannten P-Zuständen, und zwar von P0 bis PN. Im Allgemeinen kann der P1-Leistungszustand dem höchsten garantierten Leistungszustand entsprechen, der von einem OS angefordert werden kann. Zusätzlich zu diesem P1-Zustand kann das OS ferner einen höheren Leistungszustand anfordern, und zwar einen P0-Zustand. Dieser P0-Zustand kann somit ein opportunistischer oder Turbomoduszustand sein, in dem Prozessor-Hardware den Prozessor oder mindestens Abschnitte desselben konfigurieren kann, mit höherer als der garantierten Frequenz zu arbeiten, wenn das Energie- und/oder Wärmebudget zur Verfügung steht. In vielen Umsetzungen kann ein Prozessor mehrere sogenannte Bin-Frequenzen über der garantierten P1-Maximalfrequenz beinhalten, die bis z einer maximalen Spitzenfrequenz des konkreten Prozessors übersteigen, die während der Herstellung in den Prozessor abgesichert oder auf andere Weise geschrieben ist. Des Weiteren kann ein Prozessor gemäß einem OSPM-Mechanismus in verschiedenen Energiezuständen oder -ebenen arbeiten. Hinsichtlich der Energiezustände kann ein OSPM-Mechanismus verschiedene Energieverbrauchszustände spezifizieren, die allgemein als C-Zustände bezeichnet werden, C0-, C1- bis Cn-Zustände. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand, und wenn der Kern inaktiv ist, kann er in einen Kern-Niedrigenergiezustand versetzt werden, auch Kern-Nicht-Null-C-Zustand (z. B. C1-C6-Zustände) genannt, wobei jeder C-Zustand auf einem niedrigeren Energieverbrauchsniveau liegt (sodass C6 ein tieferer Niedrigenergiezustand ist als C1 usw.).
  • Es versteht sich, dass in verschiedenen Ausführungsformen viele verschiedene Arten von Energieverwaltungstechniken individuell oder in Kombination verwendet werden können. Als repräsentative Beispiele kann ein Energiecontroller den Prozessor dafür steuern, von einer Form einer dynamischen Spannungsfrequenzskalierung (DVFS) energieverwaltet zu werden, in der eine Betriebsspannung und/oder Betriebsfrequenz eines oder mehrerer Kerne oder anderer Prozessorlogik dynamisch gesteuert werden kann, um den Energieverbrauch in bestimmten Situationen zu reduzieren. In einem Beispiel kann DVFS mit Hilfe der Enhanced-Intel-SpeedStep™-Technologie durchgeführt werden, die von der Intel Corporation, Santa Clare, CA, bezogen werden kann, um eine optimale Leistung auf dem niedrigsten Energieverbrauchsniveau bereitzustellen. In einem weiteren Beispiel kann die DVFS mit Hilfe der Intel-TurboBoost™-Technologie durchgeführt werden, um einen oder mehrere Kerne oder andere Rechenmaschinen in die Lage zu versetzen, basierend auf Bedingungen (z. B. Arbeitslast und Verfügbarkeit) mit einer höheren als der garantierten Betriebsfrequenz zu arbeiten.
  • Eine weitere Energieverwaltungstechnik, die in bestimmten Beispielen verwendet werden kann, ist der dynamische Austausch von Arbeitslasten zwischen verschiedenen Rechenmaschinen. Zum Beispiel kann der Prozessor asymmetrische Kerne oder andere Verarbeitungsmaschinen beinhalten, die auf unterschiedlichen Energieverbrauchsniveaus arbeiten, sodass in einer Situation mit Energiebeschränkung eine oder mehrere Arbeitslasten dynamisch umgeschaltet werden können, um auf einem Kern mit niedrigerer Energie oder einer anderen Rechenmaschine ausgeführt zu werden. Eine weitere beispielhafte Energieverwaltungstechnik ist die Hardware-Arbeitstaktung (HDC), die bewirken kann, dass Kerne und/oder andere Rechenmaschinen gemäß einem Arbeitstakt regelmäßig aktiviert und deaktiviert werden, so dass ein oder mehrere Kerne während einer inaktiven Periode des Arbeitstaktes inaktiv gemacht und während einer aktiven Periode des Arbeitszyklus aktiv gemacht werden können.
  • Ausführungsformen können in Prozessoren für verschiedene Märkte umgesetzt sein, einschließlich Serverprozessoren, Desktop-Prozessoren, Mobilprozessoren usw. In 2 ist nun ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt ist. Wie in 2 gezeigt, kann ein Prozessor 200 ein Mehrkernprozessor sein, der mehrere Kerne 210a - 210n beinhaltet. In einer Ausführungsform kann ein derartiger Kern von einer unabhängigen Energiedomäne und dafür konfiguriert sein, basierend auf der Arbeitslast in aktive Zuständen und/oder Maximalleistungszustände ein- und aus diesen auszutreten.
  • Die verschiedenen Kerne können über eine Verbindung 215 mit einem System-Agent oder -Uncore 220 gekoppelt sein, der verschiedene Komponenten beinhaltet. Wie zu sehen ist, kann der Uncore 220 einen gemeinsam genutzten Cache 230 beinhalten, der ein Cache der letzten Ebene sein kann. Des Weiteren kann der Uncore einen integrierten Speichercontroller 240 beinhalten, um mit einem Systemspeicher (in 2 nicht gezeigt) zu kommunizieren, z. B. über einen Speicherbus. Der Uncore 220 beinhaltet außerdem verschiedene Schnittstellen 250 und eine Energiesteuereinheit 255, die Logik beinhalten kann, um Energieverwaltungstechniken durchzuführen, wie sie im Vorliegenden beschrieben sind. Des Weiteren, kann die Energiesteuereinheit 255 eine Arbeitslast-Überwachungsschaltung 256 beinhalten, die dafür konfiguriert ist, Aufgabenverhältnisse für eine oder mehrere Vordergrund- und/oder Hintergrundaufgaben dynamisch zu bestimmen. Es versteht sich, dass die Energiesteuereinheit 255 ferner Steuerschaltungen beinhalten kann, um eine Energieverwaltungs-Richtlinie zumindest teilweise basierend auf einem oder mehreren von Hardware-Rückmeldungsinformationen, Arbeitslastinformationen und/oder Modushinweisen zu aktualisieren, wie im Vorliegenden eingehender beschrieben werden wird.
  • Des Weiteren kann durch Schnittstellen 250a -250n eine Verbindung zu verschiedenen Komponenten außerhalb des Chips hergestellt werden, wie beispielsweise Peripheriegeräten, Massenspeichern usw. Obwohl die Ausführungsform von 2 mit dieser bestimmten Umsetzung gezeigt ist, ist der Geltungsbereich der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt.
  • In 3 ist nun ein Blockdiagramm eines Mehrdomänen-Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in der Ausführungsform von 3 gezeigt, beinhaltet der Prozessor 300 mehrere Domänen. Insbesondere kann eine Kerndomäne 310 mehrere Kerne 3100 - 310n beinhalten, eine Grafikdomäne 320 kann eine oder mehrere Grafikmaschinen beinhalten und ferner kann eine System-Agent-Domäne 350 vorhanden sein. In einigen Ausführungsformen kann die System-Agent-Domäne 350 mit einer von der Kerndomäne unabhängigen Frequenz arbeiten und kann jederzeit angeschaltet bleiben, um Energiesteuerereignisse und Energieverwaltung zu handhaben, sodass die Domänen 310 und 320 dafür gesteuert werden können, dynamisch in einen Hochenergie- und Niedrigenergiestatus ein- und aus diesen auszutreten. Jede der Domänen 310 und 320 kann mit einer anderen Spannung und/oder Energie arbeiten. Zu beachten ist, dass, obwohl nur mit drei Domänen dargestellt, der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist und in anderen Ausführungsformen zusätzliche Domänen vorhanden sein können. Zum Beispiel können Mehrkerndomänen vorhanden sein, die jeweils mindestens einen Kern beinhalten.
  • Im Allgemeinen kann jeder Kern 310 zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen ferner Caches niedriger Ebene beinhalten. Die verschiedenen Kerne wiederum können miteinander und mit einem gemeinsam genutzten Cache-Speicher gekoppelt sein, der aus mehreren Einheiten eines Cache der letzten Ebene (LLC) 3400 - 340n gebildet ist. In verschiedenen Ausführungsformen kann der LLC 340 von den Kernen und der Grafikmaschine sowie verschiedener Medienverarbeitungsschaltungen gemeinsam genutzt werden. Wie zu sehen ist, koppelt somit eine Ringverbindung 330 die Kerne miteinander und stellt eine Verbindung zwischen den Kernen, der Grafikdomäne 320 und den System-Agent-Schaltungen 350 bereit. In einer Ausführungsform kann die Verbindung 330 Teil der Kerndomäne sein. In weiteren Ausführungsformen kann die Ringverbindung jedoch ihre eigene Domäne besitzen.
  • Wie des Weiteren zu sehen ist, kann die System-Agent-Domäne 350 einen Anzeigecontroller 352 beinhalten, der eine Steuerung einer zugeordneten Anzeige und eine Schnittstelle zu selbiger bereitstellen kann. Wie des Weiteren zu sehen ist, kann die System-Agent-Domäne 350 eine Energiesteuereinheit 355 beinhalten, die eine Arbeitslast-Überwachungsschaltung 356 beinhalten kann, die dafür konfiguriert ist, Aufgabenverhältnisse für eines oder mehreres von Vordergrund- und Hintergrundaufgaben dynamisch zu bestimmen. Es versteht sich, dass die Energiesteuereinheit 355 ferner Steuerschaltungen beinhalten kann, um eine Energieverwaltungs-Richtlinie zumindest teilweise basierend auf einem oder mehreren von Hardware-Rückmeldungsinformationen, Arbeitslastinformationen und/oder Modushinweisen zu aktualisieren, wie im Vorliegenden beschrieben wird.
  • Wie in 3 des Weiteren zu sehen ist, kann der Prozessor 300 ferner einen integrierten Speichercontroller (IMC) 370 beinhalten, der eine Schnittstelle zu einem Systemspeicher bereitstellen kann, wie beispielsweise einem DRAM (Dynamic Random Access Memory). Es können mehrere Schnittstellen 3800-380n vorhanden sein, um eine Verbindung zwischen dem Prozessor und weiteren Schaltungen bereitzustellen. Zum Beispiel kann in einer Ausführungsform mindestens eine Mediendirektschnittstelle (DMI) bereitgestellt sein sowie eine oder mehrere PCIe™-Schnittstellen. Ferner können auch eine oder mehrere QPI-Schnittstellen bereitgestellt sein, um Kommunikation zwischen anderen Agents bereitzustellen, wie beispielsweise zu zusätzlichen Prozessoren oder weiteren Schaltungen. Obwohl in der Ausführungsform von 3 auf dieser hohen Ebene gezeigt, versteht es sich, dass Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt.
  • Bezugnehmend auf 4 ist eine Ausführungsform eines Prozessors veranschaulicht, der mehrere Kerne beinhaltet. Der Prozessor 400 beinhaltet einen beliebigen Prozessor oder ein beliebiges Verarbeitungsgerät, wie beispielsweise einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzwerkprozessor, einen handgeführten Prozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System auf einem Chip (SoC) oder ein anderes Gerät zum Ausführen von Code. Der Prozessor 400 beinhaltet in einer Ausführungsform mindestens zwei Kerne - die Kerne 401 und 402, die asymmetrische Kerne oder symmetrische Kerne beinhalten können (die veranschaulichte Ausführungsform). Der Prozessor 400 kann jedoch auch eine beliebige Anzahl von Verarbeitungselementen beinhalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezeichnet ein Verarbeitungselement Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente sind: eine Thread-Einheit, ein Thread-Slot, ein Thread, eine Prozesseinheit, ein Kontext, eine Kontexteinheit, einen logischen Prozessor, ein Hardware-Thread, ein Kern und/oder ein anderes Element, das in der Lage ist, einen Zustand eines Prozessors zu halten, wie beispielsweise einen Ausführungszustand oder einen Architekturzustand. Anders ausgedrückt bezeichnet ein Verarbeitungselement in einer Ausführungsform eine beliebige Hardware, die in der Lage ist, unabhängig Code zugeordnet zu werden, wie beispielsweise einem Software-Thread, einem Betriebssystem, einer Anwendung oder anderem Code. Ein physikalischer Prozessor bezeichnet typischerweise eine integrierte Schaltung, die potentiell eine beliebige Anzahl anderer Verarbeitungselemente beinhaltet, wie beispielsweise Kerne oder Hardware-Threads.
  • Ein Kern bezeichnet häufig Logik, die sich in einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand mindestens einigen fest zugewiesenen Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezeichnet ein Hardware-Thread typischerweise eine beliebige Logik, die sich in einer integrierten Schaltung befindet, die in der Lage ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen Architekturzustände den Zugang zu Ausführungsressourcen gemeinsam nutzen. Wie zu sehen ist, überlappt die Linie zwischen der Nomenklatur von Hardware-Thread und Kern häufig, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere einem Architekturzustand fest zugewiesen sind. Ein Kern und ein Hardware-Thread werden jedoch von einem Betriebssystem oftmals als individuelle logische Prozessoren betrachtet, wobei das Betriebssystem in der Lage ist, Operationen in jedem logischen Prozessor individuell zu planen.
  • Wie in 4 veranschaulicht, beinhaltet der physikalische Prozessor 400 zwei Kerne, die Kerne 401 und 402. Hierbei werden die Kerne 401 und 402 als symmetrische Kerne betrachtet, d. h. als Kerne mit gleichen Konfigurationen, Funktionseinheiten und/oder gleicher Logik. In einer weiteren Ausführungsform beinhaltet der Kern 401 einen Außer-Reihenfolge(Out-of-Order)-Kern, während der Kern 402 einen In-Reihenfolge(In-Order)-Kern beinhaltet. Die Kerne 401 und 402 können jedoch individuell aus einer beliebigen Art von Kern ausgewählt werden, wie beispielsweise einem nativen Kern, einem von Software verwalteten Kern, einem Kern, der dafür eingerichtet ist, eine native Befehlssatzarchitektur (ISA) auszuführen, einem Kern, der dafür eingerichtet ist, eine übersetzte ISA auszuführen, einem ko-entworfenen Kern oder einem anderen bekannten Kern. Um jedoch die Erläuterung zu unterstützen, sind die funktionalen Einheiten, die in Kern 401 dargestellt sind, im Weiteren detaillierter beschrieben, da die Einheiten in Kern 402 in ähnlicher Weise arbeiten.
  • Wie abgebildet, beinhaltet der Kern 401 zwei Hardware-Threads 401a und 401b, die auch als Hardware-Thread-Slots 401a und 401b bezeichnet werden können. Deshalb betrachten Software-Entitäten wie beispielsweise ein Betriebssystem in einer Ausführungsform den Prozessor 400 als vier separate Prozessoren, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads parallel auszuführen. Wie vorstehend angedeutet, ist ein erster Thread Architekturzustandsregistern 401a zugeordnet, ein zweiter Thread ist Architekturzustandsregistern 401b zugeordnet, ein dritter Thread kann Architekturzustandsregistern 402a zugeordnet sein und ein vierter Thread kann Architekturzustandsregistern 402b zugeordnet sein. Hierbei kann jedes der Architekturzustandsregister 401a, 401b, 402a und 402b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten bezeichnet werden, wie vorstehend beschrieben. Wie veranschaulicht, sind die Architekturzustandsregister 401a in den Architekturzustandsregistern 401b dupliziert, so dass individuelle Architekturzustände/-kontexte für den logischen Prozessor 401a und den logischen Prozessor 401b gespeichert werden können. Im Kern 401 können auch andere kleinere Ressourcen wie beispielsweise Befehlszeiger und Umbenennungslogik im Zuteiler- und Umbenennungsblock 430 für die Threads 401a und 401b dupliziert sein. Einige Ressourcen wie beispielsweise Neuordnungspuffer (Reorder Buffers) in der Neuordnungs-/Abschluss(Retirement)einheit 435, ILTB 420, Lade/Speicher-Puffer und Warteschlangen können durch Partitionierung gemeinsam genutzt werden. Weitere Ressourcen wie beispielsweise interne Allzweckregister, Page-Table-Base-Register, Daten-Cache niederer Ebene, und Daten-TLB 415, Ausführungseinheit(en) 440 und Abschnitte von Out-of-Order-Einheit 435 werden potentiell vollständig gemeinsam genutzt.
  • Der Prozessor 400 beinhaltet häufig weitere Ressourcen, die vollständig gemeinsam genutzt, durch Partitionierung gemeinsam genutzt oder durch die bzw. den Verarbeitungselementen zugewiesen sein können. In 4 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors veranschaulicht. Zu beachten ist, dass ein Prozessor beliebige dieser funktionalen Einheiten beinhalten oder auslassen kann sowie beliebige andere bekannte funktionale Einheiten, Logik oder Firmware, die nicht abgebildet sind, beinhalten kann. Wie veranschaulicht, beinhaltet der Kern 401 einen vereinfachten, repräsentativen Out-of-Order (OOO)-Prozessorkern. In weiteren Ausführungsformen kann aber auch ein In-Order-Prozessor genutzt werden. Der OOO-Kern beinhaltet einen Sprungvorhersagepuffer 420, um Sprünge vorherzusagen, die auszuführen/vorzunehmen sind, und einen Befehlsübersetzungspuffer (1-TLB) 420 zum Speichern von Adressübersetzungseinträgen für Befehle.
  • Der Kern 401 beinhaltet ferner ein Decodiermodul 425, das mit einer Abholeinheit 420 gekoppelt ist, um abgeholte Elemente zu decodieren. Die Abhollogik beinhaltet in einer Ausführungsform individuelle Ablaufsteuerungen, die Thread-Slots 401a beziehungsweise 401b zugeordnet sind. Üblicherweise ist dem Kern 401 eine erste ISA zugeordnet, die Befehle definiert/spezifiziert, die auf dem Prozessor 400 ausführbar sind. Häufig beinhalten Maschinencodebefehle, die Teil der ersten ISA sind, einen Abschnitt des Befehls (als ein Opcode bezeichnet), der auf einen auszuführenden Befehl oder eine auszuführende Operation verweist / diese(n) spezifiziert. Die Decodierlogik 425 beinhaltet Schaltungen, die diese Befehle aus deren Opcodes erkennen und die decodierten Befehle in der Pipeline zur Verarbeitung wie durch die erste ISA definiert weiterleiten. Zum Beispiel beinhalten die Decodierer 425 in einer Ausführungsform Logik, die dafür gestaltet oder eingerichtet ist, spezifische Befehle zu erkennen, wie beispielsweise einen transaktionalen Befehl. Im Ergebnis der Erkennung durch die Decodierer 425 nimmt die Architektur oder der Kern 401 spezifische, vordefinierte Aktionen vor, um Aufgaben durchzuführen, die dem entsprechenden Befehl zugeordnet sind. Es ist wichtig zu beachten, dass beliebige der im Vorliegenden beschriebenen Aufgaben, Blöcke, Operationen und Verfahren in Reaktion auf einen einzelnen oder mehrere Befehle durchgeführt werden können, von denen einige neue oder alte Befehle sein können.
  • In einem Beispiel beinhaltet der Zuteiler- und Umbenennungsblock 430 einen Zuteiler zum Reservieren von Ressourcen, wie beispielsweise Registerdateien zum Speichern von Befehlsverarbeitungsergebnissen. Die Threads 401a und 401b sind jedoch potentiell zur Out-of-Order-Ausführung in der Lage, wobei der Zuteiler- und Umbenennungsblock 430 auch andere Ressourcen reserviert, wie beispielsweise Neuordnungspuffer zum Nachverfolgen von Befehlsergebnissen. Die Einheit 430 kann außerdem eine Registerumbenennungseinrichtung zum Umbenennen von Programm-/Befehlsreferenzregistern in andere Register in dem Prozessor 400 beinhalten. Die Neuordnungs-/Retirement-Einheit 435 beinhaltet Komponenten, wie beispielsweise die vorstehend genannten Neuordnungspuffer, Lastpuffer und Speicherpuffer, um die Out-of-Order-Ausführung und späteres In-Order-Retirement von Befehlen, die Out-of-Order ausgeführt wurden, zu unterstützen.
  • Der Planungs- und Ausführungseinheitenblock 440 beinhaltet in einer Ausführungsform eine Planungseinheit zum Planen von Befehlen/Operationen in Ausführungseinheiten. Zum Beispiel wird ein Gleitkommabefehl in einem Teil einer Ausführungseinheit geplant, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Registerdateien, die den Ausführungseinheiten zugeordnet sind, sind ebenfalls enthalten, um Innformationsbefehls-Verarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten beinhalten eine Gleitkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit oder andere bekannte Einheiten.
  • Der Daten-Cache niedrigerer Ebene und der Datenübersetzungspuffer (D-TLB) 450 sind mit der/den Ausführungseinheit(en) 440 gekoppelt. Der Daten-Cache ist dafür vorgesehen, kürzlich an verwendete/bearbeitete Elemente zu speichern, wie beispielsweise Datenoperanden, die potentiell in Speicherkohärenzzuständen gehalten werden. Der D-TLB ist dafür vorgesehen, kürzlich erfolgte Übersetzungen von virtuellen/linearen in physikalische Adressen zu speichern. Als ein spezielles Beispiel kann ein Prozessor eine Seitentabellenstruktur beinhalten, um den physikalischen Speicher in mehrere virtuelle Seiten zu teilen.
  • Hier nutzen die Kerne 401 und 402 den Zugriff auf den Cache 410 höherer Ebene oder weiter außerhalb gemeinsam, der dafür vorgesehen ist kürzlich, abgeholte Elemente zwischenzuspeichern. Zu beachten ist, dass höhere Ebene oder weiter außerhalb Cache-Ebenen bezeichnet, die sich von den Ausführungseinheiten aus erhöhen oder weiter entfernen. In einer Ausführungsform ist der Cache 410 höherer Ebene ein Letzte-Ebene-Daten-Cache - der letzte Cache in der Speicherhierarchie im Prozessor 400 - wie beispielsweise ein Daten-Cache der zweiten oder dritten Ebene. Jedoch ist ein Cache 410 höherer Ebene nicht darauf beschränkt, da er einem Befehls-Cache zugeordnet sein oder einen solchen enthalten kann. Ein Trace-Cache - eine Art von Befehls-Cache - kann stattdessen hinter den Decodierer 425 gekoppelt sein, um kürzlich decodierte Traces zu speichern.
  • In der abgebildeten Konfiguration beinhaltet der Prozessor 400 außerdem ein Busschnittstellen-Modul 405 und einen Energiecontroller 460, der die Energieverwaltung durchführen kann, gemäß einer Ausführungsform der vorliegenden Erfindung. In diesem Szenario ist die Busschnittstelle 405 dafür vorgesehen, mit Geräten zu kommunizieren, die außerhalb des Prozessors 400 liegen, wie beispielsweise dem Systemspeicher und anderen Komponenten.
  • Ein Speichercontroller 470 kann sich über eine Schnittstelle mit anderen Geräten verbinden, wie beispielsweise einem oder vielen Speichern. In einem Beispiel beinhaltet die Busschnittstelle 405 eine Ringverbindung mit einem Speichercontroller zum Verbinden über Schnittstelle mit einem Speicher und einem Grafikcontroller zum Verbinden über Schnittstelle mit einem Grafikprozessor. In einer SoC-Umgebung können sogar noch mehr Geräte in einen einzelnen Chip oder eine einzelne integrierte Schaltung integriert sein, wie beispielsweise eine Netzwerk-Schnittstelle, Koprozessoren, Speicher, Grafikprozessor und ein beliebiges anderes bekanntes Computergerät / eine andere bekannte Computerschnittstelle, um einen kleinen Formfaktor mit hoher Funktionalität und geringem Energieverbrauch bereitzustellen.
  • In 5 ist nun ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 5 gezeigt, kann der Prozessorkern 500 ein mehrstufiger, nach dem Pipeline-Prinzip arbeitender Out-of-Order-Prozessor sein. Der Kern 500 kann mit verschiedenen Spannungen basierend auf einer empfangenen Betriebsspannung arbeiten, die von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann.
  • Wie in 5 zu sehen ist, beinhaltet der Kern 500 Frontend-Einheiten 510, die verwendet werden können, um auszuführende Befehle abzuholen und diese zur späteren Verwendung in der Prozessor-Pipeline vorzubereiten. Die Frontend-Einheiten 510 können beispielsweise eine Abholeinheit 501, einen Befehls-Cache 503 und einen Befehlsdecodierer 505 beinhalten. In einigen Umsetzungen können die Frontend-Einheiten 510 ferner einen Trace-Cache zusammen mit einem Mikrocodespeicher sowie einem Mikrooperationsspeicher beinhalten. Die Abholeinheit 501 kann Makrobefehle abholen, z. B. von einem Speicher oder Befehls-Cache 503, und diese dann zum Befehlsdecodierer 505 führen, um sie zu Primitiven zu decodieren, d. h. Mikrooperationen zum Ausführen durch den Prozessor.
  • Zwischen die Frontend-Einheiten 510 und die Ausführungseinheiten 520 ist eine Out-of-Order(OOO)-Maschine 515 gekoppelt, die verwendet werden kann, um die Mikrobefehle zu empfangen und sie für die Ausführung vorzubereiten. Genauer gesagt, kann die OOO-Maschine 515 verschiedene Puffer beinhalten, um den Mikrobefehlsfluss neu zu ordnen und verschiedene Ressourcen zuzuteilen, die zur Ausführung benötigt werden, sowie eine Umbenennung logischer Register an Speicherorten mit verschiedenen Registerdateien, wie beispielsweise der Registerdatei 530 und der erweiterten Registerdatei 535, bereitzustellen. Die Registerdatei 530 kann separate Registerdateien für Ganzzahl- und Gleitkommaoperationen beinhalten. Zum Zweck der Konfiguration, Steuerung und zusätzlicher Operationen kann auch ein Satz maschinenspezifischer Register (MSR) 538 vorhanden und für verschiedene Logik in dem Kern 500 (und außerhalb des Kerns) zugänglich sein.
  • In den Ausführungseinheiten 520 können neben weiterer spezialisierter Hardware verschiedene Ressourcen vorhanden sein, einschließlich zum Beispiel verschiedener Ganzzahl-, Gleitkomma- und SIMD(Single Instruction Multiple Data)-Logikeinheiten. Derartige Ausführungseinheiten können neben anderen derartigen Ausführungseinheiten zum Beispiel eine oder mehrere Arithmetiklogikeinheiten (ALUs) 522 und eine oder mehrere Vektorausführungseinheiten 524 beinhalten.
  • Ergebnisse von den Ausführungseinheiten können für Retirement-Logik bereitgestellt werden, und zwar einen Neuordnungspuffer (ROB) 540. Genauer gesagt, kann der ROB 540 verschiedene Arrays und Logik zum Empfangen von Informationen beinhalten, die Befehlen zugeordnet sind, die ausgeführt werden. Diese Informationen werden dann von dem ROB 540 untersucht, um zu bestimmen, ob die Befehle gültig geschlossen und Ergebnisdaten an den Architekturzustand des Prozessors übergeben werden können oder ob eine oder mehrere Ausnahmebedingungen auftraten, die einen richtigen Abschluss (Retirement) der Befehle verhindern. Natürlich kann der ROB 540 auch andere mit dem Retirement in Verbindung stehende Operationen handhaben.
  • Wie in 5 gezeigt, ist der ROB 540 mit einem Cache 550 gekoppelt, der in einer Ausführungsform ein Cache niedriger Ebene sein kann (z. B. ein L1-Cache), obwohl der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Die Ausführungseinheiten 520 können auch direkt mit dem Cache 550 gekoppelt sein. Vom Cache 550 kann eine Datenübertragung mit Caches höherer Ebenen, dem Systemspeicher usw. erfolgen. Zu beachten ist, dass Leistungs- und Energieeffizienzfähigkeiten des Kerns 500 basierend auf Arbeitslast und/oder Prozessoreinschränkungen variieren können. Somit kann ein Energiecontroller (in 5 nicht gezeigt) dynamisch Rückmeldungsinformationen, einschließlich der Leistungs- und Energieeffizienzfähigkeiten, zur Verwendung bei Planungsentscheidungen bestimmen, wie im Vorliegenden beschrieben. Obwohl in der Ausführungsform von 5 mit dieser hohen Ebene gezeigt, versteht es sich, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Beispielsweise bezieht sich zwar die Umsetzung von 5 auf eine Out-of-Order-Maschine, wie beispielsweise eine mit einer Intel®-x86-Befehlsatzarchitektur (ISA), doch ist der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt. Das heißt, andere Ausführungsformen können in einem In-Order-Prozessor, einem RISC(Reduced Instruction Set Computing)-Prozessor, wie beispielsweise einem ARM-basierten Prozessor, oder einem Prozessor mit einer anderen Art von ISA, der Befehle und Operationen einer anderen ISA mittels einer Nachbildungsmaschine und zugeordneter Logikschaltungen nachbilden kann, umgesetzt sein.
  • In 6 ist nun ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform gezeigt. In der Ausführungsform von 6 kann der Kern 600 ein Niedrigenergiekern einer anderen Mikroarchitektur sein, wie beispielsweise ein Intel®-Atom™-basierter Prozessor mit einer relativ begrenzten Pipeline-Tiefe, der dafür gestaltet ist, den Energieverbrauch zu reduzieren. Wie zu sehen ist, beinhaltet der Kern 600 einen Befehls-Cache 610, der für das Bereitstellen von Befehlen mit einem Befehlsdecodierer 615 gekoppelt ist. Mit dem Befehls-Cache 610 kann eine Sprungvorhersageeinrichtung 605 gekoppelt sein. Zu beachten ist, dass der Befehls-Cache 610 ferner mit einer anderen Ebene eines Cache-Speichers gekoppelt sein kann, wie beispielsweise einem L2-Cache (zur Erleichterung der Veranschaulichung nicht in 6 gezeigt). Der Befehlsdecodierer 615 stellt wiederum decodierte Befehle für eine Issue-Warteschlange 620 zum Speichern und Abgeben an einer gegebene Ausführungs-Pipeline bereit. Mit dem Befehlsdecodierer 615 ist ein Mikrocode-ROM 618 gekoppelt.
  • Eine Gleitkomma-Pipeline 630 beinhaltet ein Gleitkommaregister 632, das mehrere Architekturregister eines gegebenen Bits beinhaltet, wie beispielsweise mit 128, 256 oder 512 Bits. Die Pipeline 630 beinhaltet einen Gleitkommaplaner 634 zum Planen von Befehlen zur Ausführung in einer von mehreren Ausführungseinheiten der Pipeline. In der gezeigten Ausführungsform beinhalten derartige Ausführungseinheiten eine ALU 635, eine Mischeinheit 636 und einen Gleitkommaaddierer 638. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können wiederum zurück für Puffer und/oder Register der Registerdatei 632 bereitgestellt werden. Natürlich versteht es sich, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt, in einer anderen Ausführungsform zusätzliche oder andere Gleitkomma-Ausführungseinheiten vorhanden sein können.
  • Eine Ganzzahl-Pipeline 640 kann ebenfalls bereitgestellt sein. In der gezeigten Ausführungsform beinhaltet die Pipeline 640 ein Ganzzahlregister 642, das mehrere Architekturregister eines gegebenen Bits beinhaltet, wie beispielsweise mit 128 oder 256 Bits. Die Pipeline 640 beinhaltet einen Ganzzahlplaner 644 zum Planen von Befehlen zur Ausführung in einer oder mehreren Ausführungseinheiten der Pipeline. In der gezeigten Ausführungsform beinhalten derartige Ausführungseinheiten eine ALU 645, eine Versetzereinheit 646 und eine Sprungausführungseinheit 648. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können wiederum zurück für Puffer und/oder Register der Registerdatei 642 bereitgestellt werden. Natürlich versteht es sich, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt, in einer anderen Ausführungsform zusätzliche oder andere Ganzzahl-Ausführungseinheiten vorhanden sein können.
  • Ein Speicherausführungsplaner 650 kann Speicheroperationen zum Ausführen einer Adresserzeugungseinheit 652 planen, die auch mit einem TLB 654 gekoppelt ist. Wie zu sehen ist, können diese Strukturen mit einem Daten-Cache 660 gekoppelt sein, der ein L0- und/oder ein L1-Daten-Cache sein kann, der wiederum mit weiteren Ebenen einer Cache-Speicherhierarchie gekoppelt ist, einschließlich eines L2-Cache-Speichers.
  • Um eine Unterstützung der Out-of-Order-Ausführung bereitzustellen, kann zusätzlich zu einem Neuordnungspuffer 680 ein Zuweiser/Umbenenner 670 bereitgestellt sein, der dafür konfiguriert ist, Befehle neuzuordnen, die zwecks Retirement in Reihenfolge außerhalb der Reihenfolge ausgeführt werden. Zu beachten ist, dass Leistungs- und Energieeffizienzfähigkeiten des Kerns 600 basierend auf Arbeitslast und/oder Prozessorbeschränkungen variieren können. Somit kann ein Energiecontroller (in 6 nicht gezeigt) dynamisch Rückmeldungsinformationen, einschließlich der Leistungs- und Energieeffizienzfähigkeiten, zur Verwendung in Planungsentscheidungen bestimmen, wie im Vorliegenden beschrieben. Obwohl in der Veranschaulichung von 6 mit dieser bestimmten Pipeline-Architektur gezeigt, versteht es sich, dass viele Varianten und Alternativen möglich sind.
  • Zu beachten ist, das in einem Prozessor mit asymmetrischen Kernen, wie z. B. gemäß den Mikroarchitekturen der 5 und 6, Arbeitslasten aus Energieverwaltungsgründen zwischen den Kernen dynamisch ausgetauscht werden können, da diese Kerne, obwohl sie unterschiedliche Pipeline-Gestaltungen und - Tiefen aufweisen, die gleiche oder eine verwandte ISA haben können. Dieser dynamische Kernaustausch kann auf eine Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch einen Kernel) transparent ist.
  • In 7 ist nun ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform gezeigt. Wie in 7 dargestellt, kann ein Kern 700 eine mehrstufige In-Order-Pipeline beinhalten, um auf sehr geringen Energieverbrauchsniveaus zu arbeiten. Als ein derartiges Beispiel kann ein Prozessor 700 eine Mikroarchitektur gemäß einer ARM-Cortex-A53-Gestaltung, die von der ARM Holdings LTD., Sunnyvale, CA, bezogen werden kann, aufweisen. In einer Umsetzung kann eine 8-stufige Pipeline bereitgestellt sein, die dafür konfiguriert ist, sowohl 32-Bit-Code als auch 64-Bit-Code auszuführen. Der Kern 700 beinhaltet eine Abholeinheit 710, die dafür konfiguriert ist, Befehle abzuholen, einschließlich eines Einsatz-Selbsttestbefehls, wie im Vorliegenden beschrieben, und diese für eine Decodiereinheit 715 bereitzustellen, welche die Befehle, z. B. Makrobefehle einer gegebenen ISA, wie beispielsweise einer ARMv8-ISA, decodieren kann. Ferner ist zu beachten, dass mit der Decodiereinheit 715 eine Warteschlange 730 gekoppelt sein kann, um decodierte Befehle zu speichern. Die decodierten Befehle werden für eine Issue-Logik 725 bereitgestellt, wo die decodierten Befehle an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden kann.
  • Weiter bezugnehmend auf 7 kann die Issue-Logik 725 Befehle an eine von mehreren Ausführungseinheiten ausgeben. In der gezeigten Ausführungsform beinhalten diese Ausführungseinheiten eine Ganzzahllogik 735, eine Multiplikationseinheit 740, eine Gleitkomma-/Vektoreinheit 750, eine duale Issue-Einheit 760 und eine Lade-/Speichereinheit 770. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können für eine Write-Back-Einheit 780 bereitgestellt werden. Es versteht sich, dass zwar zur Erleichterung der Veranschaulichung eine einzelne Write-Back-Einheit gezeigt ist, in einigen Umsetzungen jedoch jeder der Ausführungseinheiten eine separate Write-Back-Einheit zugeordnet sein kann. Darüber hinaus versteht sich, dass zwar jede der Einheiten und die Logik, die in 7 gezeigt sind, auf einer hohen Ebene repräsentiert sind, eine konkrete Umsetzung jedoch mehr oder andere Strukturen beinhalten kann. Ein mit Hilfe von einem oder mehreren Kernen gestalteter Prozessor, der eine Pipeline wie in 7 aufweist, kann in vielen verschiedenen Endprodukten umgesetzt sein, die sich von Mobilgeräten bis zu Serversystemen erstrecken.
  • Bezugnehmend auf 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform gezeigt. Wie in 8 veranschaulicht, kann ein Kern 800 eine mehrstufige, Mehrfach-Issue-Out-of-Order-Pipeline beinhalten, um auf sehr hohen Leistungsniveaus zu arbeiten (die bei höheren Energieverbrauchsniveaus als Kern 700 von 7 auftreten können). Als ein derartiges Beispiel kann der Prozessor 800 eine Mikroarchitektur gemäß einer ARM-Cortex-A57-Gestaltung aufweisen. In einer Umsetzung kann eine 15(oder höher)-stufige Pipeline bereitgestellt sein, die dafür konfiguriert ist, sowohl 32-Bit- als auch 64-Bit-Code auszuführen. Des Weiteren kann die Pipeline einen 3(oder höher)-breiten und 3(oder höher)-Issue-Betrieb bereitstellen. Der Kern 800 beinhaltet eine Abholeinheit 810, die dafür konfiguriert ist, Befehle abzuholen, einschließlich eines Einsatz-Selbsttestbefehls, wie im Vorliegenden beschrieben, und diese für einen Decodierer/Umbenenner/Dispatcher 815 bereitzustellen, der die Befehle, z. B. Makrobefehle einer ARMv8-Befehlssatzarchitektur, decodieren, Registerreferenzen in den Befehlen umbenennen und die Befehle (schließlich) an eine ausgewählte Ausführungseinheit senden kann. Decodierte Befehle können in einer Warteschlange 825 gespeichert werden. Zu beachten ist, dass zwar in 8 zur Erleichterung der Veranschaulichung eine einzelne Warteschlangenstruktur gezeigt ist, es sich jedoch versteht, dass für jede der mehreren verschiedenen Arten von Ausführungseinheiten eine separate Warteschlange bereitgestellt werden kann.
  • Ebenfalls in 8 ist eine Issue-Logik 830 gezeigt, von der in einer Warteschlange 825 gespeicherte decodierte Befehle an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Issue-Logik 830 kann in einer bestimmten Ausführungsform außerdem mit einer separaten Issue-Logik für jede der mehreren verschiedenen Arten von Ausführungseinheiten, mit denen die Issue-Logik 830 gekoppelt ist, umgesetzt sein.
  • Decodierte Befehle können an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden. In der gezeigten Ausführungsform beinhalten diese Ausführungseinheiten eine oder mehrere Ganzzahleinheiten 835, eine Multiplikationseinheit 840, eine Gleitkomma-/Vektoreinheit 850, eine Sprungvorhersageeinheit 860 und eine Lade-/Speichereinheit 870. In einer Ausführungsform kann die Gleitkomma-/Vektoreinheit 850 dafür konfiguriert sein, SIMD oder Vektordaten von 128 oder 256 Bits zu handhaben. Ferner kann die Gleitkomma-/Vektoreinheit 850 IEEE-754-Doppelpräzisions-GleitkommaOperationen durchführen. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können für eine Write-Back-Einheit 880 bereitgestellt werden. Zu beachten ist, dass in einigen Umsetzungen jeder der Ausführungseinheiten separate Write-Back-Einheiten zugeordnet sein können. Darüber hinaus versteht es sich, dass zwar jede der in 8 gezeigten Einheiten und die Logik auf einer hohen Ebene dargestellt ist, eine konkrete Umsetzung jedoch mehr oder andere Strukturen beinhalten kann.
  • Zu beachten ist, dass bei einem Prozessor mit asymmetrischen Kernen, wie z. B. gemäß den Mikroarchitekturen von 7 und 8, aus Energieverwaltungsgründen Arbeitslasten dynamisch ausgetauscht werden können, das diese Kerne, obwohl sie unterschiedliche Pipeline-Gestaltungen und -tiefen aufweisen, die gleiche oder eine verwandte ISA haben können. Dieser dynamische Kernaustausch kann auf eine Weise ausgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch einen Kernel) transparent ist.
  • Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne gestaltet ist, die Pipelines wie in einer oder mehreren der 5 bis 8 aufweisen, kann in vielen verschiedenen Endprodukten umgesetzt sein, die sich von Mobilgeräten bis zu Serversystemen erstrecken. In 9 ist nun ein Blockdiagramm eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. In der Ausführungsform von 9 kann ein Prozessor 900 ein SoC sein, das mehrere Domänen beinhaltet, die jeweils dafür gesteuert werden können, mit einer unabhängigen Betriebsspannung und Betriebsfrequenz zu arbeiten. Als spezifisches veranschaulichendes Beispiel kann der Prozessor 900 ein Intel®-Architektur-Core™-basierter Prozessor sein, wie beispielsweise ein i3, i5 oder i7 oder ein anderer derartiger Prozessor, der von der Intel Corporation bezogen werden kann. Jedoch können in weiteren Ausführungsformen stattdessen andere Niedrigenergieprozessoren, wie sie beispielsweise von Advanced Micro Devices, Inc. (AMD) in Sunnyvale, CA, bezogen werden kann, eine ARM-basierte Gestaltung von ARM Holdings, Ltd. oder deren Lizenznehmern oder eine MIPSbasierte Gestaltung von MIPS Technologies, Inc. in Sunnyvale, CA oder deren Lizenznehmern oder Erstanwendern vorhanden sein, wie beispielsweise ein Apple-A7-Prozessor, ein Qualcomm-Snapdragon-Prozessor oder ein Texas-Instruments-OMAP-Prozessor. Ein derartiges SoC kann in einem Niedrigenergiesystem verwendet werden, wie beispielsweise einem Smartphone, einem Tablet, einem Phablet, einem Ultrabook™ oder einem anderen transportablen Rechengerät oder einem Fahrzeugrechensystem.
  • In der in 9 gezeigten Ansicht der hohen Ebene beinhaltet der Prozessor 900 mehrere Kerneinheiten 9100 - 910n . Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cache-Speicher und andere Schaltungen beinhalten. Jede Kerneinheit 910 kann einen oder mehrere Befehlssätze unterstützen (z. B. einen x86-Befehlssatz (mit einigen Erweiterungen, die neueren Versionen hinzugefügt wurden), einen MIPS-Befehlssatz, einen ARM-Befehlssatz (mit optional hinzugefügten Erweiterungen, wie beispielsweise NEON)) oder einen anderen Befehlssatz oder Kombinationen daraus. Zu beachten ist, dass einige der Kerneinheiten heterogene Ressourcen sein können (z. B. von unterschiedlicher Gestaltung). Des Weiteren kann jeder derartige Kern mit einem Cache-Speicher (nicht gezeigt) gekoppelt sein, der in einer Ausführungsform ein Cache-Speicher einer gemeinsam genutzten Ebene (L2) sein kann. Es kann ein nicht-flüchtiger Speicher 930 verwendet werden, um verschiedene Programm- und andere Daten zu speichern. Dieser Speicher kann zum Beispiel verwendet werden, um mindestens Abschnitte von Mikrocode, Hochfahrinformationen, wie beispielsweise ein BIOS, andere Systemsoftware, Testmuster für das im vorliegenden beschriebene diagnostische Selbsttesten usw. zu speichern.
  • Jede Kerneinheit 910 kann außerdem eine Schnittstelle beinhalten, wie beispielsweise eine Bus-Schnittstelle, um eine Verbindung mit weiteren Schaltungen des Prozessors zu ermöglichen. In einer Ausführungsform ist jede Kerneinheit 910 mit einem kohärenten Gebilde gekoppelt, das als eine primärcache-kohärente Verbindung auf dem Chip fungieren kann, die wiederum mit einem Speichercontroller 935 gekoppelt ist. Der Speichercontroller 935 wiederum steuert die Kommunikation mit einem Speicher, wie beispielsweise einem DRAM (zur Erleichterung der Veranschaulichung in 9 nicht gezeigt).
  • In dem Prozessor sind zusätzlich zu den Kerneinheiten zusätzliche Verarbeitungsmaschinen vorhanden, einschließlich mindestens einer Grafikeinheit 920 die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) beinhalten kann, um eine Grafikverarbeitung durchzuführen sowie möglicherweise Allzweckoperationen im Grafikprozessor auszuführen (sogenannte GPGPU-Operationen). Des Weiteren kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann dafür konfiguriert sein, eingehende Bilddaten zu verarbeiten, die von einem oder mehreren Aufnahmegeräten, entweder intern im SoC oder außerhalb des Chips, empfangen werden.
  • Es können weitere Beschleuniger vorhanden sein. In der Veranschaulichung von 9 kann ein Videocodierer 950 Codieroperationen durchführen, einschließlich des Codierens und Decodierens von Videoinformationen, z. B. Hardware-Beschleunigungsunterstützung für HD-Videoinhalt. Ferner kann ein Anzeigecontroller 955 bereitgestellt sein, um Anzeigeoperationen zu beschleunigen, einschließlich des Bereitstellens von Unterstützung für systeminterne und -externe Anzeigen. Des Weiteren kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsoperationen durchzuführen, wie beispielsweise eine sichere Hochfahroperation, verschiedene Verschlüsselungsoperationen usw.
  • Der Energieverbrauch jeder Einheit kann über eine Energieverwaltung 940 gesteuert werden, die Steuerlogik zum Durchführen der verschiedenen im Vorliegenden beschriebenen Energieverwaltungstechniken beinhalten, einschließlich der dynamischen Bestimmung von Hardware-Rückmeldungsinformationen für die Übermittlung an einen Planer.
  • In einigen Ausführungsformen kann das SoC 900 ferner ein nichtkohärentes Gebilde beinhalten, das mit dem kohärenten Gebilde gekoppelt ist, mit welchen verschiedene Peripheriegeräte gekoppelt sein können. Eine oder mehr Schnittstellen 960a-960d ermöglichen die Kommunikation mit einem oder mehreren Geräten außerhalb des Chips. Diese Kommunikation kann mittels einer Vielfalt von Kommunikationsprotokollen erfolgen, wie beispielsweise PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI, neben anderen Arten von Kommunikationsprotokollen. Obwohl in der Ausführungsform von 9 auf dieser hohen Ebene gezeigt, versteht es sich, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • In 10 ist nun ein Blockdiagramm eines repräsentativen SoC gezeigt. In der gezeigten Ausführungsform kann das SoC 1000 ein Mehrkern-SoC sein, das für einen Betrieb mit geringem Energieverbrauch konfiguriert ist und für das Einbinden in ein Smartphone oder ein anderes Niedrigenergiegerät, wie beispielsweise ein Tablet oder ein anderes transportables Rechengerät oder ein Fahrzeugrechensystem, optimiert werden soll. Als ein Beispiel kann ein SoC 1000 mit Hilfe asymmetrischer oder unterschiedlicher Kerne umgesetzt sein, wie beispielsweise Kombinationen von Hochenergie- und/oder Niedrigenergiekernen, z. B. Out-of-Order-Kernen und In-Order-Kernen. In anderen Ausführungsformen können diese Kerne auf einer Intel®-Architektur™-Kerngestaltung oder einer ARM-Architekturgestaltung basieren. In noch weiteren Ausführungsformen kann in einem gegebenen SoC eine Mischung aus Intel- und ARM-Kern umgesetzt sein.
  • Wie in 10 zu sehen ist, beinhaltet das SoC 1000 eine erste Kerndomäne 1010 mit mehreren ersten Kernen 10120 - 10123 . In einem Beispiel können diese Kerne Niedrigenergiekerne sein, wie beispielsweise In-Order-Kerne, die sich über eine Mailboxschnittstelle mit entsprechender Kernperimeterlogik verbinden, wie im Vorliegenden beschrieben. In einer Ausführungsform können diese ersten Kerne als ARM-Cortex-A53-Kerne umgesetzt sein. Diese Kerne sind wiederum mit einem Cache-Speicher 1015 der Kerndomäne 1010 gekoppelt. Des Weiteren beinhaltet das SoC 1000 eine zweite Kerndomäne 1020. In der Veranschaulichung von 10 weist die zweite Kerndomäne 1020 mehrere zweite Kerne 10220 - 10223 auf. In einem Beispiel können diese Kerne Kerne sein, die mehr Energie verbrauchen als die ersten Kerne 1012. In einer Ausführungsform können die zweiten Kerne Out-of-Order-Kerne sein, die als ARM-Cortex-A57-Kerne umgesetzt sein können. Diese Kerne wiederum sind mit einem Cache-Speicher 1025 der Kerndomäne 1020 gekoppelt. Zu beachten ist, dass zwar das in 10 gezeigte Beispiel in jeder Domäne 4 Kerne enthält, es sich jedoch versteht, dass in anderen Beispielen in einer gegebenen Domäne eine größere oder kleiner Anzahl von Kernen vorhanden sein kann.
  • Weiterhin bezugnehmend auf 10 ist außerdem eine Grafikdomäne 1030 bereitgestellt, die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) beinhalten kann, die dafür konfiguriert sind, unabhängig Grafikarbeitslasten auszuführen, z. B. bereitgestellt von einem oder mehreren Kernen der Kerndomänen 1010 und 1020. Als ein Beispiel kann die GPU-Domäne 1030 verwendet werden, um zusätzlich zum Bereitstellen von Grafik- und Anzeige-Rendering-Operationen eine Anzeigeunterstützung für eine Vielfalt von Bildschirmgrößen bereitzustellen.
  • Wie zu sehen ist, sind die verschiedenen Domänen mit einer kohärenten Verbindung 1040 gekoppelt, die in einer Ausführungsform ein cache-kohärentes Verbindungsgebilde sein kann, das wiederum mit einem integrierten Speichercontroller 1050 gekoppelt ist. Die kohärente Verbindung 1040 kann in einigen Beispielen einen gemeinsam genutzten Cache-Speicher beinhalten, wie beispielsweise einen L3-Cache. In einer Ausführungsform kann der Speichercontroller 1050 ein Direktspeichercontroller sein, um mehrere Kanäle für die Kommunikation mit einem Speicher außerhalb des Chips bereitzustellen, wie beispielsweise mehrere Kanäle eines DRAM (zur Erleichterung der Veranschaulichung in 10 nicht gezeigt).
  • In verschiedenen Beispielen kann die Anzahl der Domänen variieren. Für ein Niedrigenergie-SoC, das zum Einbinden in ein mobiles Rechengerät geeignet ist, kann zum Beispiel eine begrenzte Anzahl von Kerndomänen vorhanden sein, wie beispielsweise in 10 gezeigt. Ferner kann bei derartigen Niedrigenergie-SoCs die Kerndomäne 1020, einschließlich Kernen mit höherem Energieverbrauch beinhaltet, eine geringere Anzahl derartiger Kerne beinhalten. In einer Umsetzung können zum Beispiel zwei Kerne 1022 bereitgestellt sein, um den Betrieb auf verringerten Energieverbrauchsniveaus zu ermöglichen. Des Weiteren können die unterschiedlichen Kerndomänen auch mit einem Unterbrechungscontroller gekoppelt sein, um einen dynamischen Austausch von Arbeitslasten zwischen den unterschiedlichen Domänen zu ermöglichen.
  • Bei noch weiteren Ausführungsformen kann eine größere Anzahl von Kerndomänen sowie zusätzliche optionale IP-Logik vorhanden sein, indem ein SoC zwecks Einbindens in andere Rechengeräte, wie beispielsweise Desktops, Server, Hochleistungs-Rechensysteme, Basisstationen usw., auf höhere Leistungs-(und Energie-)niveaus heraufgesetzt werden kann. In einem derartigen Beispiel können 4 Kerndomänen mit jeweils einer gegebenen Anzahl von Out-of-Order-Kernen bereitgestellt sein. Ferner können auch zusätzlich zur optionalen GPU-Unterstützung (die beispielsweise die Form einer GPGPU einnehmen kann) ein oder mehrere Beschleuniger zum Bereitstellen optimierter Hardware-Unterstützung für bestimmte Funktionen (z. B. Web-Dienst, Netzwerkverarbeitung, Schalten usw.) bereitgestellt sein. Des Weiteren kann eine Eingabe-/Ausgabeschnittstelle vorhanden sein, um diese Beschleuniger mit Komponenten außerhalb des Chips zu koppeln.
  • Bezugnehmend auf 11 ist ein Blockdiagramm eines weiteren Beispiels für einen SoC gezeigt. In der Ausführungsform von 11 kann das SoC 1100 verschiedene Schaltungen beinhalten, um Hochleistung für Multimediaanwendungen, Kommunikation und andere Funktionen zu ermöglichen. Daher ist das SoC 1100 zum Einbinden in eine breite Vielfalt von transportablen und anderen Geräten geeignet, wie beispielsweise Smartphones, Tablets, smart TVs, Fahrzeugrechensysteme usw. In dem gezeigten Beispiel beinhaltet das SoC 1100 eine Domäne der zentralen Verarbeitungseinheit(CPU) 1110. In einer Ausführungsform können in der CPU-Domäne 1110 mehrere einzelne Prozessorkerne vorhanden sein. Beispielsweise kann die CPU-Domäne 1110 ein Vier-Kern-Prozessor mit 4 Multithread-Kernen sein. Diese Prozessoren können homogene oder heterogene Prozessoren sein, z. B. eine Mischung aus Niedrigenergie- und Hochenergie-Prozessorkernen.
  • Die GPU-Domäne 1120 ist wiederum bereitgestellt, um eine erweiterte Grafikverarbeitung in einer oder mehreren GPUs durchzuführen, um Grafik zu handhaben und APIs zu berechnen. Eine DSP-Einheit 1130 kann einen oder mehreren Niedrigenergie-DSPs zum Handhaben von Niedrigenergie-Multimediaanwendungen, wie beispielsweise Musikwiedergabe, Audio/Video usw., zusätzlich zu erweiterten Berechnungen, die während der Ausführung von Multimediabefehlen auftreten können, bereitstellen. Eine Kommunikationseinheit 1140 kann wiederum verschiedene Komponenten beinhalten, um eine Verbindungsfähigkeit über verschiedene Drahtlos-Protokolle bereitzustellen, wie beispielsweise Mobilfunkkommunikation (einschließlich 3G/4G-LTE), Drahtlos-Nahbereichs-Protokolle, wie beispielsweise Bluetooth™, IEEE 802.11 usw.
  • Ferner kann ein Multimediaprozessor 1150 verwendet werden, um das Aufnehmen und Wiedergeben von HD-Video- und Audioinhalt durchzuführen, einschließlich Verarbeitung von Benutzergesten. Eine Sensoreinheit 1160 kann zur Schnittstellenverbindung mit verschiedenen Sensoren außerhalb des Chips, die auf einer gegebenen Plattform vorhanden sind, mehrere Sensoren und/oder einen Sensorcontroller beinhalten. Ein Bildsignalprozessor 1170 kann mit einem oder mehreren separaten ISP versehen sein, um in Bezug auf aufgenommenen Inhalt von einer oder mehreren Kameras einer Plattform, einschließlich Standbild- und Videokameras, eine Bildbearbeitung durchzuführen.
  • Ein Anzeigeprozessor 1180 kann Unterstützung für die Verbindung mit einer HD-Anzeige einer gegebenen Pixeldichte bereitstellen, einschließlich der Fähigkeit, drahtlos Inhalt zum Wiedergeben auf einer derartigen Anzeige zu übertragen. Ferner kann eine Lokalisierungseinheit 1190 einen GPS-Empfänger mit Unterstützung für mehrere GPS-Konstellationen beinhalten, um Anwendungen mit hochgenauen Positionierungsinformationen zu versorgen, die mit Hilfe eines derartigen GPS-Empfängers gewonnen werden. Es versteht sich, dass, obwohl in dem Beispiel von 11 mit diesem konkreten Satz von Komponenten gezeigt, viele Varianten und Alternativen möglich sind.
  • In 12 ist nun ein Blockdiagramm eines beispielhaften Systems gezeigt, mit dem Ausführungsformen verwendet werden können. Wie zu sehen ist, kann das System 1200 ein Smartphone oder ein anderes drahtloses Kommunikationsgerät sein. Ein Basisbandprozessor 1205 ist dafür konfiguriert, verschiedene Signalverarbeitung in Bezug auf Kommunikationssignale, die von dem System gesendet oder empfangen werden sollen, durchzuführen. Der Basisbandprozessor 1205 wiederum ist mit einem Anwendungsprozessor 1210 gekoppelt, der eine Haupt-CPU des Systems sein kann, um zusätzlich zu Benutzeranwendungen, wie beispielsweise allgemein bekannte Social-Media- und Multimediaanwendungen, ein OS und andere Systemsoftware auszuführen. Der Anwendungsprozessor 1210 kann einen Energiecontroller wie im Vorliegenden beschrieben beinhalten und kann ferner dafür konfiguriert sein, eine Vielfalt von Rechenoperationen für das Gerät durchzuführen.
  • Der Anwendungsprozessor 1210 wiederum kann mit einer Benutzerschnittstelle/Anzeige 1220 gekoppelt sein, z. B. einer Touchscreen-Anzeige. Des Weiteren kann der Anwendungsprozessor 1210 mit einem Speichersystem gekoppelt sein, das einen nicht-flüchtigen Speicher und zwar einen Flash-Speicher 1230, und einen Systemspeicher, und zwar einen DRAM (Dynamic Random Access Memory) 1235 beinhaltet. Wie des Weiteren zu sehen ist, ist der Anwendungsprozessor 1210 ferner mit einem Aufnahmegerät 1240 gekoppelt, wie beispielsweise einem oder mehreren Bildaufnahmegeräte, die Video und/oder Standbilder aufzeichnen können.
  • Weiter bezugnehmend auf 12 ist eine universelle integrierte Schaltungskarte (UICC) 1240, die ein Teilnehmeridentitätsmodul und möglicherweise einen sicheren Speicher und einen Kryptoprozessor umfasst, ebenfalls mit dem Anwendungsprozessor 1210 gekoppelt. Das System 1200 kann ferner einen Sicherheitsprozessor 1250 beinhalten, der mit dem Anwendungsprozessor 1210 gekoppelt sein kann. Mit dem Anwendungsprozessor 1210 können mehrere Sensoren 1225 gekoppelt sein, um die Eingabe einer Vielfalt abgetasteter Informationen wie beispielsweise Beschleunigungsmesser- und andere Umgebungsinformationen zu ermöglichen. Ein Audioausgabegerät 1295 kann eine Schnittstelle bereitstellen, um Ton auszugeben, z. B. in Form von Sprachkommunikation, abgespielten oder Streaming-Audiodaten usw.
  • Wie des Weiteren dargestellt, ist eine kontaktlose Nahfeldkommunikations(NFC)-Schnittstelle 1260 bereitgestellt, die in einem NFC-Nahfeld über eine NFC-Antenne 1265 kommuniziert. Obwohl in 12 separate Antennen gezeigt sind, versteht es sich, dass in einigen Umsetzungen eine Antenne oder ein anderer Antennensatz bereitgestellt sein kann, um verschiedene Drahtlosfunktionalität bereitzustellen.
  • Eine integrierte Energieverwaltungsschaltung (PMIC) 1215 ist mit dem Anwendungsprozessor 1210 gekoppelt, um eine Energieverwaltung auf Plattformebene durchzuführen. Zu diesem Zweck kann die PMIC 1215 Energieverwaltungsanfragen an den Anwendungsprozessor 1210 ausgeben, um in bestimmte Niedrigenergiezustände einzutreten. Darüber hinaus kann die PMIC 1215 basierend auf Plattformbeschränkungen außerdem die Energieniveaus anderer Komponenten des Systems 1200 steuern.
  • Um das Senden und Empfangen von Kommunikation zu ermöglichen, können verschiedene Schaltungen zwischen den Basisbandprozessor 1205 und eine Antenne 1290 gekoppelt sein. Insbesondere können ein Hochfrequenz(RF)-Sendeempfänger 1270 und ein WLAN(Wireless Local Area Network)-Sendeempfänger 1275 vorhanden sein. Im Allgemeinen kann der RF-Sendeempfänger 1270 verwendet werden, um Drahtlosdaten und -anrufe gemäß einem gegebenen Drahtloskommunikationsprotokoll zu empfangen und zu senden, wie beispielsweise dem 3G- oder 4G-Drahtloskommunikationsprotokoll, wie beispielsweise gemäß einem CDMA- (Code Division Multiplex Access), GSM-(Global System for Mobile Communication), LTE- (Long Term Evolution) oder einem anderen Protokoll. Zusätzlich kann ein GPS-Sensor 1280 vorhanden sein. Andere Drahtloskommunikationen wie der Empfang oder das Senden von Radiosignalen, z. B. AM/FM und anderen Signalen, können ebenfalls bereitgestellt sein. Des Weiteren können über den WLAN-Sendeempfänger 1275 auch lokale Drahtloskommunikationen realisiert werden.
  • In 13 ist nun ein Blockdiagramm eines weiteren beispielhaften Systems gezeigt, mit dem Ausführungsformen verwendet werden können. In der Veranschaulichung von 13 kann das System 1300 ein mobiles Niedrigenergiesystem sein, wie beispielsweise ein Tablet, ein 2-in-1-Tablet, ein Phablet oder ein anderes Convertible- oder eigenständiges Tablet-System. Wie veranschaulicht, ist ein SoC 1310 vorhanden und kann dafür konfiguriert sein, als ein Anwendungsprozessor für das Gerät zu arbeiten, und kann einen Leistungscontroller wie im Vorliegenden beschrieben beinhalten.
  • Mit dem SoC 1310 kann eine Vielfalt von Geräten gekoppelt sein. In der gezeigten Veranschaulichung beinhaltet ein Speicherteilsystem einen Flash-Speicher 1340 und einen DRAM 1345, die mit dem SoC 1310 gekoppelt sind. Des Weiteren ist ein Touchpanel 1320 mit dem SoC 1310 gekoppelt, um eine Anzeigefähigkeit und ein Benutzereingabe mittels Berührung bereitzustellen, einschließlich der Bereitstellung einer virtuellen Tastatur auf einer Anzeige des Touchpanels 1320. Um eine Verbindungsfähigkeit mit dem Festnetz bereitzustellen, ist das SoC 1310 mit einer Ethernet-Schnittstelle 1330 gekoppelt. Ein Peripheriegeräte-Hub 1325 ist mit dem SoC 1310 gekoppelt, um eine Schnittstellenverbindung mit verschiedenen Peripheriegeräten zu ermöglichen, wie sie beispielsweise über einen von verschiedenen Anschlüssen oder andere Verbindungsstücke mit dem System 1300 gekoppelt werden können.
  • Zusätzlich zu internen Energieverwaltungsschaltungen und -funktionalität in dem SoC 1310 ist mit dem SoC 1310 eine PMIC 1380 gekoppelt, um eine plattformbasierte Energieverwaltung bereitzustellen, z. B. basierend darauf, ob das System von einer Batterie 1390 oder Wechselstrom über einen Wechselstromadapter 1395 mit Energie versorgt wird. Zusätzlich zu dieser energiequellenbasierten Energieverwaltung kann die PMIC 1380 basierend auf Umgebungs- und Nutzungsbedingungen ferner Plattform-Energieverwaltungsaktivitäten durchführen. Des Weiteren kann die PMIC 1380 Steuerungs- und Statusinformationen an die SoC 1310 kommunizieren, um in dem SoC 1310 verschiedene Energieverwaltungsaktionen zu bewirken.
  • Weiter bezugnehmend auf 13 ist zum Bereitstellen von Drahtlosfähigkeiten eine WLAN-Einheit 1350 mit dem SoC 1310 und wiederum mit einer Antenne 1355 gekoppelt. In verschiedenen Umsetzungen kann die WLAN-Einheit 1350 eine Übertragung gemäß einem oder mehreren Drahtlosprotokollen bereitstellen.
  • Wie des Weiteren veranschaulicht, können mehrere Sensoren 1360 mit dem SoC 1310 gekoppelt sein. Diese Sensoren können verschiedene Beschleunigungsmesser, Umgebungs- und andere Sensoren, einschließlich Benutzergestensensoren, beinhalten. Schließlich ist ein Audio-Codec 1365 mit dem SoC 1310 gekoppelt, um eine Schnittstelle zu einem Audioausgabegerät 1370 bereitzustellen. Natürlich versteht es sich, dass, obwohl in 13 mit dieser konkreten Umsetzung gezeigt, viele Varianten und Alternativen möglich sind.
  • In 14 ist nun ein Blockdiagram eines repräsentativen Computersystems, wie beispielsweise eines Notebooks, eines Ultrabook™ oder ein anderen Systems mit kleinem Formfaktor gezeigt. Ein Prozessor 1410 beinhaltet in einer Ausführungsform einen Mikroprozessor, einen Mehrkernprozessor, einen Mehr-Thread-Prozessor, einen Prozessor mit ultra-niedriger Spannung, einen Embedded Processor oder ein anderes bekanntes Verarbeitungselement. In der veranschaulichten Umsetzung fungiert der Prozessor 1410 als eine Hauptverarbeitungseinheit und als zentraler Hub für die Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400. Beispielsweise ist der Prozessor 1410 als ein SoC umgesetzt und kann einen Energiecontroller wie im Vorliegenden beschrieben beinhalten.
  • Der Prozessor 1410 kommuniziert in einer Ausführungsform mit einem Systemspeicher 1415. Als veranschaulichendes Beispiel ist der Systemspeicher 1415 mittels mehrerer Speichergeräte oder -module umgesetzt, um einen Systemspeicher in gegebenem Umfang bereitzustellen.
  • Um einen dauerhaften Speicher von Informationen, wie beispielsweise Daten, Anwendungen, ein oder mehrere Betriebssystem usw. bereitzustellen, kann mit dem Prozessor 1410 außerdem ein Massenspeicher 1420 gekoppelt sein. In verschiedenen Ausführungsformen kann dieser Massenspeicher, um eine dünnere und leichtere Systemgestaltung zu ermöglichen und das Systemreaktionsvermögen zu verbessern, mittels SSD umgesetzt sein oder kann der Massenspeicher primär mit Hilfe eines Festplattenlaufwerks (HDD) mit einem kleineren Umfang von SSD-Speicher umgesetzt sein, um als SSD-Cache zu fungieren, um während Energieausfallereignissen ein nicht-flüchtiges Speichern von Kontextzustand- und anderen derartigen Informationen zu ermöglichen, so dass bei Wiedereinleiten von Systemaktivitäten ein schnelles Hochfahren erfolgen kann. Wie in 14 ebenfalls gezeigt, kann ein Flash-Gerät 1422 mit dem Prozessor 1410 gekoppelt sein, z. B. über eine SPI (Serial Peripheral Interface). Dieses Flash-Gerät kann für nicht-flüchtiges Speichern von Systemsoftware sorgen, einschließlich einer BIOS (Basic Input/Output Software) sowie anderer Firmware des Systems.
  • In dem System 1400 können verschiedene Eingabe-/Ausgabegeräte vorhanden sein. In der Ausführungsform von 14 ist spezifisch eine Anzeige 1424 gezeigt, die eine HD-LCD- oder eine LED-Tafel sein kann, die des Weiteren einen Touchscreen 1425 bereitstellt. In einer Ausführungsform kann die Anzeige 1424 über eine Anzeigeverbindung, die als Hochleistungs-Grafikverbindung umgesetzt sein kann, mit dem Prozessor 1410 gekoppelt sein. Der Touchscreen 1425 kann über eine andere Verbindung, die in einer Ausführungsform eine I2C-Verbindung sein kann, mit dem Prozessor 1410 gekoppelt sein. Wie ferner in 14 gezeigt, kann die Benutzereingabe mittels Berührung zusätzlich zum Touchscreen 1425 auch über ein Touchpad 1430 erfolgen, das in dem Gehäuse konfiguriert und ebenfalls mit der gleichen I2C-Verbindung wie der Touchscreen 1425 gekoppelt sein kann.
  • Für Perceptual Computing und andere Zwecke können in dem System verschiedene Sensoren vorhanden und auf unterschiedliche Weise mit dem Prozessor 1410 gekoppelt sein. Bestimmte Trägheits- und Umgebungssensoren können durch einen Sensor-Hub 1440 mit dem Prozessor 1410 gekoppelt sein, z. B. über eine I2C-Verbindung. In der in 14 gezeigten Ausführungsform können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (ALS) 1442, einen Kompass 1443 und ein Gyroskop 1444 beinhalten. Weitere Umgebungssensoren können einen oder mehrere Wärmesensoren 1446 beinhalten, die in einigen Ausführungsformen über einen Systemverwaltungsbus(SM-Bus)-Bus mit dem Prozessor 1410 gekoppelt sein können.
  • Wie in 14 ebenfalls zu sehen ist, können verschiedene Peripheriegeräte über eine Low-Pin-Count(LPC)-Verbindung mit dem Prozessor 1410 gekoppelt sein. In der gezeigten Ausführungsform können verschiedene Komponenten durch einen Embedded Controller 1435 gekoppelt sein. Diese Komponenten können eine Tastatur 1436 (z. B. über eine PS2-Schnittstelle gekoppelt), einen Lüfter 1437 und einen Wärmesensor 1439 beinhalten. In einigen Ausführungsformen kann auch ein Touchpad 1430 über eine PS2-Schnittstelle mit dem Embedded Controller 1435 gekoppelt sein. Des Weiteren kann mit dem Prozessor 1410 über diese LPC-Verbindung auch ein Sicherheitsprozessor gekoppelt sein, wie beispielsweise ein Trusted-Platform-Module (TPM) 1438.
  • Das System 1400 kann auf vielerlei Art und Weise mit externen Geräten kommunizieren, einschließlich drahtlos. In der in 14 gezeigten Ausführungsform sind verschiedene drahtlose Module vorhanden, von denen jedes einem Funkgerät entsprechen kann, das für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert ist. Eine Art und Weise der drahtlosen Kommunikation über eine Kurzstrecke, wie beispielsweise einem Nahfeld, kann über eine NFC-Einheit 1445 erfolgen, die in einer Ausführungsform über einen SMBus mit dem Prozessor 1410 kommunizieren kann. Zu beachten ist, dass über diese NFC-Einheit 1445 Geräte in großer Nähe zueinander kommunizieren können.
  • Wie in 14 des Weiteren zu sehen ist, können zusätzliche drahtlose Einheiten andere drahtlose Kurzstreckenmaschinen einhalten, einschließlich einer WLAN-Einheit 1450 und einer Bluetooth-Einheit 1452. Mit Hilfe der WLAN-Einheit 1450 kann die Wi-Fi™-Kommunikation realisiert werden, während mittels der Bluetooth-Einheit 1452 die Bluetooth™-Kommunikation erfolgen kann. Diese Einheiten können über einen gegebenen Link mit dem Prozessor 1410 kommunizieren.
  • Des Weiteren kann die Weitverkehrskommunikation, z. B. gemäß einem Mobilfunk- oder anderem Drahtlosweitverkehrsprotokoll, über eine WWAN-Einheit 1456 erfolgen, die wiederum mit einem Teilnehmer-Identitäts-Modul (SIM) 1457 gekoppelt sein kann. Des Weiteren kann außerdem ein GPS-Modul 1455 vorhanden sein, um den Empfang und die Verwendung von Standortinformationen zu ermöglichen. Zu beachten ist, dass in der in 14 gezeigten Ausführungsform die WWAN-Einheit 1456 und ein integriertes Aufnahmegerät, wie beispielsweise ein Kameramodul 1454, über einen gegebenen Link kommunizieren können.
  • Ein integriertes Kameramodul 1454 kann in den Deckel eingebunden sein. Um Audioeingaben und -ausgaben bereitzustellen, kann mittels eines Digitalsignalprozessors (DSP) 1460 ein Audioprozessor umgesetzt sein, der über einen HD-Audio(HDA)-Link mit dem Prozessor 1410 gekoppelt sein kann. In ähnlicher Weise kann der DSP 1460 mit einem integrierten Codierer/Decodierer (CODEC) und Verstärker 1462 kommunizieren, der wiederum mit Ausgabelautsprechern 1463 gekoppelt sein kann, die in dem Gehäuse umgesetzt sein können. In ähnlicher Weise können der Verstärker und CODEC 1462 gekoppelt sein, um Audioeingaben von einem Mikrofon 1465 zu empfangen, das in einer Ausführungsform mittels einer Anordnung aus dualen Mikrofonen (wie beispielsweise eine Anordnung digitaler Mikrofone) umgesetzt sei kann, um Audioeingaben von hoher Qualität bereitzustellen, um eine sprachaktivierte Steuerung verschiedener Operationen in dem System zu ermöglichen. Außerdem ist zu beachten, dass Audioausgaben von dem Verstärker/CODEC 1462 an eine Kopfhörerbuchse 1464 bereitgestellt werden können. Obwohl in 14 mit diesen konkreten Komponenten gezeugt, versteht es sich, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • Ausführungsformen können in vielen verschiedenen Systemarten umgesetzt sein. Bezugnehmend auf 15 ist nun ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 15 gezeigt, ist ein Mehrprozessorsystem 1500 ein Punkt-zu-Punkt-Verbindungssystem und beinhaltet einen ersten Prozessor 1570 und einen zweiten Prozessor 1580 die über eine Punkt-zu-Punkt-Verbindung 1550 gekoppelt sind. Wie in 15 gezeigt, kann jeder der Prozessoren 1570 und 1580 ein Mehrkernprozessor sein, der einen ersten und einen zweiten Prozessorkern beinhaltet (d. h. die Prozessorkerne 1574a und 1574b und die Prozessorkerne 1584a und 1584b), obwohl potentiell viel mehr Kerne in den Prozessoren vorhanden sein können. Jeder der Prozessoren kann eine PCU 1575, 1585 oder eine andere Energieverwaltungslogik zum Durchführen der im vorliegenden beschriebenen prozessorbasierten Energieverwaltung beinhalten. Zu diesem Zweck beinhalten die PCUs 1575 und 1585 Hardware-Rückmeldungssteuerschaltungen zum dynamischen Bestimmen von Fähigkeiten entsprechender Kerne, Arbeitslast-Überwachungsschaltungen zum dynamischen Bestimmen von Aufgabenverhältnissen und zusätzliche Steuerschaltungen zum Aktualisieren einer Energieverwaltungs-Richtlinie, zumindest teilweise basierend auf einem oder mehreren von den Hardware-Rückmeldungsinformationen, den Arbeitslastinformationen und/oder Modushinweisen, wie im Vorliegenden beschrieben ist.
  • Weiter bezugnehmend auf 15 beinhaltet der erste Prozessor 1570 ferner einen Speichercontroller-Hub (MCH) 1572 und Punkt-zu-Punkt(P-P)-Schnittstellen 1576 und 1578. In ähnlicher Weise beinhaltet der zweite Prozessor 1580 einen MCH 1582 und P-P-Schnittstellen 1586 und 1588. Wie in 15 gezeigt, koppeln die MCHs 1572 und 1582 die Prozessoren mit entsprechenden Speichern, und zwar einem Speicher 1532 und einem Speicher 1534, die Teile eines Systemspeichers (z. B. DRAM) sein können, der lokal an den entsprechenden Prozessoren angebracht ist. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über P-P-Verbindungen 1562 beziehungsweise 1564 mit einem Chipsatz 1590 gekoppelt sein. Wie in 15 gezeigt, beinhaltet der Chipsatz die P-P-Schnittstellen 1594 und 1598.
  • Darüber hinaus beinhaltet der Chipsatz 1590 eine Schnittstelle 1592, um den Chipsatz 1590 mit einer Hochleistungs-Grafikmaschine 1538 zu koppeln, z. B. eine P-P-Verbindung 1539. Der Chipsatz 1590 wiederum kann über eine Schnittstelle 1596 mit einem ersten Bus 1516 gekoppelt sein. Wie in 15 gezeigt, können verschiedene Eingabe-/Ausgabe(I/E/A)-Geräte 1514 mit dem ersten Bus 1516 gekoppelt sein, zusammen mit einer Busbrücke 1518, die den ersten Bus 1516 mit einem zweiten Bus 1520 koppelt. Mit dem zweiten Bus 1520 können verschiedene Geräte gekoppelt sein, einschließlich zum Beispiel einer Tastatur/Maus 1522, Kommunikationsgeräten 1526 und einer Datenspeichereinheit 1528 wie eines Plattenlaufwerks oder eines anderen Massenspeichergeräts, das in einer Ausführungsform Code 1530 beinhalten kann. Ferner kann eine Audio-E/A 1524 mit dem zweiten Bus 1520 gekoppelt sein. Ausführungsformen können in andere Arten von Systemen eingebunden sein, einschließlich Mobilgeräten, wie beispielsweise ein Smartphone, Tablet, Netbook, Ultrabook™ usw.
  • 16 ist ein Blockdiagramm, das ein IP-Kern-Entwicklungssystem 1600 veranschaulicht, das verwendet werden kann, um eine integrierte Schaltung herzustellen, um Operationen gemäß einer Ausführungsform durchzuführen. Das IP-Kern-Entwicklungssystem 1600 kann verwendet werden, um modulare, wiederverwendbare Designs zu erzeugen, die in ein größeres Design eingebunden oder zum Konstruieren einer ganzen integrierten Schaltung (z. B. eine in ein SoC integrierte Schaltung) verwendet werden können. Eine Designeinrichtung 1630 kann eine Software-Simulation 1610 eines IP-Kern-Designs in einer höheren Programmiersprache (z. B. C/C++) erzeugen. Die Software-Simulation 1610 kann verwendet werden, um das Verhalten des IP-Kerns zu gestalten, zu testen und zu bestätigen. Dann kann aus dem Simulationsmodell ein Registertransferebenen(RTL)-Design erstellt oder synthetisiert werden. Das RTL-Design 1615 ist eine Abstraktion des Verhaltens der integrierten Schaltung, die den Fluss digitaler Signale zwischen Hardware-Registern modelliert, einschließlich der zugeordneten Logik, die mit Hilfe der modellierten digitalen Signale ausgeführt wird. Zusätzlich zu einem RTL-Design 1615 können auch Designs niedrigerer Ebene auf der Logikebene oder der Transistorebene erstellt, gestaltet oder synthetisiert werden. Somit können die konkreten Details des anfänglichen Designs und der Simulation variieren.
  • Das RTL-Design 1615 oder sein Äquivalent kann ferner durch die Designeinrichtung zu einem Hardware-Modell 1620 synthetisiert werden, das in einer Hardware-Beschreibungssprache (HDL) oder einer anderen Darstellung physikalischer Designdaten vorliegen kann. Die HDL kann ferner simuliert oder getestet werden, um das IP-Kern-Design zu bestätigen. Das IP-Kern-Design kann mit Hilfe eines nicht-flüchtigen Speichers 1640 (z. B. Festplattenlaufwerk, Flash-Speicher oder ein beliebiges nicht-flüchtiges Speichermedium) zur Abgabe an eine Fremdfertigungseinrichtung 1665 gespeichert werden. Alternativ kann das IP-Kern-Design über eine drahtgebundene Verbindung 1650 oder eine drahtlose Verbindung 1660 übertragen werden (z. B. über das Internet). Die Fertigungseinrichtung 1665 kann dann eine integrierte Schaltung fertigen, die zumindest teilweise auf dem IP-Kern-Design basiert. Die gefertigte integrierte Schaltung kann dafür konfiguriert sein, Operationen gemäß mindestens einer im Vorliegenden beschriebenen Ausführungsform durchzuführen.
  • Bezugnehmend auf 17 ist nun ein Blockdiagramm einer Systemanordnung gemäß einer Ausführungsform gezeigt. Wie in 17 gezeigt, beinhaltet das System 1700 einen Prozessor 1710, der in einer Ausführungsform ein heterogener Mehrkernprozessor sein kann, der mit einem Systemspeicher 1760 gekoppelt ist, welcher in einer Ausführungsform als DRAM umgesetzt ist. Wie des Weiteren veranschaulicht, läuft auf dem Prozessor 1710 ein OS 1770. In der Veranschaulichung von 17 ist zu repräsentativen Zwecken ein einzelner Kern 1720 gezeigt. Es versteht sich, dass in verschiedenen Ausführungsformen mehrere Kerne vorhanden sein können. Der Kern 1720 ist über eine MailboxSchnittstelle 1750, die in einer Ausführungsform als eine Mikrocode-MailboxSchnittstelle umgesetzt sein kann, mit einer PCU 1730 gekoppelt. Natürlich sind auch andere Schnittstellen zum Ermöglichen der Kommunikation zwischen Kern 1720 und PCU 1730 möglich.
  • Wie des Weiteren veranschaulicht, beinhaltet der Prozessor 1710 außerdem einen Satz von Registers 1740. Die Register 1740 können eine Vielfalt maschinenspezifischer Register (MSR), Statusregister, Konfigurationsregister usw. sein. In der in 17 gezeigten konkreten Ausführungsform beinhaltet ein derartiges Register ein CPUID-Register 1742. Interessanterweise kann das CPUID-Register 1742 ein Hardware-Rückmeldungsfeld beinhalten, das, wenn eingestellt, anzeigt, dass der Prozessor in der Lage ist, dynamische Hardware-Rückmeldungsinformationen an ein OS bereitzustellen. Ein Hardware-Rückmeldungszeiger-MSR 1744 kann ein Hardware-Rückmeldungszeigerfeld zum Speichern eines Zeigers beinhalten, der vom OS geschrieben wird, um auf eine Stelle in einem Speicher zu verweisen, in der eine Hardware-Rückmeldungs-Informationsstruktur gespeichert werden soll. Es versteht sich, dass in verschiedenen Ausführungsformen zusätzliche Register vorhanden sein können. Ein Hardware-Rückmeldungskonfigurations-MSR 1746 kann eine Hardware-Aktivierungsfeld für eine Rückmeldungskonfiguration speichern, das, wenn eingestellt, anzeigt, dass der Prozessor 1710 dafür vorgesehen ist, eine Hardware-Rückmeldungs-Informationsverarbeitung durchzuführen, wie im Vorliegenden beschrieben.
  • Weiter bezugnehmend auf 17 beinhaltet die PCU 1730 eine Hardware-Rückmeldungs-Steuerschaltung 1735, die Hardware-Rückmeldungsinformationen berechnen und das Schreiben dieser Informationen in den Speicher 1760 auslösen kann. In einer Ausführungsform können diese Hardware-Rückmeldungsinformationen Informationen bezüglich einer dynamischen Schätzung der Leistungs- und Energieeffizienzfähigkeiten verschiedener Kerne beinhalten. Mit variierendem Energie-/Wärmezustand des Prozessors 1710 verändern sich die relativen Energie-/Leistungseigenschaften verschiedener Kerne und somit können diese Informationen solche dynamischen Änderungen einkapseln. Diese Informationen können über die MailboxSchnittstelle 1750 zu dem Kern 1720 kommuniziert werden. Der Mikrocode von Kern 1720 kann wiederum diese Hardware-Rückmeldungsinformationen empfangen und sie in den Systemspeicher 1760 schreiben und danach eine Bestätigung des Schreibens dieser Informationen an die PCU 1730 senden.
  • Die PCU 1730 kann ferner eine Arbeitslast-Überwachungsschaltung 1736 beinhalten. In Ausführungsformen im Vorliegenden kann die Arbeitslast-Überwachungsschaltung 1736 dafür konfiguriert sein, Arbeitslasten in Ausführung auf dem Prozessor 1710 zu klassifizieren. In einer Ausführungsform können Aufgaben einer Arbeitslast entweder als geplante (oder Hintergrund-) Aufgaben oder Vordergrundaufgaben klassifiziert werden. Derartige Informationen können für einen OS-Planer 1780 wie im Vorliegenden beschrieben bereitgestellt werden. Es versteht sich, dass sich eine Arbeitslast-Überwachungsschaltung, obwohl in der Ausführungsform von 17 in der PCU 1730 umgesetzt, in anderen Ausführungsformen in anderen Abschnitten eines Prozessors befinden kann.
  • Wie in 17 gezeigt, beinhaltet der Systemspeicher 1760 eine Hardware-Rückmeldungsstruktur 1766, die Hardware-Rückmeldungsinformationen als eine Datenstruktur mit zwei Vektoren speichern kann: Leistung und Effizienz, wobei jeder Vektor eine sortierte Liste von aufgezählten Kernen hinsichtlich relativer Leistung und Effizienz darstellt. Zu beachten ist, dass in weiteren Ausführungsformen eine direkte Schnittstelle bereitgestellt sein kann, um die PCU 1730 in die Lage zu versetzen, diese Hardware-Rückmeldungsinformationen direkt in den Systemspeicher 1760 zu schreiben. In Ausführungsformen können die Hardware-Rückmeldungsinformationen, bevor sie tatsächlich in den Speicher geschrieben werden, temporär als Write-Back-Informationen zwischengespeichert werden, z. B. in einem Cache der letzten Ebene des Prozessors 1710. Somit kann das OS 1770 auf die Hardware-Rückmeldungsinformationen entweder von dem LLC, wenn dort vorhanden, oder in dem Speicher 1760 zugreifen.
  • Wie in 17 gezeigt, beinhaltet das OS 1770 neben seinen Komponenten einen Planer 1780. In einer Ausführungsform im Vorliegenden kann der Planer 1780 dynamisch von Leistungsfähigkeiten von Verarbeitungskernen oder anderen Verarbeitungselementen Kenntnis haben und kann diese Informationen beim Planen von Arbeitslasten für die Kerne verwenden. Insbesondere können, wie im Vorliegenden beschrieben, für Hintergrundaufgaben Dynamische-Aufgaben-Affinitätsmasken entwickelt werden. Der OS-Planer 1780 kann diese Masken dann beim Planen von Hintergrundaufgaben für Kerne mit geringerer Leistung verwenden.
  • Wie zu sehen ist, beinhaltet der Planer 1780 Standardaufgaben-Affinitätsmasken 1782. Diese Masken können mit Hilfe von Informationen eingestellt werden, die bei Aufgabenerstellung empfangen werden, basierend auf der Anwendungs-/Aufgabenpräferenz. Wie des Weiteren gezeigt, beinhaltet der Planer 1780 außerdem dynamische Aufgabenaffinitätsmasken 1784. Diese Masken können, wie im Vorliegenden beschrieben, basierend auf Rückmeldungsinformationen, die von einem Energiecontroller z. B. der PCU 1730, empfangen werden, eingestellt werden. Ein Hintergrundaufgabenplaner 1786 kann Aufgaben bevorzugter Affinität begrenzen und Hintergrundaufgaben gemäß diesen Informationen in dynamischen Aufgabenaffinitätsmasken 1784 für am wenigsten (oder weniger) performante Kerne planen.
  • Weiterhin bezugnehmend auf das OS 1770 kann in einigen Ausführungsformen außerdem ein Plattformmodus-Selektor 1788 vorhanden sein. Der Plattformmodus-Selektor 1788 kann zumindest teilweise basierend auf einer Ebene der Hintergrundaufgaben in Ausführung und der Benutzerinteraktion einen Plattform-Betriebsmodus bestimmen und diese Information für einen Energiecontroller bereitstellen. Wie im Vorliegenden beschrieben, kann der Plattformmodus-Selektor 1788 basierend auf einer Ebene der Hintergrundaufgabenausführung und der Benutzeranwesenheit (oder Nichtanwesenheit) einen Plattformmodus auswählen. Obwohl Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind, können diese Plattformmodi einen aktiven Modus, einen Ruhemodus und einen Reaktionsvermögensmodus beinhalten. Wenn der Plattformmodus-Selektor 1788 eine Änderung des Plattformmodus bestimmt, kann er Modusinformationen an die PCU 1730 senden, die basierend auf dieser Änderung eine Energieverwaltungs-Richtlinie aktualisieren kann.
  • In anderen Fällen kann eine Bestimmung des Plattformmodus in den Schaltungen der PCU 1730 vorgenommen werden. Wie in 17 gezeigt, kann die PCU 1730 ferner eine Plattformmodus-Auswahlschaltung 1738 beinhalten. Die Auswahlschaltung 1738 kann dafür konfiguriert sein, zumindest teilweise basierend auf Verhältnissen zwischen Vordergrund- und Hintergrundaufgaben, Vergleichen derselben mit entsprechenden Grenzwerten und ferner basierend auf einer Bestimmung der Benutzeranwesenheit einen geeigneten Betriebsmodus für eine Plattform wie beispielsweise für das System 1700 zu bestimmen. Obwohl in der Ausführungsform von 17 als in der PCU 1730 vorhanden gezeigt, kann sich eine Plattformmodus-Auswahlschaltung an anderen Stellen befinden. In weiteren Ausführungsformen können zum Beispiel Kombinationen aus Plattformmodus-Auswahlschaltung 1738 und Plattformmodus-Selektor 1788 einen geeigneten Plattformmodus bestimmen. Es versteht sich, dass die PCU 1730 verschiedene Steuerschaltungen beinhalten kann, einschließlich Steuerschaltungen, die dafür konfiguriert sind, zumindest teilweise basierend auf der Bestimmung eines Plattformmodus eine Energieverwaltungs-Richtlinie für den erkannten Betriebsmodus dynamisch anzuwenden oder zu aktualisieren, um die Leistung, die Effizienz oder Kombinationen daraus zu verbessern. Es versteht sich, dass, obwohl in der Ausführungsform von 17 auf dieser hohen Ebene gezeigt, viele Varianten und Alternativen möglich sind.
  • In verschiedenen Ausführungsformen kann ein System Kernfähigkeitsinformationen zum Identifizieren am wenigsten performanter Kerne aktiv und dynamisch abfragen. In einer Ausführungsform können diese Informationen mit Hilfe eines Hardware-P-Zustand(HWP)-Fähigkeiten-MSR abgefragt werden. In anderen Fällen kann über eine hardware-geführte Planungs(HGS)-Schnittstelle ein dynamisches hardware-geführtes Leistungsanordnen von Kernen verwendet werden. Natürlich können in weiteren Ausführungsformen auch andere Mittel zum Identifizieren von Kernfähigkeiten verwendet werden. Derartige Informationen können dann verwendet werden, um einen Satz von Kernen zu beschränken, zu denen geplante Hintergrundaufgaben laufen können. Insbesondere können Ausführungsformen derartige Aufgaben auf am wenigsten performante Kerne (oder zumindest weniger performante Kerne) beschränken. In einer Ausführungsform können eine oder mehrere Aufgabenaffinitätsmasken in einem OS-Planer aktualisiert werden, um ein derartiges Planen zu beschränken. Auf diese Weise können geplante Aufgaben in Echtzeit dynamisch identifiziert und auf diese am wenigsten performanten Kerne beschränkt werden, wenn eine Benutzeranwesenheit erkannt wird. Ebenso können derartige Hintergrundaufgaben für beliebige Kerne geplant werden, wenn keine Benutzeranwesenheit erkannt wird. Auf diese Weise ist es möglich, in der Abwesenheit von Benutzeranwesenheit die performantesten Kerne für Hintergrundaufgaben einzuplanen, in dem Bemühen, derartige Aufgaben mit höherer Leistung auszuführen (die potentiell zu Energieeinsparungen führt). Natürlich ist es ebenso möglich, derartige Aufgaben auf am wenigsten performante Kerne zu beschränken, insbesondere in einer eingeschränkten Umgebung.
  • In 18 ist nun ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform gezeigt. Wie in 18 gezeigt, ist das Verfahren 1800 ein Verfahren, um weniger leistungsfähige Verarbeitungseinheiten für Hintergrundaufgaben einzuplanen. In verschiedenen Ausführungsformen kann das Verfahren 1800 durch Hardware-Schaltungen, Firmware, Software und/oder Kombinationen daraus durchgeführt werden. In einer konkreten Ausführungsform kann das Verfahren 1800 durch einen OS-Planer durchgeführt werden.
  • Wie veranschaulicht, beginnt das Verfahren 1800 mit dem Hochfahren des Systems (Block 1810). Zu beachten ist, dass während des Hochfahrens des Systems verschiedene Initialisierungsoperationen zum Initialisieren des Systems und seiner Komponenten, einschließlich eines Prozessors, erfolgen können. Als Teil dieses Initialisierungsprozesses können für das OS Hardware-Fähigkeitsinformationen, einschließlich einer Bestandszahl an Prozessorkernen und deren Fähigkeiten, bereitgestellt werden. Zum Beispiel kann für das OS eine Identifikation der Anzahl von Kernen und deren relative Fähigkeiten bereitgestellt werden, beispielsweise gemäß einer Skala von Leistungsfähigkeiten. Wie im Vorliegenden beschrieben werden wird, können diese statischen oder Grundinformationen während des Systembetriebes aktualisiert werden.
  • Weiterhin bezugnehmend auf 18 können bei Block 1820 ein oder mehrere am wenigsten performante Kerne dynamisch bestimmt werden. In einigen Fällen kann diese Bestimmung auf HWP-Informationen basieren, die durch einen Energiecontroller bereitgestellt werden. In anderen Fällen können diese Informationen aus dynamischen hardware-geführten Rückmeldungsinformationen gewonnen werden, die von einer PCU oder einem anderen Energiecontroller empfangen werden. In noch anderen Fällen können Kombinationen dieser Informationen und möglicherweise zusätzliche Informationen bei der Bestimmung der am wenigsten performanten Kerne verwendet werden. In einigen Fällen können die am wenigsten performanten Kerne kleinere Niedrigenergie(z. B. In-Order)-Kerne in einem heterogenen Prozessor sein. In anderen Fällen können die am wenigsten performanten Kerne auf Abweichungsinformationen basieren, die weniger performante Kerne, z. B. infolge von Herstellungsabweichungen, identifizieren. Mit dynamischen hardware-geführten Rückmeldungsinformationen ist es möglich, dass in bestimmten Betriebsumgebungen (z. B. einer beschränkten Prozessorumgebung) ein großer Out-of-Order-Kern als am wenigsten performanter Kern identifiziert wird.
  • In jedem Fall kann zumindest teilweise basierend auf diesen bestimmten Kernfähigkeitsinformationen eine Hintergrund-Kernmaske eingestellt werden (Block 1830). Zu beachten ist, dass in einigen Fällen diese Hintergrund-Kernmaske eine dynamische Aufgabenaffinitätsmaske sein kann, die separat zu einer Standardaufgaben-Affinitätsmaske besteht.
  • Weiterhin bezugnehmend auf 18 geht die Steuerung zu Block 1840 über, wo aktive geplante Aufgaben, die in dem System laufen, abgefragt werden können. Zum Beispiel kann eine Liste geplanter Aufgaben, und zwar der Aufgaben, die von einem Benutzer, IT-Personal, OEM oder anderweitig geplant wurden, für ein gegebenes Bewertungsintervall identifiziert werden. Diese geplanten Aufgaben können zum Beispiel regelmäßig geplante Wartungs- oder Sicherheitsaufgaben beinhalten. Als Nächstes wird bei Raute 1850 bestimmt, ob ein Benutzer anwesend ist oder eine oder mehrere der geplanten Aufgaben laufen. Obwohl Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind, kann eine Benutzeranwesenheit durch eine Benutzerinteraktion mit einem Eingabe-/Ausgabegerät (z. B. Tastatur, Maus, Touchscreen, Mikrofon usw.) erkannt werden. In anderen Fällen kann eine Benutzeranwesenheit mit Hilfe eines oder mehrerer Sensoren einer Plattform erkannt werden, wie beispielsweise einer oder mehrerer Kameras, z. B. möglicherweise mit Hilfe von Blickrichtungserkennung. Wenn bestimmt wird, dass kein Benutzer anwesend ist, geht die Steuerung zu Block 1870 über, wo keine weiteren Operationen erfolgen, und das Verfahren 1800 kehrt für das nächste Bewertungsintervall zu Block 1820 zurück. Obwohl Ausführungsformen in dieser Hinsicht nicht eingeschränkt sind, kann in einer Ausführungsform dieses nächste Bewertungsintervall ungefähr 5 Sekunden betragen. Natürlich ist eine kürzere oder längere Laufzeit möglich.
  • Weiterhin bezugnehmend auf 18 geht die Steuerung, wenn bestimmt wird, dass ein Benutzer anwesend ist und geplante Aufgaben laufen, zu Block 1860 über, wo ein Planer die Affinität dieser geplanten Aufgaben auf eine Hintergrund-Kernmaske einstellt. Das heißt, diese geplanten Aufgaben können so geplant werden, dass sie nur auf dem bestimmten einen oder den bestimmten mehreren am wenigsten performanten Kernen laufen. Somit werden aktive geplante Aufgaben in Echtzeit dynamisch identifiziert und auf am wenigsten performante Kerne beschränkt, wenn eine Benutzeranwesenheit erkannt wird. Zu beachten ist, dass im Ergebnis des Einstellens der Affinität der geplanten Aufgaben auf die Hintergrund-Kernmaske ein dynamischer Übergang von Hintergrundaufgaben auftreten kann, so dass beliebige Hintergrundaufgaben, die sich gegenwärtig in Ausführung auf einem performanteren Kern befinden, dynamisch auf einen weniger performanten Kern übergehen können. Mit Ausführungsformen des Vorliegenden können Leistungsgewinne realisiert werden, besonders bei Anwendungsinbetriebnahme, Web-Browsing und Produktivitätsarbeitslasten. Zu beachten ist, dass, wie gerade vorstehend zu 18 verstanden hinsichtlich des Einplanens am wenigsten performanter Kerne für bestimmte Aufgaben beschrieben, ein Bereich von Kernleistungsfähigkeiten bestehen kann. Somit kann, wenn eine Benutzeranwesenheit identifiziert wird, während Hintergrund- oder geplante Aufgaben ausgeführt werden, ein Bereich von Kernen, beginnend beim am wenigsten performanten, zum Planen dieser Hintergrundaufgaben ausgewählt werden, wobei jeder Kern unter Umständen nicht genau die gleiche Leistungsfähigkeit aufweist.
  • Ausführungsformen können außerdem eine dynamische Systemoptimierung bereitstellen, um während nicht-kritischer oder inaktiver Benutzersitzungen das Erreichen einer optimalen Batterielebensdauer zu unterstützen und gleichzeitig Reaktionsvermögen zu erreichen, wenn ein Benutzer anwesend ist. Zu diesem Zweck kann die Batterielebensdauer in Szenarien optimiert werden, in denen während des Betriebes mit Batterieenergie ein Benutzer nicht aktiv mit einem System interagiert und keine benutzerkritischen Aufgaben in Ausführung sind.
  • Zu diesem Zweck können Ausführungsformen Benutzerinteraktionen mit einem System überwachen, während Informationen bezüglich geplanter Hintergrund- und Vordergrundaufgaben in Ausführung aufrechterhalten werden. Mit diesen Informationen kann eine Plattform einen Plattform-Betriebsmodus identifizieren und Energieverwaltungs-Richtlinien basierend auf dem Betriebsmodus dynamisch umschalten. Auf diese Weise können in einem Ruhebetriebsmodus und bei Batteriebetrieb Hintergrundaufgaben ausgeführt werden, während eine Hintergrundmodus-Energieverwaltungs-Richtlinie angewandt wird, welche die Batterielebensdauer verlängern kann.
  • In 19 ist nun ein Ablaufdiagramm eines Verfahrens gemäß einer weiteren Ausführungsform gezeigt. Wie in 19 gezeigt, ist das Verfahren 1900 ein Verfahren zum Bestimmen eines Plattformmodus. In verschiedenen Ausführungsformen kann das Verfahren 1900 durch Hardware-Schaltungen, Firmware, Software und/oder Kombinationen daraus durchgeführt werden. Zum Beispiel kann das Verfahren 1900 von einem OS-Planer, PCU-Schaltungen oder Kombinationen daraus durchgeführt werden.
  • Wie gezeigt, kann das Verfahren 1900 in einem aktiven Modus eines Systems beginnen, in dem eine oder mehrere Aufgaben Ausführungen sind. Während dieses aktiven Modus kann bestimmt werden, ob innerhalb eines letzten Bewertungsintervalls ein Benutzer mit dem System interagiert hat (Block 1910). Diese Bestimmung der Benutzerinteraktion kann auf der Erkennung einer Benutzerinteraktion mit einem Eingabe-/Ausgabegerät, Sensormessungen usw. basieren.
  • Wenn bestimmt wird, dass der Benutzer innerhalb der Laufzeit des letzten Bewertungsintervalls nicht mit dem System interagiert hat, geht die Steuerung zu einer Ruhemodusschleife 1920 über. In der Ruhemodusschleife 1920 können verschiedene Operationen durchgeführt werden, um zu bestimmen, ob eine Energieverwaltungs-Richtlinie für einen Ruhemodus geeignet sein kann. Wie veranschaulicht, beinhaltet die Ruhemodusschleife 1920 das Identifizieren geplanter Aufgaben, die in dem System ablaufen (Block 1930). Wie vorstehend erläutert, können derartige geplante Aufgaben von einem Benutzer, IT-Personal, einem OEM oder einer Entität, z. B. für regelmäßig geplante Wartungs- oder Sicherheitsaktivitäten, geplant werden.
  • Als Nächstes kann bei Block 1935 ein Verhältnis geplanter Aufgaben berechnet werden. In einer Ausführungsform kann das Verhältnis geplanter Aufgaben gemäß Gleichung 1 errechnet werden: Verhältnis geplanter Aufgaben = Gesamt-CPU-Zeit (geplante Aufgaben)/Gesamt-CPU-Aktivzeit [Gleich. 1]. Als Nächstes wird bestimmt, ob das Verhältnis geplanter Aufgaben einen Ruhemodus-Grenzwert übersteigt (Raute 1940). Zwar kann dieser Ruhemodus-Grenzwert in unterschiedlichen Ausführungsformen unterschiedliche Werte aufweisen, doch kann der Ruhemodus-Grenzwert in einer beispielhaften Ausführungsform auf ungefähr 50 % eingestellt sein.
  • Wenn bestimmt wird, dass das Verhältnis geplanter Aufgaben diesen Ruhemodus-Grenzwert nicht übersteigt, wird die Ruhemodusschleife 1920 beendet und der normale aktive Modus kann fortgesetzt werden. Wenn anderenfalls bei Raute 1940 bestimmt wird, dass das Verhältnis geplanter Aufgaben den Ruhemodus-Grenzwert übersteigt, geht die Steuerung zu Block 1945 über, wo eine Energieverwaltungs-Richtlinie für den Ruhemodus angewandt werden kann. In einer Ausführungsform kann diese Energieverwaltungs-Richtlinie einen oder mehrere Konfigurationswerte beinhalten, die zur Steuerung des Energieverbrauchs für einen Energiecontroller bereitgestellt werden. Beispielsweise kann diese Energieverwaltungs-Richtlinie eine oder mehrere verminderte Energieobergrenzen beinhalten. In einer Ausführungsform kann eine derartige verminderte Energieobergrenze auf ein geringeres Niveau als eine langfristige Energieobergrenze eingestellt sein, z. B. ein Energieniveau des thermischen Designs. Der Energiecontroller kann derartige Energieobergrenzen verwenden, um das den Kernen und anderen Schaltungen des Prozessors zugewiesene Energiebudget zu steuern. Mit einer oder mehreren verminderten Energieobergrenzen kann ein geringerer Energieverbrauch realisiert werden, wenn ein Benutzer während der Ausführung geplanter Aufgaben nicht mit dem System interagiert. Zusätzlich zu Energieobergrenzen-Einstellungen kann diese Ruhemodus-Energieverwaltungs-Richtlinie neben anderen Operationen ferner das Vorausrichten einer Energieleistungspräferenz hin zu Energieeffizienz und weg von Leistung, das Deckeln von Prozessorfrequenz/-leistung auf ein effizientes Niveau und/oder das aggressive Einschalten von tiefen inaktiven Kern- und Gehäusezuständen (d. h. Verringern des Herabstufens des inaktiven Zustands) beinhalten.
  • Wenn stattdessen bei Raute 1910 bestimmt wird, dass der Benutzer während des letzten Bewertungsintervalls tatsächlich mit dem System interagiert hat, geht die Steuerung zur Ausführung einer Reaktionsvermögensschleife 1950 zu Block 1950 über. Im der Reaktionsvermögensmodus-Schleife 1950 können verschiedene Operationen ausgeführt werden, um zu bestimmen, ob eine Energieverwaltungs-Richtlinie für einen Reaktionsvermögensmodus geeignet sein kann. Wie veranschaulicht, beinhaltet die Reaktionsvermögensmodus-Schleife 1950 das Identifizieren von Vordergrundaufgaben, die in dem System laufen (Block 1960). Wie vorstehend erläutert, sind derartige Vordergrundaufgaben solche, bei denen ein Benutzer in Echtzeit mit einer Plattform interagiert.
  • Als Nächstes kann bei Block 1965 ein Vordergrundaufgabenverhältnis berechnet werden. In einer Ausführungsform kann das Vordergrundaufgabenverhältnis gemäß Gleichung 2 errechnet werden: Vordergrundaufgabenverhältnis = Gesamtvordergrund-CPU-Zeit/Gesamt-CPU-Zeit [Gleich. 2]. Als Nächstes wird bestimmt, ob das Vordergrundaufgabenverhältnis einen Reaktionsvermögensmodus-Grenzwert übersteigt (Raute 1970). Dieser Reaktionsvermögensmodus-Grenzwert kann in verschiedenen Ausführungsformend verschiedene Werte aufweisen. Zu beachten ist, dass die Modus-Grenzwerte konfigurierbar sein können, z. B. durch einen OEM oder eine Intel®-DPTF-Komponente.
  • Wenn bestimmt wird, dass das Reaktionsvermögen-VordergrundaufgabenVerhältnis diesen Reaktionsvermögensmodus-Grenzwert nicht übersteigt, wird die Reaktionsvermögensmodus-Schleife 1950 beendet und der normale aktive Modus kann fortgesetzt werden. Wenn anderenfalls bei Raute 1970 bestimmt wird, dass das Vordergrundaufgabenverhältnis den Reaktionsvermögensmodus-Grenzwert übersteigt, geht die Steuerung zu Block 1975 über, wo eine Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus angewandt werden kann. In einer Ausführungsform kann diese Energieverwaltungs-Richtlinie einen oder mehrere Konfigurationswerte beinhalten, die die zur Steuerung des Energieverbrauchs für einen Energiecontroller bereitgestellt werden. Beispielsweise kann diese Energieverwaltungs-Richtlinie eine oder mehrere erhöhte Energieobergrenzen beinhalten. In einer Ausführungsform können derartige erhöhte Energieobergrenzen auf ein Niveau eingestellt sein, das höher als ein Energieniveau des thermischen Designs ist. Mit einer oder mehreren erhöhten Energieobergrenzen kann für diese benutzerkritischen Aufgaben ein höherer Energieverbrauch realisiert werden. Zu beachten ist jedoch, dass ein Energiecontroller basierend auf bestimmten Einschränkungen, wie beispielsweise Batterieladestand, Hauttemperatur/-wärme usw., den Betrieb auf unterhalb dieser erhöhten Energieobergrenzen beschränken kann. Zusätzlich zu Energiegrenzen-Einstellungen kann diese Reaktionsvermögensmodus-Energieverwaltungs-Richtlinie neben anderen Operationen ferner das Vorausrichten einer Energieleistungspräferenz hin zu Leistung und weg von Energieeffizienz, das Anfordern einer Minimalleistung für garantierte Leistung (P1), das aggressive Herabstufen von inaktiven Kern- und Gehäusezuständen, um in flacheren inaktiven Zuständen der Leistung zu bleiben, beinhalten.
  • In Ausführungsformen können Hintergrundaufgaben genau erkannt und am wenigsten performante Kerne dynamisch identifiziert werden. Mit diesen Informationen kann ein Reaktionsvermögenseinfluss infolge geplanter Aufgaben verringert werden, während diese effizient ablaufen, um Batterielebensdauer zu sparen. Ausführungsformen ermöglichen es somit, performantere Kerne für benutzerreaktive Aufgaben zu reservieren, während stattdessen weniger performante Kerne in die Lage versetzt werden, etwaige Hintergrundaufgaben auszuführen. Ausführungsformen können des Weiteren basierend auf einem dynamisch identifizierten Betriebsmodus Plattformenergie und Leistung/Reaktionsvermögen optimieren. Auf diese Weise kann das Benutzererlebnis verbessert und im Batteriebetrieb eine wechselstromartige Leistung/Reaktionsvermögen für kurze benutzerkritische Aufgaben bereitgestellt werden.
  • Derartige benutzerkritische Aufgaben können beispielsweise das Erstellen von Dokumenteninhalten, die Anwendungsverarbeitung, den Export von Dokumenten, das Öffnen von Dateien oder Anwendungen usw. beinhalten. Und die Verbesserung der Batterielebensdauer kann für Ruhemodusszenarien realisiert werden, in denen Hintergrundaufgaben ausgeführt werden.
  • Ausführungsformen können ferner mit Lösungen auf Basis des Maschinenlernens arbeiten, die darauf trainiert werden, ein Benutzerinteraktionsverhalten und Muster der Kontaktaufnahme mit einer Plattform zu erkennen, um eine geeignete Erkennung und/oder Vorhersage von Plattformmodus-Änderungen zu ermöglichen.
  • Die folgenden Beispiele betreffen weitere Ausführungsformen.
  • In einem Beispiel umfasst ein Prozessor Folgendes: mindestens einen Kern und einen Energiecontroller, der mit dem mindestens einen Kern gekoppelt ist. Der Energiecontroller kann Folgendes beinhalten: eine Arbeitslast-Überwachungsschaltung zum Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, die der mindestens eine Kern während einer aktiven Laufzeit Hintergrundaufgaben ausführte, und eine Steuerschaltung zum dynamischen Anwenden einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Prozessors zu verringern.
  • In einem Beispiel umfasst die Energieverwaltungs-Richtlinie eine Energieobergrenze, die geringer als ein Energieniveau des thermischen Designs des Prozessors ist.
  • In einem Beispiel ist die Arbeitslast-Überwachungsschaltung ferner dafür vorgesehen, basierend auf einer zweiten Zeitmenge, die der mindestens eine Kern während einer zweiten Laufzeit Vordergrundaufgaben ausführte, ein Vordergrundaufgabenverhältnis zu errechnen.
  • In einem Beispiel ist die Steuerschaltung dafür vorgesehen, dynamisch eine Energieverwaltungs-Richtlinie für einen Reaktionsvermögensmodus anzuwenden, wenn das Vordergrundaufgabenverhältnis einen Reaktionsvermögensmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus dafür vorgesehen ist, die Leistung des Prozessors zu erhöhen, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus eine Energieobergrenze umfasst, die größer als ein Energieniveau des thermischen Designs des Prozessors ist.
  • In einem Beispiel ist die Steuerschaltung dafür vorgesehen, eine aktuelle Energieverwaltungs-Richtlinie aufrechtzuerhalten, wenn das Vordergrundaufgabenverhältnis den Reaktionsvermögensmodus-Grenzwert nicht übersteigt.
  • In einem Beispiel ist die Steuerschaltung dafür vorgesehen, die Energieverwaltungs-Richtlinie für den Hintergrundmodus dynamisch anzuwenden, wenn ein Benutzer innerhalb eines Bewertungsintervalls nicht mit einem System interagiert hat, das den Prozessor beinhaltet.
  • In einem Beispiel ist die Steuerschaltung dafür vorgesehen, das Hintergrundaufgabenverhältnis zu errechnen, wenn ein Benutzer innerhalb eines Bewertungsintervalls nicht mit einem System interagiert hat, das den Prozessor beinhaltet.
  • In einem Beispiel umfasst der Energiecontroller eine Hardware-Rückmeldungsschaltung, um Rückmeldungsinformationen zu bestimmen, die eine Energieeffizienzfähigkeit und eine Leistungsfähigkeit des mindestens einen Kerns umfassen.
  • In einem Beispiel ist die Hardware-Rückmeldungsschaltung dafür vorgesehen, die Rückmeldungsinformationen an einen Planer zu senden, um den Planer in die Lage zu versetzen, zumindest teilweise auf den Rückmeldungsinformationen basierend einen weniger performanten Kern für eine oder mehrere Hintergrundaufgaben einzuplanen, wenn eine Benutzerinteraktion mit einem System erkannt wird, das den Prozessor beinhaltet.
  • In einem Beispiel ist der Energiecontroller dafür vorgesehen, Hardware-Fähigkeitsinformationen mehrerer Kerne des Prozessors an einen Planer zu senden, um den Planer in die Lage zu versetzen, zumindest teilweise auf den Hardware-Fähigkeitsinformationen basierend einen weniger performanten Kern der mehreren Kerne für eine oder mehrere Hintergrundaufgaben einzuplanen, wenn eine Benutzerinteraktion mit einem System erkannt wird, das den Prozessor beinhaltet.
  • In einem weiteren Beispiel umfasst ein Verfahren Folgendes: Identifizieren mindestens eines ersten Kerns eines Mehrkernprozessors eines Systems, der weniger performant als mindestens ein zweiter Kern des Mehrkernprozessors ist; Einstellen einer Hintergrund-Kernmaske, um eine Affinität des mindestens einen ersten Kerns für eine Ausführung von Hintergrundaufgaben anzuzeigen; Bestimmen, ob ein Benutzer des Systems anwesend ist; und Einplanen des mindestens einen ersten Kerns für mindestens eine Hintergrundaufgabe mit Hilfe der Hintergrund-Kernmaske in Reaktion auf das Bestimmen der Benutzeranwesenheit.
  • In einem Beispiel umfasst das Verfahren ferner das Identifizieren des mindestens einen ersten Kerns zumindest teilweise basierend auf Rückmeldungsinformationen, die Energieeffizienzinformationen und Leistungsinformationen umfassen.
  • In einem Beispiel umfasst das Verfahren ferner das Einstellen der Hintergrund-Kernmaske, die einen oder mehr Werte aufweist, die sich von einer Standardkernmaske unterscheiden.
  • In einem Beispiel umfasst das Verfahren ferner das Einplanen des mindestens einen zweiten Kerns für eine oder mehrere Vordergrundaufgaben.
  • In einem Beispiel umfasst das Verfahren ferner das Einplanen des mindestens einen zweiten Kerns für die mindestens eine Hintergrundaufgabe in Reaktion auf das Bestimmen, dass der Benutzer nicht anwesend ist.
  • In einem Beispiel umfasst das Verfahren ferner das Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, die der Mehrkernprozessor während einer aktiven Laufzeit Hintergrundaufgaben ausführte.
  • In einem Beispiel umfasst das Verfahren ferner das Konfigurieren eines Energiecontrollers des Mehrkernprozessors mit einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Mehrkernprozessors zu verringern.
  • In einem weiteren Beispiel ist ein computerlesbares Medium, das Befehle beinhaltet, dafür vorgesehen, das Verfahren von einem der vorstehenden Beispiele durchzuführen.
  • In einem weiteren Beispiel ist ein computerlesbares Medium, das Daten beinhaltet, dafür vorgesehen, von mindestens einer Maschine verwendet zu werden, um mindestens eine integrierte Schaltung zum Durchführen des Verfahrens von einem der vorstehenden Beispiele zu fertigen.
  • In einem weiteren Beispiel umfasst eine Vorrichtung Mittel zum Durchführen des Verfahrens von einem der vorstehenden Beispiele.
  • In noch einem weiteren Beispiel umfasst ein System einen Prozessor und einen Systemspeicher, der mit dem Prozessor gekoppelt ist. Der Prozessor kann Folgendes beinhalten: mehrere Kerne, einschließlich eines oder mehrerer erster Kerne und eines oder mehrerer zweiter Kerne, wobei der eine oder die mehreren ersten Kerne heterogen zu dem einen oder den mehreren zweiten Kernen sind; und einen Energiecontroller, der mit den mehreren Kernen gekoppelt ist. Der Energiecontroller kann Folgendes beinhalten: eine Hardware-Rückmeldungs-Steuerschaltung zum Bestimmen erster Hardware-Rückmeldungsinformationen für den einen oder die mehreren ersten Kerne und zweiter Hardware-Rückmeldungsinformationen für den einen oder die mehreren zweiten Kerne und zum Senden der ersten und zweiten Hardware-Rückmeldungsinformationen an einen Planer, wobei die ersten und zweiten Hardware-Rückmeldungsinformationen Energieeffizienzfähigkeits-Informationen und Leistungsfähigkeits-Informationen umfassen; und eine Steuerschaltung zum Aktualisieren einer Energieverwaltungs-Richtlinie basierend auf Modushinweisinformationen von dem Planer, wobei die Modushinweisinformationen auf Aufgabenverhältnisinformationen und einer Benutzerinteraktionsbestimmung basieren, wobei der Energiecontroller dafür vorgesehen ist, basierend auf der aktualisierten Energieverwaltungs-Richtlinie mindestens eines von einer Frequenz und einer Spannung für mindestens den einen oder die mehreren ersten Kerne zu aktualisieren. Der Systemspeicher kann eine Hardware-Rückmeldungs-Datenstruktur umfassen, um die ersten und zweiten Hardware-Rückmeldungsinformationen zu speichern.
  • In einem Beispiel ist die Steuerschaltung dafür vorgesehen, mindestens eines von der Frequenz und der Spannung für mindestens den einen oder die mehreren ersten Kerne zu verringern, wenn die Modushinweisinformationen einen Hintergrundmodus umfassen.
  • In einem Beispiel ist der Planer dafür vorgesehen, zumindest teilweise auf den ersten und zweiten Hardware-Rückmeldungsinformationen basierend eine Hintergrundaufgaben-Affinitätsmaske zu aktualisieren und die aktualisiere Hintergrundaufgaben-Affinitätsmaske zum Einplanen des einen oder der mehreren ersten Kerne für eine oder mehrere Hintergrundaufgaben zu verwenden und die eine oder mehreren Hintergrundaufgaben des einen oder der mehreren zweiten Kerne einzuschränken.
  • Es versteht sich, dass verschiedene Kombinationen der vorstehenden Beispiele möglich sind.
  • Zu beachten ist, dass die Begriffe „Schaltung“ und „Schaltungen“ im Vorliegenden synonym verwendet werden. Wenn im Vorliegenden verwendet, werden diese Begriffe sowie der Begriff „Logik“ verwendet, um allein oder in einer beliebigen Kombination analoge Schaltungen, digitale Schaltungen, verdrahtete Schaltungen, programmierbare Schaltungen, Prozessorschaltungen, Mikrocontrollerschaltungen, Hardware-Logik-Schaltungen, Zustandsmaschinenschaltungen und/oder eine beliebige andere Art physischer Hardware-Komponente zu bezeichnen. Ausführungsformen können in vielen verschiedenen Arten von Systemen verwendet werden. Zum Beispiel kann in einer Ausführungsform ein Kommunikationsgerät dafür angeordnet sein, die verschiedenen im Vorliegenden beschriebenen Verfahren und Techniken auszuführen. Natürlich ist der Schutzumfang der vorliegenden Erfindung nicht auf ein Kommunikationsgerät beschränkt und es können stattdessen andere Ausführungsformen auf andere Arten von Vorrichtungen zum Verarbeiten von Befehlen oder auf ein oder mehrere maschinenlesbare Medien gerichtet sein, die Befehle beinhalten, die in Reaktion auf ihre Ausführung auf einem Rechengerät das Gerät veranlassen, ein(e) oder mehrere der im Vorliegenden beschriebenen Verfahren und Techniken auszuführen.
  • Ausführungsformen können als Code umgesetzt sein und können auf einem nicht-flüchtigen Speichermedium gespeichert sein, auf dem Befehle gespeichert sind, die verwendet werden können, um ein System zum Ausführen der Befehle zu programmieren. Ausführungsformen können außerdem als Daten umgesetzt sein und können auf einem nicht-flüchtigen Speichermedium gespeichert sein, das bei Verwendung durch mindestens eine Maschine, die mindestens eine Maschine veranlasst, mindestens eine integrierte Schaltung zum Durchführen einer oder mehrere Operationen zu fertigen. Noch weitere Ausführungsformen können als computerlesbares Speichermedium umgesetzt sein, das Informationen beinhaltet, die, wenn sie bei der Herstellung in ein SoC oder anderen Prozessor eingebracht wurden, dafür vorgesehen sind, das SoC oder anderen Prozessor zum Durchführen einer oder mehrerer Operationen zu konfigurieren. Das Speichermedium kann - ohne Beschränkung darauf - eine beliebige Art von Platte beinhalten, einschließlich Disketten, optischer Platten, Festkörperlaufwerken (SSDs), Compact-Disk-Nur-Lese-Speicher (CD-ROM), wiederbeschreibbarer Compact-Disks (CD-RW) und magnet-optischer Platten, Halbleitergeräte wie beispielsweise Nur-Lese-Speicher (ROMs), Speicher mit wahlfreiem Zugriff (RAMs) wie dynamische Speicher mit wahlfreiem Zugriff (DRAMs), statische RAMs (SRAMs), löschbarer programmierbarer ROMs (EPROMs), Flash-Speicher, elektrisch löschbarer programmierbarer ROMs (EEPROMs), magnetischer oder optischer Karten, oder eine beliebige andere Art von Medium, das zum Speichern elektronischer Befehle geeignet ist.
  • Obwohl die vorliegende Erfindung hinsichtlich einer begrenzten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifizierungen und Varianten derselben erkennen. Es ist vorgesehen, dass die angefügten Ansprüche all diese Modifizierungen und Varianten als innerhalb des wahren Sinns und Schutzumfangs der vorliegenden Erfindung liegend umfassen sollen.

Claims (25)

  1. Prozessor, Folgendes umfassend: mindestens einen Kern und einen Energiecontroller, der mit dem mindestens einen Kern gekoppelt ist, wobei der Energiecontroller Folgendes umfasst: eine Arbeitslast-Überwachungsschaltung zum Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, die der mindestens eine Kern während einer aktiven Laufzeit Hintergrundaufgaben ausführte, und eine Steuerschaltung zum dynamischen Anwenden einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Prozessors zu verringern.
  2. Prozessor nach Anspruch 1, wobei die Energieverwaltungs-Richtlinie eine Energieobergrenze umfasst, die geringer als ein Energieniveau des thermischen Designs des Prozessors ist.
  3. Prozessor nach Anspruch 1, wobei die Arbeitslast-Überwachungsschaltung ferner dafür vorgesehen ist, basierend auf einer zweiten Zeitmenge, die der mindestens eine Kern während einer zweiten Laufzeit Vordergrundaufgaben ausführte, ein Vordergrundaufgabenverhältnis zu errechnen.
  4. Prozessor nach Anspruch 3, wobei die Steuerschaltung dafür vorgesehen ist, eine Energieverwaltungs-Richtlinie für einen Reaktionsvermögensmodus dynamisch anzuwenden, wenn das Vordergrundaufgabenverhältnis einen Reaktionsvermögensmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus dafür vorgesehen ist, die Leistung des Prozessors zu erhöhen, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus eine Energieobergrenze umfasst, die größer als ein Energieniveau des thermischen Designs des Prozessors ist.
  5. Prozessor nach Anspruch 4, wobei die Steuerschaltung dafür vorgesehen ist, eine aktuelle Energieverwaltungs-Richtlinie aufrechtzuerhalten, wenn das Vordergrundaufgabenverhältnis den Reaktionsvermögensmodus-Grenzwert nicht übersteigt.
  6. Prozessor nach Anspruch 3, wobei die Steuerschaltung dafür vorgesehen ist, die Energieverwaltungs-Richtlinie für den Hintergrundmodus dynamisch anzuwenden, wenn ein Benutzer innerhalb eines Bewertungsintervalls nicht mit einem System interagiert hat, das den Prozessor beinhaltet.
  7. Prozessor nach Anspruch 3, wobei die Steuerschaltung dafür vorgesehen ist, das Hintergrundaufgabenverhältnis zu errechnen, wenn ein Benutzer innerhalb eines Bewertungsintervalls nicht mit einem System interagiert hat, das den Prozessor beinhaltet.
  8. Prozessor nach Anspruch 1, wobei der Energiecontroller eine Hardware-Rückmeldungsschaltung umfasst, um Rückmeldungsinformationen zu bestimmen, die eine Energieeffizienzfähigkeit und eine Leistungsfähigkeit des mindestens einen Kerns umfassen.
  9. Prozessor nach Anspruch 8, wobei die Hardware-Rückmeldungsschaltung dafür vorgesehen ist, die Rückmeldungsinformationen an einen Planer zu senden, um den Planer in die Lage zu versetzen, zumindest teilweise auf den Rückmeldungsinformationen basierend einen weniger performanten Kern für eine oder mehrere Hintergrundaufgaben einzuplanen, wenn eine Benutzerinteraktion mit einem System erkannt wird, das den Prozessor beinhaltet.
  10. Prozessor nach einem der Ansprüche 1 bis 9, wobei der Energiecontroller dafür vorgesehen ist, Hardware-Fähigkeitsinformationen mehrerer Kerne des Prozessors an einen Planer zu senden, um den Planer in die Lage zu versetzen, zumindest teilweise auf den Hardware-Fähigkeitsinformationen basierend einen weniger performanten Kern der mehreren Kerne für eine oder mehrere Hintergrundaufgaben einzuplanen, wenn eine Benutzerinteraktion mit einem System erkannt wird, das den Prozessor beinhaltet.
  11. Verfahren, Folgendes umfassend: Identifizieren mindestens eines ersten Kerns eines Mehrkernprozessors eines Systems, der weniger performant als mindestens ein zweiter Kern des Mehrkernprozessors ist, Einstellen einer Hintergrund-Kernmaske, um eine Affinität des mindestens einen ersten Kerns für eine Ausführung von Hintergrundaufgaben anzuzeigen, Bestimmen, ob ein Benutzer des Systems anwesend ist, und Einplanen des mindestens einen ersten Kerns für mindestens eine Hintergrundaufgabe mit Hilfe der Hintergrund-Kernmaske in Reaktion auf das Bestimmen der Benutzeranwesenheit.
  12. Verfahren nach Anspruch 11, wobei das Verfahren ferner das Identifizieren des mindestens einen ersten Kerns zumindest teilweise basierend auf Rückmeldungsinformationen umfasst, die Energieeffizienzinformationen und Leistungsinformationen umfassen.
  13. Verfahren nach Anspruch 11, wobei das Verfahren ferner das Einstellen der Hintergrund-Kernmaske umfasst, die einen oder mehrere Werte aufweist, die sich von einer Standardkernmaske unterscheiden.
  14. Verfahren nach Anspruch 11, wobei das Verfahren ferner das Einplanen des mindestens einen zweiten Kerns für eine oder mehrere Vordergrundaufgaben umfasst.
  15. Verfahren nach Anspruch 14, wobei das Verfahren ferner das Einplanen des mindestens einen zweiten Kerns für die mindestens eine Hintergrundaufgabe in Reaktion auf das Bestimmen, dass der Benutzer nicht anwesend ist, umfasst.
  16. Verfahren nach Anspruch 11, wobei das Verfahren ferner das Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, die der Mehrkernprozessor während einer aktiven Laufzeit Hintergrundaufgaben ausführte, umfasst.
  17. Verfahren nach Anspruch 16, wobei das Verfahren ferner das Konfigurieren eines Energiecontrollers des Mehrkernprozessors mit einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, umfasst, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Mehrkernprozessors zu verringern.
  18. Computerlesbares Medium, das computerlesbare Befehle beinhaltet, die dafür vorgesehen sind, bei Ausführung ein Verfahren nach einem der Ansprüche 11 bis 17 durchzuführen.
  19. System, Folgendes umfassend: einen Prozessor, der Folgendes umfasst: mehrere Kerne, einschließlich eines oder mehrerer erster Kerne und eines oder mehrerer zweiter Kerne, wobei der eine oder die mehreren ersten Kerne heterogen zu dem einen oder den mehreren zweiten Kernen sind, und einen Energiecontroller, der mit den mehreren Kernen gekoppelt ist, wobei der Energiecontroller Folgendes umfasst: eine Hardware-Rückmeldungs-Steuerschaltung zum Bestimmen erster Hardware-Rückmeldungsinformationen für den einen oder die mehreren ersten Kerne und zweite Hardware-Rückmeldungsinformationen für den einen oder die mehreren zweiten Kerne und zum Senden der ersten und zweiten Hardware-Rückmeldungsinformationen an einen Planer, wobei die ersten und zweiten Hardware-Rückmeldungsinformationen Energieeffizienzfähigkeits-Informationen und Leistungsfähigkeits-Informationen umfassen, und eine Steuerschaltung zum Aktualisieren einer Energieverwaltungs-Richtlinie basierend auf Modushinweisinformationen von dem Planer, wobei die Modushinweisinformationen auf Aufgabenverhältnisinformationen und Benutzerinteraktionsbestimmung basieren, wobei der Energiecontroller dafür vorgesehen ist, basierend auf der aktualisierten Energieverwaltungs-Richtlinie mindestens eines von einer Frequenz und einer Spannung für den mindestens einen oder die mehreren ersten Kerne zu aktualisieren, und einen Systemspeicher, der mit dem Prozessor gekoppelt ist, wobei der Systemspeicher eine Hardware-Rückmeldungs-Datenstruktur umfasst, um die ersten und zweiten Hardware-Rückmeldungsinformationen zu speichern.
  20. System nach Anspruch 19, wobei die Steuerschaltung dafür vorgesehen ist, mindestens eines von der Frequenz und der Spannung für den mindestens einen oder die mehreren ersten Kerne zu verringern, wenn die Modushinweisinformationen einen Hintergrundmodus umfassen.
  21. System nach einem der Ansprüche 19 bis 20, wobei der Planer dafür vorgesehen ist, zumindest teilweise auf den ersten und zweiten Hardware-Rückmeldungsinformationen basierend eine Hintergrundaufgaben-Affinitätsmaske zu aktualisieren und die aktualisiere Hintergrundaufgaben-Affinitätsmaske zum Einplanen des einen oder der mehreren ersten Kerne für eine oder mehrere Hintergrundaufgaben zu verwenden und die eine oder mehreren Hintergrundaufgaben des einen oder der mehreren zweiten Kerne einzuschränken.
  22. Prozessor, Folgendes umfassend: mindestens ein Kernmittel und ein Energiesteuermittel, das mit dem mindestens einen Kernmittel gekoppelt ist, wobei das Energiesteuermittel Folgendes umfasst: ein Arbeitslast-Überwachungsmittel zum Errechnen eines Hintergrundaufgabenverhältnisses basierend auf einer ersten Zeitmenge, die das mindestens eine Kernmittel während einer aktiven Laufzeit Hintergrundaufgaben ausführte, und ein Steuermittel zum dynamischen Anwenden einer Energieverwaltungs-Richtlinie für einen Hintergrundmodus, wenn das Hintergrundaufgabenverhältnis einen Hintergrundmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Hintergrundmodus dafür vorgesehen ist, den Energieverbrauch des Prozessors zu verringern.
  23. Prozessor nach Anspruch 22, wobei die Energieverwaltungs-Richtlinie eine Energieobergrenze umfasst, die geringer als ein Energieniveau des thermischen Designs des Prozessors ist.
  24. Prozessor nach Anspruch 22, wobei das Arbeitslast-Überwachungsmittel ferner dafür vorgesehen ist, basierend auf einer zweiten Zeitmenge, die das mindestens eine Kernmittel während einer zweiten Laufzeit Vordergrundaufgaben ausführte, ein Vordergrundaufgabenverhältnis zu errechnen.
  25. Prozessor nach Anspruch 24, wobei das Steuermittel dafür vorgesehen ist, eine Energieverwaltungs-Richtlinie für einen Reaktionsvermögensmodus dynamisch anzuwenden, wenn das Vordergrundaufgabenverhältnis einen Reaktionsvermögensmodus-Grenzwert übersteigt, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus dafür vorgesehen ist, die Leistung des Prozessors zu erhöhen, wobei die Energieverwaltungs-Richtlinie für den Reaktionsvermögensmodus eine Energieobergrenze umfasst, die größer als ein Energieniveau des thermischen Designs des Prozessors ist.
DE102020134491.0A 2020-03-26 2020-12-21 System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften Pending DE102020134491A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/830,485 2020-03-26
US16/830,485 US11422616B2 (en) 2020-03-26 2020-03-26 System, apparatus and method for dynamically adjusting platform power and performance based on task characteristics

Publications (1)

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

Family

ID=77659250

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020134491.0A Pending DE102020134491A1 (de) 2020-03-26 2020-12-21 System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften

Country Status (3)

Country Link
US (3) US11422616B2 (de)
CN (1) CN113448423A (de)
DE (1) DE102020134491A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210016707A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 성능효율을 바탕으로 한 스케줄링 방법, 스케줄링 장치 및 컴퓨터 판독가능 저장 매체
US11436018B2 (en) * 2020-01-31 2022-09-06 Intel Corporation Apparatuses, methods, and systems for instructions to request a history reset of a processor core
DE102020134681A1 (de) 2020-01-31 2021-08-05 Intel Corporation Vorrichtungen, verfahren und systeme für anweisungen zum anfordern eines verlaufs-resets eines prozessorkerns
US11709536B2 (en) * 2020-06-26 2023-07-25 Advanced Micro Devices, Inc. Multi-die system performance optimization
US20230098742A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Processor Power Management Utilizing Dedicated DMA Engines
US11847009B1 (en) * 2022-07-22 2023-12-19 Dell Products L.P. Power control for improving foreground application performance in an information handling system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US6047308A (en) * 1996-07-25 2000-04-04 Cisco Technology, Inc. Modem with integrated control processor and digital signal processor sessions
US7903579B2 (en) * 2008-08-26 2011-03-08 International Business Machines Corporation Self-optimization and self-healing of voice quality problems utilizing service oriented architecture
US8897762B2 (en) * 2012-02-28 2014-11-25 Qualcomm Incorporated Optimizing signaling load overhead and battery consumption for background applications
CN110083444A (zh) * 2013-12-10 2019-08-02 华为终端有限公司 一种任务管理方法及设备
US9798629B1 (en) * 2013-12-16 2017-10-24 EMC IP Holding Company LLC Predicting backup failures due to exceeding the backup window
US10628214B2 (en) * 2015-06-01 2020-04-21 Samsung Electronics Co., Ltd. Method for scheduling entity in multicore processor system
US20170024243A1 (en) * 2015-07-22 2017-01-26 Microsoft Technology Licensing, Llc Background task management
CN105320561B (zh) * 2015-11-09 2019-03-08 深圳市万普拉斯科技有限公司 任务管理方法和系统
KR20170085286A (ko) * 2016-01-14 2017-07-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US11775047B2 (en) 2023-10-03
US20240045490A1 (en) 2024-02-08
US20220374066A1 (en) 2022-11-24
US20210303054A1 (en) 2021-09-30
US11422616B2 (en) 2022-08-23
CN113448423A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
US10775873B2 (en) Performing power management in a multicore processor
US11048318B2 (en) Reducing microprocessor power with minimal performance impact by dynamically adapting runtime operating configurations using machine learning
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
US9910481B2 (en) Performing power management in a multicore processor
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE202015009867U1 (de) Einrichtung zum Bereitstellen einer Wärmeparametermeldung für eine Mehrchip-Baugruppe
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
DE112013005131T5 (de) Verfahren, Vorrichtung, System zur automatischen Abstimmung von Coderegionen
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112016004776T5 (de) Datenkomprimierung unter Verwendung eines Beschleunigers mit mehreren Suchmaschinen
TW201638717A (zh) 平台裝置的執行動態功率控制
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
US20230315192A1 (en) System, apparatus and method for dynamic thermal distribution of a system on chip
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor
DE102020127742A1 (de) System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor
DE112017005000T5 (de) Prozessorspannungssteuerung unter verwendung eines beweglichen mittelwerts
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
DE102018114958A1 (de) Validieren eines Abbilds für eine umkonfigurierbare Vorrichtung
DE102018001896A1 (de) Hardwarebeschleuniger für das Auswählen von Datenelementen