DE112017003873T5 - Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor - Google Patents

Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor Download PDF

Info

Publication number
DE112017003873T5
DE112017003873T5 DE112017003873.1T DE112017003873T DE112017003873T5 DE 112017003873 T5 DE112017003873 T5 DE 112017003873T5 DE 112017003873 T DE112017003873 T DE 112017003873T DE 112017003873 T5 DE112017003873 T5 DE 112017003873T5
Authority
DE
Germany
Prior art keywords
downgrade
processor
core
control parameter
low power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017003873.1T
Other languages
English (en)
Inventor
Eliezer Weissmann
Nir Rosenzweig
Efraim Rotem
Yoav Ben-Raphael
Alon Naveh
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 DE112017003873T5 publication Critical patent/DE112017003873T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

In einer Ausführungsform enthält ein Prozessor: mehrere Kerne; einen Leistungscontroller, der eine Logik enthält, um autonom eine erste Anfrage für mindestens einen Kern der mehreren Kerne abzustufen, in einen ersten Niedrigenergiezustand einzutreten, um den mindestens einen Kern zu veranlassen, in einen zweiten Niedrigenergiezustand einzutreten, wobei der erste Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist, als der zweite Niedrigenergiezustand; und eine Schnittstelle, um eine Eingabe von einer Systemsoftware zu erhalten, wobei die Eingabe mindestens einen Herabstufungssteuerparameter enthält, bei dem die Logik autonom die erste Anfrage mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter basierend herabstufen soll. Andere Ausführungsformen sind beschrieben und beansprucht.

Description

  • Gebiet der Erfindung
  • Ausführungsformen beziehen sich auf das Leistungsmanagement eines Systems, und genauer auf das Leistungsmanagement eines Multicore-Prozessors.
  • Allgemeiner Stand der Technik
  • Fortschritte der Halbleiterverarbeitung und des Logikaufbaus haben eine Erhöhung der Logikmenge erlaubt, die auf Vorrichtungen mit integrierten Schaltkreisen vorhanden sein können. Als Ergebnis davon haben sich Computersystemkonfigurationen aus einem einzelnen oder mehreren integrierten Schaltkreisen in einem System zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen auf einzelnen integrierten Schaltkreisen entwickelt. Weiterhin haben mit zunehmender Dichte der integrierten Schaltkreise die Leistungsanforderungen für Rechnersysteme (von eingebetteten Systemen auf Servern) ebenfalls eskaliert. Weiterhin haben Softwareineffizienzen und ihre Anforderungen an die Hardware, ebenfalls zu einer Erhöhung des Energieverbrauchs von Rechnervorrichtungen geführt. Einige Studien weisen in der Tat darauf hin, dass Rechnervorrichtungen einen beträchtlichen Anteil an der gesamten Stromversorgung eines Landes verbrauchen, wie etwa in den Vereinigten Staaten von Amerika. Aufgrund dessen gibt es einen lebenswichtigen Bedarf an Energieeffizienz und -einsparung in Zusammenhang mit integrierten Schaltkreisen. Dieser Bedarf steigt an, wenn Server, Desktop-Computer, Notebooks, Ultrabooks™, Tablets, Handys, Prozessoren, eingebettete Systeme usw. immer weiter verbreitet werden (aus der Einbeziehung des typischen Computers, von Autos und Fernsehern, bis zur Biotechnologie).
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Abschnitts eines Systems nach einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockdiagramm eines Prozessors nach einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockdiagramm eines Multidomain-Prozessors nach einer anderen Ausführungsform dieser Erfindung.
    • 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne enthält.
    • 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer anderen Ausführungsform.
    • 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer anderen Ausführungsform.
    • 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer weiteren Ausführungsform.
    • 9 ist ein Blockdiagramm eines Prozessors nach einer anderen Ausführungsform der vorliegenden Erfindung.
    • 10 ist ein Blockdiagramm eines repräsentativen SoC nach einer Ausführungsform der vorliegenden Erfindung.
    • 11 ist ein Blockdiagramm eines anderen beispielhaften SoC nach 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 anderen beispielhaften Systems, mit dem die Ausführungsformen verwendet werden können.
    • 14 ist ein Blockdiagramm eines repräsentativen Computersystems.
    • 15 ist ein Blockdiagramm eines Systems nach einer Ausführungsform der vorliegenden Erfindung.
    • 16 ist ein Blockdiagramm, das ein IP-Kernentwicklungssystem illustriert, das verwendet werden kann, um einen integrierten Schaltkreis herzustellen, um Funktionen nach einer Ausführungsform auszuführen.
    • 17 ist ein Blockdiagramm eines Verfahrens nach einer Ausführungsform der vorliegenden Erfindung.
    • 18 ist ein Ablaufdiagramm eines Verfahrens nach einer anderen Ausführungsform dieser Erfindung.
    • 19 ist ein Blockdiagramm eines Verfahrens nach noch einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 20 ist ein Blockdiagramm eines Verfahrens nach noch einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 21 ist ein Blockdiagramm eines Systems nach einer Ausführungsform der vorliegenden Erfindung.
    • 22 ist ein Blockdiagramm eines Abschnitts eines Prozessors nach einer Ausführungsform der vorliegenden Erfindung.
    • 23 ist ein Ausführungsdiagramm, das Beispielleistungsgewinne für bestimmte Arbeitslasten nach einer Ausführungsform der vorliegenden Erfindung zeigt.
    • 24 ist ein Timingdiagramm, das Herabstufungs- und Nichtherabstufungsgrenzen nach einer Ausführungsform der vorliegenden Erfindung illustriert.
  • Ausführliche Beschreibung
  • In verschiedenen Ausführungsformen kann ein Prozessor mit einer Schnittstelle konfiguriert sein, Kundeneinstellungen für mindestens bestimmte Leistungsmanagementsteuerparameter zu empfangen und zu verwenden. Genauer stellen Ausführungsformen Schnittstellentechnik bereit, um Herabstufungssteuerparameter zu empfangen und zu verwenden. Das heißt, Prozessoren können mit einer sogenannten automatischen Herabstufungsfunktion konfiguriert sein, die eine autonome Steuertechnik ist, in der die Leistungszustandssteuerung des Betriebssystems (OS) durch einen Leistungscontroller (einschließlich Leistungsmanagementfirmware) des Prozessors überschrieben wird. Während solche autonomen Prozessorsteuerungen für bestimmte Produkte eingestellt werden, kann es mehrere Einschränkungen geben, einschließlich: Leistungsmanagementalgorithmen, die stark von bestimmten Produkten und Workloads anhängig sind; ein OS kann bestimmte konfigurierbare Konfigurationsdateien aufweisen, die nicht verfügbar sind; und bestimmte Kunden, die Forschungs- und Entwicklungsanstrengungen aufwenden wollen, um ihre spezifischen Verwendungen anzupassen, können keinen Zugriff haben, ohne eine Ausführungsform zu verwenden. Ausführungsformen stellen so eine externe Schnittstelle, eine interne Kommunikationsschnittstelle mit Firmware und Leistungsmanagementhardware und extern einstellbare Steueralgorithmen zur Verfügung, um verbesserte Anpassungen für mindestens bestimmte Leistungsmanagementfunktionen zu ermöglichen.
  • Wenn ein Prozessor in einen tieferen Leerlaufzustand eintritt, spart er Energie. Andererseits führt ein so tiefer Niedrigenergiezustand Leistungsverschlechterung ein (durch Eintritt- und Austrittlatenz, Verlust von Kernarchitekturinformationen wie seinem Cache, Übersetzungs-Lookaside-Puffer (TLB), Zweigzielpuffer (BTB), usw.). Tiefe Niedrigenergiezustandsübergänge verbrauchen auch Energie, um den Zustand zu speichern und wiederherzustellen. Mit dem allgemeinen Wunsch nach Energieeinsparungen erhöht der längere Betrieb bei einer bestimmten Leistung durch Leistungsverschlechterungen den Energieverbrauch. Dieser Effekt kann jedoch zusammen mit den Kosten für das Sparen/Wiederherstellen von Energie mehr Energie kosten, als die Energie, die durch den niedrigen Leistungszustand gespart wird. Daher verursachen größere Zahlen von Niedrigenergiezustandsübergängen (hierin allgemein Cx-Übergänge) höhere Energiekosten und höhere Auswirkungen auf die Leistung. Es gibt einen Ausgleichspunkt, an dem der Eintritt in einen gegebenen Cx-Zustand zu Energieverlust führt. Dieser Ausgleichspunkt hängt von den Arbeitslasteigenschaften (z. B. Leistungsverringerung, Cache-Fußabdruck, Anwendungsverhältnis, Cx-Eintritts-/Austrittsprofil usw.) ab. Oft wird das Arbeitslastverhalten durch Bursts einer hohen Übergangsrate charakterisiert, die die Ausgleichsgrenze überschreiten. So gibt es keinen Ansatz, der überall passt. Ausführungsformen hierin ermöglichen kundenbasierte Anpassung zum Erhöhen der Energieeinsparungen und/oder Leistung.
  • In verschiedenen Ausführungsformen wird eine externe grundlegende Eingabe-/Ausgabesystem- (BIOS)/OS-Schnittstelle bereitgestellt, zusammen mit einer inneren Kommunikationsschnittstelle von dieser Schnittstelle zu den Leistungssteuerschaltkreisen (einschließlich, aber nicht beschränkt auf Firmware und Hardwarezustandsmaschinen), um extern anpassbare Steueralgorithmen zu aktivieren. In Ausführungsformen ermöglicht die externe Schnittstelle einem Originalausrüstungshersteller (OEM) oder Betriebssystemhändler (OSV), Steuerparameter durch maschinenspezifische Register (MSR), speicherzugeordnete Ein-/Ausgaben (MMIO) oder eine Mailboxschnittstelle bereitzustellen, um direkten Zugriff auf die Leistungssteuerungsschaltkreise für die Durchführung einer automatischen Herabstufung zu ermöglichen.
  • Wenn auch die folgenden Ausführungsformen mit Verweis auf Energieerhalt und Energieeffizienz in spezifischen integrierten Schaltkreisen beschrieben sind, wie etwa in Rechnerplattformen oder Prozessoren, gelten andere Ausführungsformen für andere Typen von integrierten Schaltkreisen und Logikvorrichtungen. Ähnliche Techniken und Lehren der hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltkreisen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung einen Nutzen ziehen könnten. Beispielsweise sind die offenbarten Ausführungsformen nicht auf eine bestimmte Art von Computersystemen beschränkt. Das heißt, offenbarte Ausführungsformen können in vielen verschiedenen Systemtypen verwendet werden, von Servercomputern (z. B. Tower, Rack, Blade, Mikroserver und so weiter), Kommunikationssystemen, Speichersystemen, Desktopcomputern jeder Konfiguration, Laptop, Notebook und Tabletcomputern (einschließlich 2:1-Tablets, Phablets und so weiter), und kann auch in anderen Vorrichtungen verwendet werden, wie etwa in tragbaren Vorrichtungen, Systemen auf Chip (SoCs), und eingebetteten Anwendungen. Einige Beispiele von tragbaren Vorrichtungen enthalten Handys, wie etwa Smartphones, Internet-Protokoll-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und tragbare PCs. Eingebettete Anwendungen können typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), Netzwerkcomputer (NetPC), Set-Top Boxen, Netzwerkhubs, Wide Area Network (WAN) Switches, tragbare Vorrichtungen oder jedes andere System umfassen, das die Funktionen und Operationen ausführen kann, die nachfolgend offenbart werden. Weiterhin können Ausführungsformen in mobilen Terminals umgesetzt worden sein, die Standardstimmfunktionen aufweisen, wie etwa Handys, Smartphones und Phablets, und/oder in nicht mobilen Terminals ohne Standarddrahtlosstimmfunktions-Kommunikationsfähigkeit, wie etwa viele Wearables, Tablets, Notebooks, Desktops, Mikroserver, Server und so weiter. Weiterhin sind die hierin beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechnervorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und -effizienz beziehen. Wie in der folgenden Beschreibung leicht deutlich wird, sind die hierin beschriebenen Ausführungsformen von Verfahren, Vorrichtungen und Systemen (egal, ob mit Verweis auf Hardware, Firmware, Software oder eine Kombination daraus) entscheidend für eine Zukunft ‚grüner Technologie‘, wie etwa zum Energiesparen und für die Energieeffizienz in Produkten, die einen großen Teil der Wirtschaft der USA umfassen.
  • Nun wird mit Verweis auf 1 wird ein Blockdiagramm eines Abschnitts eines Systems nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 1 dargestellt, kann System 100 verschiedene Bauteile enthalten, einschließlich eines Prozessors 110, der in der dargestellten Form ein Multicore-Prozessor ist. Der Prozessor 110 kann mit einer Stromversorgung 150 über einen externen Spannungsregler 160 verbunden sein, der eine erste Spannungsumwandlung ausführen kann, um eine primär geregelte Spannung Vreg für den Prozessor 110 bereitzustellen.
  • Wie dargestellt, kann der Prozessor 110 ein Einzelmatrizenprozessor sein, der mehrere Kerne 120a bis 120n enthält. Weiterhin kann jeder Kern mit einem integrierten Spannungsregler (IVR) 125a bis 125n assoziiert sein, der die geregelte Hauptspannung empfängt und eine Betriebsspannung erzeugt, die einem oder mehreren Agenten des Prozessors bereitgestellt wird, die mit dem IVR assoziiert sind. Dementsprechend kann eine IVR-Umsetzung bereitgestellt sein, um die feinmaschige Steuerung der Spannung, und damit der Energie und Leistung für jeden einzelnen Kern zu erlauben. So kann jeder Kern mit einer unabhängigen Spannung und Frequenz funktionieren und eine große Flexibilität ermöglichen und breitgefächerte Gelegenheiten zum Ausgleich des Stromverbrauchs mit der Leistung bereitstellen. In einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs die Gruppierung von Bauteilen in verschiedene Energieebenen, sodass die Energie geregelt und durch den IVR nur den Bauteilen der Gruppe bereitgestellt wird. Während des Leistungsmanagements kann eine bestimmte Energieebene eines IVR heruntergefahren oder abgeschaltet sein, wenn der Prozessor in einen bestimmten Niedrigenergiezustand versetzt wird, während eine andere Energieebene eines anderen IVR aktiv oder vollständig unter Energie bleibt. Ähnlich können Kerne 120 unabhängige Takterzeugungsschaltkreise enthalten oder damit assoziiert sein, wie etwa eine oder mehrere Phasensperrschleifen (PLLs), um die Betriebsfrequenz jedes Kerns 120 unabhängig zu steuern.
  • Dennoch können mit Verweis auf 1 weitere Komponenten innerhalb des Prozessors vorhanden sein, einschließlich einer Eingabe-/Ausgabeschnittstelle (IF) 132, einer anderen Schnittstelle 134, und eines integrierten Speichercontrollers (IMC) 136. Wie gesehen, kann jede dieser Komponenten durch einen anderen integrierten Spannungsregler 125x mit Energie versorgt werden. In einer Ausführungsform kann die Schnittstelle 132 den Betrieb für eine Intel® Quick Path Interconnect (QPI) Verbindung ermöglichen, die Punkt-zu-Punkt- (PtP) Verbindungen in einem cachekohärenten Protokoll enthält, das mehrere Lagen enthält, einschließlich einer physischen Lage, einer Verbindungslage und einer Protokolllage. Die Schnittstelle 134 wiederum kann über ein Peripheral Component Interconnect Express (PCIe™) Protokoll kommunizieren.
  • Außerdem wird eine Leistungssteuerungseinheit (PCU) 138 dargestellt, die Schaltkreise enthalten kann, die Hardware, Software und/oder Firmware enthalten, um Leistungsmanagementfunktionen bezüglich des Prozessors 110 auszuführen. Wie gesehen wurde, stellt die PCU 138 Steuerinformationen an den externen Spannungsregler 160 über eine digitale Schnittstelle 162 bereit, um den Spannungsregler zu veranlassen, die passende geregelte Spannung zu erzeugen. PCU 138 stellt außerdem Steuerinformationen an die IVRs 125 über eine andere digitale Schnittstelle 163 beriet, um die erzeugte Betriebsspannung zu erzeugen (oder eine entsprechende IVR zu erzeugen, die in einem niedrigen Energiemodus deaktiviert werden soll). In verschiedenen Ausführungsformen kann die PCU 138 eine Reihe von Leistungsmanagementlogikeinheiten enthalten, um hardwarebasiertes Leistungsmanagement durchzuführen. Ein solches Leistungsmanagement kann vollständig prozessorgesteuert sein (z. B. durch verschiedene Prozessorhardware, und das durch Workload und/oder Leistung, Wärme- oder andere Prozessoreinschränkungen ausgelöst werden kann) und/oder das Leistungsmanagement kann in Antwort auf externe Quellen ausgeführt werden (wie etwa eine Plattform oder Leistungsmanagementquelle oder Systemsoftware). PCU 138 kann konfiguriert sein, Leistungsmanagementanfragen zu überschreiben, die durch Systemsoftware eingeleitet werden (wie etwa ein OS und/oder ein BIOS), um verbesserte Leistung zu ermöglichen, wenn eine große Anzahl von den niedrigen Energiezustand unterbrechenden Ergebnisse empfangen wird, die ungewünschtes Austreten aus einem gegebenen Niedrigenergiezustand verursachen. Und weiter kann die PCU 138 diese Herabstufungsfunktion basierend mindestens teilweise auf vom Kunden bereitgestellten Informationen steuern, die über eine Schnittstelle wie hierin vorgesehen empfangen wurden.
  • In 1 wird die PCU 138 als als eine getrennte Logik des Prozessors vorhanden illustriert. In anderen Fällen kann die PCU-Logik 138 auf einem gegebenen einen oder mehreren der Kerne 120 ausgeführt werden. In einigen Fällen kann die PCU 138 als Mikrocontroller umgesetzt werden (speziell oder für allgemeine Zwecke) oder eine andere Steuerlogik, die konfiguriert ist, ihren eigenen Leistungsmanagementcode auszuführen, manchmal als P-Code bezeichnet. In noch anderen Ausführungsformen können Leistungsmanagementfunktionen, die durch die PCU 138 durchgeführt werden sollen, außerhalb eines Prozessors umgesetzt werden, etwa durch einen getrennten Schaltkreise mit integriertem Leistungsmanagement (PMIC) oder eine andere Komponente, die außerhalb des Prozessors ist. In noch anderen Ausführungsformen können die Leistungsmanagementfunktionen, die durch die PCU 138 umzusetzen sind, innerhalb des BIOS oder anderer Systemsoftware umgesetzt werden.
  • Ausführungsformen können besonders für einen Multikernprozessor geeignet sein, in dem jeder von mehreren Kernen mit einem unabhängigen Spannungs- und Frequenzpunkt laufen kann. Wie hierin verwendet, wird der Begriff „Domäne“ verwendet, um eine Sammlung von Hardware und/oder Logik zu bezeichnen, die mit demselben Spannungs- und Frequenzpunkt funktioniert. Weiterhin kann ein Mehrkernprozessor ferner andere Nichtkernverarbeitungsengines enthalten, wie etwa Festfunktionseinheiten, Grafikengines und so weiter. Ein solcher Prozessor kann andere unabhängige Domainen als die Kerne enthalten, wie etwa eine oder mehrere Domainen, die mit einer Grafikengine assoziiert sind (hierin bezeichnet als eine Grafikdomäne) und eine oder mehrere Domänen, die mit Nichtkernschaltkreisen assoziiert sind, hierin bezeichnet als Unkern- oder Systemagent. Wenn auch viele Umsetzungen eines Multidomänenprozessors auf einer einzigen Halbleitermatrize geformt werden können, können andere Umsetzungen durch ein Multi-Chip-Paket realisiert werden, in dem verschiedene Domänen auf verschiedenen Halbleitermatrizen eines einzelnen Pakets vorhanden sein können.
  • Während es zum Zweck einer einfacheren Illustration nicht dargestellt ist, ist zu verstehen, dass weitere Komponenten innerhalb des Prozessors 110 vorhanden sein können, wie etwa die Unkern-Logik und andere Komponenten wie interne Speicher, z. B. ein oder mehrere Ebenen einer Cachespeicherhierarchie und so weiter. Weiter ist zwar in der Umsetzung von 1 ein integrierter Spannungsregler dargestellt, die Ausführungsformen sind jedoch nicht darauf eingeschränkt. Beispielsweise können andere regulierte Spannungen für On-Chip-Ressourcen von dem externen Spannungsregler 160 oder einer oder mehreren externen Quellen geregelter Spannungen bereitgestellt werden.
  • Es ist zu beachten, dass die Leistungsmanagementtechniken, die hierin beschrieben sind, unabhängig von und komplementär für einen betriebssystem -(OS) basierten Leistungsmanagement- (OSPM) Mechanismus sein können. Nach einer Beispiel-OSPM-Technik kann ein Prozessor in verschiedenen Leistungszuständen oder Ebenen funktionieren, sogenannten P-Zuständen, namentlich von P0 bis PN. Allgemein kann der Leistungszustand P1 der höchsten garantierten Leistung entsprechen, die durch ein OS angefordert werden kann. Neben diesem P1-Zustand kann das OS ferner einen höheren Leistungszustand anfordern, namentlich einen P0-Zustand. Dieser P0-Zustand kann so ein opportunistischer, übertaktender oder Turbomoduszustand sein, in dem, wenn die Leistung und/oder das Wärmebudget verfügbar ist, Prozessorhardware den Prozessor oder zumindest Abschnitte davon konfigurieren kann, mit einer höheren als der garantierten Frequenz zu funktionieren. In vielen Umsetzungen kann ein Prozessor mehrere sogenannte Binfrequenzen über der vom P1 garantierten maximalen Frequenz aufweisen, die bis zu einer maximalen Spitze des jeweiligen Prozessors reichen, wie jeweils gelötet oder anderweitig bei der Herstellung in den Prozessor geschrieben. Weiterhin kann nach einem OSPM-Mechanismus ein Prozessor bei verschiedenen Energiezuständen oder Ebenen arbeiten. Bezüglich der Leistungszustände kann ein OSPM-Mechanismus verschiedene Leistungsverbrauchszustände vorgeben, die allgemein als C-Zustände, C0, C1 bis Cn-Zustände bezeichnet werden. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand, und wenn der Kern im Leerlauf ist, kann er in einen Kern-Niedrigenergiezustand gestellt werden, der auch als Kern-Nichtnull-C-Zustand (z. B. C1-C6-Zustände) bezeichnet wird, wobei jeder C-Zustand ein Niedrigenergieverbrauchspegel ist (sodass C6 ein niedrigerer Niedrigenergiezustand als C1 ist und so weiter). Beachten Sie, dass unter Verwendung der herabstufungsbasierten Techniken hierin C-Zustandsanfragen von dem OS zumindest teilweise auf Kundenanpassungsinformationen überschrieben werden können, die über eine Schnittstelle wie hierin beschrieben bereitgestellt werden.
  • Es ist zu verstehen, dass viele verschiedene Arten von Leistungsmanagementtechniken einzeln oder in Kombination in verschiedenen Ausführungsformen verwendet werden können. Als repräsentative Beispiele kann ein Leistungscontroller den Prozessor steuern, durch eine Form dynamischer Frequenzskalierung (DVFS) energieverwaltet zu sein, wobei eine Betriebsspannung und/oder Betriebsfrequenz eines oder mehrerer Kerne oder anderer Prozessorlogik dynamisch gesteuert werden kann, um den Energieverbrauch in bestimmten Situationen zu verringern. In einem Beispiel kann die DVFS unter Verwendung der Enhanced Intel SpeedStep™ Technologie erfolgen, die von der Intel Corporation, Santa Clara, CA, verfügbar ist, um eine optimale Leistung bei einem geringsten Energieverbrauchspegel zu erreichen. In einem anderen Beispiel kann die DVFS unter Verwendung von Intel TurboBoost™ Technologie ausgeführt werden, um es einem oder mehreren Kernen oder anderen Rechnerengines zu ermöglichen, bei höherer als der garantierten Betriebsfrequenz zu arbeiten, basierend auf Bedingungen (z. B. Workload und Verfügbarkeit).
  • Eine andere Leistungsmanagementtechnik, die in bestimmten Beispielen verwendet werden kann, ist das dynamische Austauschen von Workloads zwischen verschiedenen Rechnerengines. Beispielsweise kann der Prozessor symmetrische Kerne oder andere Verarbeitungsengines enthalten, die auf unterschiedlichen Energieverbrauchsebenen arbeiten, wie etwa so, dass in einer energiebeschränkten Situation eine oder mehrere Workloads dynamisch umgeschaltet werden können, um auf einem Kern oder einer anderen Rechnerengine mit niedrigerer Energie ausgeführt zu werden. Eine andere beispielhafte Leistungsmanagementtechnik ist Hardware-Duty-Cycling (HDC), was Kerne und/oder andere Rechnerengines veranlassen kann, periodisch nach einem Lastzyklus aktiviert und deaktiviert zu werden, sodass ein oder mehrere Kerne während eines inaktiven Zeitraums des Lastzyklus inaktiv geschaltet und während eines aktiven Zeitraums des Lastzyklus aktiv geschaltet werden können.
  • Leistungsmanagementtechniken können auch verwendet werden, wenn Einschränkungen in einer Betriebsumgebung bestehen. Wenn beispielsweise eine Leistung und/oder Wärmeeinschränkung auftritt, kann die Leistung durch Verringern der Betriebsfrequenz und/oder Spannung verringert werden. Andere Leistungsmanagementtechniken enthalten das Drosseln der Anweisungsausführungsrate oder das Einschränken der Anweisungsplanung. Noch weiter ist es möglich, dass Anweisungen einer bestimmten Anweisungssatzarchitektur ausdrückliche oder stillschweigende Anweisungen zu Leistungsmanagementfunktionen beinhalten. Wenn auch mit diesen speziellen Beispielen beschrieben, ist zu verstehen, dass viele andere Leistungsmanagementtechniken in bestimmten Ausführungsformen verwendet werden können.
  • Ausführungsformen können in Prozessoren für verschiedene Märkte umgesetzt werden, die Serverprozessoren, Desktopprozessoren, mobile Prozessoren und so weiter enthalten. Nun wird mit Verweis auf 2 ein Blockdiagramm eines Prozessors nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 2 dargestellt, kann Prozessor 200 ein Mehrkernprozessor sein, der mehrere Kerne 210a bis 210n enthält. In einer Ausführungsform kann jeder solche Kern einer unabhängigen Energiedomäne angehören und konfiguriert sein, basierend auf der Workload in aktive Zustände und/oder Maximalleistungszustände einzutreten und diese zu verlassen. Ein oder mehrere Kerne 210 können heterogen für die anderen Kerne sein, z. B. mit verschiedenen Mikroarchitekturen, Anweisungssatzarchitekturen, Pipelinetiefen, Energie- und Leistungsfähigkeiten. Die verschiedenen Kerne können über eine Verbindung 215 mit einem Systemagenten oder Unkern 220 verbunden werden, der verschiedene Komponenten beinhaltet. Wie zu sehen ist, kann der Uncore 220 einen geteilten Cache 230 enthalten, der ein Cache der letzten Ebene sein kann. Weiterhin kann der Uncore eine integrierte Speichersteuerung 240 enthalten, um mit einem Systemspeicher zu kommunizieren (in 2), z. B. über einen Speicherbus. Der Unkern 220 enthält auch verschiedene Schnittstellen 250 und eine Leistungssteuereinheit 255, die Logik enthalten kann, um Leistungsmanagementtechniken durchzuführen, einschließlich automatischen Herabstufungstechniken, die zumindest teilweise auf einer vom Kunden bereitgestellten Anpassung wie hierin beschrieben basiert.
  • Weiterhin kann durch die Schnittstellen 250a bis 250n eine Verbindung mit verschiedenen Off-Chip-Komponenten wie peripheren Vorrichtungen, Massespeicher und so weiter hergestellt werden. Während er mit dieser bestimmten Umsetzung in der Ausführungsform von 2 dargestellt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt.
  • Nun wird mit Verweis auf 3 ein Blockdiagramm eines Multidomain-Prozessors nach einer anderen Ausführungsform dieser Erfindung dargestellt. Wie in der Ausführungsform aus 3 dargestellt, enthält der Prozessor 300 mehrere Domänen. Spezifisch kann eine Kerndomäne 310 mehrere Kerne 310a bis 310n beinhalten, eine Grafikdomäne 320 kann eine oder mehrere Grafikengines beinhalten und eine Systemagentendomäne 350 kann ferner vorhanden sein. In einigen Ausführungsformen kann die Systemagentendomäne 350 bei einer unabhängigen Frequenz als die Kerndomäne ausführen und jederzeit aktiviert bleiben, um Energiesteuerereignisse und Leistungsmanagement zu handhaben, sodass die Domänen 310 und 320 gesteuert werden können, dynamisch in Hochenergie- und Niedrigenergiezustände ein- und auszutreten. Jede der Domänen 310 und 320 kann bei einer unterschiedlichen Spannung und/oder Energie funktionieren. Es ist zu beachten, dass die Darstellung zwar nur mit drei Domänen erfolgt, es ist jedoch zu verstehen, dass der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt ist, und weitere Domänen in anderen Ausführungsformen vorhanden sein können. Beispielsweise können Multiplecore-Domänen vorhanden sein, die jeweils mindestens einen Kern enthalten.
  • Allgemein kann jeder Kern 310 ferner neben verschiedenen Ausführungseinheiten und weiteren Verarbeitungselementen Caches auf niedriger Ebene beinhalten. Wiederum können die verschiedenen Kerne miteinander oder mit einem geteilten Cachespeicher verbunden sein, der aus mehreren Einheiten eines Last-Level-Cache (LLC) 340a bis 340n gebildet wurde. In verschiedenen Ausführungsformen kann das LLC 340 unter den Kernen und der Grafikengine, sowie verschiedenen Medienverarbeitungsschaltungen geteilt werden. Wie zu sehen ist, verbindet eine Ringverbindung 330 so die Kerne miteinander und stellt eine Verbindung zwischen den Kernen, der Grafikdomäne 320 und den Systemagentschaltungen 350 her. In einer Ausführungsform kann die Verbindung 330 Teil der Kerndomäne sein. In anderen Ausführungsformen kann die Ringverbindung einer eigenen Domäne angehören.
  • Wie weiter gesehen, kann die Systemagentendomäne 350 einen Anzeigecontroller 352 enthalten, der die Steuerung von einer und eine Schnittstelle für eine assoziierte(n) Anzeige bereitstellen kann. Wie ferner gesehen, kann die Systemagentendomäne 350 eine Leistungssteuereinheit 355 enthalten, die eine Logik enthalten kann, um Leistungsmanagementtechniken auszuführen, einschließlich vom Kunden kontrollierbarer automatischer Herabstufungstechniken, die hierin beschrieben sind.
  • Wie ferner in 3 zu sehen ist, kann der Prozessor 300 ferner eine integrierte Speichersteuerung (IMC) 370 enthalten, die eine Schnittstelle mit einem Systemspeicher vorsehen kann, wie etwa einem Dynamischen Random Access Memory (DRAM). Mehrere Schnittstellen 380a bis 380n können vorhanden sein, um eine Verbindung zwischen dem Prozessor und anderen Schaltkreisen zu aktivieren. Beispielsweise kann in einer Ausführungsform mindestens eine Direktmedienschnittstellen- (DMI) Schnittstelle sowie eine oder mehrere PCIe™-Schnittstellen bereitgestellt sein. Noch weiter können, um Kommunikationen zwischen anderen Agenten wie etwa weiteren Prozessoren oder anderen Schaltungen vorzusehen, eine oder mehrere QPI-Schnittstellen ebenfalls bereitgestellt sein. Auch wenn sie in dieser hohen Ebene in der Ausführungsform von 3 dargestellt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt.
  • Mit Verweis auf 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne enthält, dargestellt. Der Prozessor 400 enthält jeden Prozessor oder jede Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SoC) oder eine andere Vorrichtung, um Code auszuführen. Prozessor 400 enthält in einer Ausführungsform mindestens zwei Kerne-Kerne 401 und 402, die asymmetrische Kerne oder symmetrische Kerne (die illustrierte Ausführungsform) enthalten können. Prozessor 400 kann jedoch jede Anzahl von Verarbeitungselementen enthalten, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele von Hardware-Verarbeitungselementen enthalten: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardware-Thread, einen Kern und/oder jedes andere Elemente, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie etwa einen Ausführungszustand oder architektonischen Zustand. In anderen Worten: ein Verarbeitungselement bezieht sich in einer Ausführungsform auf jede Hardware, die in der Lage ist, unabhängig mit Code assoziiert zu werden, wie etwa ein Software-Thread, ein Betriebssystem, eine Anwendung oder ein anderer Code. Ein physischer Prozessor bezieht sich typischerweise auf einen integrierten Schaltkreis, der potenziell jede Anzahl von anderen Verarbeitungselementen enthält, wie etwa Kerne oder Hardware-Threads.
  • Ein Kern bezieht sich oft auf eine Logik, die sich auf einem integrierten Schaltkreis befindet, der in der Lage einst, einen unabhängigen architektonischen Zustand zu erhalten, wobei jeder unabhängig gehaltene architektonische Zustand mit mindestens einigen speziellen Ausführungsressourcen zusammenhängt. Im Gegensatz zu Kernen, bezieht sich ein Hardware-Thread typischerweise auf jede Logik, die sich auf einem integrierten Schaltkreis befindet, der in der Lage ist, einen unabhängigen architektonischen Zustand zu erhalten, wobei die unabhängig erhaltenem architektonischen Zustand gemeinsam auf Ausführungsressourcen zugreifen. Wie zu sehen ist, überlappt sich die Linie zwischen der Benennung eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen geteilt und andere speziell einem architektonischen Zustand zugeordnet sind. Oft werden jedoch ein Kern und ein Hardware-Thread durch ein Betriebssystem als einzelne logische Prozessoren betrachtet, wenn das Betriebssystem in der Lage ist, Funktionen einzelne auf jedem logischen Prozessor zu planen.
  • Ein physischer Prozessor 400, wie illustriert in 4, enthält zwei Kerne, Kerne 401 und 402. Hier werden die Kerne 401 und 402 als symmetrische Kerne betrachtet, d. h. Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. In einer anderen Ausführungsform enthält Kern 401 einen Prozessorkern außerhalb der Reihenfolge, während der Kern 402 einen Prozessorkern in Reihenfolge enthält. Die Kerne 401 und 402 können jedoch einzeln aus jeder Art von Kern gewählt werden, wie etwa einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der angepasst ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einem Kern, der angepasst ist, eine übersetzte ISA auszuführen, einem co-designten Kern oder einem anderen bekannten Kern. Um die Diskussion noch weiter fortzusetzen, sind die Funktionseinheiten, die in Kern 401 illustriert sind, nachfolgend genauer beschrieben, da die Einheiten im Kern 402 auf ähnliche Weise funktionieren.
  • Wie dargestellt, enthält der Kern 401 zwei Hardwarethreads 401a und 401b, die auch als Hardwarethreadslots 401a und 401b bezeichnet werden können. Daher können Softwareeinheiten wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor 400 als vier separate Prozessoren betrachten, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig durchzuführen. Wie oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 401a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 401b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 402a assoziiert sein und ein vierter Thread kann mit Architekturzustandsregistern 402b assoziiert sein. Hier kann jedes der Architekturzustandsregister (401a, 401b, 402a, und 402b) als Verarbeitungselemente, Thread-Slots oder Thread-Einheiten bezeichnet sein, wie oben beschrieben. Wie illustriert, werden die Architekturzustandsregister 401a in Architekturzustandsregistern 401b repliziert, sodass einzelne Architekturzustände/-zusammenhänge in der Lage sind, für den logischen Prozessor 401a und den logischen Prozessor 401b gespeichert zu werden. In Kern 401 können andere kleinere Ressourcen wie Anweisungspointers und Umbenennungslogik im Allokator- und Umbenennerblock 430 ebenfalls für die Threads 401a und 401b repliziert werden. Einige Ressourcen, wie Umsortierungspuffer in einer Umsortierungs-/Rücknahmeeinheit 435, Zweigzielpuffer und Anweisungsübersetzungs-Lookaside-Puffer (BTB und I-TLB) 420, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie etwa interne Allzweckregister, Seitentabellenbasisregister, ein Datencache auf niedriger Ebene und Daten-TLB 450, Ausführungseinheit(en) 440, und Abschnitte der Einheit außerhalb der Reihenfolge 435 sind potenziell vollständig geteilt.
  • Der Prozessor 400 enthält oft andere Ressourcen, die vollständig geteilt, durch Partitionierung geteilt oder speziell durch/für Verarbeitungselemente vorgesehen sein können. In 4 ist eine Ausführungsform eines rein exemplarischen Prozessors mit illustrativen logischen Einheiten/Ressourcen eines Prozessors illustriert. Beachten Sie, dass ein Prozessor jede dieser Funktionseinheiten enthalten oder auslassen kann, sowie andere bekannte Funktionseinheiten, Logik oder Firmware, die nicht dargestellt sind, enthalten oder auslassen kann. Wie illustriert, enthält der Kern 401 einen vereinfachten, repräsentativen Out-of-Order- (OOO) Prozessorkern. Ein Prozessor innerhalb der Reihenfolge kann jedoch in anderen Ausführungsformen verwendet werden. Der OOO-Kern enthält einen Zweigzielpuffer 420 zum Vorhersagen von Zweigen, die ausgeführt/genommen werden sollen, und einen Anweisungsübersetzungspuffer (I-TLB) 420, um Adressübersetzungseinträge für Anweisungen zu speichern.
  • Der Kern 401 enthält ferner das Decodierungsmodul 425, verbunden mit einer Abrufeinheit zum Decodieren der abgerufenen Elemente. Die Abruflogik enthält in einer Ausführungsform einzelne Sequenzer, die mit Threadslots 401a bzw. 401b assoziiert sind. Üblicherweise ist der Kern 401 mit einer ersten ISA assoziiert, die Anweisungen definiert/spezifiziert, die auf Prozessor 400 ausführbar sind. Oft enthalten Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Abschnitt der Anweisung (bezeichnet als ein Opcode), der sich auf eine Anweisung oder Funktion bezieht, die ausgeführt werden soll/diese spezifiziert. Die Decodierungslogik 425 enthält Schaltungen, die diese Anweisungen von ihren Opcodes erkennt und die decodierten Anweisungen in der Pipeline für die Verarbeitung weitergibt, wie durch die erste ISA definiert. Beispielsweise enthalten Decoder 425 in einer Ausführungsform eine Logik, die vorgesehen oder angepasst ist, um spezifische Anweisungen zu erkennen, wie etwa transaktionale Anweisungen. Als Ergebnis der Erkennung durch die Decoder 425, ergreift die Architektur oder der Kern 401 spezifische vordefinierte Aktionen zur Durchführung von Aufgaben, die mit den geeigneten Anweisungen assoziiert sind. Es ist wichtig, zu beachten, dass jede der Aufgaben, Blocks, Funktionen und Verfahren, die hierin beschrieben sind, in Reaktion auf eine einzige oder auf mehrere Anweisungen ausgeführt werden können; einige davon können neue oder alte Anweisungen sein.
  • In einem Beispiel enthält der Allokator- und Umbenennerblock 430 einen Allokator, um Ressourcen, wie etwa Registerdateien, zu reservieren, um Anweisungsverarbeitungsergebnisse zu speichern. Die Threads 401a und 401b sind jedoch potenziell in der Lage, eine Ausführung außerhalb der Reihenfolge durchzuführen, wenn der Allokator- und Umbenennerblock 430 ebenfalls andere Ressourcen reserviert, wie etwa Umsortierungspuffer zum Verfolgen von Anweisungsergebnissen. Einheit 430 kann außerdem einen Registerumbenenner enthalten, um Programm-/Anweisungsreferenzregister auf andere Register umzubenennen, die intern in Prozessor 400 vorhanden sind. Die Umsortierungs-/Rücknahmeeinheit 435 enthält Bauteile, wie etwa die oben genannten Umsortierungspuffer, und Speicherpuffer, um eine Ausführung außerhalb der Reihenfolge und später die Rücknahme der Anweisungen, die außerhalb der Reihenfolge ausgeführt wurden, in Reihenfolge, zu unterstützen.
  • Der Planer- und Ausführungseinheit(en)-Block 440 in einer Ausführungsform enthält eine Planereinheit zur Planung von Anweisungen/Betrieb der Ausführungseinheiten. Beispielsweise ist eine Floating-Point-Anweisung auf einem Port einer Ausführungseinheit geplant, der eine verfügbare Floating-Point-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten assoziiert sind, sind ebenfalls enthalten, um Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Floating-Point-Ausführungseinheit, eine Integer-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencache auf niedriger Ebene und ein Datenübersetzungs-Lookaside-Puffer (D-TLB) 450 sind mit der oder den Ausführungseinheit(en) 440 verbunden. Der Datencache soll kürzlich verwendete/bediente Elemente verwenden, wie etwa Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll kürzliche virtuelle/zur physischen Adresse lineare Übersetzungen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur enthalten, um den physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier teilen sich die Kerne 401 und 402 Zugriff auf einen Cache 410, der auf höherer Ebene oder weiter weg ist, der die kürzlich abgerufenen Elemente cachen soll. Es ist zu beachten, dass sich höhere Ebene oder weiter weg auf Cacheebenen bezieht, die ansteigen oder sich weiter von der/den Ausführungseinheit(en) weg befinden. In einer Ausführungsform ist der Cache auf höherer Ebene 410 ein Last-Level Datencache-letzter Cache in der Speicherhierarchie auf dem Prozessor 400-wie etwa ein Datencache auf zweiter oder dritter Ebene. Ein Cache auf höherer Ebene 410 ist jedoch nicht so beschränkt, da er mit einem Anweisungscache assoziiert sein oder diesen enthalten kann. Ein TraceCache - eine Art von Anweisungscache - kann stattdessen hinter dem Decoder 425 verbunden sein, um kürzlich decodierte Traces zu speichern.
  • In der dargestellten Konfiguration enthält der Prozessor 400 auch den Busschnittstellenmodus 405 und eine Leistungssteuereinheit 460, die Leistungsmanagement nach einer Ausführungsform der vorliegenden Erfindung durchführt. In diesem Szenario soll die Busschnittstelle 405 mit Vorrichtungen kommunizieren, die außerhalb des Prozessors 400 liegen, wie etwa mit Systemspeicher und anderen Bauteilen.
  • Ein Speichercontroller 470 kann eine Schnittstelle mit anderen Vorrichtungen wie einem oder mehreren Speichern bilden. In einem Beispielbus enthält die Schnittstelle 405 eine Ringverbindung mit einer Speichersteuerung als Schnittstelle mit einem Speicher und einem Grafikcontroller als Schnittstelle mit einem Grafikprozessor. In einer SoC-Umgebung können noch mehr Vorrichtungen, wie etwa eine Netzwerkschnittstelle, Coprozessoren, Speicher, Grafikprozessor und alle anderen bekannten Computervorrichtungen/Schnittstelle auf einer einzelnen Matrize oder einem integrierten Schaltkreis integriert werden, um einen kleinen Formfaktor mit hoher Funktion und niedrigem Energieverbrauch bereitzustellen.
  • Nun wird mit Verweis auf 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 5 dargestellt, kann der Prozessorkern 500 ein mehrstufiger Prozessor außerhalb der Reihenfolge mit einer Pipeline sein. Kern 500 kann bei verschiedenen Spannungen funktionieren, basierend auf einer empfangenen Betriebsspannung, die von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann.
  • Wie in 5 zu sehen, enthält der Kern 500 Frontend-Einheiten 510, die verwendet werden können, um Anweisungen abzurufen, die ausführt werden sollen, und diese für die Verwendung später in der Prozessorpipeline vorzubereiten. Beispielsweise können Frontend-Einheiten 510 eine Abrufeinheit 501, einen Anweisungscache 503 und einen Anweisungsdecoder 505 enthalten. In einigen Umsetzungen können Frontend-Einheiten 510 ferner einen Tracecache enthalten, zusammen mit einem Microcodespeicher sowie einem Mikrofunktionsspeicher. Die Abrufeinheit 501 kann Makroanweisungen abrufen, z. B. von einem Speicher oder einem Anweisungscache 503, und kann sie an den Anweisungsdecoder 505 übermitteln, um sie in Primitive zu decodieren, d. h. Mikrofunktionen zur Ausführung durch den Prozessor.
  • Zwischen den Frontendeinheiten 510 und Ausführungseinheiten 520 ist eine Out-of-Order- (OOO) Engine 515 verbunden, die verwendet werden kann, die Mikroanweisungen zu empfangen und zur Ausführung vorzubereiten. Genauer gesagt kann die OOO-Engine 515 verschiedene Puffer enthalten, um den Mikroanweisungsablauf umzusortieren und verschiedene Ressourcen zuzuweisen, die zur Ausführung erforderlich sind, sowie die Umbenennung logischer Register auf Speicherorten innerhalb verschiedener Registerdateien wie Registerdatei 530 und der erweiterten Registerdatei 535 bereitzustellen. Registerdatei 530 kann separate Registerdateien für Integer- und Floating-Point-Funktionen enthalten. Zum Zweck der Konfiguration, Steuerung und weiterer Funktionen kann auch ein Satz maschinenspezifischer Register (MSRs) 538 vorhanden sein und für unterschiedliche Logik innerhalb des Kerns 500 (und außerhalb des Kerns) zugänglich sein.
  • Verschiedene Ressourcen können in Ausführungseinheiten 520 vorhanden sein, einschließlich beispielsweise verschiedener Integer-, Floating-Point- und Single-Instruction-Multiple-Data- (SIMD) Logikeinheiten, sowie weiterer spezialisierter Hardware. Beispielsweise können solche Ausführungseinheiten eine oder mehrere arithmetische Logikeinheiten (ALUs) 522 und eine oder mehrere Vektorausführungseinheiten 524, sowie andere solche Ausführungseinheiten enthalten.
  • Ergebnisse von Ausführungseinheiten können für die Rücknahmelogik bereitgestellt werden, namentlich für einen Umsortierungspuffer (ROB) 540. Genauer gesagt, kann der ROB 540 verschiedene Arrays und Logik enthalten, um Informationen zu empfangen, die mit Anweisungen assoziiert sind, die ausgeführt werden sollen. Diese Informationen werden dann durch den ROB 540 untersucht, um zu bestimmen, ob die Anweisungen gültig zurückgenommen werden und die Ergebnisdaten zu dem architektonischen Zustand des Prozessors zugewiesen werden können, oder ob eine oder mehrere Ausnahmen aufgetreten sind, die die korrekte Rücknahme der Anweisungen verhindern. Natürlich kann der ROB 540 andere Funktionen handhaben, die mit der Rücknahme assoziiert sind.
  • Wie in 5 dargestellt, ist der ROB 540 mit einem Cache 550 verbunden, der in einer Ausführungsform einen Cache auf niedrigerer Ebene (z. B. einen L1-Cache) aufweisen kann, obwohl der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt ist. Außerdem können die Ausführungseinheiten 520 direkt mit Cache 550 verbunden sein. Von Cache 550 kann eine Datenkommunikation mit Caches höherer Ebene, Systemspeicher und so weiter erfolgen. Auch wenn sie in dieser hohen Ebene in der Ausführungsform von 5 dargestellt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt. Beispielsweise ist, während die Umsetzung aus 5 sich auf eine Maschine außerhalb der Reihenfolge bezieht, wie etwa eine Intel® x86 Anweisungssatzarchitektur (ISA), der Umfang der vorliegenden Erfindung diesbezüglich nicht begrenzt. Dies heißt, dass andere Ausführungsformen als Prozessor in Reihenfolge, Reduced Instruction Set Computing (RISC) Prozessor wie etwa ein ARM-basierter Prozessor oder ein Prozessor eines anderen Typs von ISA, der Anweisungen und Funktionen einer anderen ISA über eine Emulierungsengine und assoziierte Logikschaltungen emulieren kann, umgesetzt sein können.
  • Nun wird mit Verweis auf 6 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer anderen Ausführungsform dargestellt. In der Ausführungsform aus 6 kann der Kern 600 ein Niedrigenergiekern einer anderen Mikroarchitektur sein, wie etwa ein Intel® Atom™-basierter Prozessor, der eine relativ begrenzte Pipelinetiefe aufweist, die vorgesehen ist, den Energieverbrauch zu verringern. Wie zu sehen ist, enthält Kern 600 einen Anweisungscache 610, der verbunden ist, um Anweisungen an einen Anweisungsdecoder 615 bereitzustellen. Ein Zweigprädiktor 605 kann mit dem Anweisungscache 610 verbunden sein. Es ist zu beachten, dass der Anweisungscache 610 ferner mit einer anderen Ebene von Cachespeicher verbunden sein kann, wie etwa mit einem L2-Cache (für einfachere Illustration nicht dargestellt in 6). Wiederum stellt der Anweisungsdecoder 615 decodierte Anweisungen an eine Ausgabewarteschlange (IQ) 620 zum Speichern und Liefern an eine gegebene Ausführungspipeline bereit. Ein Microcode-ROM 618 ist mit dem Anweisungsdecoder 615 verbunden.
  • Eine Floating-Point-Pipeline 630 enthält eine Floating-Point- (FP) Registerdatei 632, die mehrere architektonische Register eines bestimmten Bits enthalten kann, etwa mit 128, 256 oder 512 Bits. Pipeline 630 enthält einen Floating-Point-Planer 634 zur Planung von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline. In der dargestellten Ausführungsform enthalten solche Ausführungseinheiten eine ALU 635, eine Shuffle-Einheit 636, und einen Floating-Point-Addierer 638. Wiederum können die Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, zurück an die Puffer und/oder Register der Registerdatei 632 bereitgestellt werden. Natürlich ist zu verstehen, dass sie zwar mit diesen wenigen beispielhaften Ausführungseinheiten dargestellt sind, jedoch weitere oder andere Floating-Point-Ausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
  • Eine Integer-Pipeline 640 kann ebenfalls bereitgestellt sein. In der dargestellten Ausführungsform enthält die Pipeline 640 eine Integer- (INT) Registerdatei 642, die mehrere architektonische Register eines bestimmten Bits enthalten kann, etwa mit 128 oder 256 Bits. Die Pipeline 640 enthält einen Integerausführungs- (IE) Planer 644 zum Planen von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline. In der dargestellten Ausführungsform enthalten solche Ausführungseinheiten eine ALU 645, eine Verschiebeeinheit 646 und eine Sprungausführungseinheit (JEU) 648. Wiederum können die Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, zurück an die Puffer und/oder Register der Registerdatei 642 bereitgestellt werden. Natürlich ist zu verstehen, dass sie zwar mit diesen wenigen beispielhaften Ausführungseinheiten dargestellt sind, jedoch weitere oder andere Integer-Ausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
  • Ein Speicherausführungs- (ME) Planer 650 kann Speicherfunktionen zur Ausführung in einer Adresserzeugungseinheit (AGU) 652 planen, die ebenfalls mit einem TLB 654 verbunden ist. Wie zu sehen ist, können diese Strukturen sich mit einem Datencache 660 verbinden, der ein L0 und/oder L1-Datencache sein kann, der sich wiederum mit den weiteren Ebenen einer Cachespeicherhierarchie verbindet, einschließlich eines L2-Cachespeichers.
  • Um eine Out-of-Order-Ausführung zu unterstützen, kann ein Allokator/Umbenenner 670 bereitgestellt sein, sowie ein Umsortierungspuffer 680, der konfiguriert ist, Anweisungen umzusortieren, die außerhalb der Reihenfolge ausgeführt wurden, um sie in der Reihenfolge zurückzunehmen. Wenn auch mit dieser bestimmten Pipelinearchitektur in der Illustration von 6 dargestellt, ist zu verstehen, dass viele Variationen und Alternativen möglich sind.
  • Es ist zu beachten, dass in einem Prozessor, der asymmetrische Kerne aufweist, wie etwa nach den Mikroarchitekturen der 5 und 6, Workloads dynamisch zwischen den Kernen aus Gründen des Leistungsmanagements ausgetauscht werden können, da diese Kerne, auch wenn sie unterschiedliche Pipelinedesigns und -tiefen aufweisen, derselben oder einer verbundenen ISA angehören können. Solche dynamischen Kernaustausche können in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparent sind.
  • Mit Verweis auf 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer anderen Ausführungsform dargestellt. Wie in 7 illustriert, kann ein Kern 700 eine mehrstufige Pipeline in Reihenfolge aufweisen, die bei sehr geringen Energieverbrauchswerten ausgeführt werden soll. Als ein solches Beispiel kann der Prozessor 700 eine Mikroarchitektur nach einem ARM Cortex A53 Design aufweisen, das von ARM Holdings, LTD., Sunnyvale, CA zur Verfügung steht. In einer Umsetzung kann eine 8-stufige Pipeline bereitgestellt sein, die konfiguriert ist, 32-bit- und 64-bit-Code gleichermaßen auszuführen. Kern 700 enthält Abrufeinheit 710, die konfiguriert ist, Anweisungen abzurufen und einer Decodierungseinheit 715 bereitzustellen, die die Anweisungen decodieren kann, z. B. Makroanweisungen einer bestimmten ISA wie einer ARMv8 ISA. Es ist ferner zu beachten, dass eine Warteschlange 730 sich mit der Decodierungseinheit 715 verbinden darf, um decodierte Anweisungen zu speichern. Decodierte Anweisungen werden an eine Ausgabelogik 725 bereitgestellt, wobei die decodierten Anweisungen an eine von mehreren Ausführungseinheiten gegeben werden können.
  • Mit weiterem Verweis auf 7 kann die Ausgabelogik 725 Anweisungen an eine von mehreren Ausführungseinheiten ausgeben. In der dargestellten Ausführungsform enthalten diese Ausführungseinheiten eine Integereinheit 735, eine Multiplikatoreinheit 740, eine Floating-Point/Vektoreinheit 750, eine Dualausgabeeinheit 760, und eine Lade-/Speichereinheit 770. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können an die Writeback- (WB) Einheit 780 übergeben werden. Es ist zu verstehen, dass zwar eine einzige Writeback-Einheit für einfachere Illustration dargestellt ist, in einigen Umsetzungen jedoch separate Writeback-Einheiten mit jeder der Ausführungseinheiten assoziiert sein können. Weiterhin ist zu verstehen, dass zwar jede der Einheiten und Logik wie in 7 dargestellt, auf hoher Ebene repräsentiert ist, jedoch eine bestimmte Umsetzung mehr oder andere Strukturen enthalten kann. Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne entworfen wurde, die eine Pipeline aufweisen, wie in 7 dargestellt, kann in vielen verschiedenen Endprodukten umgesetzt sein, die von mobilen Vorrichtungen bis zu Serversystemen reichen.
  • Mit Verweis auf 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer weiteren Ausführungsform dargestellt. Wie in 8 dargestellt, kann ein Kern 800 eine mehrstufige Mehrfachausgabepipeline außerhalb der Reihenfolgen enthalten, um bei sehr hohen Leistungsebenen ausgeführt zu werden (die bei höheren Energieverbrauchsebenen auftreten können als Kern 700 von 7). Als ein solches Beispiel kann der Prozessor 800 eine Mikroarchitektur nach einem ARM Cortex A57 Design aufweisen. In einer Umsetzung kann eine 15-(oder mehr) stufige Pipeline bereitgestellt sein, die konfiguriert ist, um 32-bit- und 64-bit-Code gleichermaßen auszuführen. Weiterhin kann die Pipeline eine 3 (oder mehr) breite und 3 (oder mehr)-Ausgabefunktion vorsehen. Kern 800 enthält eine Abrufeinheit 810, die konfiguriert ist, Anweisungen abzurufen und dann einer Decoder-/Umbenenner-/Absendereinheit 815 bereitzustellen, die mit einem Cache 820 verbunden ist. Einheit 815 kann die Anweisungen decodieren, z. B. Makroanweisungen einer ARMv8-Anweisungssatzarchitektur, Registerverweise innerhalb der Anweisungen umbenennen und die Anweisungen (schließlich) an eine ausgewählte Ausführungseinheit versenden. Decodierte Anweisungen können in einer Warteschlange 825 gespeichert werden. Es ist zu beachten, dass, während eine einzige Warteschlangenstruktur für einfachere Illustration in 8 dargestellt wird, zu verstehen ist, dass getrennte Warteschlangen für jede der mehreren verschiedenen Arten von Ausführungseinheiten bereitgestellt werden können.
  • Ebenfalls in 8 ist eine Ausgabelogik 830 gezeigt, von der decodierte Anweisungen, die in Warteschlange 825 gespeichert sind, an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Ausgabelogik 830 kann in einer bestimmten Ausführungsform mit einer eigenen Ausgabelogik für jeden der mehreren verschiedenen Typen der Ausführungseinheiten bereitgestellt werden, mit denen sich die Ausgabelogik 830 verbindet.
  • Decodierte Anweisungen können an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden. In der dargestellten Ausführungsform enthalten diese Ausführungseinheiten eine oder mehrere Integereinheiten 835, eine Multiplikatoreinheit 840, eine Floating-Point/Vektoreinheit 850, eine Zweigeinheit 860, und eine Lade-/Speichereinheit 870. In einer Ausführungsform kann die Floating-Point/Vektoreinheit 850 konfiguriert sein, SIMD oder Vektordaten von 128 oder 256 Bits zu handhaben. Noch weiter kann die Floating-Point/Vektorausführungseinheit 850 IEEE-754 Doppelpräzisions-Floating-Point-Funktionen ausführen. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Writeback-Einheit 880 bereitgestellt werden. Es ist zu beachten, dass in einigen Umsetzungen separate Writeback-Einheiten mit jeder der Ausführungseinheiten assoziiert sein können. Weiterhin ist zu verstehen, dass zwar jede der Einheiten und Logik wie in 8 dargestellt auf hoher Ebene repräsentiert ist, jedoch eine bestimmte Umsetzung mehr oder andere Strukturen enthalten kann.
  • Es ist zu beachten, dass in einem Prozessor, der asymmetrische Kerne aufweist, wie etwa nach den Mikroarchitekturen der 7 und 8, Workloads dynamisch aus Gründen des Leistungsmanagements ausgetauscht werden können, da diese Kerne, auch wenn sie unterschiedliche Pipelinedesigns und -tiefen aufweisen, derselben oder einer verbundenen ISA angehören können. Solche dynamischen Kernaustausche können in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparent sind.
  • Ein Prozessor, der unter Verwendung von einem oder mehreren Kernen entworfen wurde, die Pipelines aufweisen, wie in einer oder mehreren der 5 bis 8 dargestellt, kann in vielen verschiedenen Endprodukten umgesetzt sein, die von mobilen Vorrichtungen bis zu Serversystemen reichen. Nun wird mit Verweis auf 9 ein Blockdiagramm eines Prozessors nach einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. In der Ausführungsform aus 9 kann der Prozessor 900 ein SoC sein, der mehrere Domänen enthält, von denen jede gesteuert werden kann, um mit einer unabhängigen Betriebsspannung und Betriebsfrequenz zu funktionieren. Als ein spezifisches illustratives Beispiel kann der Prozessor 900 ein Intel® Architecture Core™-basierter Prozessor sein, wie etwa ein i3, i5, i7 oder ein anderer solcher Prozessor, der von der Intel Corporation zur Verfügung steht. Andere Niedrigenergieprozessoren, wie etwa von Advanced Micro Devices, Inc. (AMD) von Sunnyvale, CA, erhältlich, ein ARM-basiertes Design von ARM Holdings, Ltd. oder einem Lizenznehmer davon, oder ein MIPS-basiertes Design von MIPS Technologies, Inc. von Sunnyvale, CA, oder deren Lizenznehmern oder Übernehmern, können jedoch stattdessen in anderen Ausführungsformen vorhanden sein, wie etwa ein Apple A7 Prozessor, ein Qualcomm Snapdragon Prozessor oder ein Texas Instruments OMAP Prozessor. Ein solcher SoC kann in einem System mit niedriger Energie verwendet werden, wie etwa einem Smartphone, Tabletcomputer, Phabletcomputer, Ultrabook™-Computer oder einer anderen tragbaren Rechnervorrichtung, die ein auf einer heterogenen Systemarchitektur basierendes Prozessordesign umfassen kann.
  • In der Ansicht der hohen Ebene aus 9 enthält der Prozessor 900 mehrere Kerneinheiten 910a bis 910n. Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cachespeicher und andere Schaltungen enthalten. Jede Kerneinheit 910 kann einen oder mehrere Anweisungssätze (z. B. einen x86 Anweisungssatz (mit einigen Erweiterungen, die mit neueren Versionen hinzugefügt wurden); einen MIPS-Anweisungssatz; einen ARM-Anweisungssatz (mit optionalen weiteren Erweiterungen wie NEON)) oder einen anderen Anweisungssatz oder Kombinationen davon unterstützen. Es ist zu beachten, dass einige der Kerneinheiten heterogene Ressourcen sein können (z. B. eines anderen Designs). Weiterhin kann jeder solche Kern mit einem Cachespeicher (nicht dargestellt) verbunden werden, der in einer Ausführungsform ein geteilter Cachespeicher der Ebene zwei (L2) sein kann. Ein nichtflüchtiger Speicher 930 kann verwendet werden, um verschiedene Programm- und andere Daten zu speichern. Beispielsweise kann dieser Speicher verwendet werden, um mindestens Abschnitte von Microcode, Bootinformationen wie ein BIOS, andere Systemsoftware oder anderes zu speichern.
  • Jede Kerneinheit 910 kann ebenfalls eine Schnittstelle wie eine Busschnittstelleneinheit enthalten, um die Verbindung mit weiteren Schaltkreisen des Prozessors zu ermöglichen. In einer Ausführungsform verbindet sich jede Kerneinheit 910 mit einem kohärenten Gewebe, das als primäre cachekohärente Verbindung auf der Matrize dienen kann, die sich wiederum mit einer Speichersteuerung 935 verbindet. Wiederum steuert die Speichersteuerung 935 Kommunikationen mit einem Speicher wie einem DRAM (für einfachere Illustration nicht dargestellt in 9).
  • Neben den Kerneinheiten sind weitere Verarbeitungsengines innerhalb des Prozessors vorhanden, einschließlich mindestens einer Grafikeinheit 920, die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) enthalten kann, um die Grafikverarbeitung durchzuführen, sowie Mehrzweckfunktionen auf dem Grafikprozessor auszuführen (sogenannte GPGPU-Funktion). Weiterhin kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann konfiguriert sein, eingehende Bilddaten zu verarbeiten, die von einer oder mehreren Erfassungsvorrichtungen empfangen wurden, entweder intern auf dem SoC oder außerhalb des Chips.
  • Andere Beschleuniger können ebenfalls vorhanden sein. In der Illustration aus 9 kann ein Videocoder 950 Codierungsfunktionen ausführen, einschließlich der Codierung und Decodierung für Videoinformationen, z. B. durch Bereitstellung von Hardwarebeschleunigungssupport für High-Definition-Videoinhalte. Ein Anzeigecontroller 955 kann ferner bereitgestellt sein, um die Anzeigefunktionen zu beschleunigen, einschließlich der Bereitstellung von Support für interne und externe Anzeigen eines Systems. Weiterhin kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsfunktionen auszuführen, wie etwa sichere Bootfunktionen, verschiedene Kryptografiefunktionen und so weiter.
  • Für jede der Einheiten kann der Stromverbrauch über den Leistungsmanager 940 gesteuert werden, der eine Steuerlogik enthalten kann, um die verschiedenen darin beschriebenen Leistungsmanagementtechniken zu enthalten.
  • In einigen Ausführungsformen kann SoC 900 ferner ein nicht kohärentes Gewebe enthalten, das mit dem kohärenten Gewebe verbunden ist, mit dem sich verschiedene periphere Vorrichtungen verbinden können. Eine oder mehrere Schnittstellen 960a bis 960d ermöglichen die Kommunikation mit einer oder mehreren Vorrichtungen außerhalb des Chips. Solche Kommunikationen können über eine Vielzahl von Kommunikationsprotokollen wie PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI und andere Arten von Kommunikationsprotokollen erfolgen. Auch wenn sie in dieser hohen Ebene in der Ausführungsform von 9 dargestellt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt.
  • Nun wird mit Verweis auf 10 ist ein Blockdiagramm eines repräsentativen SoC dargestellt. In der dargestellten Ausführungsform kann SoC 1000 ein Multicore-SoC sein, konfiguriert zur Funktion mit niedriger Energie zur Optimierung für den Einbau in ein Smartphone oder eine andere Niedrigenergievorrichtung wie etwa einen Tabletcomputer oder eine andere tragbare Computervorrichtung. Beispielsweise kann das SoC 1000 unter Verwendung asymmetrischer oder anderer Arten von Kernen umgesetzt werden, wie etwa Kombinationen von Hochenergie- und/oder Niedrigenergiekernen, z. B. Kernen außerhalb der Reihenfolge und Kernen in Reihenfolge. In verschiedenen Ausführungsformen können diese Kerne auf einem Intel® Architecture™ Kerndesign oder einem ARM-Architekturdesign basieren. In noch anderen Ausführungsformen kann eine Mischung aus Intel- und ARM-Kernen in einem bestimmten SoC umgesetzt sein.
  • Wie in 10 gesehen, enthält SoC 1000 eine erste Kerndomäne 1010 mit mehreren ersten Kernen 1012a - 1012d. In einem Beispiel können diese Kerne Kerne mit niedriger Leistung sein, wie etwa Kerne in der Reihenfolge. In einer Ausführungsform können diese ersten Kerne als ARM Cortex A53 Kerne umgesetzt sein. Diese Kerne wiederum verbinden sich mit einem Cachespeicher 1015 der Kerndomäne 1010. Weiterhin enthält das SoC 1000 eine zweite Kerndomäne 1020. In der Illustration aus 10 weist die zweite Kerndomäne 1020 mehrere zweite Kerne 1022a bis 1022d auf. In einem Beispiel können diese Kerne Kerne sein, die mehr Energie verbrauchen, als die ersten Kerne 1012. In einer Ausführungsform können die zweiten Kerne Kerne außerhalb der Reihenfolge sein, die als ARM Cortex A57 Kerne umgesetzt sind. Diese Kerne wiederum verbinden sich mit einem Cachespeicher 1025 der Kerndomäne 1020. Es ist zu beachten, dass zwar das in 10 dargestellte Beispiel 4 Kerne in jeder Domäne enthält, es jedoch zu verstehen ist, dass mehr oder weniger Kerne in anderen Beispielen in einer jeweiligen Domäne vorhanden sein können.
  • Mit weiterem Verweis auf 10 ist auch eine Grafikdomäne 1030 bereitgestellt, die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) enthalten kann, die konfiguriert sind, unabhängig Grafikworkloads auszuführen, die z. B. durch einen oder mehrere Kerne der Kerndomänen 1010 und 1020 bereitgestellt sind. Beispielsweise kann die GPU-Domäne 1030 verwendet werden, um Anzeigesupport für verschiedene Bildschirmgrößen bereitzustellen, neben der Bereitstellung von Grafik- und Anzeigerenderingfunktionen.
  • Wie zu sehen ist, verbinden sich die verschiedenen Domänen mit einer kohärenten Verbindung 1040, die in einer Ausführungsform ein cachekohärentes Verbindungsgewebe sein kann, das sich wiederum mit einem integrierten Speichercontroller 1050 verbindet. Die kohärente Verbindung 1040 kann in einigen Beispielen einen geteilten Cachespeicher enthalten, wie etwa einen L3-Cache. In einer Ausführungsform kann die Speichersteuerung 1050 eine direkte Speichersteuerung sein, um mehrere Kommunikationskanäle mit einem Speicher außerhalb des Chips bereitzustellen, wie etwa mehrere Kanäle eines DRAM (für einfachere Illustration nicht dargestellt in 10).
  • In verschiedenen Beispielen kann die Anzahl der Kerndomänen schwanken. Beispielsweise kann für ein Niedrigenergie-SoC, das sich für den Einbau in eine mobile Rechnervorrichtung eignet, eine eingeschränkte Anzahl von Kerndomänen vorhanden sein, wie in 10 dargestellt. Noch weiter kann in solchen Niedrigenergie-SoCs die Kerndomäne 1020 mit Kernen höherer Energie eine geringe Anzahl solcher Kerne aufweisen. Beispielsweise können in einer Umsetzung zwei Kerne 1022 bereitgestellt sein, um die Funktion bei verringerter Energieverbrauchsebene zu ermöglichen. Weiterhin können die verschiedenen Kerndomänen auch mit einem Unterbrechungscontroller gekoppelt sein, um einen dynamischen Austausch von Workloads zwischen den unterschiedlichen Domänen zu erlauben.
  • In noch anderen Ausführungsformen kann eine größere Anzahl von Kerndomänen, sowie weitere optionale IP-Logik vorhanden sein, indem ein SoC für höhere Leistungs- (und Energie-) Ebenen skaliert werden kann, um in andere Rechnervorrichtungen eingeschlossen zu werden, wie etwa Desktops, Server, Hochleistungsrechnersysteme, Basisstationen weiter. In einem solchen Beispiel können 4 Kerndomänen, die jeweils eine gegebene Anzahl von Kernen außerhalb der Reihenfolge aufweisen, bereitgestellt sein. Noch weiter kann/können neben der optionalen GPU-Unterstützung (die beispielsweise die Form einer GPGPU haben kann), ein oder mehrere Beschleuniger zur Bereitstellung optimierter Hardwareunterstützung für bestimmte Funktionen (z. B. Webserving, Netzwerkverarbeitung, Switching und so weiter) ebenfalls bereitgestellt werden. Weiterhin kann eine Eingabe-/Ausgabeschnittstelle vorhanden sein, um solche Beschleuniger mit Bauteilen außerhalb des Chips zu verbinden.
  • Nun wird mit Verweis auf 11 ist ein Blockdiagramm eines beispielhaften SoC dargestellt. In der Ausführungsform aus 11 kann das SoC 1100 verschiedene Schaltungen umfassen, um eine hohe Leistung für Multimediaanwendungen, Kommunikation und andere Funktionen bereitzustellen. So eignet sich das SoC 1100 für den Einbau in eine große Vielzahl von tragbaren und anderen Vorrichtungen, wie etwa Smartphones, Tabletcomputer, Smart-TVs und so weiter. In dem dargestellten Beispiel enthält das SoC 1100 eine zentrale Prozessoreinheiten- (CPU) Domäne 1110. In einer Ausführungsform können mehrere einzelne Prozessorkerne in der CPU-Domäne 1110 vorhanden sein. Als ein Beispiel kann die CPU-Domäne 1110 ein Quadcore-Prozessor sein, der 4 Multithreaded-Kerne aufweist. Solche Prozessoren können homogene oder heterogene Prozessoren sein, z. B. eine Mischung von Niedrigenergie- und Hochenergieprozessorkernen.
  • Wiederum ist eine GPU-Domäne 1120 bereitgestellt, um fortschrittliche Grafikverarbeitung in einer oder mehreren GPUs umzusetzen, um Grafiken zu handhaben und APIs zu berechnen. Eine DSP-Einheit 1130 kann eine oder mehrere Niedrigenergie-DSPs für die Handhabung von Niedrigenergie-Multimedia-Anwendungen wie Abspielen von Musik, Audio/Video und so weiter bereitstellen, neben fortschrittlichen Berechnungen, die während der Ausführung von Multimedienanweisungen auftreten können. Wiederum kann eine Kommunikationseinheit 1140 verschiedene Bauteile enthalten, um eine Konnektivität über verschiedene Drahtlosprotokolle bereitzustellen, wie etwa Handykommunikationen (einschließlich 3G/4G LTE), drahtlose Local-Area-Protokolle wie Bluetooth™, IEEE 802.11, und so weiter.
  • Noch weiter kann ein Multimediaprozessor 1150 verwendet werden, um die Erfassung und das Abspielen von Video- und Toninhalten mit hoher Auflösung durchzuführen, einschließlich der Verarbeitung von Handgesten des Benutzers. Eine Sensoreinheit 1160 kann mehrere Sensoren und/oder einen Sensorcontroller als Schnittstelle mit verschiedenen Sensoren außerhalb des Chips enthalten, die in einer gegebenen Plattform vorhanden sind. Ein Bildsignalprozessor 1170 kann mit einer oder mehreren separaten ISPs versehen sein, um Bildverarbeitung bezüglich der erfassten Inhalte von einer oder mehreren Kameras einer Plattform bereitzustellen, einschließlich Standbild- und Videokameras.
  • Ein Anzeigeprozessor 1180 kann die Verbindung mit einer hochauflösenden Anzeige einer bestimmten Pixeldichte bereitstellen, einschließlich der Fähigkeit, drahtlos Inhalte zum Abspielen auf einer solchen Anzeige zu kommunizieren. Noch weiter kann eine Ortseinheit 1190 einen GPS-Empfänger enthalten, mit Unterstützung für mehrere GPS-Konstellationen, um Anwendungen mit hochgenauen Positionierungsinformationen zu versorgen, die unter Verwendung als solchem GPS-Empfänger erhalten wurden. Es ist zu verstehen, dass zwar dieser spezielle Satz Bauteile in dem Beispiel von 11 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 12 ist ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können, dargestellt. Wie zu sehen ist, kann System 1200 ein Smartphone oder anderer Drahtloskommunikator sein. Ein Baseband-Prozessor 1205 ist konfiguriert zur Durchführung verschiedener Signalverarbeitungen bezüglich der Kommunikationssignale, die von dem System übermittelt oder durch dieses empfangen werden sollen. Wiederum ist der Baseband-Prozessor 1205 mit einem Anwendungsprozessor 1210 verbunden, der eine Haupt-CPU des Systems darstellen kann, um ein OS und andere Systemsoftware auszuführen, neben Benutzeranwendungen wie vielen bekannten sozialen Medien und Multimedia-Apps. Der Anwendungsprozessor 1210 kann ferner konfiguriert sein, um eine Vielzahl anderer Rechnerfunktionen für die Vorrichtung auszuführen.
  • Wiederum kann der Anwendungsprozessor 1210 sich mit einer Benutzerschnittstelle/-anzeige 1220, z. B. einer Touchscreenanzeige, verbinden. Weiterhin kann der Anwendungsprozessor 1210 sich mit einem Speichersystem verbinden, das einen nichtflüchtigen Speicher enthält, namentlich einen Flashspeicher 1230, und einen Systemspeicher, namentlich einen dynamischen Random Access Memory (DRAM) 1235. Wie weiter zu sehen ist, verbindet sich der Anwendungsprozessor 1210 ferner mit einer Erfassungsvorrichtung 1240 wie einer oder mehreren Bilderfassungsvorrichtungen, die Video und/oder Standbilder aufzeichnen können.
  • Immer noch mit Verweis auf 12 ist eine Universal Intergrated Circuit Card (UICC) 1240, die ein Subscriber-Identity-Module und möglicherweise einen sicheren Speicher und Kryptoprozessor umfasst, auch mit dem Anwendungsprozessor 1210 verbunden. System 1200 kann ferner einen Sicherheitsprozessor 1250 enthalten, der sich mit dem Anwendungsprozessor 1210 verbinden kann. Mehrere Sensoren 1225 können sich mit dem Anwendungsprozessor 1210 verbinden, um Eingaben von verschiedenen erkannten Informationen zu ermöglichen, wie etwa Beschleunigungsmesser- und andere Umweltinformationen. Eine Audioausgabevorrichtung 1295 kann eine Schnittstelle bereitstellen, um Ton auszugeben, z. B. in der Form einer Stimmkommunikation, abgespielter oder Streamingaudiodaten und so weiter.
  • Wie weiter illustriert, ist eine kontaktfreie Near-Field-Communication- (NFC) Schnittstelle 1260 bereitgestellt, die in einem NFC Near-Field über eine NFC-Antenne 1265 kommuniziert. Während separate Antennen in 12 dargestellt sind, ist zu verstehen, dass in einigen Umsetzungen eine Antenne oder ein anderer Satz Antennen bereitgestellt sein kann, um verschiedene Drahtlosfunktionen zu ermöglichen.
  • Ein leistungsmanagementintegrierter Schaltkreis (PMIC) 1215 verbindet sich mit dem Anwendungsprozessor 1210, um Leistungsmanagement auf Plattformebene durchzuführen. Dazu kann der PMIC 1215 Leistungsmanagementanfragen an den Anwendungsprozessor 1210 ausgeben, um in bestimmte Niedrigenergiezustände wie gewünscht einzutreten. Weiterhin kann auf Grundlage von Plattformeinschränkungen PMIC 1215 auch den Energiepegel anderer Bauteile des Systems 1200 steuern.
  • Um das Übertragen und Senden und Empfangen der Kommunikation zu ermöglichen, können verschiedene Schaltkreise zwischen dem Baseband-Prozessor 1205 und einer Antenne 1290 verbunden werden. Speziell können ein Radiofrequenz- (RF) Transceiver 1270 und ein Wireless Local Area Network (WLAN) Transceiver 1275 vorhanden sein. Allgemein kann der RF-Transceiver 1270 verwendet werden, um drahtlose Daten und Anfrage nach einem bestimmten drahtlosen Kommunikationsprotokoll wie etwa das 3G- oder 4G-Drahtloskommunikationsprotokoll zu empfangen und zu übermitteln, wie etwa nach einem Code Division Multiple Access (CDMA), Global System for mobile Communication (GSM), Long Term Evolution (LTE) oder einem anderen Protokoll. Weiterhin kann ein GPS-Sensor 1280 vorhanden sein. Andere drahtlose Kommunikationen wie der Empfang oder die Übertragung von Funksignalen, z. B. AM/FM und andere Signale, können ebenfalls bereitgestellt sein. Weiterhin können auch über WLAN-Transceiver 1275 örtliche Drahtloskommunikationen realisiert werden.
  • Nun wird mit Verweis auf 13 ist ein Blockdiagramm eines anderen beispielhaften Systems, mit dem die Ausführungsformen verwendet werden können, dargestellt. In der Illustration aus 13 kann System 1300 ein mobiles Niedrigenergiesystem sein, wie etwa ein Tabletcomputer, 2:1-Tablet, Phablet oder ein anderes umwandelbares oder eigenständiges Tabletsystem. Wie dargestellt, ist ein SoC 1310 vorhanden und kann konfiguriert sein, als Anwendungsprozessor für die Vorrichtung zu dienen.
  • Eine Vielzahl von Vorrichtungen kann sich mit SoC 1310 verbinden. In der dargestellten Illustration enthält ein Speicheruntersystem einen Flashspeicher 1340 und einen DRAM 1345, der mit dem SoC 1310 verbunden ist. Weiterhin ist ein Touchpanel 1320 mit dem SoC 1310 verbunden, um eine Anzeigefähigkeit und Benutzereingaben über Berührung bereitzustellen, einschließlich der Bereitstellung einer virtuellen Tastatur an einer Anzeige des Touchpanels 1320. Um eine verkabelte Netzwerkkonnektivität bereitzustellen, verbindet sich das SoC 1310 mit einer Ethernet-Schnittstelle 1330. Ein peripherer Hub 1325 ist mit dem SoC 1310 verbunden, um die Schnittstelle mit verschiedenen peripheren Vorrichtungen zu ermöglichen, die etwa durch einen von verschiedenen Ports oder anderen Anschlüssen mit dem System 1300 verbunden sein können.
  • Neben den inneren Leistungsmanagementschaltkreisen und Funktionen innerhalb von SoC 1310 ist ein PMIC 1380 mit dem SoC 1310 verbunden, um plattformbasiertes Leistungsmanagement bereitzustellen, z. B. darauf basierend, ob das System durch eine Batterie 1390 oder AC-Leistung über einen AC-Adapter 1395 betrieben wird. Neben diesem energiequellenbasierten Leistungsmanagement kann der PMIC 1380 ferner Plattformleistungsmanagementaktivitäten auf Grundlage von Umwelt- und Verwendungsbedingungen durchführen. Noch ferner kann der PMIC 1380 Steuer- und Statusinformationen an das SoC 1310 kommunizieren, um verschiedene Leistungsmanagementaktionen innerhalb des SoC 1310 auszulösen.
  • Inner noch mit Verweis auf 13 ist, um Drahtlosfähigkeiten bereitzustellen, eine WLAN-Einheit 1350 mit dem SoC 1310 und wiederum mit einer Antenne 1355 verbunden. In verschiedenen Umsetzungen kann die WLAN-Einheit 1350 eine Kommunikation nach einem oder mehreren Drahtlosprotokollen vorsehen.
  • Wie weiter illustriert, können mehrere Sensoren 1360 sich mit dem SoC 1310 verbinden. Diese Sensoren können verschiedene Beschleunigungsmesser, Umwelt- und andere Sensoren, einschließlich Benutzergestensensoren enthalten. Schließlich ist ein Audiocodec 1365 mit dem SoC 1310 verbunden, um eine Schnittstelle mit einer Audioausgabevorrichtung 1370 bereitzustellen. Natürlich ist zu verstehen, dass zwar diese spezielle Umsetzung in 13 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun ist mit Verweis auf 14 ein Blockdiagramm eines repräsentativen Computersystems wie eines Notebook, Ultrabook™ oder eines anderen kleinen Formfaktorsystems zu sehen. Ein Prozessor 1410 in einer Ausführungsform enthält einen Mikroprozessor, Multicore-Prozessor, Multithreaded-Prozessor, Ultraniederspannungsprozessor, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement. In der illustrierten Umsetzung wirkt der Prozessor 1410 als eine Hauptverarbeitungseinheit und ein zentraler Knoten für die Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400, und kann Leistungsmanagementschaltkreise enthalten, wie hierin beschrieben. Als ein Beispiel ist der Prozessor 1410 als ein SoC umgesetzt.
  • Der Prozessor 1410 kommuniziert in einer Ausführungsform mit einem Systemspeicher 1415. Als ein illustratives Beispiel ist der Systemspeicher 1415 über mehrere Speichervorrichtungen oder Module umgesetzt, um eine gegebene Menge an Systemspeicher bereitzustellen.
  • Um einen persistenten Speicher für Informationen wie Daten, Anwendungen, ein oder mehrere Betriebssysteme und so weiter bereitzustellen, kann auch ein Massespeicher 1420 mit dem Prozessor 1410 verbunden werden. In verschiedenen Ausführungsformen kann dieser Massespeicher, um ein dünneres und leichteres Systemdesign zu ermöglichen und um die Systemreaktivität zu verbessern, über eine SSD umgesetzt sein, oder der Massespeicher kann vornehmlich unter Verwendung eines Festplattenlaufwerks (HDD) mit einer kleineren Menge an SSD-Speicher umgesetzt sein, der als SSD-Cache dient, um nichtflüchtige Speicherung von Kontextzustand und anderen solchen Informationen während Abschaltereignissen zu ermöglichen, sodass eine schnelle Einschaltung bei Neustart der Systemaktivitäten erfolgen kann. Ebenfalls in 14 dargestellt, kann eine Flashvorrichtung 1422 mit dem Prozessor 1410 verbunden sein, z. B. über eine serielle periphere Schnittstelle (SPI). Diese Flashvorrichtung kann nichtflüchtigen Speicher für Systemsoftware bereitstellen, einschließlich einer grundlegenden Basic Input/Output Software (BIOS) sowie anderer Firmware des Systems.
  • Verschiedene Ein-/Ausgabe- (E/A-) Vorrichtungen können innerhalb des Systems 1400 vorhanden sein. Speziell ist in der Ausführungsform aus 14 eine Anzeige 1424 dargestellt, die ein Hochauflösungs-LCD- oder LED-Panel sein kann, das ferner einen Touchscreen 1425 vorsieht. In einer Ausführungsform kann die Anzeige 1424 mit Prozessor 1410 über eine Anzeigeverbindung verbunden sein, die als Hochleistungsgrafikverbindung umgesetzt sein kann. Der Touchscreen 1425 kann mit dem Prozessor 1410 über eine andere Verbindung verbunden sein, die in einer Ausführungsform eine I2C-Verbindung sein kann. Wie ferner in 14 dargestellt, kann neben dem Touchscreen 1425 eine Benutzereingabe durch Berührung ebenfalls über ein Touchpad 1430 erfolgen, das innerhalb der Chassis konfiguriert sein kann, und das mit derselben I2C-Verbindung verbunden sein kann, wie der Touchscreen 1425.
  • Für wahrnehmbare Berechnung und andere Zwecke können verschiedene Sensoren innerhalb des Systems vorhanden sein und mit dem Prozessor 1410 auf unterschiedliche Weise verbunden sein. Bestimmte Trägheits- und Umweltsensoren können mit einem Prozessor 1410 durch einen Sensorhub 1440 verbunden sein, z. B. über eine I2C-Verbindung. In der Ausführungsform, die in 14 dargestellt ist, können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (ALS) 1442, einen Kompass 1443 und ein Gyroskop 1444 umfassen. Andere Umweltsensoren können einen oder mehrere Wärmesensoren 1446 umfassen, die in einigen Ausführungsformen mit dem Prozessor 1410 über einen Systemmanagementbus (SMBus) Bus verbunden sind.
  • Außerdem zeigt 14, dass sich verschiedene Peripherievorrichtungen mit dem Prozessor 1410 über eine Low-Pin-Count- (LPC) Verbindung verbinden können. In der dargestellten Ausführungsform können verschiedene Bauteile durch einen eingebetteten Controller 1435 verbunden werden. Solche Bauteile können eine Tastatur 1436 (z. B. verbunden über eine PS2-Schnittstelle), einen Lüfter 1437 und einen Wärmesensor 1439 umfassen. In einigen Ausführungsformen kann das Touchpad 1430 auch mit dem EC 1435 über eine PS2-Schnittstelle verbunden sein. Weiterhin kann ein Sicherheitsprozessor wie ein Trusted Platform Module (TPM) 1438 ebenfalls mit dem Prozessor 1410 über diese LPC-Verbindung verbunden sein.
  • Das System 1400 kann mit externen Vorrichtungen in einer Vielzahl von Weisen kommunizieren, einschließlich drahtlos. In der Ausführungsform, die in 14 dargestellt ist, sind verschiedene Drahtlosmodule vorhanden, von denen jedes einem Radio entspricht, das für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert ist. Eine Möglichkeit der drahtlosen Kommunikation in einem kurzen Abstand, wie bei Near Field, kann über eine NFC-Einheit 1445 erfolgen, die in einer Ausführungsform mit dem Prozessor 1410 über einen SMBus kommunizieren kann. Es ist zu beachten, dass über diese NFC-Einheit 1445 Vorrichtungen in direkter Nähe zueinander kommunizieren können.
  • Wie ferner in 14 zu sehen, können weitere Drahtloseinheiten andere Kurzstrecken-Drahtlosengines enthalten, die eine WLAN-Einheit 1450 und eine Bluetooth™-Einheit 1452 enthalten. Unter Verwendung einer WLAN-Einheit 1450 können Wi-Fi™ Kommunikationen umgesetzt werden, während über die Bluetooth™-Einheit 1452 Kurzstrecken-Bluetooth™-Kommunikation erfolgen kann. Diese Einheiten können mit dem Prozessor 1410 über eine gegebene Verbindung kommunizieren.
  • Weiterhin können drahtlose Wide-Area-Kommunikationen, z. B. nach einem zellulären oder anderen drahtlosen Wide-Area-Protokoll, über eine WWAN-Einheit 1456 auftreten, die sich ihrerseits mit einem Subscriber Identity Module (SIM) 1457 verbinden kann. Weiterhin kann, um Empfang und Verwendung von Ortsinformationen zu ermöglichen, ein GPS-Modul 1455 ebenfalls vorhanden sein. Es ist zu beachten, dass in der in 14 dargestellten Ausführungsform die WWAN-Einheit 1456 und eine integrierte Erfassungsvorrichtung wie ein Kameramodul 1454 über eine gegebene Verbindung kommunizieren kann.
  • Um Audioeingaben und -ausgaben vorzusehen, kann ein Audioprozessor über einen digitalen Signalprozessor (DSP) 1460 umgesetzt werden, der sich mit dem Prozessor 1410 über eine High Definition Audio (HDA) Verbindung verbinden kann. Ähnlich kann der DSP 1460 mit einem integrierten Coder/Decoder (CODEC) und Verstärker 1462 kommunizieren, der sich seinerseits mit Ausgabelautsprechern 1463 verbinden kann, die innerhalb des Chassis umgesetzt sein können. Ähnlich können der Verstärker und CODEC 1462 verbunden sein, um Audioeingaben von einem Mikrofon 1465 zu empfangen, die in einer Ausführungsform über Dualarray-Mikrofone umgesetzt sein können (wie etwa ein digitales Mikrofonarray), um Audioeingaben hoher Qualität vorzusehen, um stimmaktivierte Steuerung verschiedener Funktionen innerhalb des Systems zu ermöglichen. Es ist auch zu beachten, dass Audioausgaben von dem Verstärker/CODEC 1462 an eine Kopfhörerbuchse 1464 bereitgestellt werden können. Wenn sie auch mit diesen bestimmten Bauteilen in der Ausführungsform von 14 dargestellt ist, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht eingeschränkt.
  • Ausführungsformen können in vielen verschiedenen Systemtypen umgesetzt sein. Nun wird mit Verweis auf 15 ein Blockdiagramm eines Systems nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 15 dargestellt, ist ein Multiprozessorsystem 1500 ein Punkt-zu-Punkt Verbindungssystem, und enthält einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Verbindung 1550 verknüpft sind. Wie in 15 gezeigt, kann jeder der Prozessoren 1570 und 1580 Multicore-Prozessoren sein, einschließlich erster und zweiter Prozessorkerne (d. h. Prozessorkerne 1574a und 1574b und Prozessorkerne 1584a und 1584b), auch wenn potenziell viel mehr Kerne in den Prozessoren vorhanden sein können. Jeder der Prozessoren kann eine PCU oder eine andere Leistungsmanagementlogik enthalten, um prozessorbasiertes Leistungsmanagement durchzuführen, einschließlich der automatischen Herabstufungstechniken, die vom Kunden bereitgestellte Anpassungsinformationen verwenden, wie hierin beschrieben.
  • Inner noch mit Verweis auf 15 enthält der erste Prozessor 1570 ferner einen Speicher-Controllerhub (MCH) 1572 und Punkt-zu-Punkt- (P-P) Schnittstellen 1576 und 1578. Ähnlich enthält der zweite Prozessor 1580 einen MCH 1582 und P-P-Schnittstellen 1586 und 1588. Wie in 15 gezeigt, verbinden die MCHs 1572 und 1582 die Prozessoren mit jeweiligen Speichern, namentlich einem Speicher 1532 und einem Speicher 1534, die Abschnitte des Systemspeichers (z. B. DRAM) sein können, der lokal an den jeweiligen Prozessoren befestigt ist. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über die P-P-Verbindungen 1562 bzw. 1564 mit einem Chipsatz 1590 verbunden sein. Wie in 15 gezeigt, enthält der Chipsatz 1590 P-P-Schnittstellen 1594 und 1598.
  • Weiter enthält das Chipset 1590 eine Schnittstelle 1592 zum Verbinden des Chipsets 1590 mit einer Hochleistungsgrafikengine 1538 durch eine P-P-Verbindung 1539. Wiederum kann der Chipsatz 1590 mit einem ersten Bus 1516 über eine Schnittstelle 1596 verknüpft sein. Wie in 15 gezeigt, können verschiedene Eingabe-/Ausgabe- (E/A) Vorrichtungen 1514 zusammen mit einer Busbrücke 1518, die den ersten Bus 1516 mit einem zweiten Bus 1520 verbindet, mit dem ersten Bus 1516 verbunden sein. Verschiedene Vorrichtungen können mit dem zweiten Bus 1520 verbunden sein, einschließlich beispielsweise einer Tastatur/Maus 1522, Kommunikationsvorrichtungen 1526 und einer Datenspeichereinheit 1528 wie etwa eines Festplattenlaufwerks oder einer anderen Massenspeichervorrichtung, die Code 1530 enthalten können in einer Ausführungsform. Ferner kann eine Audio-E/A 1524 mit dem zweiten Bus 1520 verbunden werden. Ausführungsformen können in andere Arten von Systemen eingebaut sein, einschließlich mobiler Vorrichtungen wie eines Smart-Handy, Tabletcomputers, Netbooks, Ultrabook™ und so weiter.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentativen Code umgesetzt werden, der auf einem maschinenlesbaren Medium gespeichert wird, das eine Logik innerhalb eines integrierten Schaltkreises wie etwa eines Prozessors darstellt und/oder definiert. Beispielsweise kann das maschinenlesbare Medium Anweisungen umfassen, die eine unterschiedliche Logik innerhalb des Prozessors darstellen. Beim Auslesen durch eine Maschine können die Anweisungen dazu führen, dass die Maschine die Logik so herstellt, dass die darin beschriebenen Techniken ausgeführt werden. Solche Darstellungen, die als „IP-Kerne“ bekannt sind, sind wiederverwendbare Logikeinheiten der Logik für einen integrierten Schaltkreis, die auf einem greifbaren maschinenlesbaren Medium als Hardwaremodell gespeichert werden kann, das die Struktur des integrierten Schaltkreises beschreibt. Das Hardwaremodell kann an die verschiedenen Kunden oder Herstellungseinrichtungen geliefert werden, die das Hardwaremodell auf Herstellungsmaschinen laden, die den integrierten Schaltkreis herstellen. Der integrierte Schaltkreis kann so hergestellt sein, dass der Schaltkreis Funktionen ausführt, die in Zusammenhang mit einer der hierin beschriebenen Ausführungsformen beschrieben sind.
  • 16 ist ein Blockdiagramm, das ein IP-Kernentwicklungssystem 1600 illustriert, das verwendet werden kann, um einen integrierten Schaltkreis herzustellen, um Funktionen nach einer Ausführungsform auszuführen. Das IP-Kernentwicklungssystem 1600 kann verwendet werden, modulare wiederverwendbare Designs zu erzeugen, die in ein größeres Design umgesetzt werden oder verwendet werden können, einen gesamten integrierten Schaltkreis zu konstruieren (z. B. einen SoC-integrierten Schaltkreis). Eine Designeinrichtung 1630 kann eine Softwaresimulation 1610 eines IP-Kerndesigns in einer High-Level-Programmiersprache (z. B. C/C++) erzeugen. Die Softwaresimulation 1610 kann verwendet werden, um das Verhalten des IP-Kerns zu designen, zu prüfen und zu verifizieren. Ein Design für einen Register-Transferlevel (RTL) kann dann aus dem Simulationsmodell erzeugt oder synthetisiert werden. Das RTL-Design 1615 ist eine Abstraktion des Verhaltens des integrierten Schaltkreises, der den Fluss digitaler Signale zwischen Hardwareregistern modelliert, einschließlich der entsprechenden Logik, die unter Verwendung der modellierten digitalen Signale ausgeführt wird. Neben einem RTL-Design 1615 können auch Lower-Level-Designs auf Logik-Ebene oder Transistor-Ebene erzeugt, entworfen oder synthetisiert werden. So können die genauen Details des anfänglichen Designs und der Simulierung variieren.
  • Das RTL-Design 1615 oder etwas Entsprechendes können weiter durch die Designeinrichtung in ein Hardwaremodell 1620 synthetisiert werden, das in einer Hardware-Beschreibungssprache (HDL) oder einer anderen Darstellung physischer Designdaten erstellt sein kann. Die HDL kann ferner simuliert oder geprüft werden, um das IP-Kerndesign zu verifizieren. Das IP-Kerndesign kann zur Lieferung an eine Drittherstellungseinrichtung 1665 gespeichert werden, die nichtflüchtigen Speicher 1640 (z. B. Festplatte, Flashspeicher oder ein nichtflüchtiges Speichermedium) enthält. Alternativ kann das IP-Kerndesign (z. B. über das Internet) über eine verkabelte Verbindung 1650 oder über eine drahtlose Verbindung 1660 übertragen werden. Die Herstellungseinrichtung 1665 kann dann einen integrierten Schaltkreis herstellen, der mindestens teilweise auf dem IP-Kerndesign basiert. Der fabrizierte integrierte Schaltkreis kann konfiguriert werden, Funktionen nach mindestens einer hierin beschriebenen Ausführungsform auszuführen.
  • In Ausführungsformen tritt die Ablaufsteuerung der automatischen Herabstufung auf, wenn eine OS-Anfrage für einen C6- oder C3-Zustand autonom durch Leistungssteuerungsschaltkreise überschrieben werden soll und stattdessen auf einen niedrigeren Niedrigenergiezustand herabgestuft werden soll (z. B. einen C1-Zustand statt der C3-Anfrage oder einen C1- oder C3-Zustand statt der C6-Anfrage). Diese autonome Ablaufsteuerung steuert auch, wenn eine aktuelle Herabstufung auf C1 oder C3 zurück auf den ursprünglichen OS-Ziel-C-Zustand, C3 oder C6, „ent-herabgestuft“ werden kann. Dieser Steuerablauf soll einen Burst von Leerlaufunterbrechungsereignissen identifizieren, und wenn es zu häufigen Unterbrechungsereignissen kommt, wird die Herabstufungssteuerung aktiviert. Umgekehrt tritt eine Ent-Herabstufung auf, wenn nach einem Herabstufungsereignis die Anzahl der Unterbrechungen aus dem Leerlaufzustand viel geringer war als die Ebene, die die Herabstufung ausgelöst hat. Ausführungsformen der Steuertechniken können auch den alten Verlauf von Bursts von Leerlaufunterbrechungen ignorieren, um eine Herabstufung zu vermeiden, wenn diese nicht mehr angemessen ist.
  • Es ist zu beachten, dass die Ent-Herabstufung mit oder ohne OS-Hilfe auftreten und den ursprünglichen Ziel-C-Zustand aktivieren kann. Mit einer OS-Hilfe schafft die Hardware eine überraschende Unterbrechung zurück in den aktiven Zustand, mit der Annahme, dass keine ausstehende Arbeit vorliegt und das OS direkt wieder in den Leerlaufzustand schaltet. Ohne Hilfe durch das OS kann die Prozessorhardware die Aufstufung von C1 oder C3 nach C3 oder C6 ohne Aufwecken des OS ermöglichen.
  • In Ausführungsformen kann die Herabstufungssteuerung mindestens teilweise auf einem Herabstufungszähler pro Kern pro Ziel des Herabstufungszustands basieren. In einer Ausführungsform verursacht eine Unterbrechung eine Dekrementierung eines gegebenen Zählers (bis zu einem definierten maximalen Wert). Diese Steuerung der Ebene der Unterbrechungen pro Zeitintervall (z. B. Anzahl der Unterbrechungen pro Sekunde (Unterbrechungen/s)), die ein Herabstufungsereignis erzeugt, die Anzahl der Unterbrechungen/s, die ein Ent-Herabstufungsereignis und/oder eine Verlaufsbereinigung erzeugt, kann durch das Gefälle der Herabstufungszählerbereinigung als Funktion der Zeit gesteuert werden. Das heißt für einen bestimmten Zeitraum wird der Herabstufungszähler um einen konstanten Wert inkrementiert (z. B. um eins). Wenn der Zeitraum verringert wird, kann die Anzahl der Unterbrechungen/s, die eine Herabstufung erzeugen können, höher sein, und die Ent-Herabstufung tritt schneller auf und der Verlauf wird bald nach einem Unterbrechungsereignisburst bereinigt.
  • Für längere Zeiträume, in denen der Herabstufungszähler inkrementiert wird, hat dies die gegenteilige Wirkung und die Anzahl von Unterbrechungen/s, die ein Herabstufungsereignis erzeugen können, kann geringer sein, und das Ent-Herabstufungsereignis, das nach einem Unterbrechungsburstereignis auftritt und das Vergessen von Unterbrechungsereignissen im Verlauf dauert länger. In Ausführungsformen können verschiedene Werte der Zeit für verschiedene Leerlaufzustände verwendet werden, um den Zähler zu inkrementieren, während sich der Prozessor in einem Herabstufungsereignis befindet (für den Fall der Ent-Herabstufung), oder ein einzelner Gefällewert kann für alle verschiedenen Leerlaufzustände verwendet werden.
  • Basierend auf Kundensteuerparametern kann die Option der Steuerung des Herabstufungsablaufs entweder von C6 oder C3 auf C1 oder von C3 auf C1 (beispielsweise) mindestens teilweise auf der Zeitdauer basieren, zu der der Herabstufungszähler inkrementiert wird. Auf diese Weise kann die Ebene der Leerlaufunterbrechungen/s, die die Herabstufung erzeugen, die Ent-Herabstufung und die Verlaufsbereinigung durch die Software gesteuert und erneut durch OEM oder OSV angepasst werden, um generische Einstellungen dieses Gefällewerts zu überschreiben, der durch einen Prozessorhersteller eingestellt wird. Es ist zu beachten, dass in verschiedenen Ausführungsformen dieser Gefällewert (und andere Herabstufungssteuerparameter) entweder als ein einzelner Wert definiert werden kann oder jeder Leistungszustand (C0, C1, etc.) anders angepasst sein kann.
  • Nun wird mit Verweis auf 17 ein Blockdiagramm eines Verfahrens nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Genauer gesagt, ist Verfahren 1700 aus 17 ein Verfahren zum Bereitstellen einer Kundenschnittstelle, um es zu ermöglichen, dass bestimmte Herabstufungssteuerparameter von einem Kunden wie einem OEM oder OSV über eine Interaktion mit einer gegebenen Systemsoftware wie einem OS oder BIOS bereitgestellt werden können. In einer Ausführungsform kann das Verfahren 1700 durch angemessene Kombinationen aus Hardware, Software und/oder Firmware durchgeführt werden, wie etwa Hardwareleistungssteuerschaltkreise, die wiederum als ein oder mehrere Mikrocontroller oder andere Hardwaresteuerlogik umgesetzt sein können.
  • Wie illustriert, beginnt das Verfahren 1700 durch Empfang einer Anfrage nach Kundenbereitstellung eines oder mehrerer Herabstufungssteuerparameter (Block 1710). Beispielsweise kann die Anfrage über eine oder mehrere von OEM BIOS, OSV OS-Routinen oder in anderer Weise empfangen werden. Als nächstes wird bestimmt, ob der Prozessor sich in einem geschützten Modus befindet (Raute 1720). Es ist zur verstehen, dass diese Bestimmung des geschützten Modus sein kann, dass ein gegebenes OS oder BIOS die Kontrolle über den Prozessor besitzt und daher in einem privilegierten Modus läuft (z. B. Ring 0). In anderen Fällen kann diese Bestimmung des geschützten Modus optional sein. Wenn bestimmt wird, dass der Prozessor sich nicht in einem geeigneten geschützten Modus befindet, geht die Steuerung in Ausführungsformen, in denen diese optionale Sicherheitsprüfung durchgeführt wird, wieder an Block 1730, wo die Kundenkommunikation über diese Schnittstelle verhindert werden kann.
  • Andernfalls geht die Steuerung an Block 1740, wo die Schnittstelle für Kundenkommunikation der Herabstufungssteuerparameter aktiviert werden kann. Es ist zu verstehen, dass diese Schnittstelle unterschiedliche Formen annehmen kann, einschließlich mindestens einem aus einer Mehrzweck-Mailboxschnittstelle, einem oder mehreren MSRs, MMIOs und so weiter. Als nächstes können in Block 1750 eine oder mehrere Herabstufungssteuerparameter über diese Schnittstelle empfangen werden. Es ist zu verstehen, dass diese Herabstufungssteuerparameter kundenangepasste Werte sein können. Wie hierin beschrieben, kann in verschiedenen Ausführungsformen ein Kunde angepasste Werte für eine oder mehrere Herabstufungsgrenzen, einen Gefälleparameter, und potenziell andere solche Parameter bereitstellen. Danach können in Block 1760 dieser eine oder die mehreren Herabstufungssteuerparameter in einem Konfigurationsspeicher gespeichert werden. In einer Ausführungsform kann dieser Konfigurationsspeicher in einer PCU vorhanden oder damit assoziiert sein und ein gegebener nichtflüchtiger Speicher sein. In anderen Fällen können diese Werte in MSRs, MMIOs oder anderen Konfigurationsregistern gespeichert sein. Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 17 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 18 ein Ablaufdiagramm eines Verfahrens nach einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 18 gezeigt, kann das Verfahren 1800 z. B. durch Hardwareleistungssteuerschaltkreise zur Aktualisierung eines oder mehrerer Herabstufungszähler mindestens teilweise basierend auf den vom Kunden bereitgestellten Herabstufungssteuerparametern durchgeführt werden. Wie dargestellt, beginnt das Verfahren 1800 durch Bestimmung, ob ein Unterbrechungsereignis empfangen wird, während mindestens ein Kern sich in einem Niedrigenergiezustand befindet (Raute 1810). Wenn ja, geht die Steuerung an den Block 1820 weiter, wo ein Herabstufungszähler dekrementiert werden kann. Es ist zu verstehen, dass dieser Herabstufungszähler einer von mehreren solcher Herabstufungszähler sein kann, wobei jeder Herabstufungszähler mit einem bestimmten Thread, Niedrigenergiezustand oder einer Kombination davon assoziiert sein kann. Spezieller kann in Block 1820 dieser Herabstufungszähler nach einem konstanten Wert dekrementiert und ausgeführt werden, solange der Wert des Herabstufungszählers nicht einen unteren Grenzwert erreicht hat (der in einer Ausführungsform ein Herabstufungssteuerparameter sein kann, der möglicherweise durch den Kunden bereitgestellt wird). Als ein Beispiel kann diese Dekrementierung um einen konstanten Wert 1 erfolgen, wenn auch andere konstante Werte möglich sind. Weiterhin ist zu verstehen, dass zwar in Verfahren 1800 die Konvention einer Dekrementierung in Reaktion auf das Empfangen eines Unterbrechungsereignisses besteht, während ein gegebener Niedrigenergiezustand vorliegt, in anderen Ausführungsformen aber eine andere Art von Aktualisierung des Herabstufungszählers, wie etwa eine Inkrementierung und so weiter, stattdessen ausgeführt werden kann.
  • Noch immer mit Verweis auf 18 geht, wenn stattdessen kein Unterbrechungsereignis als empfangen festgestellt wird, die Steuerung an Raute 1830 über, um festzustellen, ob ein gegebener Zeitraum abgelaufen ist (Raute 1830). Es ist zu verstehen, dass dieser Zeitraum eine bestimmte Dauer der Niedrigenergiezustandsresidenz aufweisen kann, z. B. 10 Mikrosekunden (µs). Es ist zu beachten, dass diese Dauer der Leerlaufzeit auch ein Herabstufungssteuerparameter sein kann, der möglicherweise durch den Kunden bereitgestellt wird. Wenn ein solcher Zeitraum als abgelaufen bestimmt wird, geht die Steuerung wieder an Block 1840 zurück, wo der Herabstufungszähler inkrementiert werden kann. In der Ausführungsform aus 18 kann diese Inkrementierung einem Gefällewert entsprechend erfolgen, der ein vom Kunden bereitgestellter Herabstufungssteuerparameter sein kann. Als Beispiele kann ein Kunde sich entscheiden, die Aggressivität der Herabstufungsfunktion in einer Weise zu steuern, die höhere Leistung begünstigt, indem die Herabstufungsfunktion auf Situationen begrenzt wird, in denen eine übermäßige Anzahl von eingehenden Unterbrechungsereignissen empfangen wird. In solchen Fällen kann dieser Gefälleparameter auf eine relativ hohe Ebene eingestellt werden (z. B. zwischen etwa 200 und 250 µsec, was 5000 bis 4000 Unterbrechungen pro Sekunde entspricht), damit der Herabstufungszähler schnell oder aggressiv den oberen Grenzwert erreicht (sodass eine End-Herabstufung auftritt). Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 18 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 19 ein Blockdiagramm eines Verfahrens nach noch einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 19 gezeigt, kann Verfahren 1900, das durch den Herabstufungsleistungssteuerungsschaltkreis des Leistungscontrollers ausgeführt werden kann, verwendet werden, um den Eintritt in die Herabstufungsfunktion zu steuern und den Niedrigenergiezustandseintritt und die -austritte zu handhaben. Wie illustriert, beginnt das Verfahren 1900 durch Empfang einer Niedrigenergiezustandsanfrage (Block 1910). Es ist anzunehmen, dass diese Niedrigenergiezustandsanfrage eine OS-Anfrage für einen gegebenen C-Zustand ist, wie beispielsweise ein gegebener aus einem Kern-Ebenen-C6- oder C7-Zustand. Als nächstes wird bestimmt, ob ein Herabstufungszähler (z. B. assoziiert mit dem bestimmten angeforderten C-Zustand) sich auf einer Herabstufungsgrenzebene befindet (Raute 1920). Es ist zu beachten, dass diese Herabstufungsgrenzebene ein vom Kunden bereitgestellter Herabstufungssteuerparameter ist, um die Aggressivität des Eintritts in eine Herabstufungsfunktion zu steuern. Ist der Herabstufungszähler nicht auf der Herabstufungsgrenzebene, geht die Steuerung an Block 1930 über, wo ein oder mehrere Kerne, die mit der Niedrigenergiezustandsanfrage assoziiert sind, veranlasst werden können, in den angeforderten Niedrigenergiezustand einzutreten. Beispielsweise kann die PCU Niedrigenergiezustandssteuersignale an den einen oder die mehreren Kerne senden, um diese zu veranlassen, in diesen angeforderten Niedrigenergiezustand einzutreten, nachdem sie geeignete Niedrigenergiezustandseintrittsaktionen ergriffen haben, wie das Speichern von Kontext in angemessenem Speicher, das Deaktivieren bestimmter Kernschaltkreise und so weiter.
  • Noch immer mit Verweis auf 19 geht stattdessen, wenn bestimmt wird, dass sich der Herabstufungszähler auf der Herabstufungsgrenzebene befindet, die Steuerung wieder an Block 1940, wo die Herabstufungsfunktion aktiviert werden kann. Um die Herabstufungsfunktion zu aktivieren, kann eine Herabstufungsaktivierungsanzeige eingestellt werden, um anzuzeigen, dass die Herabstufungsfunktion aktiv ist. So kann in Block 1950 der Herabstufungssteuerschaltkreis einen oder mehrere Kerne veranlassen, in einen flacheren Niedrigenergiezustand einzutreten, z. B. durch die Menge der eingehenden Unterbrechungsereignisse, die der Prozessor empfängt. Beispielsweise kann, unter der Annahme, dass ein angefragter Niedrigenergiezustand ein Kernebenen-C6- oder C7-Zustand ist, der Herabstufungssteuerschaltkreis den einen oder die mehreren Kerne veranlassen, in einen flacheren Niedrigenergiezustand einzutreten, wie etwa in einen C1- oder C3-Zustand.
  • Noch immer mit Verweis auf 19 geht von beiden Blocks 1930 und 1950 die Steuerung an die Raute 1960 über, um zu bestimmen, ob ein Unterbrechungsereignis empfangen wird, während der eine oder die mehreren Kerne sich in einem Niedrigenergiezustand befinden. Wenn nicht, geht die Steuerung an Raute 1970 über, um zu bestimmen, ob diese Kerne in dem Niedrigenergiezustand bleiben sollen. Diese Bestimmung kann z. B. auf einem Dauerwert basieren, um eine Länge der Zeit für den angeforderten Niedrigenergiezustand zu bestimmen. Wenn bestimmt wird, den Niedrigenergiezustand auf Grundlage der Bestimmungen einer der Rauten 1960 und 1970 zu verlassen, geht die Steuerung an Block 1980 über, wo der eine oder die mehreren Kerne veranlasst werden können, den Niedrigenergiezustand zu verlassen und so wieder in einen aktiven Zustand einzutreten, z. B. durch Wiederaufbau des Zusammenhangs, Aktivierung der verschiedenen Kernschaltkreise und so weiter. Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 19 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 20 ein Blockdiagramm eines Verfahrens nach noch einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 20 gezeigt, kann Verfahren 2000, das durch den Herabstufungsleistungssteuerungsschaltkreis des Leistungscontrollers ausgeführt werden kann, verwendet werden, den Austritt aus der Herabstufungsfunktion zu steuern und Niedrigenergiezustandseintritte und -austritte zu handhaben. Wie illustriert, beginnt das Verfahren 2000 durch Empfang einer Niedrigenergiezustandsanfrage (Block 2010), z. B. einer OS-Anfrage für einen gegebenen C-Zustand. Als nächstes wird bestimmt, ob sich ein Herabstufungszähler auf einer Ent-Herabstufungsgrenzebene befindet (Raute 2020). Es ist zu beachten, dass diese Ent-Herabstufungsgrenzebene in Ausführungsformen ein vom Kunden bereitgestellter Herabstufungssteuerparameter sein kann. Ist der Herabstufungszähler nicht auf der Ent-Herabstufungsgrenzebene (bleibt aber weiter über der Herabstufungsgrenze), geht die Steuerung an Block 2030 über, wo ein oder mehrere Kerne, die mit der Niedrigenergiezustandsanfrage assoziiert sind, veranlasst werden können, in diesem Herabstufungsbetriebszustand in den flacheren Niedrigenergiezustand einzutreten.
  • Noch immer mit Verweis auf 20 geht stattdessen, wenn bestimmt wird, dass sich der Herabstufungszähler auf der Ent-Herabstufungsgrenzebene befindet, die Steuerung wieder an Block 2040, wo die Herabstufungsfunktion deaktiviert werden kann, z. B. durch Zurücksetzen einer Herabstufungsaktivierungsanzeige. So kann Block 2050 des Herabstufungssteuerschaltkreises den einen oder die mehreren Kerne veranlassen, in den angeforderten Niedrigenergiezustand einzutreten. Dann geht von beiden Blocks 2030 und 2050 die Steuerung an die Raute 2060 über, um zu bestimmen, ob ein Unterbrechungsereignis empfangen wird, während der eine oder die mehreren Kerne sich in einem Niedrigenergiezustand befinden. Wenn nicht, geht die Steuerung an Raute 2070 über, um zu bestimmen, ob diese Kerne in dem Niedrigenergiezustand bleiben sollen. Wenn bestimmt wird, den Niedrigenergiezustand auf Grundlage der Bestimmungen einer der Rauten 2060 und 2070 zu verlassen, geht die Steuerung an Block 2080 über, wo der eine oder die mehreren Kerne veranlasst werden können, den Niedrigenergiezustand zu verlassen und wieder in einen aktiven Zustand einzutreten. Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 20 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 21 ein Blockdiagramm eines Systems nach einer Ausführungsform der vorliegenden Erfindung dargestellt. Genauer gesagt ist ein Abschnitt eines Systems 2100 gezeigt, einschließlich eines Prozessors 2110, der ein MultikernProzessor oder eine andere Art eines SoC, ein Spannungsregler 2160, der verbunden ist, eine oder mehrere regulierte Spannungen für den Prozessor 2110 bereitzustellen, und ein Speicher 2170, der ein Systemspeicher wie ein DRAM sein kann, sein kann.
  • Wie dargestellt, verbindet, um eine Kundenschnittstelle bereitzustellen, um Konfigurationsinformationen wie hierin beschrieben, und namentlich Herabstufungssteuerparameterinformationen, zu empfangen, eine Schnittstelle 2165 den Prozessor 2110 mit dem oder den Speicher(n) 2170. Es ist zu verstehen, dass die Schnittstelle 2165 jede Art von verbundenem oder anderem Schnittstellenmechanismus sein kann. Beispielsweise können Abschnitte der Schnittstelle intern für einen oder mehrere des Prozessors 2110 und des oder der Speicher(s) 2170 sein. Noch weiter können Abschnitte umgesetzt werden, z. B. als Spuren oder andere Verbindungen auf einer Platine, die den Prozessor 2110 und den/die Speicher 2170 miteinander verbindet.
  • Wie illustriert, enthält der Prozessor 2110 mehrere Kerne 21151 bis 2115n , von denen jeder unabhängig gesteuert werden kann, um in einem oder mehreren verschiedenen P-Zuständen und/oder C-Zuständen zu laufen. Dazu verbinden Kerne 2115 (generisch) sich mit einer Energiesteuereinheit 2120. In Ausführungsformen kann die PCU 2120 verschiedene Leistungsmanagementtechniken durchführen, einschließlich autonomer Herabstufungssteuerung von C-Zustandsanfragen, die von einem OS oder einer anderen Systemsoftware empfangen werden, sowie um den Empfang und die Verwendung von vom Kunden bereitgestellten Herabstufungssteuerparameterinformationen wie hierin beschrieben zu erlauben. In der dargestellten Ausführungsform enthält PCU 2120 einen Leistungssteuerschaltkreis 2122, der verschiedene Leistungsmanagementaktivitäten durchführen kann. Noch weiter enthält die PCU 2120 einen C-Zustandscontroller 2124 der in Reaktion auf die Steuerinformationen, die von dem Leistungssteuerkreis 2120 empfangen werden, aktive (und Leistungs-) Zustände verschiedener Kerne steuern kann, z. B. durch Steuerung von einem oder mehreren Takterzeugungs- und internen Spannungsregler- (IVR) schaltkreisen (generisch Block 2140).
  • Noch immer mit Verweis auf 21, enthält Prozessor 2110 ferner einen Konfigurationsspeicher 2135, der eine Vielzahl von Konfigurationsinformationen für die Funktion der Prozessor- und Leistungsmanagementfunktionen speichert, einschließlich der hierin beschriebenen Herabstufungssteuerung. Dazu kann z. B. eines oder mehrere eines BIOS 2172 und OS 2175 Herabstufungssteuerparameterinformationen über die Schnittstelle 2165 bereitstellen, um in dem Konfigurationsspeicher 2135 gespeichert zu werden.
  • In einer Ausführungsform kann eine generische Mailboxschnittstelle umgesetzt werden, um den Empfang und die Lieferung dieser Informationen in den Konfigurationsspeicher 2135 zu ermöglichen. Wie genauer in 21 gezeigt, kann Schaltkreis 2130 einen oder mehrere aus MSRs/MMIOs und/oder einer Mailbox-Schnittstelle enthalten, um den Empfang dieser Informationen und deren Bereitstellung an die PCU 2120 zu ermöglichen, um deren Speichern und Verwendung wie hierin beschrieben zu ermöglichen. Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 21 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 22 ein Blockdiagramm eines Abschnitts eines Prozessors nach einer Ausführungsform der vorliegenden Erfindung gezeigt. Genauer zeigt der Prozessor 2100' weiter Details zu Prozessor 2110 von 21. Genauer zeigt 22 weitere Details der PCU 2120. Wie weiter illustriert, enthält die PCU 2120 auch einen Gefällecontroller 2126 und einen Komparator 2128. In hierin beschriebenen Ausführungsformen kann der Gefällecontroller 2126 Herabstufungssteuerparameterinformationen erhalten, die einem Gefälleparameter entsprechen, um die Aggressivität der automatischen Herabstufung zu steuern.
  • Wie zu sehen ist, empfängt der Gefällecontroller 2126 Steuersignale von dem Leistungssteuerschaltkreise 2122, genauer ein „Auf-“Signal und ein „Ab-“Signal. Diese Signale können in Reaktion auf Unterbrechungsereignisse und/oder Niedrigenergiezustands-Zeitdauern durch eine Leistungssteuerlogik bereitgestellt werden, um eine Aktualisierung eines Herabstufungszählers (wie hierin gezeigt, kann ein Satz Herabstufungszähler 2127 innerhalb des Gefällecontrollers 2126 bereitgestellt werden) zu veranlassen. Dazu kann, wenn ein Auf-Signal empfangen wird, um eine Inkrementierungsaktualisierung anzuzeigen, wenn eine gegebene Zeitdauer in einem gegebenen C-Zustand aufgetreten ist, ohne, dass ein Unterbrechungsereignis empfangen wurde, der Gefällecontroller 2126 eine Zähleraktualisierung auf den jeweiligen Herabstufungszähler 2127 in der Menge aktualisieren lassen, die durch den Gefälleparameter (namentlich eine Schrittweite nach dem Gefälleparameterwert) angezeigt wird. Stattdessen kann, wenn ein Ab-Signal in Reaktion auf ein Unterbrechungsereignis empfangen wird, während der angezeigte Kern sich in einem Niedrigenergiezustand befunden hat, der Gefällecontroller 2126 eine Zähleraktualisierung auf den jeweiligen Herabstufungszähler 2127 nach einem konstanten Wert (z. B. einer Dekrementierung um eins) veranlassen.
  • Wie weiter in 22 illustriert, können Grenzinformationen über Schnittstellenschaltkreise 2130 an den Komparator 2128 bereitgestellt werden. Wiederum kann der Komparator 2128 konfiguriert sein, die entsprechenden Herabstufungszählerwerte mit diesen mehreren Grenzen zu vergleichen, z. B. einer Herabstufungszählergrenze und einer Ent-Herabstufungszählergrenze. Wenn ein gegebener Herabstufungszähler einen Wert aufweist, der größer ist als die jeweilige Herabstufungsgrenze, wird ein Herabstufungssignal ausgegeben, das an den Leitungssteuerschaltkreis 2122 bereitgestellt werden kann, um anzuzeigen, dass eine Herabstufungsfunktion aktiviert ist (wie etwa durch Einstellen einer Steueranzeige). Wenn stattdessen ein Wert eines gegebenen Herabstufungszählers die entsprechende Ent-Herabstufungszählergrenze erreicht, erfolgt eine Ent-Herabstufung. Es ist zu verstehen, dass zwar diese hohe Ebene in der Ausführungsform von 22 dargestellt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 23 ein Leistungsdiagramm 2300 illustriert, das Beispielleitungszuwächse für bestimmte Workloads anzeigt, indem eine kundenbasierte Herabstufungssteuerparameteranpassung bereitgestellt wird, die durch die hierin beschriebenen Schnittstellentechniken aktiviert werden. Wie in 23 illustriert, zeigt die Y-Achse Leistungszuwächse an, wenn eine programmierbare Grenze durch Kundenanpassung variiert wird. Es ist zu beachten, dass die programmierbaren Grenzwerte der X-Achse von Diagramm 2300 ein Maß eines Gefälleparameters für eine Anzahl von Unterbrechungsereignissen bereitstellt. So können abhängig von der Arbeitslast und Kundenanpassung von (mindestens) einem Gefällekonfigurationsparameter große Leistungszuwächse umgesetzt werden, indem die Auto-Herabstufungsfunktion veranlasst wird, aggressiver aktiviert zu werden, um den Prozessor zu veranlassen, in flachere niedrigere Leistungszustände zu gehen, um verringerte Austrittslatenzen zu ermöglichen und wiederum die Leistung zu erhöhen.
  • Wie in 23 gezeigt, kann bis zu 63% Leistungsverbesserung an einigen Workloads erreicht werden (oder, besser gesagt, etwa 60% weniger Leistungsverringerung für den Eintritt in den C-Zustand). Die erhöhte Laufzeit durch die Leistungsverbesserung kann ohne eine hierin beschriebene Ausführungsform bis zu 38% Energieverlust bedeuten.
  • Nun wird mit Verweis auf 24 ein Timingdiagramm 2400 dargestellt, das Herabstufungs- und Ent-Herabstufungsgrenzen (T1 bzw. T2) auf der Y-Achse zeigt. Wiederum zeigt die X-Achse ein dynamisches Update eines Gefällekonfigurationsparameters (illustriert zum Zeitpunkt 2410). Wie zu sehen ist, wird während des Prozessorbetriebs in Fenster 2420 vor dieser dynamischen Änderung des Gefällewerts die Ent-Herabstufung aggressiv angewendet, wenn ein erster Wert des Gefälleparameters vorhanden ist. Diese schnelle Ent-Herabstufung nach der Herabstufungsfunktion wird aktiviert (wenn der Zählerwert T1 überschreitet) und veranlasst den Prozessor, schneller in tiefe niedrige Leistungszustände einzutreten.
  • Im Gegensatz dazu sieht nach der Gefälleänderung zu Zeitpunkt 2410 der Prozessorbetrieb während Fenster 2430 viel längere Zeiträume vor, die auftreten sollen, wenn ein Herabstufungszähler die erste Grenze (T1) überschreitet bevor die Ent-Herabstufung auftritt (wenn ein solcher Herabstufungszähler die Ent-Herabstufungsgrenze T2) erreicht. Natürlich sind andere Illustrationen möglich. Wie in 24 dargestellt treten, wenn ein weniger aggressives Gefälle eingestellt ist, langsamere Ereigniszähler auf, was zu weniger aggressiver Auf-/Herabstufung führt. Ausführungsformen ermöglichen so eine bessere Energieeffizienz für OSVs und OEMs. Außerdem können bei Verwendung einer Ausführungsform Updates an den Herabstufungssteuerparametern nach der Herstellung auftreten. Ausführungsformen können außerdem besser kundenspezifische Workloads wie Server und Rechenzentren mit gut definierten Workloadeigenschaften adressieren, und OEMs ermöglichen, eine Präferenz einer Benutzererfahrung und Anpassungen zu erlauben, die auf bestimmte Klassen oder Anwendungen abzielen.
  • Die folgenden Beispiele beziehen sich auf weitere Ausführungsformen.
  • In einem Beispiel enthält ein Prozessor: mehrere Kerne; einen Leistungscontroller, der eine Logik enthält, um autonom eine Anfrage für mindestens einen Kern der mehreren Kerne abzustufen, in einen ersten Niedrigenergiezustand einzutreten, um den mindestens einen Kern zu veranlassen, in einen zweiten Niedrigenergiezustand einzutreten, wobei der erste Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist als der zweite Niedrigenergiezustand; und eine Schnittstelle zum Empfangen einer Eingabe von einer Systemsoftware, wobei die Eingabe mindestens einen Herabstufungssteuerparameter enthält, wobei die Logik autonom die Anfrage mindestens teilweise basierend auf dem mindestens einen Herabstufungssteuerparameter herabstufen soll.
  • In dem Beispiel umfasst die Schnittstelle mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher, um den mindestens einen Herabstufungssteuerparameter von der Systemsoftware zu empfangen.
  • In einem Beispiel umfasst die Systemsoftware mindestens eines aus einem Betriebssystem und einem grundlegenden Ein-/Ausgabesystem.
  • In einem Beispiel soll die Systemsoftware einen ersten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen, wenn eine erste Workload auf dem mindestens einen Kern ausgeführt werden soll, und einen zweiten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen, wenn die zweite Workload mit dem mindestens einen Kern ausgeführt werden soll.
  • In einem Beispiel umfasst der mindestens eine Herabstufungssteuerparameter einen Gefälleparameter.
  • In einem Beispiel soll die Logik die autonome Herabstufung basierend mindestens teilweise auf einem Wert eines Herabstufungszählers verursachen.
  • In einem Beispiel soll die Logik den Herabstufungszähler basierend mindestens teilweise auf dem Gefälleparameter aktualisieren, wenn der mindestens eine Kern für eine erste Zeitdauer in einem gegebenen Niedrigenergiezustand war.
  • In einem Beispiel soll die Logik ferner den Herabstufungszähler in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala als der Aktualisierung in Reaktion auf die erste Zeitdauer in dem gegebenen Niedrigenergiezustand aktualisieren.
  • In einem Beispiel umfasst der mindestens eine Herabstufungssteuerparameter eine Herabstufungsgrenze.
  • In einem Beispiel soll die Logik die autonome Herabstufung auf Grundlage eines Vergleichs des Werts des Herabstufungszählers und der Herabstufungsgrenze veranlassen.
  • In einem Beispiel soll der Leistungscontroller den mindestens einen Herabstufungssteuerparameter veranlassen, in einem Konfigurationsspeicher gespeichert zu werden, wenn der mindestens eine Herabstufungssteuerparameter in einem privilegierten Modus empfangen wird.
  • In einem Beispiel umfasst der mindestens eine Herabstufungssteuerparameter eine Kundenanpassung für die autonome Herabstufung, wobei die Kundenanpassung sich von einer Anpassung für die autonome Herabstufung unterscheidet, die durch einen Hersteller des Prozessors in einem nichtflüchtigen Speicher des Prozessors gespeichert ist.
  • Es ist zu beachten, dass der obige Prozessor unter Verwendung verschiedener Mittel umgesetzt werden kann.
  • In einem Beispiel umfasst der Prozessor einen SoC, der in eine touchaktivierte Vorrichtung einer Benutzerausrüstung eingebaut ist.
  • In einem anderen Beispiel umfasst ein System eine Anzeige und einen Speicher und enthält den Prozessor eines oder mehrerer der obigen Beispiele
  • In noch einem anderen Beispiel enthält ein Verfahren: Empfang mindestens eines Herabstufungssteuerparameters von einer Systemsoftware in einer Leistungssteuerlogik eines Prozessors über eine Schnittstelle, wobei der mindestens eine Herabstufungssteuerparameter eine Anpassung für die autonome Herabstufung einer Niedrigenergiezustandsanfrage umfasst; Speichern des mindestens einen Herabstufungssteuerparameters in einem Speicher, der mit der Speichersteuerlogik assoziiert ist; und Veranlassen mindestens eines Kerns des Prozessors, in einen ersten Niedrigenergiezustand einzutreten, basierend mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter, wobei sich der erste Niedrigenergiezustand von einem angefragten Niedrigenergiezustand unterscheidet.
  • In einem Beispiel umfasst das Verfahren ferner: die Aktualisierung eines Zählers basierend auf einer Anzahl von Unterbrechungsereignissen, wenn der mindestens eine Kern ein erster Niedrigenergiezustand ist; und die Aktualisierung des Zählers basierend auf einer oder mehreren Zeitdauern, in denen der mindestens eine Kern sich in dem ersten Niedrigenergiezustand befindet.
  • In einem Beispiel umfasst das Verfahren ferner die Aktualisierung des Zählers basierend auf der einen oder den mehreren Zeitdauern nach einem Gefälleparameter, entsprechend dem mindestens einen Herabstufungssteuerparameter; und die Aktualisierung des Zählers basierend auf der Anzahl der Unterbrechungsereignisse nach einem konstanten Wert.
  • In einem Beispiel umfasst das Verfahren ferner den Vergleich eines Werts des Zählers mit einer ersten Grenze; das Veranlassen des mindestens einen Kerns, in den angeforderten Niedrigenergiezustand basierend auf einem ersten Ergebnis des Vergleichs einzutreten; und den mindestens einen Kern zu veranlassen, in den ersten Niedrigenergiezustand basierend auf einem zweiten Ergebnis des Vergleichs einzutreten.
  • In einem Beispiel umfasst das Verfahren ferner: den Empfang von mindestens einem Herabstufungssteuerparameter mit einem ersten Steuerwert, wenn eine erste Workload auf dem Prozessor ausgeführt wird; und den Empfang des mindestens einen Herabstufungssteuerparameters mit einem zweiten Steuerwert, wenn eine zweite Workload auf dem Prozessor ausgeführt wird.
  • In einem weiteren Beispiel soll das computerlesbare Medium, das Anweisungen enthält, das Verfahren eines der obigen Beispiele ausführen.
  • In einem anderen Beispiel soll das computerlesbare Medium, das Daten enthält, durch mindestens eine Maschine verwendet werden, um mindestens einen integrierten Schaltkreis herzustellen, um das Verfahren von einem der obigen Beispiele durchzuführen.
  • In einem anderen Beispiel umfasst eine Vorrichtung Mittel zur Durchführung des Verfahrens eines der obigen Beispiele.
  • In noch einem anderen Beispiel umfasst ein System: einen Prozessor, der mehrere Kerne und einen Leistungscontroller aufweist, um eine Anpassung für mindestens einen Herabstufungssteuerparameter über eine Schnittstelle mit einer Systemsoftware zu empfangen, wobei der Leistungscontroller mindestens einen Kern der mehreren Kerne veranlassen soll, in einen ersten Niedrigenergiezustand in Antwort auf eine Anfrage auf einem zweiten Niedrigenergiezustand einzutreten, wobei der zweite Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist als der erste Niedrigenergiezustand, basierend mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter; einen Spannungsregler, um mindestens eine Spannung an den Prozessor bereitzustellen, wobei der Leistungscontroller einen Pegel der mindestens einen Spannung steuern soll; und einen Speicher, um die Systemsoftware zu speichern, bei der die Systemsoftware Konfigurationsinformationen enthält, die den mindestens einen Herabstufungssteuerparameter umfasst.
  • In dem Beispiel umfasst die Schnittstelle mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher, um den mindestens einen Herabstufungssteuerparameter aus der Systemsoftware zu empfangen, wobei die Anpassung eine Kundenanpassung umfasst, um die Aggressivität des autonomen Überschreibens der Systemsoftware-Niedrigenergiezustandsanfragen zu steuern.
  • In einem Beispiel soll der Leistungscontroller autonom eine Systemsoftware-Niedrigenergiezustandsanfrage mindestens teilweise basierend auf einem Wert eines Zählers überschreiben, wobei der Zähler in einer ersten Richtung zumindest teilweise auf Grundlage des mindestens einen Herabstufungssteuerparameters aktualisiert werden soll, wenn der mindestens eine Kern für eine erste Zeitdauer in dem zweiten Niedrigenergiezustand war, und in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala als die erste Richtungsaktualisierung in einer zweiten Richtung aktualisiert werden soll.
  • In noch einem anderen Beispiel enthält eine Vorrichtung: mehrere Kernmittel zur autonomen Herabstufen einer Anfrage, dass mindestens ein Kernmittel der mehreren Kernmittel in einen ersten Niedrigenergiezustand eintreten soll, um das mindestens eine Kernmittel zu veranlassen, in einen zweiten Niedrigenergiezustand einzutreten, wobei der erste Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist, als der zweite Niedrigenergiezustand; und ein Schnittstellenmittel, um eine Eingabe von einer Systemsoftware zu erhalten, wobei die Eingabe mindestens einen Herabstufungssteuerparameter enthält, bei dem das erste Mittel autonom die Anfrage mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter basierend herabstufen soll.
  • In einem Beispiel umfasst das Schnittstellenmittel mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher, um den mindestens einen Herabstufungssteuerparameter von der Systemsoftware zu empfangen.
  • In einem Beispiel soll die Systemsoftware einen ersten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen, wenn eine erste Workload auf dem mindestens einen Kernmittel ausgeführt werden soll, und einen zweiten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen, wenn die zweite Workload mit dem mindestens einen Kernmittel ausgeführt werden soll.
  • In einem Beispiel soll das erste Mittel die autonome Herabstufung mindestens teilweise basierend auf einem Wert eines Herabstufungszählers veranlassen, wobei der Herabstufungszähler basierend mindestens teilweise auf einem Gefälleparameter in einer ersten Richtung aktualisiert werden soll, wenn das mindestens eine Kernmittel für eine erste Zeitdauer in einem gegebenen Energiezustand war und in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala in einer zweiten Richtung aktualisiert werden soll, als die Aktualisierung in Reaktion auf die erste Zeitdauer in dem gegebenen Niedrigenergiezustand.
  • Es ist zu verstehen, dass verschiedene Kombinationen der obigen Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltkreis“ und „Schaltkreise“ hierin austauschbar verwendet werden. Wie hierein verwendet, werden diese Begriffe und der Begriff „Logik“ verwendet, um sich alleine oder in Kombination auf analoge Schaltkreise, digitale Schaltkreise, fest verkabelte Schaltkreise, programmierbare Schaltkreise, Prozessorschaltkreise, Mikrocontrollerschaltkreise, Hardwarelogikschaltkreise, Zustandsmaschinenschaltkreise und/oder jede andere Art physischer Hardwarekomponenten zu beziehen. Ausführungsformen können in vielen verschiedenen Arten von Systemen verwendet werden. Zum Beispiel kann in einer Ausführungsform eine Kommunikationsvorrichtung angeordnet sein, die verschiedenen Verfahren und Techniken durchzuführen, die hierin beschrieben sind. Natürlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt, und stattdessen können andere Ausführungsformen auf andere Arten von Vorrichtungen gerichtet sein, um Anweisungen zu verarbeiten, oder eine oder mehrere maschinenlesbare Medien, die Anweisungen enthalten, die in Reaktion auf die Ausführung auf einer Rechnervorrichtung die Vorrichtung veranlassen, eines oder mehrere der Verfahren und Techniken auszuführen, die hierin beschrieben sind.
  • Ausführungsformen können in Code umgesetzt werden und können auf einem nichttransitorischen Speichermedium gespeichert werden, auf dem Anweisungen gespeichert sind, die verwendet werden können, ein System zu programmieren, die Anweisungen auszuführen. Ausführungsformen können außerdem in Daten umgesetzt werden und können auf einem nicht transitorischen Speichermedium gespeichert werden, das, wenn es durch mindestens eine Maschine verwendet wird, die mindestens eine Maschine veranlasst, mindestens einen integrierten Schaltkreis herzustellen, um eine oder mehrere Funktionen auszuführen. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium umgesetzt werden, einschließlich Informationen die, wenn sie in einem SoC oder einem anderen Prozessor hergestellt werden, das SoC oder den anderen Prozessor konfigurieren sollen, eine oder mehrere Funktionen auszuführen. Das Speichermedium kann enthalten, ist jedoch nicht beschränkt auf jede Art von Diskette, einschließlich Floppy Disks, optischer Disks, Solid-Zustand-Drives (SSDs), Compact Disc Read-Only Memories (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetoptischer Disketten, Halbleitervorrichtungen wie Read-Only Memories (ROMs), Random Access Memories (RAMs) wie Dynamic Random Access Memories (DRAMs), Static Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flashspeicher, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetischer oder optischer Karten oder jeder anderen Art von Medien, die sich für das Speichern elektrischer Anweisungen eignet.
  • Während die vorliegende Erfindung bezüglich einer beschränkten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifikationen und Variationen davon erkennen. Es ist vorgesehen, dass die anhängenden Ansprüche alle solchen Modifizierungen und Variationen abdecken, die in den wahren Geist der vorliegenden Erfindung fallen.

Claims (25)

  1. Prozessor, umfassend: mehrere Kerne; einen Leistungscontroller, der eine Logik enthält, um autonom eine Anfrage für mindestens einen Kern der mehreren Kerne herabzustufen, um in einen ersten Niedrigenergiezustand einzutreten, um den mindestens einen Kern zu veranlassen, in einen zweiten Niedrigenergiezustand einzutreten, wobei der erste Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist als der zweite Niedrigenergiezustand; und eine Schnittstelle zum Empfangen einer Eingabe von einer Systemsoftware, wobei die Eingabe mindestens einen Herabstufungssteuerparameter enthält, wobei die Logik autonom die Anfrage mindestens teilweise basierend auf dem mindestens einen Herabstufungssteuerparameter herabstufen soll.
  2. Prozessor nach Anspruch 1, wobei die Schnittstelle mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher umfasst, um den mindestens einen Herabstufungssteuerparameter von der Systemsoftware zu empfangen.
  3. Prozessor nach Anspruch 1, wobei die Systemsoftware mindestens eines aus einem Betriebssystem und einem grundlegenden Ein-/Ausgabesystem umfasst.
  4. Prozessor nach Anspruch 3, wobei die Systemsoftware einen ersten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen soll, wenn eine erste Workload auf dem mindestens einen Kern ausgeführt werden soll, und einen zweiten Wert des mindestens einen Herabstufungssteuerparameters bereitstellen soll, wenn eine zweite Workload auf dem mindestens einen Kern ausgeführt werden soll.
  5. Prozessor nach Anspruch 1, wobei der mindestens eine Herabstufungssteuerparameter einen Gefälleparameter umfasst.
  6. Prozessor nach Anspruch 5, wobei die Logik die autonome Herabstufung basierend mindestens teilweise auf einem Wert eines Herabstufungszählers veranlassen soll.
  7. Prozessor nach Anspruch 6, wobei die Logik den Herabstufungszähler basierend mindestens teilweise auf dem Gefälleparameter aktualisieren soll, wenn der mindestens eine Kern für eine erste Zeitdauer in einem gegebenen Niedrigenergiezustand war.
  8. Prozessor nach Anspruch 7, wobei die Logik ferner den Herabstufungszähler in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala aktualisieren soll, als die Aktualisierung in Reaktion auf eine erste Zeitdauer in dem gegebenen Niedrigenergiezustand.
  9. Prozessor nach Anspruch 6, wobei der mindestens eine Herabstufungssteuerparameter eine Herabstufungsgrenze umfasst.
  10. Prozessor nach Anspruch 9, wobei die Logik die autonome Herabstufung auf Grundlage eines Vergleichs des Werts des Herabstufungszählers und der Herabstufungsgrenze veranlasst.
  11. Prozessor nach Anspruch 1, wobei der Leistungscontroller den mindestens einen Herabstufungssteuerparameter veranlassen soll, in einem Konfigurationsspeicher gespeichert zu werden, wenn der mindestens eine Herabstufungssteuerparameter in einem privilegierten Modus empfangen wird.
  12. Prozessor nach Anspruch 1, wobei der mindestens eine Herabstufungssteuerparameter eine Kundenanpassung für die autonome Herabstufung umfasst, wobei die Kundenanpassung sich von einer Anpassung für die autonome Herabstufung unterscheidet, die durch einen Hersteller des Prozessors in einem nichtflüchtigen Speicher des Prozessors gespeichert wurde.
  13. Verfahren, umfassend: Empfang mindestens eines Herabstufungssteuerparameters in einer Leistungssteuerlogik eines Prozessors über eine Schnittstelle von einer Systemsoftware, wobei der mindestens eine Parameter eine Anpassung für eine autonome Herabstufung einer Niedrigenergiezustandsanfrage umfasst; Speichern des mindestens einen Herabstufungssteuerparameters in einem Speicher, der mit der Leistungssteuerlogik assoziiert ist; und Veranlassen mindestens eines Kerns des Prozessors, in einen ersten Niedrigenergiezustand einzutreten, basierend mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter, wobei sich der erste Niedrigenergiezustand von einem angeforderten Niedrigenergiezustand unterscheidet.
  14. Verfahren nach Anspruch 13, ferner umfassend: Aktualisierung eines Zählers basierend auf einer Anzahl von Unterbrechungsereignissen, wenn der mindestens eine Kern sich in dem ersten Niedrigenergiezustand befindet; und Aktualisierung des Zählers basierend auf einer oder mehreren Zeitdauern, in der der mindestens eine Kern sich in dem ersten Niedrigenergiezustand befindet.
  15. Verfahren nach Anspruch 14, ferner umfassend: Aktualisierung des Zählers basierend auf der einen oder den mehreren Zeitdauern nach einem Gefälleparameter, entsprechend dem mindestens einen Herabstufungssteuerparameter; und Aktualisierung des Zählers basierend auf der Anzahl von Unterbrechungsereignissen nach einem konstanten Wert.
  16. Verfahren nach Anspruch 14, ferner umfassend: Vergleich eines Werts des Zählers mit einer ersten Grenze; Veranlassen des mindestens einen Kerns, in den angeforderten Niedrigenergiezustand basierend auf einem ersten Ergebnis des Vergleichs einzutreten; und Veranlassen des mindestens einen Kerns, in den ersten Niedrigenergiezustand basierend auf einem zweiten Ergebnis des Vergleichs einzutreten.
  17. Verfahren nach Anspruch 13, ferner umfassend: Empfang des mindestens einen Herabstufungssteuerparameters mit einem ersten Steuerwert, wenn eine erste Workload auf dem Prozessor ausgeführt wird; und Empfang des mindestens einen Herabstufungssteuerparameters mit einem zweiten Steuerwert, wenn eine zweite Workload auf dem Prozessor ausgeführt wird.
  18. Computerlesbares Speichermedium, das computerlesbare Anweisungen enthält, die bei Ausführung ein Verfahren wie in einem der Ansprüche 13 bis 17 beansprucht umsetzt.
  19. Vorrichtung, umfassend Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 13 bis 17.
  20. System, umfassend: einen Prozessor, der mehrere Kerne und einen Leistungscontroller aufweist, um eine Anpassung für mindestens einen Herabstufungssteuerparameter über eine Schnittstelle mit einer Systemsoftware zu empfangen, wobei der Leistungscontroller mindestens einen Kern der mehreren Kerne veranlassen soll, in einen ersten Niedrigenergiezustand in Reaktion auf eine Anfrage für einen zweiten Niedrigenergiezustand einzutreten, wobei der zweite Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist als der erste Niedrigenergiezustand, basierend mindestens teilweise auf dem mindestens einen Herabstufungssteuerparameter; einen Spannungsregler, um mindestens eine Spannung an den Prozessor bereitzustellen, wobei der Leistungscontroller einen Pegel der mindestens einen Spannung steuern soll; und einen Speicher zum Speichern der Systemsoftware, wobei die Systemsoftware Konfigurationsinformationen umfasst, die den mindestens einen Herabstufungssteuerparameter umfassen.
  21. System nach Anspruch 20, wobei die Schnittstelle mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher, um den mindestens einen Herabstufungssteuerparameter aus der Systemsoftware zu empfangen, wobei die Anpassung eine Kundenanpassung umfasst, um die Aggressivität des autonomen Überschreibens der Systemsoftware-Niedrigenergiezustandsanfragen zu steuern.
  22. System nach Anspruch 20, wobei der Leistungscontroller autonom eine Systemsoftware-Niedrigenergiezustandsanfrage mindestens teilweise basierend auf einem Wert eines Zählers überschreiben soll, wobei der Zähler in einer ersten Richtung mindestens teilweise basierend auf dem mindestens einen Herabstufungssteuerparameter aktualisiert werden soll, wenn der mindestens eine Kern für eine erste Zeitdauer in dem zweiten Niedrigenergiezustand war, und in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala als die erste Richtungsaktualisierung in einer zweiten Richtung aktualisiert werden soll.
  23. Vorrichtung, umfassend: mehrere Kernmittel zur Ausführung von Anweisungen; ein erstes Mittel zum autonomen Herabstufen einer Anfrage für mindestens ein Kernmittel der mehreren Kernmittel, um in einen ersten Niedrigenergiezustand einzutreten, um das mindestens eine Kernmittel zu veranlassen, in einen zweiten Niedrigenergiezustand einzutreten, wobei der erste Niedrigenergiezustand ein tieferer Niedrigenergiezustand ist, als der zweite Niedrigenergiezustand; und Schnittstellenmittel zum Empfangen einer Eingabe von einer Systemsoftware, wobei die Eingabe mindestens einen Herabstufungssteuerparameter enthält, wobei das erste Mittel autonom die Anfrage mindestens teilweise basierend auf dem mindestens einen Herabstufungssteuerparameter herabstufen soll.
  24. Vorrichtung nach Anspruch 23, wobei das Schnittstellenmittel mindestens eines aus einer Mailbox-Schnittstelle, einem maschinenspezifischen Register und einem speicherzugeordneten Ein-/Ausgabespeicher umfasst, um den mindestens einen Herabstufungssteuerparameter von der Systemsoftware zu empfangen.
  25. Vorrichtung nach Anspruch 23, wobei das erste Mittel die autonome Herabstufung mindestens teilweise basierend auf einem Wert eines Herabstufungszählers veranlassen soll, wobei der Herabstufungszähler basierend mindestens teilweise auf einem Gefälleparameter in einer ersten Richtung aktualisiert werden soll, wenn das mindestens eine Kernmittel für eine erste Zeitdauer in einem gegebenen Energiezustand war und in Reaktion auf ein Unterbrechungsereignis nach einer anderen Skala in einer zweiten Richtung aktualisiert werden soll, als die Aktualisierung in Reaktion auf die erste Zeitdauer in dem gegebenen Niedrigenergiezustand.
DE112017003873.1T 2016-08-03 2017-07-20 Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor Pending DE112017003873T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/227,040 US10379596B2 (en) 2016-08-03 2016-08-03 Providing an interface for demotion control information in a processor
US15/227,040 2016-08-03
PCT/US2017/042999 WO2018026527A1 (en) 2016-08-03 2017-07-20 Providing an interface for demotion control information in a processor

Publications (1)

Publication Number Publication Date
DE112017003873T5 true DE112017003873T5 (de) 2019-04-18

Family

ID=61072020

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017003873.1T Pending DE112017003873T5 (de) 2016-08-03 2017-07-20 Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor

Country Status (4)

Country Link
US (1) US10379596B2 (de)
CN (1) CN109564460B (de)
DE (1) DE112017003873T5 (de)
WO (1) WO2018026527A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753487B2 (en) * 2013-03-14 2017-09-05 Micron Technology, Inc. Serial peripheral interface and methods of operating same
EP3673344A4 (de) 2017-08-23 2021-04-21 INTEL Corporation System, vorrichtung und verfahren für adaptive betriebsspannung in einem feldprogrammierbaren gate-array (fpga)
US11137807B2 (en) * 2018-03-28 2021-10-05 Intel Corporation System, apparatus and method for controllable processor configuration based on a temperature specification
US11216276B2 (en) * 2018-12-27 2022-01-04 Intel Corporation Controlling power state demotion in a processor

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
JP2006518064A (ja) 2003-01-23 2006-08-03 ユニバーシティー オブ ロチェスター マルチクロックドメインを有するマイクロプロセッサ
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7516342B2 (en) 2005-12-30 2009-04-07 Intel Corporation Method, apparatus and system to dynamically choose an optimum power state
US8799687B2 (en) * 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
WO2008117133A1 (en) 2007-03-26 2008-10-02 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8112647B2 (en) * 2008-08-27 2012-02-07 Globalfoundries Inc. Protocol for power state determination and demotion
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8291249B2 (en) * 2009-09-25 2012-10-16 Advanced Micro Devices, Inc. Method and apparatus for transitioning devices between power states based on activity request frequency
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
CN104169832B (zh) * 2012-03-13 2017-04-19 英特尔公司 提供处理器的能源高效的超频操作
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9405351B2 (en) * 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9235252B2 (en) * 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9395788B2 (en) 2014-03-28 2016-07-19 Intel Corporation Power state transition analysis
US9760158B2 (en) * 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US9575537B2 (en) * 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states

Also Published As

Publication number Publication date
CN109564460B (zh) 2024-02-02
CN109564460A (zh) 2019-04-02
US10379596B2 (en) 2019-08-13
US20180039322A1 (en) 2018-02-08
WO2018026527A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
TWI630476B (zh) 執行平台裝置之動態功率控制的處理器、機器可讀取媒體及系統
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
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
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
US20170177046A1 (en) Controlling Telemetry Data Communication In A Processor
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
DE202015009867U1 (de) Einrichtung zum Bereitstellen einer Wärmeparametermeldung für eine Mehrchip-Baugruppe
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE102018131595A1 (de) Verwaltung von Prozessorleistung basierend auf Benutzerunterbrechungen
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE112016004776T5 (de) Datenkomprimierung unter Verwendung eines Beschleunigers mit mehreren Suchmaschinen
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor
DE112015002522T5 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
US20170371399A1 (en) Controlling Forced Idle State Operation In A Processor
DE112017004991T5 (de) Ausgleichssteuerung für variable energieschienen
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung
US11669146B2 (en) System, apparatus and method for responsive autonomous hardware performance state control of a processor
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
DE112017005000T5 (de) Prozessorspannungssteuerung unter verwendung eines beweglichen mittelwerts

Legal Events

Date Code Title Description
R012 Request for examination validly filed