DE102020127742A1 - System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor - Google Patents

System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor Download PDF

Info

Publication number
DE102020127742A1
DE102020127742A1 DE102020127742.3A DE102020127742A DE102020127742A1 DE 102020127742 A1 DE102020127742 A1 DE 102020127742A1 DE 102020127742 A DE102020127742 A DE 102020127742A DE 102020127742 A1 DE102020127742 A1 DE 102020127742A1
Authority
DE
Germany
Prior art keywords
processor
circuit
partition
global
local
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
DE102020127742.3A
Other languages
English (en)
Inventor
Jianwei Dai
David Pawlowski
Adwait Purandare
Ankush Varma
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 DE102020127742A1 publication Critical patent/DE102020127742A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Bei einer Ausführungsform weist ein Prozessor eine Vielzahl von Schaltkreisen geistigen Eigentums (Intellectual Property circuits, IP-Schaltkreisen) auf, die jeweils geeignet sind zum Ausführen von Befehlen und die einen lokalen Steuerschaltkreis aufweisen, um dem IP-Schaltkreis zu ermöglichen, auf einer Ebene oberhalb eines lokalen Strombudgets für den IP-Schaltkreis zu funktionieren, ausgenommen wenn der Prozessor einer globalen Verletzung unterliegt. Der Prozessor kann außerdem eine Leistungssteuereinheit aufweisen, die mit der Vielzahl von IP-Schaltkreisen verbunden ist. Die Leistungssteuereinheit kann einen Steuerschaltkreis aufweisen zum Empfangen von Anforderungsinformationen von der Vielzahl von IP-Schaltkreisen und zum Ermitteln, mindestens teilweise aufgrund der Anforderungsinformationen, dass der Prozessor der globalen Verletzung unterliegt, wenn ein globales Strombudget überschritten wird. Weitere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Hintergrund
  • Fortschritte bei der Halbleiterbearbeitung und der Logikgestaltung haben einen Zuwachs der Logikmenge erlaubt, die auf integrierten Schaltkreisvorrichtungen vorhanden ist. Infolgedessen haben sich die Computersystemkonfigurationen von einem einzelnen oder mehreren integrierten Schaltkreisen in ein System mit mehreren Hardware-Threads, mehreren Kernen, mehreren Einheiten und/oder kompletten Systemen auf individuellen integrierten Schaltkreisen entwickelt. Da die Dichte der integrierten Schaltkreise zugenommen hat, sind außerdem auch die Leistungsanforderungen für Computersysteme (von eingebetteten Systemen bis zu Server) eskaliert. Darüber hinaus haben Software-Ineffizienzen und ihre Hardwareanforderungen auch eine Zunahme beim Energieverbrauch von Computervorrichtungen verursacht. Tatsächlich zeigen Studien, dass Computervorrichtungen einen erheblichen Prozentsatz der gesamten Elektrizitätsversorgung für ein Land wie zum Beispiel die Vereinigten Staaten von Amerika verbrauchen. Infolgedessen besteht eine dringende Notwendigkeit für eine Energieeffizienz und -einsparnis im Zusammenhang mit integrierten Schaltkreisen. Diese Notwendigkeiten werden weiter ansteigen, da Server, Desktop-Computer, Notebooks, Ultrabooks™, Tablet-Computer, Mobiltelefone, Prozessoren, eingebettete Systeme usw. immer weiter verbreitet werden (vom Einbinden in den typischen Computer, Kraftfahrzeuge und vom Fernseher bis zur Biotechnologie).
  • Figurenliste
    • 1 ist ein Blockschaltbild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockschaltbild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockschaltbild eines Mehrdomänen-Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 4 zeigt eine Ausführungsform eines Prozessors, der mehrere Kerne aufweist.
    • 5 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform.
    • 7 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform.
    • 8 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen weiteren Ausführungsform.
    • 9 ist ein Blockschaltbild eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 10 ist ein Blockschaltbild eines repräsentativen SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 11 ist ein Blockschaltbild eines weiteren beispielhaften SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 12 ist ein Blockschaltbild eines beispielhaften Systems, mit dem die Ausführungsformen verwendet werden können.
    • 13 ist ein Blockschaltbild eines weiteren beispielhaften Systems, mit dem die Ausführungsformen verwendet werden können.
    • 14 ist ein Blockschaltbild eines repräsentativen Computersystems.
    • 15 ist ein Blockschaltbild eins Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 16 ist ein Blockschaltbild, das ein IP-Kernentwicklungssystem darstellt, das verwendet wird zum Herstellen eines integrierten Schaltkreises, um Operationen gemäß einer Ausführungsform auszuführen.
    • 17 ist ein Blockschaltbild eins Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 18 ist ein Blockschaltbild eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 19 ist ein Ablaufplan eines Verfahrens gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 20 ist ein Zeitdiagramm, das die Steuerung eines Multipartitionsprozessors gemäß einer Ausführungsform darstellt.
    • 21 ist ein Blockschaltbild eines Ein-Chip-Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • Bei verschiedenen Ausführungsformen ist ein Prozessor mit einer Leistungssteuereinheit konfiguriert, die reaktive Techniken verwendet, um den Prozessor zum Betrieb in einer eingeschränkten Umgebung mit einer besseren Leistungsfähigkeit zu aktivieren, indem eine Präzisionsdrosselung der Schaltung bereitgestellt wird. Insbesondere funktionieren einige Ausführungsformen zum Isolieren verschiedener Schaltkreise geistigen Eigentums (Intellectual Property circuits, IP-Schaltkreise) wie zum Beispiel Kerne oder andere Verarbeitungseinheiten, sodass verletzende IP-Schaltkreise (die z.B. oberhalb eines gegebenen maximalen Strombudgets funktionieren) identifiziert und bestraft werden, während andere sich gut verhaltende IP-Schaltkreise, wenn gewünscht, unbeeinflusst bleiben. In einem Multipartitionsszenarium (wie zum Beispiel einem Ein-Chip-System (System on Chip, SoC) zum Ausführen mehrerer virtueller Maschinen (VMs)) tritt keine partitionsübergreifende Drosselung oder kein partitionsübergreifender Frequenzverlust als Folge eines maximalen Stroms (IccMax) oder einer Leistungsbegrenzungssituation von einer anderen Partition auf. Außerdem ermöglichen einige Ausführungsformen durch das Eliminieren der IP-Interferenz, dass die Leistungsfähigkeit in einem Prozessor maximiert wird, der einer physischen Einschränkung wie zum Beispiel einer Verletzung eines globalen Budgets (z.B. thermisch, elektrisch und so weiter) unterliegt, während Auslegungsschutzbereiche aggressiv reduziert werden.
  • Bei einigen Ausführungsformen werden sowohl der globale Zustand als auch der lokale Zustand berücksichtigt und ein gegebener IP-Schaltkreis wird nur als Reaktion sowohl auf den globalen Zustand als auch den lokalen Zustand gedrosselt. Im Gegensatz dazu leiden andere Techniken darunter, dass sie übermäßig konservativ sind, wenn IP-Schaltkreise gedrosselt werden, wenn eine lokale Verletzung erkannt wird und/oder wenn alle IP-Schaltkreise aufgrund einer globalen Verletzung gedrosselt werden. Bei einer Ausführungsform werden in einem Multipartitionsszenarium nur Kerne gedrosselt, die einen hohen Strom ziehen, sodass (zusätzlich zu einer lokalen Verletzung) eine Partitionsverletzung stattfindet, ohne die Kerne in anderen Partitionen zu beeinträchtigen.
  • Einige Ausführungsformen stellen auch eine Steuerung pro Partition von Steuertechniken für eine Leistung der elektrischen Auslegung (Electrical Design Power, EDP) und eine gleitende mittlere Leistungsbegrenzung (Running Average Power Limit, RAPL) bereit. Unter der Annahme, dass ein IP-Schaltkreis in einer ersten Partition (z.B. Partition-0) mit einer hohen Stromarbeitslast zu funktionieren beginnt, wird der Vorpartitions-EDP-Algorithmus mit dieser Anordnung nur die Frequenzen der Kerne in der Partition-0 verringern, ohne die IP-Schaltkreise in anderen Partitionen zu beeinträchtigen. Somit beeinträchtigen die Arbeitslasteigenschaften einer Partition nicht die Leistungsfähigkeit der anderen Partitionen aus IccMax- oder Leistungsbegrenzungsgründen. In einem SoC kann zwischen verschiedenen Partitionen außerdem eine Strom- und Leistungsisolierung sichergestellt werden. Wenn Ausführungsformen in einem VM-Szenarium angewandt werden, stellen sie somit sicher, dass weder eine VM-Drosselung noch ein VM-übergreifender Frequenzverlust aufgrund von IccMax- oder Leistungsbegrenzungsgründen auftreten, was zu einer Strom- und Leistungsisolierung zwischen den VMs führt. Und mit getrennten Partitionen und einer lokal/global getriggerten Steuerung kann ein nachbarschaftliches Rauschproblem von einer stark konsumierenden VM, wodurch Einschränkungen in einer anderen VM verursacht werden, vermieden werden.
  • Es ist zu beachten, dass die Beispiele und die Beschreibung auf den Fall eingehen, in dem die Antwort auf eine Verletzung ist, dass nur jene IP-Schaltkreise oder Gruppen von IP-Schaltkreisen gedrosselt werden, die ihr Budget überschreiten. Es ist auch möglich andere Betrachtungen der Drosselungsbestimmungen einzusetzen. Ein spezielles Beispiel ist die Priorität. Bei einer Ausführungsform kann ein SoC mit einer Gruppe von Kernen konfiguriert werden, die entweder für eine VM mit hoher Priorität bestimmt sind oder gesteuert werden, um eine Arbeitslast mit hoher Priorität auszuführen. Bei einer Ausführungsform können unterschiedliche Budgets für unterschiedliche Prioritäten vorhanden sein, sodass bei Drosselungsbestimmungen sowohl eine Priorität als auch eine Strom- oder Leistungsgröße betrachtet werden.
  • Bei einem beispielhaften Betriebsszenarium wird angenommen, dass 2 VMs auf dem gleichen SoC ablaufen. Eine erste VM ist dafür geplant, eine Ganzzahlenarbeitslast mit niedriger Leistung auszuführen, während eine zweite VM dafür geplant ist Arbeitslasten (z.B. Vektorarbeitslasten) mit hoher Leistung auszuführen. Mit dem hier beschriebenen Partitionieren und reaktiven Drosseln, kann die erste VM ohne Frequenzverschleiß oder Drosselung ausgeführt werden, selbst wenn die zweite VM aufgrund von Verletzungen der IccMax und/oder der Leistungsgrenzen eingeschränkt werden kann.
  • Somit kann mit einigen Ausführungsformen eine unerwünschte IP-Schaltkreis-übergreifende Interferenz zusammen mit einem Vermeiden einer lokalen Drosselung in der Abwesenheit einer globalen Verletzung vermieden werden, und somit die Leistungsfähigkeit vergrößert werden. Im Gegensatz dazu werden ohne eine solche Ausführungsform einige IP-Schaltkreise zu häufig gedrosselt. Es ist zu beachten, dass es in dem Fall einer übermäßigen Drosselung möglich ist, dass die gedrosselten IP-Schaltkreise ein größeres Strombudget anfordern können. Eine oder mehrerer solcher Anforderungen können wiederum eine Verringerung des Strombudgets für alle Kerne verursachen, um einen ausreichenden Freiraum für den anfordernden Kern sicherzustellen. Und somit kann ohne eine solche Ausführungsform eine verringerte Leistungsfähigkeit auftreten, was verursachen kann, dass bestimmte Arbeitslasten, die eine höhere Priorität aufweisen, beeinträchtigt werden. Bei einigen Ausführungsformen können Techniken, die eine gesamte oder globale gemeinsam genutzte Frequenzobergrenze bestimmen, eine anomale Situation vermeiden, bei der ein einziger Kern, der ein größeres Strombudget anfordert, verursachen könnte, dass eine Frequenz aller Kerne verringert wird.
  • Obwohl die nachfolgenden Ausführungsformen in Bezug auf eine Energieeinsparung und eine Energieeffizienz in spezifischen integrierten Schaltkreisen wie zum Beispiel in Computerplattformen oder Prozessoren beschrieben werden, sind weitere Ausführungsformen auf andere Arten von integrierten Schaltkreisen und Logikeinheiten anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können auf andere Arten von Schaltkreisen oder Halbleitereinheiten angewandt werden, die auch von einer besseren Energieeffizienz und Energieeinsparung profitieren können. Die offenbarten Ausführungsformen sind zum Beispiel nicht auf einen speziellen Typ von Computersystemen begrenzt. Das heißt, dass offenbarte Ausführungsformen in vielen verschiedenen Systemtypen verwendet werden können, die von Servercomputern (z.B. Turm-, Gestell-, Einschub-, Mikro-Server und so weiter), Kommunikationssystemen, Speichersystemen, Desktop-Computern mit einer beliebigen Konfiguration, Laptops, Notebooks bis zu Tablet-Computern (einschließlich 2:1-Tablet-Computern, Phablet-Computern und so weiter) reichen, und die auch in anderen Vorrichtungen wie zum Beispiel in tragbaren Vorrichtungen, Ein-Chip-Systemen (Systems on Chip, SoCs) und eingebetteten Anwendungen verwendet werden können. Einige Beispiele tragbarer Vorrichtungen umfassen Mobiltelefone, wie zum Beispiel Smartphones, Internetprotokollgeräte, digitale Kameras, persönliche Datenassistenten (Personal Digital Assistants, PDAs) und tragbare PCs. Zu den eingebetteten Anwendungen können typischerweise eine Mikrosteuereinheit, ein digitaler Signalprozessor (Digital Signal Processor, DSP), Netzwerkcomputer (NetPC), Beistellgeräte, Netzwerkknoten, Fernnetzschalter (Wide Area Network switches, WAN-Schalter) tragbare Vorrichtungen oder jedes andere System gehören, das eine oder mehrere Anweisungen gemäß mindestens einer Ausführungsform ausführen kann. Darüber hinaus können einige Ausführungsformen in mobilen Endgeräten, die eine Standardsprachfunktionalität aufweisen wie zum Beispiel Mobiltelefone, Smartphones, Phablet-Computern und/oder in nicht mobilen Endgeräten ohne eine Kommunikationsfähigkeit mit einer drahtlosen Standardsprachfunktion umgesetzt werden wie zum Beispiel in mehreren tragbaren Einheiten, Tablet-Computern, Notebooks, Desktop-Computern, Mikroservern und so weiter. Darüber hinaus sind die hier beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Computervorrichtungen beschränkt, sondern sie können sich auch auf Softwareoptimierungen für Energieerhaltung und -einsparung beziehen. Wie aus der nachfolgenden Beschreibung einfach ersichtlich wird, sind die hier beschriebenen Ausführungsformen der Verfahren, Vorrichtungen und Systeme (entweder in Bezug auf eine Hardware, Firmware, Software oder eine Kombination davon) unverzichtbar für eine „grüne Technologie“-Zukunft, wie zum Beispiel für eine Energieeinsparung und eine Energieeffizienz in Produkten, die einen Großteil der US-Wirtschaft ausmachen.
  • In 1 wird jetzt ein Blockschaltbild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt wird, kann das System 100 zahlreiche Komponenten aufweisen einschließlich eines Prozessors 110, der wie gezeigt ein Mehrkernprozessor ist. Der Prozessor 110 kann über einen externen Spannungsregler 160, der eine erste Spannungswandlung ausführen kann, um dem Prozessor 110 eine geregelte Primärspannung bereitzustellen, mit einer Stromversorgung 150 verbunden sein.
  • Wie zu sehen ist, kann der Prozessor 110 ein Einzelchipprozessor sein, der mehrerer Kerne 120a bis 120n enthält. Außerdem kann jeder Kern einem integrierten Spannungsregler (IVR) 125a bis 125n zugeordnet sein, der die geregelte Primärspannung empfängt und eine Betriebsspannung erzeugt, die dem einen oder den mehreren Agenten des Prozessors bereitgestellt wird, die dem IVR zugeordnet sind. Dementsprechend kann eine IVR-Umsetzung bereitgestellt werden, um eine fein abgestimmt Steuerung der Spannung und somit der Leistung und Leistungsfähigkeit von jedem individuellen Kern zu erlauben. Von daher kann jeder Kern mit einer unabhängigen Spannung und Frequenz betrieben werden, was eine große Flexibilität ermöglicht und weitreichende Möglichkeiten zum Ausgleichen von Stromverbrauch mit der Leistungsfähigkeit eröffnet. Bei einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs das Gruppieren von Komponenten in getrennte Leistungsebenen, sodass die Leistung geregelt wird und nur diese Komponenten in der Gruppe von dem IVR versorgt werden. Während der Leistungsverwaltung kann eine gegebene Leistungsebene von einem IVR heruntergefahren oder ausgeschaltet werden, wenn der Prozessor in einen bestimmten niedrigen Leistungszustand gebracht wird, während eine andere Leistungsebene eines anderen IVR aktiv oder voll versorgt bleibt.
  • Immer noch in 1 können zusätzliche Komponenten innerhalb des Prozessors vorhanden sein einschließlich einer Eingangs-/Ausgangsschnittstelle 132, einer weiteren Schnittstelle 134 und einer integrierten Speichersteuereinheit 136. Wie zu sehen ist, kann jede dieser Komponenten von einem anderen integrierten Spannungsregler 125x versorgt werden. Bei einer Ausführungsform kann die Schnittstelle 132 einen Betrieb für ein Intel®-Quick Path Interconnect-Verbindung (QPI-Verbindung) ermöglichen, die Punkt-zu-Punkt-Verbindungen (PtP-Verbindungen) in einem Cachespeicher-kohärenten Protokoll bereitstellt, das mehrere Schichten einschließlich einer Datenübertragungsschicht, einer Verbindungsschicht und einer Protokollschicht aufweist. Die Schnittstelle 134 kann ihrerseits über ein Protokoll einer Expressverbindung für Peripheriekomponenten (Peripheral Component Interconnect Express protocol, PCIe™) kommunizieren.
  • Es wird auch eine Leistungssteuereinheit (Power Control Unit, PCU) 138 gezeigt, die eine Hardware, eine Software und/oder eine Firmware enthalten kann, um Leistungsverwaltungsoperationen in Bezug auf den Prozessor 110 auszuführen. Wie zu sehen ist, stellt die PCU 138 Steuerinformationen über eine digitale Schnittstelle für einen externen Spannungsregler 160 bereit, um den Spannungsregler zu veranlassen, die geeignete geregelte Spannung zu erzeugen. Die PCU 138 stellt auch Steuerinformationen für die IVRs 125 über eine andere digitale Schnittstelle bereit, um die erzeugte Betriebsspannung zu steuern (oder um zu veranlassen, dass ein entsprechender IVR in einem niedrigen Leistungsmodus deaktiviert wird). Bei verschiedenen Ausführungsformen kann die PCU 138 eine Vielfalt von Leistungsverwaltungslogikeinheiten aufweisen, um eine hardwarebasierte Leistungsverwaltung auszuführen. Diese Leistungsverwaltung kann vollkommen prozessorgesteuert sein (z.B. durch verschiedene Prozessor-Hardwarekomponenten, und die durch eine Arbeitslast und/oder Leistungs-, Wärme oder andere Prozessoreinschränkungen ausgelöst werden) und/oder die Leistungsverwaltung kann als Reaktion auf externe Quellen (wie zum Beispiel eine Leistungsverwaltungsquelle oder eine Systemsoftware einer Plattform oder einer Verwaltung) ausgeführt werden.
  • Obwohl 1 eine Umsetzung zeigt, in der die PCU 138 eine separate Verarbeitungsengine ist (die als eine Mikrosteuereinheit umgesetzt werden kann), ist es darüber hinaus selbstverständlich, dass in einigen Fällen zusätzlich zu oder anstelle einer zweckbestimmten Leistungssteuereinheit jeder Kern einen Leistungssteueragent aufweisen oder diesem zugeordnet sein kann, um den Stromverbrauch unabhängig autonomer zu steuern. Bei einigen Fällen kann eine hierarchische Leistungsverwaltungsarchitektur bereitgestellt werden, wobei die PCU 138 in einer Kommunikation mit entsprechenden Leistungsverwaltungsagenten steht, die jedem der Kerne 120 zugeordnet sind.
  • Die PCU 138 kann verschiedene Steuerschaltungen enthalten, die konfiguriert sind zum Ermitteln von Informationen hinsichtlich einer Verletzung von einer oder mehreren globalen Zuteilungen z.B. von Strom, Leistung und so weiter. Und mindestens teilweise aufgrund dieser Informationen können die lokalen Schaltungen wie zum Beispiel die individuellen Kerne 120 eine Drosselungsaktivität modulieren, wenn eine lokale Verletzung eines lokalen Schwellenwerts identifiziert wird. Auf diese Weise können die in der PCU 138 vorhandenen Steuerschaltungen Steuerinformationen und eine Anzeige einer lokalen Verletzung für eine lokale Schaltung bereitstellen, um die lokale Schaltung zu veranlassen, ihr Drosselungsverhalten dynamisch zu modulieren, wenn eine lokale Verletzung erkannt wird. So wie hier beschrieben werden wird, kann diese Modulation ein Schalten einer lokalen Drosselung oder andernfalls ein Minimieren einer Auswirkung der Drosselungsaktivität aufweisen.
  • Obwohl dies der einfacheren Darstellung halber nicht gezeigt wird, ist es selbstverständlich, dass zusätzliche Komponenten in dem Prozessor 110 wie zum Beispiel zusätzliche Steuerschaltungen und andere Komponenten wie zum Beispiel interne Speicher z.B. eine oder mehrere Stufen einer Cachespeicherhierarchie und so weiter vorhanden sein können. Obwohl in der Umsetzung der 1 ein integrierter Spannungsregler gezeigt wird, sind die weiteren Ausführungsformen nicht so begrenzt.
  • Es ist zu beachten, dass die hier beschriebenen Leistungsverwaltungstechniken unabhängig von und komplementär zu einem betriebssystembasierten (Operating System, OS) Leistungsverwaltungsmechanismus (OS-based Power Management mechanism (OSPM-Mechanismus) sein können. Gemäß einer beispielhaften OSPM-Technik kann ein Prozessor in verschiedenen Leistungsfähigkeitszuständen den sogenannten P-Zuständen, insbesondere von P0 bis PN, betrieben werden. Im Allgemeinen kann der PI-Leistungsfähigkeitszustand dem höchsten garantierten Leistungsfähigkeitszustand entsprechen, der von einem OS angefordert werden kann. Einige der hier beschriebenen Ausführungsformen können dynamische Änderungen an der garantierten Frequenz des PI-Leistungsfähigkeitszustands aufgrund einer Vielfalt von Eingaben und Prozessorbetriebsparametern ermöglichen. Zusätzlich zu diesem PI-Zustand kann das OS außerdem einen höheren Leistungsfähigkeitszustand insbesondere einen PO-Zustand anfordern. Dieser PO-Zustand kann ein opportunistischer oder Turbomodus-Zustand sein, in dem, wenn ein Leistungs- und/oder Wärmebudget zur Verfügung steht, die Prozessor-Hardware den Prozessor oder zumindest Teile davon konfigurieren kann, um auf einer höheren als der garantierten Frequenz betrieben zu werden. Bei vielen Umsetzungen kann ein Prozessor mehrere sogenannte Bin-Frequenzen über der P1-garantierten maximalen Frequenz aufweisen, die eine maximale Spitzenfrequenz des speziellen Prozessors überschreiten, wie sie während der Herstellung in dem Prozessor abgesichert wird oder in diesen geschrieben wird. Ein Prozessor kann außerdem gemäß einem OSPM-Mechanismus auf verschiedenen Leistungszuständen oder Leistungsstufen betrieben werden. Hinsichtlich der Leistungszustände kann ein OSPM-Mechanismus unterschiedliche Leistungsaufnahmezustände spezifizieren, auf die im Allgemeinen als C-Zustände, C0-, C1- bis Cn-Zustände Bezug genommen wird. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand und wenn der Kern im Leerlauf ist, kann er in einen niedrigen Kernleistungszustand gebracht werden, der auch als Nichtnull-C-Zustand des Kerns (z.B. die C1-bis C6-Zustände) bezeichnet wird, wobei sich jeder C-Zustand auf einer niedrigeren Leistungsaufnahmestufe befindet (sodass C6 ein tieferer Leistungszustand als C1 ist und so weiter).
  • Es ist selbstverständlich, dass viele verschiedene Arten von Leistungsverwaltungstechniken individuell oder in Kombination in verschiedenen Ausführungsformen verwendet werden können. Als anschauliches Beispiel kann eine Leistungssteuereinheit den Prozessor steuern, dessen Leistung in einer gewissen Weise einer dynamischen Spannungsfrequenzskalierung (Dynamic Voltage Frequency Scaling, DVFS) gesteuert wird, bei der eine Betriebsspannung und/oder eine Betriebsfrequenz von einem oder mehreren Kernen oder anderen Prozessoren dynamisch gesteuert werden können, um die Leistungsaufnahme in bestimmten Situationen zu verringern. Bei einem Beispiel kann die DVFS mithilfe einer Fnhanced-Intel-SpeedStep™-Technologie ausgeführt werden, die bei der Intel Corporation, Santa Clara, Kalif. zur Verfügung steht, um eine optimale Leistungsfähigkeit auf einer niedrigsten Leistungsaufnahmestufe bereitzustellen. Bei einem weiteren Beispiel kann die DVFS mithilfe einer Intel-TurboBoost™-Technologie ausgeführt werden, um einem oder mehreren Kernen oder anderen Berechnungsengines zu ermöglichen, um aufgrund von Bedingungen (z.B. Arbeitslast und Verfügbarkeit) mit einer höheren als der garantierten Betriebsfrequenz betrieben zu werden.
  • Eine weitere Leistungsverwaltungstechnik, die bei bestimmten Beispielen verwendet werden kann, ist ein dynamisches Austauschen von Arbeitslasten zwischen verschiedenen Berechnungsengines. Der Prozessor kann zum Beispiel asymmetrische Kerne oder andere Verarbeitungsengines aufweisen, die auf verschiedenen Leistungsaufnahmestufen betrieben werden, sodass in einer leistungsbeschränkten Situation eine oder mehrere Arbeitslasten dynamisch umgeschaltet werden können, um in einem niedrigeren Leistungskern oder einer anderen Berechnungsengine ausgeführt zu werden. Eine weitere beispielhafte Leistungsverwaltungstechnik ist das Ausführen regelmäßiger Hardware-Arbeitszyklen (Hardware Duty Cycling, HDC), was Kerne und/oder andere Berechnungsengines veranlassen kann, gemäß einem Arbeitszyklus regelmäßig aktiviert und deaktiviert zu werden, sodass einer oder mehrere Kerne während eines inaktiven Zeitraums des Arbeitszyklus inaktiv geschaltet werden können und während eines aktiven Zeitraums des Arbeitszyklus aktiv geschaltet werden können. Obwohl hier diese speziellen Beispiele beschrieben wurden, ist es selbstverständlich, dass in speziellen Ausführungsformen viele andere Leistungsverwaltungstechniken verwendet werden können.
  • Einige Ausführungsformen können in Prozessoren für verschiedene Märkte einschließlich in Serverprozessoren, Desktop-Prozessoren, mobilen Prozessoren und so weiter umgesetzt werden können. In 2 wird jetzt ein Blockschaltbild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie zu sehen ist, kann der Prozessor 200 ein Mehrkernprozessor sein, der eine Vielzahl von Kernen 210a bis 210n enthält. Bei einer Ausführungsform kann jeder dieser Kerne zu einem unabhängigen Leistungsbereich gehören und kann konfiguriert sein, um aufgrund einer Arbeitslast in aktive Zustände und/oder maximale Leistungsfähigkeitszustände einzutreten oder diese zu verlassen. Die verschiedenen Komponenten können über ein Verbindungselement 215 mit einem Systemagent 220 verbunden sein, der verschiedene Komponenten aufweist. Wie zu sehen ist, kann der Systemagent 220 ein gemeinsam genutzter Cachespeicher 230 sein, der ein Cachespeicher der letzten Ebene sein kann. Der Systemagent kann außerdem eine integrierte Speichersteuereinheit 240 aufweisen, um z.B. über einen Speicherbus mit einem (in 2 nicht gezeigten) Systemspeicher zu kommunizieren. Der Systemagent 220 kann auch verschiedene Schnittstellen 250 und eine Leistungssteuereinrichtung 255 aufweisen, die eine Logik enthalten kann, um die hier beschriebenen Leistungsverwaltungstechniken auszuführen. Bei der gezeigten Ausführungsform enthält die Leistungssteuereinrichtung 255 einen globalen Steuerschaltkreis 258, der ein Vorhandensein einer globalen Verletzung dynamisch ermitteln kann. Bei verschiedenen Umsetzungen kann diese globale Verletzung auf einer prozessorweiten Basis angezeigt werden oder sie kann bei Ausführungsformen, die in einen Multipartitionsprozessor eingebunden sind, auf einer Pro-Partitionsbasis angezeigt werden. Wenn eine solche globale Verletzung erkannt wird, kann der globale Steuerschaltkreis 258 eine globale Verletzung zu den Kernen 210 kommunizieren, die ihr lokales Drosselungsverhalten mindestens teilweise aufgrund dieser Anzeige der globalen Verletzung modulieren können, wie hier weiter unten beschrieben wird.
  • Außerdem kann durch die Schnittstellen 250a bis 250n eine Verbindung zu verschiedenen chipexternen Komponenten wie zum Beispiel zu Peripheriegeräten Massenspeichern und so weiter hergestellt werden. Obwohl bei der Ausführungsform der 2 diese spezielle Umsetzung gezeigt wird, ist die Umsetzung der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt.
  • In 3 wird jetzt ein Blockschaltbild eines Mehrbereichsprozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in der Ausführungsform der 3 gezeigt wird, weist der Prozessor 300 mehrere Bereiche auf. Insbesondere kann ein Kernbereich 310 eine Vielzahl von Kernen 3100 bis 310n enthalten, ein Grafikbereich 320 kann eine oder mehrerer Grafikengines enthalten und außerdem kann ein Systemagentenbereich 350 vorhanden sein. Bei einigen Ausführungsformen kann der Systemagentenbereich 350 mit einer unabhängigen anderen Frequenz als der Kernbereich funktionieren und kann allzeit eingeschaltet bleiben, um Leistungssteuerereignisse und eine Leistungsverwaltung so handzuhaben, dass die Bereiche 310 und 320 gesteuert werden können, um dynamisch in hohe und niedrige Leistungszustände einzutreten oder diese zu verlassen. Jeder der Bereiche 310 und 320 kann mit einer anderen Spannung und/oder Leistung funktionieren. Es ist zu beachten, dass obwohl hier nur drei Bereiche gezeigt werden, der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist und in weiteren Ausführungsformen können zusätzliche Bereich vorhanden sein. Zum Beispiel können Mehrkernbereiche vorhanden sein, die jeweils mindestens einen Kern aufweisen. Es ist zu beachten, dass in einem Mehrpartitionsprozessor mehrere Bereiche in einer einzigen Partition enthalten sein können, während in weiteren Umsetzungen jeder Bereich als seine eigene Partition betrachtet werden kann.
  • Im Allgemeinen kann jeder Kern 310 außerdem einen Cachespeicher der unteren Ebene zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen aufweisen. Die verschiedenen Kerne können ihrerseits miteinander und mit einem gemeinsam genutzten Cachespeicher verbunden sein, der aus einer Vielzahl von Einheiten eines Cachespeichers der letzten Ebene (Last Level Cache, LLC) 3400 bis 340n gebildet ist. Bei verschiedenen Ausführungsformen kann der LLC 340 von den Kernen und der Grafikengine sowie den verschiedenen Medienverarbeitungsschaltungen gemeinsam genutzt werden. Wie zu sehen ist, verbindet ein Ringverbindungselement 330 somit die Kerne miteinander und stellt eine Verbindung zwischen den Kernen, dem Grafikbereich 320 und der Systemagentenschaltung 350 bereit. Bei einer Ausführungsform kann das Verbindungselement 330 ein Teil des Kernbereichs sein. Bei weiteren Ausführungsformen kann das Ringverbindungselement jedoch zu seinem eigenen Bereich gehören.
  • Wie außerdem zu sehen ist, kann der Systemagentenbereich 350 eine Anzeigesteuereinheit 352 aufweisen, die eine Steuerung von einer und für eine Schnittstelle zu einer zugehörigen Anzeige bereitstellen kann. Wie außerdem zu sehen ist, kann der Systemagentenbereich 350 eine Leistungssteuereinrichtung 355 aufweisen, die eine Logik enthalten kann, um die hier beschriebenen Leistungsverwaltungstechniken auszuführen. Bei der gezeigten Ausführungsform weist die Leistungssteuereinrichtung 355 einen globalen Steuerschaltkreis 359 auf, der das Vorhandensein einer Verletzung dynamisch ermittelt und eine Anzeige der Verletzung z.B. an die Kerne 310 und/oder die Grafikengine 320 kommuniziert. Diese lokalen Schaltkreise können, wie hier beschrieben wird, ihrerseits die Drosselungsaktivität mindestens teilweise aufgrund der Anzeige einer lokalen Verletzung modulieren.
  • Wie außerdem in 3 zu sehen ist, kann der Prozessor 300 außerdem eine integrierte Speichersteuereinheit (Integrated Memory Controller, IMC) 370 aufweisen, die eine Schnittstelle zu einem Systemspeicher wie zum Beispiel einem dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) bereitstellen kann. Mehrere Schnittstellen 3800 bis 380n können vorhanden sein, um eine Verbindung zwischen dem Prozessor und weiteren Schaltungen zu ermöglichen. Bei einer Ausführungsform können zum Beispiel mindestens eine direkte Medienschnittstelle (Direct Media Interface, DMI-Schnittstelle) sowie eine oder mehrere PCIe™-Schnittstellen bereitgestellt werden. Darüber hinaus können zum Bereitstellen von Kommunikationen zwischen anderen Agenten wie zum Beispiel zusätzlichen Prozessoren oder anderen Schaltungen auch eine oder mehrere QPI-Schnittstellen bereitgestellt werden. Obwohl bei der Ausführungsform der 3 eine übergeordnete Ansicht gezeigt wird, ist es selbstverständlich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • In 4 wird eine Ausführungsform eines Prozessors dargestellt, der mehrere Kerne aufweist. Der Prozessor 400 weist jeden beliebigen Prozessor oder jede beliebige Verarbeitungsvorrichtung wie zum Beispiel einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein Ein-Chip-System (System on a Chip, SoC) oder eine andere Vorrichtung zum Ausführen eines Codes auf. Bei einer Ausführungsform weist der Prozessor 400 mindestens zwei Kerne, die Kerne 401 und 402, auf, die asymmetrische Kerne oder symmetrische Kerne (in der dargestellten Ausführungsform) aufweisen können. Der Prozessor 400 kann jedoch jede beliebige Anzahl von Verarbeitungselementen aufweisen, die symmetrisch oder asymmetrisch sein können.
  • Bei einer Ausführungsform bezieht sich ein Verarbeitungselement auf eine Hardware oder eine Logik, um einen Software-Thread zu unterstützen. Zu den Beispielen von Hardware-Verarbeitungselementen gehören: eine Threadeinheit, ein Threadschlitz, ein Thread, eine Verarbeitungseinheit, ein Kontext, eine Kontexteinheit, ein Logikprozessor, ein Hardware-Thread, ein Kern und/oder jedes beliebige andere Element, das in der Lage ist einen Zustand für einen Prozessor wie zum Beispiel einen Ausführungszustand oder einen Architekturzustand aufrechtzuerhalten. Mit anderen Worten bezieht sich ein Verarbeitungselement bei einer Ausführungsform auf eine beliebige Hardware, die in der Lage ist, dass ihm unabhängig ein Code wie zum Beispiel ein Software-Thread, ein Betriebssystem, eine Anwendung oder ein anderer Code zugeordnet wird. Ein physischer Prozessor bezieht sich typischerweise auf einen integrierten Schaltkreis, der potenziell eine beliebige Anzahl von weiteren Verarbeitungselementen wie zum Beispiel Kerne oder Hardware-Threads enthält.
  • Ein Kern bezieht sich oftmals auf eine Logik, die in einem integrierten Schaltkreis in der Lage ist, einen unabhängigen Architekturzustand beizubehalten, wobei jeder unabhängig beibehaltene Architekturzustand mindestens einigen zweckbestimmten Ausführungsressourcen zugeordnet ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread auf eine beliebige Logik, die in einem integrierten Schaltkreis angebracht ist und in der Lage ist, einen unabhängigen Architekturzustand beizubehalten, wobei die unabhängig beibehaltenen Architekturzustände einen Zugang zu Ausführungsressourcen gemeinsam nutzen. Wie zu sehen ist, überlagern sich die Linien zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere für einen Architekturzustand zweckbestimmt sind. Ein Kern und ein Hardware-Thread werden aber von Betriebssystem als individuelle Logikprozessoren betrachtet, bei denen das Betriebssystem in der Lage ist, Operationen in jedem Logikprozessor individuell zu planen.
  • Der physische Prozessor 400, wie er in 4 dargestellt wird, enthält zwei Kerne 401 und 402. Hier werden die Kerne 401 und 402 als symmetrische Kerne, d.h. Kerne mit den gleichen Konfigurationen, als Funktionseinheiten und/oder als eine andere Logik betrachtet. Bei einer weiteren Ausführungsform weist der Kern 401 einen reihefolgevariablen Prozessorkern auf, während der Kern 402 einen reihenfolgestarren Prozessorkern aufweist. Die Kerne 401 und 402 können jedoch individuell aus jedem beliebigen Kerntyp wie zum Beispiel einem nativen Kern, einen softwareverwalteten Kern, einen Kern, der geeignet ist zum Ausführen einer nativen Befehlssatzarchitektur (Instruction Set Architecture, ISA), einem Kern, der geeignet ist, um eine übersetzte ISA auszuführen, einen mitgestalteten Kern oder jedem weiteren bekannten Kern ausgewählt werden. In einer weiteren Erörterung werden die Funktionseinheiten, die in dem Kern 401 dargestellt werden, weiter unten ausführlicher beschrieben, wenn die Einheiten im Kern 402 in einer ähnlichen Weise betrieben werden.
  • Wie gezeigt wird, weist der Kern 401 zwei Hardware-Threads 401a und 401b auf, auf die auch als Hardware-Threadschlitze 401a und 401b Bezug genommen werden kann. Daher betrachten Software-Entitäten wie zum Beispiel ein Betriebssystem bei einer Ausführungsform den Prozessor 400 potenziell als vier separate Prozessoren, d.h. vier Logikprozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben erwähnt, ist ein erster Thread den Architekturzustandsregistern 401a zugeordnet, ein zweiter Thread ist den Architekturzustandsregistern 401b zugeordnet, ein dritter Thread ist den Architekturzustandsregistern 402a zugeordnet und ein vierter Thread ist den Architekturzustandsregistern 402b zugeordnet. Hierbei kann auf jedes der Architekturzustandsregister (401a, 401b, 402a und 402b) als Verarbeitungselemente, Threadschlitze oder Threadeinheiten Bezug genommen werden, wie oben beschrieben wurde. Wie dargestellt, werden die Architekturzustandsregister 401a in den Architekturzustandsregistern 401b nachgebildet, somit sind individuelle Architekturzustände/Kontexte in der Lage für den Logikprozessor 401a und den Logikprozessor 401b gespeichert zu werden. Im Kern 401 können auch andere kleinere Ressourcen wie zum Beispiel Befehlszeiger und eine Umbenennungslogik in einem Zuteilungs- und Umbenennungsblock 430 auch für die Threads 401a und 401b nachgebildet werden. Einige Ressourcen wie zum Beispiel Neuordnungspuffer in einer Neuordnungs-/Rückzugseinheit 435, ein I-TLB 420, Lade-/Speicherpuffer und Warteschlangen können durch ein Partitionieren gemeinsam genutzt werden. Weitere Ressourcen wie zum Beispiel interne Mehrzweckregister, Seiten-Tabellen-Basisregister, ein Datencachespeicher und ein Daten-TLB 415 einer unteren Ebene, Ausführungseinheit(en) 440 und Teile einer reihefolgevariablen Einheit 435 werden potenziell vollständig gemeinsam genutzt.
  • Der Prozessor 400 weist oftmals weiterer Ressourcen auf, die durch ein Partitionieren oder eine Zweckbestimmung durch/zu den Verarbeitungselementen vollständig gemeinsam genutzt werden können. In 4 wird eine Ausführungsform eines rein beispielhaften Prozessors mit anschaulichen Logikeinheiten/Ressourcen eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor jede dieser Funktionseinheiten aufweisen oder nicht enthalten kann, sowie alle anderen nicht gezeigten bekannten Funktionseinheiten, Logiken oder Firmware aufweisen kann. Wie dargestellt weist der Kern 401 einen vereinfachten repräsentativen reihefolgevariablen Prozessorkern (Out-Of-Order processor core, OOO-Prozessorkern) auf. Aber bei verschiedenen Ausführungsformen kann ein reihenfolgestarrer Prozessor verwendet werden. Der OOO-Kern enthält einen Zweigzielpuffer 420 zum Vorhersagen von Zweigen, die ausgeführt/aufgenommen werden müssen, und einen Befehlsübersetzungspuffer (Instruction-Translation Buffer, I-TLB) 420 zum Speichern von Adressenübersetzungseinträgen für Befehle.
  • Der Kern 401 enthält außerdem ein Decodiermodul 425, das mit einer Abrufeinheit 420 verbunden ist, um abgerufene Elemente zu decodieren. Bei einer Ausführungsform weist eine Abruflogik individuelle Sequenzer mit den Theradschlitzen 401a bzw. 401b auf. Üblicherweise ist dem Kern 401 eine erste ISA zugeordnet, die Befehle definiert/spezifiziert, die in dem Prozessor 400 ausführbar sind. Oftmals weisen Maschinencodebefehle, die Teil der ersten ISA sind, einen Teil des Befehls (auf den als Opcode Bezug genommen wird) auf, der einen auszuführenden Befehl oder eine auszuführende Operation referenziert/spezifiziert. Eine Decodierlogik 425 weist eine Schaltung auf, die diese Befehle aus ihren Opcodes erkennt und die decodierten Befehle in der Pipeline zum Verarbeiten weiterleitet, wie durch die erste ISA definiert wird. Bei einer Ausführungsform enthalten die Decodierer 425 zum Beispiel eine Logik, die gestaltet oder geeignet ist zum Erkennen spezifischer Befehle, wie zum Beispiel einen Transaktionsbefehl. Als ein Ergebnis des Erkennens durch die Decodierer 425 unternimmt die Architektur oder der Kern 401 spezifische vordefinierte Aktionen, um Aufgaben auszuführen, die zu dem entsprechenden Befehl gehören. Es ist wichtig zu beachten, dass hier beschriebene Aufgaben, Blöcke, Operationen und Verfahren als Reaktion auf einen einzigen oder mehrere Befehle ausgeführt werden können, von denen einige neue oder alte Befehle sein können.
  • Bei einem Beispiel enthält der Zuteilungs- und Umbenennungsblock 430 einen Zuteiler, um Ressourcen wie zum Beispiel Registerdateien zu reservieren, um Befehlsverarbeitungsergebnisse zu speichern. Die Threads 401a und 401b sind potenziell in der Lage für eine reihenfolgenvariable Ausführung, wobei der Zuteilungs- und Umbenennungsblock 430 auch andere Ressourcen wie zum Beispiel Neuordnungspuffer reserviert, um Befehlsergebnisse zu verfolgen. Die Einheit 430 kann auch einen Registerumbenenner enthalten, um die Programm-/Befehlsreferenzregister zu anderen Registern innerhalb des Prozessors 400 umzubenennen. Die Neuordnungs-/Rückzugseinheit 435 enthält Komponenten wie zum Beispiel die oben erwähnten Neuordnungpuffer, Ladepuffer und Speicherpuffer, um eine reihenfolgenvariable Ausführung und einen späteren reihenfolgestarren Rückzug der reihenfolgevariabel ausgeführten Befehle zu unterstützen.
  • Bei einer Ausführungsform enthält ein Block von Planungs- und Ausführungseinheit(en) 440 eine Planungseinheit zum Planen von Befehlen/Operationen in Ausführungseinheiten. Zum Beispiel wird ein Gleitkommazahlenbefehl an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommazahlenausführungseinheit aufweist. Es sind auch Registerdateien, die den Ausführungseinheiten zugeordnet sind, enthalten, um Informationsbefehlsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten enthalten eine Gleitkommaausführungseinheit, eine Ganzzahlenausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencachespeicher einer unteren Ebene und ein Datenübersetzungspuffer (Data-Translation Buffer, D-TLB) 450 sind mit der (den) Ausführungseinheit(en) 440 verbunden. Der Datencachespeicher dient zum Speichern gerade verwendeter/bearbeiteter Elemente wie zum Beispiel Datenoperanden, die potenziell in Speicherkohärenzzuständen aufbewahrt werden. Der D-TLB dient zum Speichern von kürzlich ausgeführten virtuellen/linearen zu physischen Adressenübersetzungen. Bei einem spezifischen Beispiel kann ein Prozessor eine Seitentabellenstruktur aufweisen, um einen physischen Speicher in eine Vielzahl von virtuellen Seiten aufzubrechen.
  • Herbei nutzen die Kerne 401 und 402 einen Zugriff auf eine höhere Ebene oder auf einen weiter außen liegenden Cachespeicher 410 gemeinsam, der dazu dient, kürzlich abgerufene Elemente zwischenzuspeichern. Es ist zu beachten, dass sich „höhere Ebene“ oder „weiter außen liegend“ auf Cachespeicherebenen beziehen, die höher oder weiter entfernt von der (den) Ausführungseinheit(en) liegen. Bei einer Ausführungsform ist ein Cachespeicher einer höheren Ebene 410 ein Datencachespeicher der letzten Ebene - letzter Cachespeicher in der Speicherhierarchie im Prozessor 400 - wie zum Beispiel ein Datencachespeicher der zweiten oder dritten Ebene. Ein Cachespeicher einer höheren Ebene 410 ist jedoch nicht so begrenzt, da er zu einem Befehlscachespeicher gehört oder diesen enthält. Ein Spurencachespeicher - ein Typ eines Befehlscachespeichers - kann stattdessen hinter den Decodierer 425 geschaltet werden, um gerade decodierte Spuren zu speichern.
  • Bei der gezeigten Konfiguration enthält der Prozessor 400 auch ein Busschnittstellenmodul 405 und eine Leistungssteuereinheit 460, die eine Leistungsverwaltung gemäß einer Ausführungsform der vorliegenden Erfindung ausführen. Bei diesem Szenarium dient die Busschnittstelle 405 dazu, mit prozessorexternen 400 Vorrichtungen wie zum Beispiel einem Systemspeicher und anderen Komponenten zu kommunizieren.
  • Eine Speichersteuereinheit 470 kann über eine Schnittstelle mit anderen Vorrichtungen wie zum Beispiel einem oder mehreren Speichern verbunden sein. Bei einem Beispiel weist die Busschnittstelle 405 ein Ringverbindungselement mit einer Speichersteuereinheit, um über eine Schnittstelle mit einem Speicher verbunden zu sein, und eine Grafiksteuereinheit auf, um über eine Schnittstelle mit einem Grafikprozessor verbunden zu sein. In einer SoC-Umgebung können sogar noch mehr Vorrichtungen wie zum Beispiel eine Netzwerkschnittstelle, Coprozessoren, ein Speicher, ein Grafikprozessor und jede beliebige andere bekannte Computervorrichtung/-schnittstelle auf einem einzigen Chip oder in einen integrierten Schaltkreis integriert sein, um einen kleinen Formfaktor mit einer hohen Funktionalität und einer geringen Leistungsaufnahme bereitzustellen.
  • In 5 wird jetzt ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 5 gezeigt wird, kann der Prozessorkern 500 ein mehrstufiger reihenfolgevariabler Pipelineprozessor sein. Der Kern 500 kann aufgrund der empfangenen Betriebsspannung, die von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann, mit verschiedenen Spannungen betrieben werden.
  • Wie in 5 zu sehen ist, enthält der Kern 500 Front-End-Einheiten 510, die verwendet werden können, um auszuführende Befehle abzurufen und sie für eine spätere Verwendung in der Prozessorpipeline vorzubereiten. Die Front-End-Einheiten 510 können zum Beispiel eine Abrufeinheit 501, einen Befehlscachespeicher 503 und einen Befehlsdecodierer 505 enthalten. Bei einigen Umsetzungen können die Front-End-Einheiten 510 außerdem einen Spurencachespeicher zusammen mit einem Mikrocodespeicher sowie einen Mikrooperationsspeicher enthalten. Die Abrufeinheit 501 kann Makrobefehle z.B. aus einem Speicher oder einem Befehlscachespeicher 503 abrufen und in den Befehlsdecodierer 505 einspeisen, um sie in Grundformen, d.h. in Mikrooperationen für eine Ausführung durch den Prozessor zu decodieren.
  • Eingebunden zwischen die Front-End-Einheiten 510 und die Ausführungseinheiten 520 ist eine reihenfolgevariable Engine (Out-Of-Order engine, OOO-Engine) 515, die verwendet werden kann, um die Mikrobefehle zu empfangen und sie für eine Ausführung vorzubereiten. Die OOO-Engine 515 kann insbesondere verschiedene Puffer enthalten zum Neuordnen des Mikrobefehlsflusses und zum Zuteilen verschiedener Ressourcen, die für eine Ausführung benötigt werden, und zum Bereitstellen einer Umbenennung von Logikregistern auf Speicherorte innerhalb verschiedener Registerdateien wie zum Beispiel der Registerdatei 530 und der erweiterten Registerdatei 535. Die Registerdatei 530 kann separate Registerdateien für Ganzzahlen- und Gleitkommazahlenoperationen aufweisen. Die erweiterte Registerdatei 535 kann einen Speicher für Vektorgrößeneinheiten mit z.B. 256 oder 512 Bits pro Register bereitstellen. Zu Zwecken einer Konfiguration, Steuerung und zusätzlichen Operationen kann auch eine Gruppe von maschinenspezifischen Registern (Machine Specific Registers, MSRs) 538 vorhanden und für verschiedene Logiken innerhalb des Kerns 500 (und außerhalb des Kerns) zugänglich sein.
  • In den Ausführungseinheiten 520 können verschiedene Ressourcen einschließlich zum Beispiel verschiedener Ganzzahlen-, Gleitkomma- und Einzelbefehlsmehrfachdaten-Logikeinheiten (Single Instruction Multiple Data logic unit, SIMD-Logikeinheit) unter anderer weiterer spezialisierter Hardware vorhanden sein. Diese Ausführungseinheiten können zum Beispiel eine oder mehrere arithmetische Logikeinheiten (Arithmetic Logic Units, ALUs) 522 und eine oder mehrere Vektorausführungseinheiten 524 unter anderen weiteren spezialisierten Ausführungseinheiten aufweisen.
  • Ergebnisse von den Ausführungseinheiten können der Rückzugslogik, insbesondere einem Neuordnungpuffer (Re-Order Buffer, ROB) 540 bereitgestellt werden. Der ROB 540 kann insbesondere verschiedene Matrizen und Logiken aufweisen, um Informationen zu empfangen, die den Befehlen zugeordnet sind, die ausgeführt werden. Diese Informationen werden dann von dem ROB 540 untersucht, um zu ermitteln, ob die Befehle in gültiger Weise zurückgezogen werden können und die Ergebnisdaten an den Architekturzustand des Prozessors gebunden sind oder ob eine oder mehrere Ausnahmen aufgetreten sind, die einen ordnungsgemäßen Rückzug der Befehle verhindern. Natürlich kann der ROB 540 weitere Operationen handhaben, die einem Rückzug zugeordnet sind.
  • Wie in 5 gezeigt wird, ist der ROB 540 mit einem Cachespeicher 550 verbunden, der bei einer Ausführungsform ein Cachespeicher einer unteren Ebene (z.B. ein L1-Cachespeicher) sein kann, obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Die Ausführungseinheiten 520 können auch direkt mit dem Cachespeicher 550 verbunden sein. Von dem Cachespeicher 550 kann eine Datenkommunikation mit Cachespeichern höherer Ebenen, einem Systemspeicher und so weiter stattfinden. Obwohl bei der Ausführungsform der 5 eine übergeordnete Ansicht gezeigt wird, ist es selbstverständlich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Obwohl die Umsetzung der 5 zum Beispiel in Hinsicht auf eine reihenfolgevariable Maschine wie zum Beispiel eine Intel®-x86-Befehlssatzarchitektur (Instruction Set Architecture, ISA) erfolgt, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt. Das heißt, das weitere Ausführungsformen in einem reihenfolgestarren Prozessor, einem Computerprozessor mit einem verringerten Befehlssatz (Reduced Instruction Set Computing processor, RISC-Prozessor) wie zum Beispiel einem ARM-basierten Prozessor oder einem Prozessor eines anderen ISA-Typs umgesetzt werden können, der Befehle und Operationen einer anderen ISA über eine Emulationsengine und zugehörige Logikschaltungen emulieren kann.
  • In 6 wird jetzt ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform gezeigt. Bei der Ausführungsform der 6 kann der Kern 600 ein Kern mit niedriger Leistungsaufnahme mit einer anderen Mikroarchitektur wie zum Beispiel ein Intel®-Atom™-basierter Prozessor sein, der eine relativ begrenzte Pipelinetiefe aufweist, die gestaltet ist, um die Leistungsaufnahme zu verringern. Wie zu sehen ist, enthält der Kern 600 einen Befehlscachespeicher 610, der angeschlossen ist, um Befehle für einen Befehlsdecodierer 615 bereitzustellen. Ein Zweigprädiktor 605 kann mit dem Befehlscachespeicher 610 verbunden sein. Es ist zu beachten, dass der Befehlscachespeicher 610 außerdem mit einer anderen Ebene eines Cachespeichers wie zum Beispiel einem (der einfacheren Darstellung halber in 6 nicht gezeigten) L2-Cachespeicher verbunden sein kann. Der Befehlsdecodierer 615 stellt seinerseits decodierte Befehle für eine Speicherung in einer Ausgabewarteschlange 620 und für eine Übergabe an eine gegebene Ausführungspipeline bereit. Ein Mikrocode-ROM 618 ist mit dem Befehlsdecodierer 615 verbunden.
  • Eine Gleitkommapipeline 630 enthält eine Gleitkommaregisterdatei 632, die eine Vielzahl von Architekturregistern mit einer gegebenen Bitbreite wie zum Beispiel 128, 256 oder 512 Bits aufweisen kann. Die Pipeline 630 enthält einen Gleitkommaplaner 634, um Befehle für eine Ausführung in einer von mehreren Ausführungseinheiten der Pipeline zu planen. Bei der gezeigten Ausführungsform enthalten diese Ausführungseinheiten eine ALU 635, eine Mischeinheit 636 und einen Gleitkommaaddierer 638. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können ihrerseits zurück an die Puffer und/oder Register der Registerdatei 632 übergeben werden. Obwohl nur diese wenigen beispielhaften Ausführungseinheiten gezeigt wurden, ist es natürlich selbstverständlich, dass bei einer weiteren Ausführungsform zusätzliche oder unterschiedliche Gleitkommaausführungseinheiten vorhanden sein können.
  • Es kann auch eine Ganzzahlenpipeline 640 bereitgestellt werden. Bei der gezeigten Ausführungsform enthält die Pipeline 640 eine Gleitkommaregisterdatei 642, die eine Vielzahl von Architekturregistern mit einer gegebenen Bitbreite wie zum Beispiel 128 oder 256 Bits aufweisen kann. Die Pipeline 640 enthält einen Ganzzahlenplaner 644, um Befehle für eine Ausführung in einer von mehreren Ausführungseinheiten der Pipeline zu planen. Bei der gezeigten Ausführungsform enthalten diese Ausführungseinheiten eine ALU 645, eine Verschiebeeinheit 646 und eine Sprungausführungseinheit 648. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können ihrerseits zurück an die Puffer und/oder Register der Registerdatei 642 übergeben werden. Obwohl nur diese wenigen beispielhaften Ausführungseinheiten gezeigt wurden, ist es natürlich selbstverständlich, dass bei einer weiteren Ausführungsform zusätzliche oder unterschiedliche Ganzzahlenausführungseinheiten vorhanden sein können.
  • Ein Speicherausführungsplaner 650 kann Speicheroperationen zur Ausführung in einer Adressenerzeugungseinheit 652 planen, die auch mit einem TLB 654 verbunden ist. Wie zu sehen ist, können diese Strukturen mit einem Datencachespeicher 660 verbunden sein, der ein L0- und/oder ein L1-Datencachespeicher sein kann, der seinerseits mit zusätzlichen Ebenen einer Cachespeicherhierarchie einschließlich eines L2-Cachespeichers verbunden ist.
  • Zum Bereitstellen einer Unterstützung für eine reihenfolgevariable Ausführung kann ein Zuteiler/Umbenenner 670 zusätzlich zu einem Neuordnungpuffer 680 bereitgestellt werden, der konfiguriert ist zum Neuordnen von Befehlen die reihenfolgevariabel für einen reihenfolgestarren Rückzug ausgeführt werden. Obwohl die Darstellung der 6 mit dieser besonderen Pipelinearchitektur gezeigt wird, ist es selbstverständlich, dass viele Variationen und Alternativen möglich sind.
  • Es ist zu beachten, dass bei einem Prozessor, der asymmetrische Kerne wie zum Beispiel gemäß den Mikroarchitekturen der 5 und 6 aufweist, die Arbeitslasten aus Verwaltungsgründen dynamisch zwischen den Kernen ausgetauscht werden können, da diese Kerne, die unterschiedliche Pipelinegestaltungen und -tiefen aufweisen, zu der gleichen oder einer verwandten ISA gehören. Dieser dynamische Kernaustausch kann in einer für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparenten Weise ausgeführt werden.
  • In 7 wird ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform gezeigt. Wie in 7 dargestellt wird, kann ein Kern 700 eine mehrstufige reihenfolgestarre Pipeline aufweisen, um auf einer sehr niedrigen Leistungsaufnahmeebene zu funktionieren. Als ein solches Beispiel kann der Prozessor 700 eine Mikroarchitektur gemäß einer ARM-Cortex-A53-Gestaltung aufweisen, die bei der ARM Holdings, LTD., Sunnyvale, Kalif. zur Verfügung steht. Bei einer Umsetzung kann eine 8-Stufen-Pipeline bereitgestellt werden, die konfiguriert ist, um sowohl einen 32-Bit- als auch einen 64-Bit-Code auszuführen. Der Kern 700 enthält eine Abrufeinheit 710, die konfiguriert ist zum Abrufen von Befehlen und zum Bereitstellen derselben für eine Decodiereinheit 715, welche die Befehle z.B. Makrobefehle einer gegebenen ISA wie zum Beispiel eine ARMv8-ISA decodieren kann. Es ist außerdem zu beachten, dass eine Warteschlange 730 mit der Decodiereinheit 715 verbunden sein kann, um die decodierten Befehle zu speichern. Die decodierten Befehle werden einer Ausgabelogik 725 bereitgestellt, von wo die decodierten Befehle an eine Gegebene von mehreren Ausführungseinheiten ausgegeben werden können.
  • In 7 kann die Ausgabelogik 725 außerdem Befehle an Eine von mehreren Ausführungseinheiten ausgeben. Bei der gezeigten Ausführungsform weisen diese Ausführungseinheiten eine Ganzzahleneinheit 735, eine Multipliziereinheit 740, eine Gleitkomma-/Vektoreinheit 750, eine Doppelausgabeeinheit 760 und eine Lade-/Speichereinheit 770 auf. Die Ergebnisse dieser unterschiedlichen Ausführungseinheiten können einer Rückschreibeeinheit 780 bereitgestellt werden. Es ist selbstverständlich, dass, obwohl der einfacheren Darstellung halber nur eine einzige Rückschreibeeinheit gezeigt wird, bei einigen Umsetzungen Jeder der Ausführungseinheiten separate Rückschreibeeinheiten zugeordnet sein können. Darüber hinaus ist es selbstverständlich, dass, obwohl Jede der Einheiten und Logiken in 7 in einer übergeordneten Darstellung gezeigt wird, eine spezielle Umsetzung mehr oder andere Strukturen aufweisen kann. Ein Prozessor, der mithilfe eines oder mehrerer Kerne gestaltet ist, die eine Pipeline wie in 7 aufweisen, kann in vielen verschiedenen Endprodukten umgesetzt werden, die von mobilen Vorrichtungen bis zu Serversystemen reichen.
  • In 8 wird ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform gezeigt. Wie in 8 dargestellt wird, kann ein Kern 800 eine mehrstufige, superskalare, reihenfolgevariable Pipeline enthalten, um auf sehr hohen Leistungsfähigkeitsebenen (die auf höheren Leistungsaufnahmeebenen als der Kern 700 in 7 stattfinden können) ausgeführt zu werden. Bei einem solchen Beispiel kann der Prozessor 800 eine Mikroarchitektur gemäß einer ARM-Cortex-A57-Gestaltung aufweisen. Bei einer Umsetzung kann eine 15- (oder mehr) stufige Pipeline bereitgestellt werden, die konfiguriert ist zum Ausführen sowohl eines 32-Bit- als auch eines 64-Bit-Codes. Außerdem kann die Pipeline eine 3-breite (oder breitere) Operation und eine 3- (oder mehr)-Ausgabeoperation bereitstellen kann. Der Kern 800 enthält eine Abrufeinheit 810, die konfiguriert ist zum Abrufen von Befehlen und zum Bereitstellen derselben für einen Decodierer/Umbenenner/Verteiler 815, der die Befehle z.B. Makrobefehle einer ARMv8-Befehlssatzarchitektur decodieren, Registerreferenzen innerhalb der Befehle umbenennen und die Befehle (letztlich) zu einer ausgewählten Ausführungseinheit verteilen kann. Die decodierten Befehle können in einer Warteschlange 825 gespeichert werden. Es ist zu beachten, dass, obwohl einer einfacheren Darstellung halber in 8 nur eine einzige Warteschlangenstruktur gezeigt wird, es selbstverständlich ist, dass separate Warteschlangen für Jede der unterschiedlichen Typen von Ausführungseinheiten bereitgestellt werden können.
  • In 8 wird auch eine Ausgabelogik 830 gezeigt, von der decodierte Befehle, die in der Warteschlange 825 gespeichert sind, an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Ausgabelogik 830 kann auch in einer speziellen Ausführungsform mit einer separaten Ausgabelogik für Jede der unterschiedlichen Typen von Ausführungseinheiten umgesetzt werden, die mit der Ausgabelogik 830 verbunden sind.
  • Decodierte Befehle können zu einer Gegebenen der mehreren Ausführungseinheiten ausgegeben werden. Bei der gezeigten Ausführungsform weisen diese Ausführungseinheiten eine oder mehrere Ganzzahleneinheiten 835, eine Multipliziereinheit 840, eine Gleitkomma-/Vektoreinheit 850, eine Verzweigungseinheit 860 und eine Lade-/Speichereinheit 870 auf. Bei einer Ausführungsform kann die Gleitkomma-/Vektoreinheit 850 konfiguriert sein, um SIMD oder Vektordaten von 128 oder 256 Bits zu handhaben. Darüber hinaus kann die Gleitkomma-/Vektorausführungseinheit 850 IEEE-754-Gleitkommaoperationen mit doppelter Genauigkeit ausführen. Die Ergebnisse dieser unterschiedlichen Ausführungseinheiten können einer Rückschreibeeinheit 880 bereitgestellt werden. Es ist zu beachten, dass bei einigen Umsetzungen jede der Ausführungseinheiten separate Rückschreibeeinheiten zugeordnet sein können. Darüber hinaus ist es selbstverständlich, dass, obwohl jede der Einheiten und Logiken in 8 in einer übergeordneten Darstellung gezeigt wird, eine spezielle Umsetzung mehr oder andere Strukturen aufweisen kann.
  • Es ist zu beachten, dass bei einem Prozessor, der asymmetrische Kerne wie zum Beispiel gemäß den Mikroarchitekturen der 7 und 8 aufweist, die Arbeitslasten aus Verwaltungsgründen dynamisch ausgetauscht werden können, da diese Kerne, die unterschiedliche Pipelinegestaltungen und -tiefen aufweisen, zu der gleichen oder einer verwandten ISA gehören. Dieser dynamische Kernaustausch kann in einer für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparenten Weise ausgeführt werden.
  • Ein Prozessor, der mithilfe eines oder mehrerer Kerne gestaltet ist, die Pipelines wie in einer oder mehreren der 5 bis 8 aufweisen, kann in vielen verschiedenen Endprodukten umgesetzt werden, die von mobilen Vorrichtungen bis zu Serversystemen reichen. In 9 wird jetzt ein Blockschaltbild eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Bei der Ausführungsform der 9 kann ein Prozessor 900 ein SoC sein, das mehrere Bereiche aufweist, die jeweils gesteuert werden können, um mit einer unabhängigen Betriebsspannung und einer unabhängigen Betriebsfrequenz betrieben zu werden. Bei einem spezifischen anschaulichen Beispiel kann der Prozessor 900 ein Intel®-Architecture-Core™-basierter Prozessor wie zum Beispiel ein i3, i5, i7 oder ein anderer solcher Prozessor sein, der bei der Intel Corporation zur Verfügung steht. Bei weiteren Ausführungsformen können jedoch andere Prozessoren mit niedriger Leistungsaufnahme, wie sie zum Beispiel von Advanced Micro Devices, Inc. (AMD) aus Sunnyvale, Kalif., in einer ARM-basierte Gestaltung von ARM Holdings, Ltd. oder deren Lizenznehmer oder einer MIPS-basierten Gestaltung von MIPS Technologies, Inc. aus Sunnyvale, Kalif. oder ihrer Lizenznehmer oder Anwender zur Verfügung stehen, vorhanden sein wie zum Beispiel ein Apple-A7-Prozessor, ein Qualcomm Snapdragon-Prozessor oder ein Texas Instruments OMAP-Prozessor. Dieses SoC kann in einem System mit niedriger Leistungsaufnahme wie zum Beispiel einem Smartphone, einem Tablet-Computer, einem Phablet-Computer, einem Ultrabook™-Computer oder einer anderen tragbaren Computervorrichtung oder angeschlossenen Vorrichtung verwendet werden.
  • In der in 9 gezeigten übergeordneten Ansicht weist der Prozessor 900 eine Vielzahl von Kerneinheiten 9100 bis 910n auf. Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Speicher und andere Schaltungen aufweisen. Jede Kerneinheit 910 kann einen oder mehrere Befehlssätze (z.B. einen x86-Befehlssatz (mit einigen Erweiterungen, die in neueren Versionen hinzugefügt wurden); einen MIPS-Befehlssatz; einen ARM-Befehlssatz (mit optionalen Erweiterungen wie zum Beispiel NEON)) oder andere Befehlssätze oder Kombinationen davon unterstützen. Es ist zu beachten, dass einige der Kerneinheiten heterogene Ressourcen (z.B. mit unterschiedlichen Gestaltungen) sein können. Außerdem kann jeder dieser Kerne mit einem (nicht gezeigten) Cachespeicher verbunden sein, der bei einer Ausführungsform ein gemeinsam genutzter Ebenencachespeicher (L2-Cachespeicher) sein kann. Ein nichtflüchtiger Speicher 930 kann verwendet werden, um verschiedene Programm- oder andere Daten zu speichern. Dieser Speicher kann zum Beispiel verwendet werden, um mindestens Teile eines Mikrocodes, Bootinformationen wie zum Beispiel ein BIOS, andere Systemsoftware und so weiter zu speichern.
  • Jede Kerneinheit 910 kann auch eine Schnittstelle wie zum Beispiel eine Busschnittstelleneinheit enthalten, um eine Verbindung zu zusätzlichen Schaltungen des Prozessors zu ermöglichen. Bei einer Ausführungsform ist jede Kerneinheit 910 mit einer kohärenten Verbindungsstruktur verbunden, die als ein primäres Cachespeicher-kohärentes chipinternes Verbindungselement funktioniert, das seinerseits mit einer Speichersteuereinheit 935 verbunden ist. Die Speichersteuereinheit 935 steuert ihrerseits Kommunikationen mit einem Speicher wie zum Beispiel einem DRAM (der einer einfacheren Darstellung halber in 9 nicht gezeigt wird).
  • Ergänzend zu den Kerneinheiten sind zusätzliche Verarbeitungsengines innerhalb des Prozessors einschließlich einer Grafikeinheit 920 vorhanden, die eine oder mehrere Grafikverarbeitungseinheiten (Graphics Processing Units, GPUs) aufweisen kann, um eine Grafikverarbeitung durchzuführen sowie möglicherweise Mehrzweckoperationen an dem Grafikprozessor (eine sogenannte GPGPU-Operation) auszuführen. Außerdem kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann konfiguriert sein zum Verarbeiten eingehender Bilddaten, die von einer oder mehreren entweder SoC-internen oder chipexternen Aufnahmevorrichtungen empfangen werden.
  • Es können auch weitere Beschleuniger vorhanden sein. In der Darstellung der 9 kann ein Video-Codierer 950 Codierungsoperationen einschließlich eines Codierens und eines Decodierens von Videoinformationen ausführen, z.B. indem eine Hardwarebeschleunigungsunterstützung für einen hochauflösenden Videoinhalt bereitgestellt wird. Eine Anzeigesteuereinheit 955 kann außerdem bereitgestellt werden, um Anzeigeoperationen einschließlich eines Bereitstellens einer Unterstützung für interne und externe Anzeigen eines Systems zu beschleunigen. Außerdem kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsoperationen wie zum Beispiel sichere Bootoperationen, verschiedene Verschlüsselungsoperationen und so weiter auszuführen.
  • Für jede der Einheiten kann ihre Leistungsaufnahme durch einen Leistungsmanager 940 gesteuert werden, der eine Steuerlogik aufweist, um verschiedene hier beschriebene Leistungsverwaltungstechniken auszuführen.
  • Bei einigen Ausführungsformen kann das SoC 900 außerdem eine nichtkohärente Verbindungsstruktur aufweisen, die mit der kohärenten Verbindungsstruktur verbunden ist, mit der verschiedene Peripheriegeräte verbunden werden können. Eine oder mehrere Schnittstellen 960a bis 960d ermöglichen eine Kommunikation mit einer oder mehreren chipexternen Vorrichtungen. Diese Kommunikationen können über eine Vielfalt von Kommunikationsprotokollen wie zum Beispiel PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI unter anderen Typen von Kommunikationsprotokollen erfolgen. Obwohl bei der Ausführungsform der 9 eine übergeordnete Ansicht gezeigt wird, ist es selbstverständlich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • In 10 wird jetzt ein Blockschaltbild eines repräsentativen SoC gezeigt. Bei der gezeigten Ausführungsform kann das SoC 1000 ein Mehrkern-SoC sein, das konfiguriert ist für eine Operation mit niedriger Leistungsaufnahme, um für eine Einbindung in ein Smartphone oder eine andere Vorrichtung mit niedriger Leistungsaufnahme wie zum Beispiel einen Tablet-Computer oder eine andere tragbare Computervorrichtung optimiert zu sein. Bei einem Beispiel kann das SoC 1000 mithilfe von asymmetrischen oder unterschiedlichen Typen von Kernen wie zum Beispiel Kombinationen aus Kernen mit hoher Leistungsaufnahme und/oder mit niedriger Leistungsaufnahme z.B. reihenfolgevariablen Kernen und reihenfolgestarren Kernen umgesetzt werden. Bei verschiedenen Ausführungsformen können diese Kerne auf einer Intel® Architecture™-Kerngestaltung oder einer ARM-Architekturgestaltung beruhen. Bei noch weiteren Ausführungsformen kann in einem gegebenen SoC eine Mischung aus Intel®- und ARM-Kernen umgesetzt werden.
  • Wie in 10 zu sehen ist, enthält das SoC 1000 einen ersten Kernbereich 1010, der eine Vielzahl von ersten Kernen 10120 bis 10123 aufweist. Bei einem Beispiel können diese Kerne Kerne mit niedriger Leistungsaufnahme wie zum Beispiel reihenfolgestarre Kerne sein. Bei einer Ausführungsform können diese Kerne als ARM-Cortex-A53-Kerne umgesetzt sein. Diese Kerne sind ihrerseits mit einem Cachespeicher 1015 des Kernbereichs 1010 verbunden. Das SoC 1000 weist außerdem einen zweiten Kernbereich 1020 auf. In der Darstellung der 10 weist der zweite Kernbereich 1020 eine Vielzahl von zweiten Kernen 10220 bis 10223 auf. Bei einem Beispiel können diese Kerne Kerne mit höherer Leistungsaufnahme als die ersten Kerne 1012 sein. Bei einer Ausführungsform können die zweiten Kerne reihenfolgevariable Kerne sein, die als ARM-Cortex-A57-Kerne umgesetzt sein können. Diese Kerne sind ihrerseits mit einem Cachespeicher 1025 des Kernbereichs 1020 verbunden. Es ist zu beachten, dass, obwohl das Beispiel in 10 in jedem Bereich 4 Kerne aufweist, es selbstverständlich ist, dass bei weiteren Beispielen mehr oder weniger Kerne in einem gegebenen Bereich vorhanden sein können.
  • Immer noch in 10 wird auch ein Grafikbereich 1030 bereitgestellt, der eine oder mehrere Grafikverarbeitungseinheiten (Graphics Processing Units, GPUs) aufweisen kann, die konfiguriert sind, um unabhängig voneinander Grafikarbeitslasten auszuführen, die z.B. durch einen oder mehrere Kerne der Kernbereiche 1010 und 1020 bereitgestellt werden. Bei einem Beispiel kann der GPU-Bereich 1030 verwendet werden, um eine Anzeigeunterstützung für eine Vielfalt von Bildschirmgrößen zusätzlich zum Bereitstellen von Grafik- und Anzeigewiedergabeoperationen bereitzustellen.
  • Wie zu sehen ist, sind die verschiedenen Bereiche mit einem kohärenten Verbindungselement 1040 verbunden, das bei einer Ausführungsform eine kohärente Cachespeicher-Verbindungsstruktur sein kann, die ihrerseits mit einer integrierten Speichersteuereinheit 1050 verbunden ist. Das kohärente Verbindungselement 1040 kann bei einigen Beispielen einen gemeinsam genutzten Cachespeicher wie zum Beispiel einen L3-Cachespeicher aufweisen. Bei einer Ausführungsform kann die Speichersteuereinheit 1050 eine direkte Speichersteuereinheit sein, um mehrere Kommunikationskanäle mit einem chipexternen Speicher wie zum Beispiel mehreren Kanälen eines (einer einfacheren Darstellung halber in 10 nicht gezeigten) DRAM bereitzustellen.
  • Bei verschiedenen Beispielen kann die Anzahl von Kernbereichen variieren. Zum Beispiel kann für ein SoC mit niedriger Leistungsaufnahme, das für einen Einbau in eine mobile Computervorrichtung geeignet ist, eine begrenzte Anzahl von Kernbereichen vorhanden sein, wie in 10 gezeigt wird. Darüber hinaus kann in diesen SoCs mit niedriger Leistungsaufnahme der Kernbereich 1020, der Kerne mit einer höheren Leistungsaufnahme enthält, geringere Anzahlen von diesen Kernen aufweisen. Bei einer Umsetzung können zum Beispiel zwei Kerne 1022 bereitgestellt werden, um eine Operation mit verringerten Leistungsaufnahmepegeln zu ermöglichen. Die verschiedenen Kernbereiche können außerdem auch mit einer Unterbrechungssteuereinheit verbunden sein, um einen dynamischen Austausch von Arbeitslasten zwischen verschiedenen Bereichen zu ermöglichen.
  • Bei noch weiteren Ausführungsformen kann eine größere Anzahl von Kernbereichen sowie zusätzliche optionale IP-Logiken vorhanden sein, dadurch, dass ein SoC auf höhere Leistungsfähigkeits- (und Leistungs-)Pegel für einen Einbau in andere Computervorrichtungen wie zum Beispiel Desktop-Computer, Server, Hochleistungscomputersysteme, Basisstationen und so weiter skaliert sein kann. Bei einem solchen Beispiel können 4 Kernbereiche bereitgestellt werden, die jeweils eine gegebene Anzahl von reihenfolgevariablen Kernen aufweisen. Darüber hinaus können auch zusätzlich zur optionalen GPU-Unterstützung (die bei einem Beispiel die Form einer GPGPU annehmen kann) ein oder mehrere Beschleuniger bereitgestellt werden, um eine optimierte Hardwareunterstützung für bestimmte Funktionen (z.B. Webdienste, Netzwerkverarbeitung, Vermittlungen und so weiter) bereitzustellen. Außerdem kann eine Eingangs-/Ausgangsschnittstelle vorhanden sein, um diese Beschleuniger mit chipexternen Komponenten zu verbinden.
  • In 11 wird jetzt ein Blockschaltbild eines weiteren beispielhaften SoC gezeigt. Bei der Ausführungsform der 11 kann das SoC 1100 verschiedene Schaltungen enthalten, um eine Leistungsfähigkeit für Multimedia-Anwendungen, Kommunikationen und andere Funktionen zu ermöglichen. Von daher ist das SoC 1100 geeignet für einen Einbau in eine breite Vielfalt von tragbaren und anderen Vorrichtungen wie zum Beispiel Smartphones, Tablet-Computer, Smart-TVs und so weiter. Bei dem gezeigten Beispiel enthält das SoC 1100 einen zentralen Prozessoreinheitsbereich (Central Processor Unit domain, CPU-Bereich) 1110. Bei einer Ausführungsform kann eine Vielzahl von individuellen Prozessorkernen in dem CPU-Bereich 1110 vorhanden sein. Bei einem Beispiel kann der CPU-Bereich 1110 ein Vierkernprozessor sein, der 4 Multithread-Kerne aufweist. Diese Prozessoren können homogene oder heterogene Prozessoren z.B. eine Mischung aus Prozessorkernen mit niedriger Leistungsaufnahme und mit hoher Leistungsaufnahme sein.
  • Der GPU-Bereich 1120 wird seinerseits bereitgestellt zum Ausführen einer fortgeschrittenen Grafikverarbeitung in einer oder mehreren GPUs, um Grafiken zu handhaben und APIs zu berechnen. Eine DSP-Einheit 1130 kann einen oder mehrere DSPs mit niedriger Leistungsaufnahme bereitstellen, um Multimedia-Anwendungen mit niedriger Leistungsaufnahme wie zum Beispiel Musikwiedergabe, Audio/Video und so weiter zusätzlich zu fortgeschrittenen Berechnungen zu handhaben, die während einer Ausführung von Multimedia-Befehlen stattfinden können. Eine Kommunikationseinheit 1140 kann ihrerseits verschiedene Komponenten aufweisen, um eine Konnektivität über verschiedene drahtlose Protokolle wie zum Beispiel einer Zellularkommunikation (einschließlich 3G/4G LTE), drahtlose Lokalbereichsprotokolle wie zum Beispiel Bluetooth™, IEEE 802.11 und so weiter bereitzustellen.
  • Darüber hinaus kann ein Multimedia-Prozessor 1150 verwendet werden, um eine Aufnahme und eine Wiedergabe eines hochauflösenden Video- und Audioinhalts einschließlich einer Verarbeitung von Benutzergesten auszuführen. Eine Sensoreinheit 1160 kann eine Vielzahl von Sensoren und/oder eine Sensorsteuereinheit aufweisen, um über eine Schnittstelle mit verschiedenen chipexternen Sensoren in einer gegebenen Plattform verbunden zu werden. Ein Bildsignalprozessor 1170 kann mit einem oder mehreren separaten ISPs bereitgestellt werden, um eine Bildverarbeitung in Bezug auf den aufgenommenen Inhalt von einer oder mehreren Kameras einer Plattform einschließlich Standbild- und Videokameras auszuführen.
  • Ein Anzeigeprozessor 1180 kann eine Unterstützung für eine Verbindung zu einer hochauflösenden Anzeige mit einer gegebenen Pixeldichte einschließlich der Fähigkeit bereitstellen, den Inhalt für eine Wiedergabe auf dieser Anzeige drahtlos zu kommunizieren. Darüber hinaus kann eine Standorteinheit 1190 einen GPS-Empfänger mit einer Unterstützung für mehrere GPS-Konstellationen aufweisen, um Anwendungen hochgenaue Standortinformationen bereitzustellen, die mithilfe dieses GPS-Empfängers erhalten werden. Obwohl bei dem Beispiel der 11 dieser besondere Satz von Komponenten gezeigt wird, ist es selbstverständlich, dass viele Variationen und Alternativen möglich sind.
  • In 12 wird jetzt ein Blockschaltbild eines beispielhaften Systems gezeigt, mit dem die Ausführungsformen verwendet werden können. Wie zu sehen ist, kann das System 1200 ein Smartphone oder ein anderes drahtloses Kommunikationsgerät sein. Ein Basisbandprozessor 1205 ist konfiguriert, um verschiedene Signalverarbeitungen in Hinsicht auf Kommunikationssignale auszuführen, die zu dem System gesendet werden oder von dem System empfangen werden. Der Basisbandprozessor 1205 ist seinerseits mit einem Anwendungsprozessor 1210 verbunden, der eine Haupt-CPU des Systems sein kann, um ein OS und andere Systemsoftware neben Benutzeranwendungen wie zum Beispiel viele wohlbekannte Sozialmedien- und Multimedia-Apps auszuführen. Der Anwendungsprozessor 1210 kann außerdem konfiguriert sein, um eine Vielfalt von anderen Berechnungsoperationen für die Vorrichtung auszuführen und um die hier beschriebenen Leistungsverwaltungstechniken auszuführen.
  • Der Anwendungsprozessor 1210 kann seinerseits mit einer Benutzeroberflächenanzeige 1220 z.B. einer Touchscreenanzeige verbunden sein. Der Anwendungsprozessor 1210 kann außerdem mit einem Speichersystem einschließlich einem nichtflüchtigen Speicher insbesondere einem Flashspeicher 1230 und einem Systemspeicher insbesondere einem dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM) 1235 verbunden sein. Wie außerdem zu sehen ist, ist der Anwendungsprozessor 1210 außerdem mit einer Aufnahmevorrichtung 1240 wie zum Beispiel einer oder mehreren Bildaufnahmevorrichtungen verbunden sein, die Videos und/oder Standbilder aufzeichnen können.
  • Noch immer in 12 umfasst eine universelle integrierte Schaltkreiskarte (Universal Integrated Circuit Card (UICC) 1240 ein Teilnehmeridentitätsmodul und möglicherweise ist auch ein sicherer Speicher- und Kryptoprozessor mit dem Anwendungsprozessor 1210 verbunden. Das System 1200 kann außerdem einen Sicherheitsprozessor 1250 aufweisen, der mit dem Anwendungsprozessor 1210 verbunden sein kann. Eine Vielzahl von Sensoren 1225 kann mit dem Anwendungsprozessor 1210 verbunden sein, um eine Eingabe einer Vielfalt von erfassten Informationen wie zum Beispiel von Beschleunigungsmesser- und anderen Umgebungsinformationen zu ermöglichen. Eine Audioausgabevorrichtung 1295 kann eine Schnittstelle zum Ausgeben von Tonsignalen z.B. in der Form von Sprachkommunikationen, wiedergegebenen oder gestreamten Audiodaten und so weiter bereitstellen.
  • Wie außerdem dargestellt ist, wird eine kontaktlose Nahfeldkommunikationsschnittstelle (Near Field Communication contactless interface, kontaktlose NFC-Schnittstelle) 1260 bereitgestellt, die in einem NFC-Nahfeld über eine NFC-Antenne 1265 kommuniziert. Obwohl in 12 separate Antennen gezeigt werden, ist es selbstverständlich, dass bei einigen Umsetzungen eine Antenne oder eine andere Gruppe von Antennen bereitgestellt werden kann, um verschiedene drahtlose Funktionalitäten zu ermöglichen.
  • Eine PMIC 1215 ist mit dem Anwendungsprozessor 1210 verbunden, um Leistungsverwaltung auf Plattformebene auszuführen. Zu diesem Zweck kann die PMIC 1215 Leistungsverwaltungsanforderungen an den Anwendungsprozessor 1210 ausgeben, um wie gewünscht in bestimmte Zustände mit niedriger Leistungsaufnahme einzutreten. Darüber hinaus kann die PMIC 1215 aufgrund von Plattformbeschränkungen auch den Leistungspegel von anderen Komponenten des Systems 1200 steuern.
  • Zum Ermöglichen von zu sendenden und zu empfangenden Kommunikationen können verschiedene Schaltungen zwischen den Basisbandprozessor 1205 und eine Antenne 1290 geschaltet sein. Insbesondere können ein Hochfrequenz-Transceiver (HF-Transceiver) 1270 und ein Transceiver eines drahtlosen lokalen Netzwerks (Wireless Local Area Network transceiver, WLAN-Transceiver) 1275 vorhanden sein. Der HF-Transceiver 1270 kann im Allgemeinen verwendet werden, um drahtlose Daten und Anrufe zu empfangen und zu senden, gemäß einem gegebenen drahtlosen Kommunikationsprotokoll wie zum Beispiel einem 3G- oder 4G- Drahtloskommunikationsprotokoll, wie zum Beispiel gemäß einem Codemultiplexverfahren (Code Division Multiple Access, CDMA), einem globalen System für Mobilfunkkommunikationen (Global System for Mobile Communications, GSM), einer „Long Term Evolution“ (LTE) oder einem anderen Protokoll. Außerdem kann ein GPS-Sensor 1280 vorhanden sein. Es können auch andere drahtlose Kommunikationen wie zum Beispiel ein Empfang und eine Übertragung von Radiosignalen z.B. AM/FM und anderen Signalen bereitgestellt werden. Außerdem können über den WLAN-Transceiver 1275 auch lokale drahtlose Kommunikationen realisiert werden.
  • In 13 wird jetzt ein Blockschaltbild eines weiteren beispielhaften Systems gezeigt, mit dem die Ausführungsformen verwendet werden können. In der Darstellung der 13 kann das System 1300 ein mobiles System mit niedriger Leistungsaufnahme wie zum Beispiel ein Tablet-Computer, ein 2:1-Tablet-Computer, ein Phablet-Computer oder eine anderes wandelbares oder eigenständiges Tablet-System sein. Wie dargestellt wird, ist ein SoC 1310 vorhanden und kann konfiguriert sein, um als ein Anwendungsprozessor für die Vorrichtung betrieben zu werden und um die hier beschriebenen Leistungsverwaltungstechniken auszuführen.
  • Eine Vielfalt von Vorrichtungen kann mit dem SoC 1310 verbunden sein. In der gezeigten Darstellung enthält ein Speicherteilsystem einen Flashspeicher 1340 und einen DRAM 1345, die mit dem SoC 1310 verbunden sind. Außerdem ist ein Touchpanel 1320 mit dem SoC 1310 verbunden, um eine Anzeigefähigkeit und eine Benutzereingabe durch eine Berührungseingabe einschließlich eines Bereitstellens einer virtuellen Tastatur auf einer Anzeige des Touchpanels 1320 bereitzustellen. Zum Bereitstellen einer verkabelten Netzwerkkonnektivität ist das SoC 1310 mit einer Ethernet-Schnittstelle 1330 verbunden. Ein Peripherieknoten 1325 ist mit dem SoC 1310 verbunden, um eine Verbindung über eine Schnittstelle mit verschiedenen Peripheriegeräten zu ermöglichen, wie sie zum Beispiel durch einen von verschiedenen Anschlüssen oder durch andere Anschlusselemente mit dem System 1300 verbunden werden können.
  • Zusätzlich zu den internen Leistungsverwaltungsschaltungen und -funktionalitäten innerhalb des SoC 1310 ist eine PMIC 1380 mit dem SoC 1310 verbunden, um eine plattformbasierte Leistungsverwaltung z.B. aufgrund dessen bereitzustellen, ob das System durch eine Batterie 1390 oder einen Wechselstrom über einen AC-Adapter 1395 betrieben wird. Zusätzlich zu dieser stromquellenbasierten Leistungsverwaltung kann die PMIC 1380 außerdem Plattformleistungsverwaltungsaktivitäten aufgrund von Umgebungs- und Nutzungsbedingungen ausführen. Darüber hinaus kann die PMIC 1380 Steuer- und Zustandsinformationen zu dem SoC 1310 kommunizieren, um verschiedene Leistungsverwaltungsaktionen innerhalb des SoC 1310 zu veranlassen.
  • Immer noch in 13 ist eine WLAN-Einheit 1350 zum Bereitstellen von drahtlosen Fähigkeiten mit dem SoC 1310 und andererseits mit einer Antenne 1355 verbunden. Bei verschiedenen Umsetzungen kann die WLAN-Einheit 1350 eine Kommunikation gemäß einem oder mehreren Drahtlosprotokollen bereitstellen.
  • Wie außerdem dargestellt wird, kann eine Vielzahl von Sensoren 1360 mit dem SoC 1310 verbunden sein. Diese Sensoren können verschiedene Beschleunigungsmesser, Umweltsensoren und andere Sensoren einschließlich Benutzergestensensoren aufweisen. Schließlich ist ein Audio-Codec 1365 mit dem SoC 1310 verbunden, um eine Schnittstelle mit einer Audioausgabevorrichtung 1370 bereitzustellen. Obwohl in 13 diese besondere Umsetzung gezeigt wird, ist es natürlich, dass selbstverständlich viel Variationen und Alternativen möglich sind.
  • In 14 wird jetzt ein Blockschaltbild eines Teils eines repräsentativen Computersystems wie zum Beispiel eines Notebooks, eines Ultrabooks™ oder eines anderen Systems mit einem kleinen Formfaktor gezeigt. Ein Prozessor 1410 weist bei einer Ausführungsform einen Mikroprozessor, einen Mehrkernprozessor, einen Multithread-Prozessor, einen Prozessor mit ultraniedriger Spannung, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement auf. Bei der dargestellten Umsetzung funktioniert der Prozessor 1410 als eine Hauptverarbeitungseinheit und als zentraler Knoten für eine Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400. Bei einem Beispiel ist der Prozessor 1410 als ein SoC umgesetzt.
  • Bei einer Ausführungsform kommuniziert der Prozessor 1410 mit einem Systemspeicher 1415. Bei einem anschaulichen Beispiel wird der Systemspeicher 1415 mithilfe von mehreren Speichervorrichtungen oder -modulen umgesetzt, um eine gegebene Systemspeichergröße bereitzustellen.
  • Zum Bereitstellen einer dauerhaften Speicherung von Informationen wie zum Beispiel Daten, Anwendungen, eines oder mehrerer Betriebssysteme und so weiter, kann auch ein Massenspeicher 1420 mit dem Prozessor 1410 verbunden sein. Zum Ermöglichen einer dünneren und leichteren Systemgestaltung sowie zum Verbessern der Systemreaktionsfähigkeit kann dieser Massenspeicher bei verschiedenen Ausführungsformen über ein SSD umgesetzt werden oder der Massenspeicher kann primär mithilfe eines Festplattenlaufwerks (Hard Disk Drive, HDD) in Kombination mit einem SSD-Speicher mit einer geringeren Größe, der als SSD-Cachespeicher funktioniert, umgesetzt werden, um ein nichtflüchtiges Speichern eines Kontextzustands und andere solcher Informationen während der Energiesparereignisse zu ermöglichen, sodass ein schnelles Hochfahren bei einem Neustart der Systemaktivitäten erfolgen kann. In 14 kann auch eine Flashspeichervorrichtung 1422 mit dem Prozessor 1410, z.B. über eine serielle periphere Schnittstelle (Serial Peripheral Interface, SPI) verbunden sein. Diese Flashspeichervorrichtung kann eine nichtflüchtige Speicherung einer Systemsoftware einschließlich einer Basis-Ein-Ausgabe-Software (Basic Input/Output Software, BIOS) sowie weiterer Firmware des Systems bereitstellen.
  • Innerhalb des Systems 1400 können verschiedene Eingangs-/Ausgangsvorrichtungen (E/A-Vorrichtungen) vorhanden sein. Insbesondere wird bei der Ausführungsform der 14 eine Anzeige 1424 gezeigt, die ein hochauflösendes LCD- oder LED-Panel sein kann, das außerdem einen Touchscreen 1425 bereitstellt. Bei einer Ausführungsform kann die Anzeige 1424 über ein Anzeigeverbindungselement, das als ein Hochleistungsgrafikverbindungselement umgesetzt werden kann, mit dem Prozessor 1410 verbunden werden. Der Touchscreen 1425 kann über ein anderes Verbindungselement, das bei einer Ausführungsform ein I2C-Verbindungselement sein kann, mit dem Prozessor 1410 verbunden werden. Wie außerdem in 14 gezeigt wird, kann eine Benutzereingabe mithilfe einer Berührung außer über den Touchscreen 1425 auch über ein Touchpad 1430 stattfinden, das innerhalb des Gehäuses konfiguriert sein kann und auch mit dem gleichen I2C-Verbindungselement wie der Touchscreen 1425 verbunden sein kann.
  • Für eine perzeptuelle Computernutzung und andere Zwecke können innerhalb des Systems verschiedene Sensoren vorhanden sein und können in verschiedenen Weisen mit dem Prozessor 1410 verbunden sein. Bestimmte Trägheits- und Umweltsensoren können durch einen Sensorknoten 1440 z.B. durch ein I2C-Verbindungselement mit dem Prozessor 1410 verbunden sein. Bei der in 14 gezeigten Ausführungsform können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (Ambient Light Sensor, ALS) 1442, einen Kompass 1443 und einen Kreisel 1444 aufweisen. Weitere Umweltsensoren können einen oder mehrere Wärmesensoren 1446 aufweisen, die bei einigen Ausführungsformen über einen Systemverwaltungsbus (System Management Bus, SMBus) mit dem Prozessor 1410 verbunden sind.
  • Wie auch in 14 zu sehen ist, können verschiedene Peripheriegeräte über ein Verbindungselement mit niedriger Pinanzahl (Low Pin Count interconnect, LPC-Verbindungselement) mit dem Prozessor 1410 verbunden sein. Bei der gezeigten Ausführungsform können verschiedene Komponenten durch eine eingebettete Steuereinheit 1435 angeschlossen werden. Diese Komponenten können eine Tastatur 1436 (die z.B. über eine PS2-Schnittstelle angeschlossen wird), einen Lüfter 1437 und einen Wärmesensor 1439 aufweisen. Bei einigen Ausführungsformen kann das Touchpad 1430 auch über eine PS2-Schnittstelle an die EC 1435 angeschlossen werden. Außerdem kann ein Sicherheitsprozessor wie zum Beispiel ein vertrauenswürdiges Plattformmodul (Trusted Platform Module, TPM) 1438 über dieses LPC-Verbindungselement mit dem Prozessor 1410 verbunden werden.
  • Das System 1400 kann in einer Vielfalt von Weisen einschließlich drahtlos mit externen Vorrichtungen kommunizieren. Bei der in 14 gezeigten Ausführungsform sind verschiedene Drahtlosmodule vorhanden sein, die jeweils einem Radio entsprechen können, das für ein besonderes drahtloses Kommunikationsprotokoll konfiguriert ist. Eine Weise für eine drahtlose Kommunikation in einem Nahbereich wie zum Beispiel einem Nahfeld kann über eine NFC-Einheit 1445 erfolgen, die bei einer Ausführungsform über einen SMBus mit dem Prozessor 1410 kommunizieren kann. Es ist zu beachten, dass Vorrichtungen in einer engen Nachbarschaft zueinander über diese NFC-Einheit 1445 kommunizieren können.
  • Wie außerdem in 14 zu sehen ist, können zusätzliche drahtlose Einheiten andere drahtlose Nahbereichsengines aufweisen, zu denen eine WLAN-Einheit 1450 und eine Bluetooth-Einheit 1452 gehören. Mithilfe der WLAN-Einheit 1450 können Wi-Fi™-Kommunikationen realisiert werden, während über die Bluetooth-Einheit 1452 Nahbereichs-Bluetooth™-Kommunikationen stattfinden können. Diese Einheiten können über einen gegebenen Link mit dem Prozessor 1410 kommunizieren.
  • Außerdem können drahtlose Fernbereichskommunikationen z.B. gemäß einem Zellular- oder einem anderen Drahtlosfernbereichsprotokoll über eine WWAN-Einheit 1456 stattfinden, die ihrerseits mit einem Teilnehmeridentitätsmodul (Subscriber Identity Module, SIM) 1457 verbunden werden können. Zusätzlich kann zum Ermöglichen eines Empfangs und einer Verwendung von Standortinformationen auch ein GPS-Modul 1455 vorhanden sein. Es ist zu beachten, dass bei der in 14 gezeigten Ausführungsform die WWAN-Einheit 1456 und eine integrierte Aufnahmevorrichtung wie zum Beispiel ein Kameramodul 1454 über einen gegebenen Link kommunizieren können.
  • Ein integriertes Kameramodul 1454 kann in den Deckel eingebaut sein. Ein Audioprozessor kann zum Bereitstellen von Audioeingaben und -ausgaben über einen digitalen Signalprozessor (DSP) 1460 umgesetzt werden, der über einen hochauflösenden Audiolink (High Definition Audio link, HDA-Link) mit dem Prozessor 1410 verbunden sein kann. Auf ähnliche Weise kann der DSP 1460 mit einem integrierten Codierer/Decodierer (CODEC) und Verstärker 1462 kommunizieren, der seinerseits mit Lautsprechern 1463 verbunden sein kann, die innerhalb des Gehäuses umgesetzt werden können. Auf ähnliche Weise können der integrierte Verstärker und CODEC 1462 angeschlossen sein, um Audioeingaben von einem Mikrofon 1465 zu empfangen, das bei einer Ausführungsform über Dual-Array-Mikrofons (wie zum Beispiel eine digitale Mikrofonanordnung) so umgesetzt werden kann, dass Audioeingaben mit hoher Qualität bereitgestellt werden, um eine sprachaktivierte Steuerung verschiedener Operationen innerhalb des Systems zu ermöglichen. Es ist zu beachten, dass die Audioausgaben von dem Verstärker/CODEC 1462 für eine Kopfhörerbuchse 1464 bereitgestellt werden können. Obwohl bei der Ausführungsform der 14 diese besonderen Komponenten gezeigt werden, ist es selbstverständlich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist.
  • Die Ausführungsformen können in vielen verschiedenen Systemarten umgesetzt werden. In 15 wird jetzt ein Blockschaltbild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 15 gezeigt wird, ist das Mehrprozessorsystem 1500 ein Punkt-zu-Punkt-Verbundsystem und umfasst einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Verbindung 1550 miteinander verbunden sind. Wie in 15 gezeigt wird, kann jeder der Prozessoren 1570 und 1580 ein Mehrkernprozessor sein, der einen ersten und einen zweiten Prozessorkern (d.h. die Prozessoren 1574a und 1574b und die Prozessorkerne 1584a und 1584b) umfasst, obwohl potenziell auch mehr Kerne in den Prozessoren vorhanden sein können. Außerdem kann jeder der Prozessoren 1570 und 1580 auch eine Grafikprozessoreinheit (Graphics Processor Unit, GPU) 1573, 1583 aufweisen, um Grafikoperationen auszuführen. Jeder der Prozessoren 1570 und 1580 kann eine PCU 1575, 1585 aufweisen, um eine prozessorbasierte Leistungsverwaltung einschließlich eines Ermittelns eines Vorhandenseins einer globalen Verletzung eines leistungsbasierten Budgets und einer Kommunikation einer Anzeige dieser globalen Verletzung an lokale Schaltungen einschließlich an die Kerne 1574, 1584 und/oder die GPUs 1573, 1583 auszuführen. Die lokalen Schaltungen können, wie hier beschrieben wird, ihrerseits die lokale Drosselung mindestens teilweise aufgrund der Anzeige einer globalen Verletzung modulieren.
  • Immer noch in 15 weist der erste Prozessor 1570 außerdem einen Speichersteuerknoten (Memory Controller Hub, MCH) 1572 und Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1576 und 1578 auf. Auf ähnliche Weise weist der zweite Prozessor 1580 eine MCH 1582 und P-P-Schnittstellen 1586 und 1588 auf. Wie in 15 gezeigt wird, verbinden die MCHs 1572 und 1582 die Prozessoren mit jeweiligen Speichern, insbesondere einem Speicher 1532 und einem Speicher 1534, die Anteile eines Systemspeichers (z.B. einem DRAM) sein können, der lokal an die jeweiligen Prozessoren angefügt ist. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über die P-P-Verbindungselemente 1562 bzw. 1564 mit einem Chipsatz 1590 verbunden sein. Wie in 15 gezeigt wird, weist der Chipsatz 1590 die P-P-Schnittstellen 1594 und 1598 auf.
  • Der Chipsatz 1590 weist außerdem eine Schnittstelle 1592 auf, um den Chipsatz 1590 über ein P-P-Verbindungselement 1539 mit einer Hochleistungsgrafikengine 1538 zu verbinden. Der Chipsatz 1590 kann seinerseits über eine Schnittstelle 1596 mit einem ersten Bus 1516 verbunden werden. Wie in 15 gezeigt wird, können verschiedene Eingangs-/Ausgangs-Vorrichtungen (E/A-Vorrichtungen) 1514 mit dem ersten Bus 1516 zusammen mit einer Busbrücke 1518 verbunden werden, welche den ersten Bus 1516 mit einem zweiten Bus 1520 verbindet. Verschiedene Geräte können mit dem zweiten Bus 1520 verbunden sein einschließlich zum Beispiel einer Tastatur/Maus 1522, Kommunikationseinrichtungen 1526 und einer Datenspeichereinheit 1528 wie zum Beispiel einem Laufwerk oder einem anderen Massenspeichergerät, die bei einer Ausführungsform einen Code 1530 enthalten können. Außerdem kann ein Audio-E/A 1524 mit dem zweiten Bus 1520 verbunden werden. Einige Ausführungsformen können in andere Typen von Systemen einschließlich in mobile Geräte wie zum Beispiel ein intelligentes Mobiltelefon, einen Tablet-Computer, ein Netbook, ein Ultrabook™ und so weiter eingebunden werden.
  • 16 ist ein Blockschaltbild, das ein IP-Kernentwicklungssystem 1600 darstellt, das verwendet werden kann zum Herstellen eines integrierten Schaltkreises, um Operationen gemäß einer Ausführungsform auszuführen. Das IP-Kernentwicklungssystem 1600 kann verwendet werden, um modulare wiederverwendbare Gestaltungen zu erzeugen, die in eine größere Gestaltung eingebunden werden können oder verwendet werden können, um einen gesamten integrierten Schaltkreis (z.B. einen integrierten SoC-Schaltkreis) aufzubauen. Eine Gestaltungseinrichtung 1630 kann eine Softwaresimulation 1610 einer IP-Kerngestaltung in einer hohen Programmiersprache (z.B. C/C++) erzeugen. Die Softwaresimulation 1610 kann verwendet werden zum Gestalten, Testen und Prüfen des Verhaltens des IP-Kerns. Dann kann eine Gestaltung einer Registertransferebene (Register Transfer Level design, RTL-Gestaltung) aus dem Simulationsmodell erschaffen oder synthetisiert werden. Die RTL-Gestaltung 1615 ist eine Abstraktion des Verhaltens des integrierten Schaltkreises, die den Fluss digitaler Signale zwischen den Hardwareregistern einschließlich der zugeordneten Logiken modelliert, die mithilfe der modellierten digitalen Signale ausgeführt werden. Zusätzlich zu einer RTL-Gestaltung 1615 können auch untergeordnete Gestaltungen auf der Logikebene oder der Transistorebene erschaffen, gestaltet oder synthetisiert werden. Somit können die besonderen Einzelheiten der anfänglichen Gestaltung und Simulation variieren.
  • Die RTL-Gestaltung 1615 oder äquivalente Gestaltungen können außerdem durch die Gestaltungseinrichtung in einem Hardwaremodell 1620 synthetisiert werden, was in einer Hardwarebeschreibungssprache (Hardware Description Language, HDL) oder einer anderen Repräsentation von physischen Gestaltungsdaten erfolgen kann. Die HDL kann außerdem simuliert oder getestet werden, um die IP-Kerngestaltung zu überprüfen. Die IP-Kerngestaltung kann mithilfe eines nichtflüchtigen Speichers 1640 (z.B. ein Festplattenlaufwerk, ein Flashspeicher oder ein beliebiges nichtflüchtiges Speichermedium) für eine Übergabe an eine Herstellungseinrichtung einer Drittpartei 1665 gespeichert werden. Alternativ kann die IP-Kerngestaltung über eine verkabelte Verbindung 1650 oder über eine drahtlose Verbindung 1660 (z.B. über Internet) übertragen werden. Die Herstellungseinrichtung 1665 kann dann einen integrierten Schaltkreis herstellen, der mindestens teilweise auf der IP-Kerngestaltung beruht. Der hergestellte integrierte Schaltkreis kann konfiguriert werden, um Operationen gemäß mindestens einer hier beschriebenen Ausführungsform auszuführen.
  • In 17 wird jetzt ein Blockschaltbild eines Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 17 gezeigt wird, kann das System 1700 jeder beliebige Typ eines Computersystems sein, was von kleinen Vorrichtungen wie zum Beispiel Smartphones, Tablet-Computers und so weiter bis zu größeren Vorrichtungen einschließlich Clientdatenverarbeitungssystemen und Serverdatenverarbeitungssystemen reichen kann.
  • In jedem Fall weist das System 1700 ein Ein-Chip-System (System on Chip, SoC) 1710 auf, das mindestens eine Spannung von einem Spannungsregler 1750 empfängt. Das SoC 1710 kann seinerseits eine interne Stromversorgungsschaltung wie zum Beispiel einen oder mehrere integrierte Spannungsregler aufweisen, um eine gegebene Spannung von dieser externen Spannungsquelle zu erhalten und um diese Spannung(en) aufzubereiten, um den Schaltungen des SoC 1710 eine oder mehrere geregelte Spannungen bereitzustellen.
  • In der Darstellung der 17 wird eine Vielzahl von IP-Schaltkreisen 17200-2 gezeigt, obwohl jede beliebige Anzahl von Schaltkreisen vorhanden sein kann. Die IP-Schaltkreise 1720 können zum Beispiel Verarbeitungskerne sein, die bei verschiedenen Ausführungsformen als eine Gruppe von homogenen Kernen oder von gemischten heterogenen Kernen umgesetzt werden, die unterschiedliche Fähigkeiten aufweisen. Wie gezeigt wird, weist jeder IP-Schaltkreis 1720 einen lokalen Steuerschaltkreis 17120-2 auf. Bei hier gezeigten Ausführungsformen kann der lokale Steuerschaltkreis 1712 konfiguriert sein, um Steuerschaltungsinformationen z.B. in der Form von einer oder mehreren aktuellen Messinformationen, Erfassungsinformationen und/oder Telemetrieinformationen hinsichtlich der Betriebsparameter des IP-Schaltkreises 1720 zu empfangen.
  • Zum lokalen Steuern einer Leistungsverwaltung der Schaltungen innerhalb des IP-Schaltkreises 1720 kann der lokale Steuerschaltkreis 1712 Anfragen an eine Leistungssteuereinheit 1720 z.B. in der Form einer Frequenzanfrage, einer Stromanfrage oder einer Kombinationsanfrage ausgeben. Diese Anfragen können auf einer Planung einer gegebenen Arbeitslast (z.B. einer gegebenen virtuellen Maschine) beruhen, die in dem IP-Schaltkreis 1720 ausgeführt werden soll.
  • Außerdem kann jeder lokale Steuerschaltkreis 1712 außerdem mit einem entsprechenden lokalen Strombudget programmiert sein. Wenn der Steuerschaltkreis 1712 ermittelt, dass die Stromversorgungsinformationen z.B. die gemessenen Strominformationen das lokale Strombudget überschreiten, kann er eine Drosselung des entsprechenden IP-Schaltkreises 1720 ausführen. Bei hier gezeigten Ausführungsformen kann diese lokale Drosselungssteuerung mindestens teilweise aufgrund von globalen Informationen moduliert werden, die von einer Leistungssteuereinheit 1730 empfangen werden. Bei der Ausführungsform der 17 kann die Leistungssteuereinheit 1730 als eine PCU umgesetzt sein. Bei verschiedenen Ausführungsformen kann die PCU 1730 als ein zweckbestimmter Hardwareschaltkreis, einer von mehreren Kernen, eine Mikrosteuereinheit oder eine andere beliebige Hardwareschaltung umgesetzt sein.
  • Bei verschiedenen Ausführungsformen können unterschiedliche Typen einer Modulation einer lokalen Drosselung stattfinden. Bei einer Ausführungsform können zum Beispiel die globalen Bedingungen bei der lokalen Drosselung berücksichtigt werden, indem ein Drosselungsverhalten aufgrund einer lokalen Verletzung ohne eine entsprechende globale Verletzung geschaltet wird. Bei einem weiteren Beispiel kann eine globale Anzeige einer globalen Verletzung quantifiziert werden (z.B. niedrig/mittel/hoch), und die lokale Aktion wird durch die Ebene der globalen Verletzung diktiert. Zu einigen beispielhaften Aktionen können gehören: Drosseln um die Hälfte, wenn die globale Verletzung auf einer mittleren Ebene liegt und eine lokale Verletzung vorhanden ist, oder eine Drosselung um 25%, wenn die globale Verletzung niedrig ist und eine lokale Verletzung vorliegt, oder immer Drosseln, wenn die globale Verletzung hoch ist ungeachtet einer lokalen Verletzung. Auf diese Weise kann eine verbesserte Leistungsfähigkeit realisiert werden.
  • Immer noch in 17 weist die PCU 1730 einen Steuerschaltkreis 1735 auf, der konfiguriert ist zum Ermitteln eines lokalen Strombudgets für jeden IP-Schaltkreis 1720 einer gegebenen Partition (wobei zu beachten ist, dass ein Prozessor mehrere Partitionen aufweisen kann) und zum Bereitstellen desselben für die IP-Schaltkreise. Außerdem kann der Steuerschaltkreis 1735 auch lokale Informationen von entsprechenden IP-Schaltkreisen 1720 empfangen. Bei verschiedenen Ausführungsformen können diese Informationen in der Form von Anfragen für eine Spannungs-, Frequenz- und/oder Stromzuteilung für einen gegebenen IP-Schaltkreis 1720 vorliegen. Bei einem weiteren Beispiel können die lokalen Informationen Drosselungsrateninformationen z.B. einen Prozentsatz einer Zeit aufweisen, während der die Drosselung aktiv ist. Bei einer Ausführungsform kann die PCU 1730 diese Drosselungsrateninformationen verwenden, um zu ermitteln, ob die Budgets angepasst werden sollten.
  • Die lokalen Informationen können außerdem Telemetrieinformationen über einen aktuellen Betriebspunkt des IP-Schaltkreises aufweisen, sodass der Steuerschaltkreis 1735 Budgetinformationen z.B. in der Form von lokalen Strombudgets bereitstellen kann. Diese Budgets können mindestens teilweise aufgrund von Hinweisinformationen zugeteilt werden, die von einer Software 1740 empfangen werden, die Arbeitslasten für eine Ausführung bereitstellen kann. Zu diesem Zweck kann eine Schnittstelle 1745 diese Informationen von der Software 1740 zur PCU 1730 kommunizieren. Bei verschiedenen Fällen kann die Software 1740 eine Firmware, ein Betriebssystem (z.B. eine Planungseinheit eines OS) oder eine andere Softwareeinrichtung sein, die ein a priori und größeres Verständnis des Wesens von zu planenden Arbeitslasten aufweist.
  • Wie außerdem in 17 gezeigt wird, kann ein globaler Steuerschaltkreis 1738 ein lokales Verletzungserkennungssignal empfangen, um anzuzeigen, dass ein entsprechender IP-Schaltkreis seine lokale Grenze (z.B. ein lokales Strombudget) überschritten hat. Auf diese Weise kann der globale Steuerschaltkreis 1738 identifizieren, wenn eine globale Verletzung stattfindet. Diese globale Verletzung tritt auf, wenn eine Leistung, die von der Ansammlung von IP-Schaltkreisen 1720 innerhalb einer gegebenen Partition konsumiert wird, den Gesamtwert des lokalen Strombudgets für jeden der IP-Schaltkreise 1712 überschritten hat. Bei anderen Fällen kann der globale Steuerschaltkreis 1738 eine globale Verletzung aufgrund eines globalen Überwachens von Verletzungen zum Beispiel an dem Spannungsregler identifizieren. Bei verschiedenen Umsetzungen können diese Verletzungen reaktiv oder proaktiv (wirkungsvoll prädiktiv) sein.
  • Wenn ermittelt wird, dass diese globale Verletzung stattgefunden hat, kann der globale Steuerschaltkreis 1738 ein globales Verletzungserkennungssignal an entsprechende IP-Schaltkreise 1712 in der Partition ausgeben. Wie oben beschrieben wurde, funktioniert das Signal als ein Schaltelement, sodass bei der Abwesenheit des globalen Verletzungserkennungssignals, eine lokale Drosselung geschaltet und ein Drosselungsverhalten vermieden wird. Wenn stattdessen sowohl eine lokale Verletzung innerhalb eines IP-Schaltkreises 1712 identifiziert als auch eine globale Verletzung durch den Steuerschaltkreis 1735 erkannt wird, wird das Drosselungsverhalten aktiviert.
  • Wie insbesondere in 17 gezeigt wird, kann in jedem IP-Schaltkreis 1720 ein Logikschaltkreis 17140-2 bereitgestellt werden. Der Logikschaltkreis 1714 kann Logikschaltungen wie zum Beispiel ein UND-Gatter aufweisen, das als ein logisches UND der lokalen und globalen Verletzungsanzeigen funktioniert. Anders ausgedrückt, ist der Logikschaltkreis 1714 konfiguriert, um eine lokale Verletzungsanzeige mit einer globalen Verletzung zu qualifizieren. Obwohl bei der Ausführungsform der 17 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • In 18 wird jetzt ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 18 gezeigt wird, ist das Verfahren 1800 ein Verfahren zum Steuern einer Drosselung innerhalb eines IP-Schaltkreises wie zum Beispiel einem Prozessorkern. Von daher kann das Verfahren 1800 durch Steuerschaltungen innerhalb des IP-Schaltkreises ausgeführt werden, die als Hardwareschaltungen, Firmware, Software und/oder Kombinationen davon umgesetzt sein können.
  • Wie dargestellt wird, beginnt das Verfahren 1800 mit dem Ausgeben einer Anforderung für eine Stromzuteilung (Block 1810). Ein lokaler IP-Schaltkreis kann zum Beispiel eine Anforderung ausgeben, um als Reaktion auf Planungsinformationen über eine Arbeitslast für einen Thread, Prozess oder andere Arbeitseinheit, die in dem IP-Schaltkreis ausgeführt werden sollen, mit einem gegebenen Strom- und/oder Frequenzpegel zu funktionieren. Als Nächstes kann der lokale Steuerschaltkreis als Reaktion auf diese Anforderung Strombewilligungsinformationen für den lokalen IP-Schaltkreis empfangen (Block 1820). Ein lokaler Steuerschaltkreis kann zum Beispiel eine Bewilligung empfangen, um auf einer gegebenen Ebene zu funktionieren (und bei verschiedenen Ausführungsformen kann diese Bewilligung für eine gegebene Frequenz, eine gegebene Spannung oder einen gegebenen Strom oder Kombinationen davon erteilt werden). Während des Betriebs des lokalen IP-Schaltkreises auf der bewilligten Ebene kann der lokale Steuerschaltkreis Telemetrieinformationen z.B. in der Form von Stromsensorinformationen von einem oder mehreren in den IP-Schaltkreis integrierten Sensoren empfangen (Block 1830). Oder diese Informationen können von einem Stromversorgungsschaltkreis wie zum Beispiel einem IVR empfangen werden, der einem IP-Schaltkreis zugeordnet ist. Der IVR kann zum Beispiel eine Hochgeschwindigkeitsmessung eines aktuellen Stromverbrauchs bereitstellen. Bei weiteren Beispielen können die Stromsensorinformationen eine andere Art von Stromversorgungsinformationen wie zum Beispiel Leistungsinformationen sein.
  • In jedem Fall wird die Steuerung von dem Block 1830 zur Raute 1840 weitergeleitet, in der ermittelt wird, ob der lokale IP-Schaltkreis sein lokales Strombudget überschreitet. Zu diesem Zweck kann der lokale Steuerschaltkreis in einem Konfigurationsspeicher wie zum Beispiel einem Konfigurationsregister ein lokales Strombudget speichern, das z.B. von einer PCU empfangen wurde. Wenn, mindestens teilweise aufgrund der empfangenen Stromsensorinformationen ermittelt wird, dass der lokale IP-Schaltkreis das lokale Strombudget nicht überschreitet, wird in einer gegebenen Iteration des Verfahrens 1800 keine weitere Operation ausgeführt. Und somit kehrt die Steuerung zurück zum Block 1810, der oben erörtert wurde.
  • Wenn andernfalls ermittelt wird, dass der lokale IP-Schaltkreis sein lokales Strombudget überschreitet, wird die Steuerung von der Raute 1840 zum Block 1850 weitergeleitet. Im Block 1850 kann ein lokales Verletzungserkennungssignal erstellt werden. Der lokale IP-Schaltkreis kann zum Beispiel ein Drosselungssignal erzeugen, das an weitere Logikschaltungen des lokalen IP-Schaltkreises gesendet wird. Außerdem kann eine Anzeige der lokalen Verletzung an die Leistungssteuereinheit gesendet werden. Zu diesem Zweck kann der lokale Steuerschaltkreis ein Signal an die Leistungssteuereinheit senden, um dieses lokale Überschreiten des lokalen Strombudgets anzuzeigen. Bei weiteren Fällen können zusätzliche oder andere Informationen bereitgestellt werden. Zum Beispiel können bei einigen Fällen die eigentlichen aktuellen Stromsensorinformationen gesendet werden.
  • Immer noch in 18 wird als Nächstes in der Raute 1860 ermittelt z.B. innerhalb der weiteren Logikschaltungen des lokalen IP-Schaltkreises, ob ein globales Verletzungserkennungssignal aktiv ist. Bei einer Ausführungsform können diese Logikschaltungen ein solches globales Verletzungserkennungssignal empfangen, wenn eine PCU oder eine andere globale Steuereinheit eine globale Verletzung einer globalen Stromgrenze identifiziert. In dieser Situation wird die Steuerung zum Block 1870 weitergeleitet, wo der lokale IP-Schaltkreis gedrosselt wird. Bei einem Beispiel kann diese Drosselung durch ein Schalten von IP-Takten mit z.B. einem programmierbaren Arbeitszyklus bewirkt werden. Eine weitere Drosselungstechnik kann ein Verringern einer Betriebsfrequenz des lokalen IP-Schaltkreises sein. Zusätzlich oder als Alternative können auch noch weitere Techniken wie zum Beispiel ein Verringern einer Befehlsausgabe stattfinden. Bei einem weiteren Beispiel kann der Betrieb gedrosselt werden, indem eine Anzahl von Taktsignalen zusammengefasst werden.
  • Es ist zu beachten, wenn andernfalls in der Raute 1860 ermittelt wird, dass das globale Verletzungserkennungssignal nicht aktiv ist, keine Drosselung stattfindet, selbst wenn eine lokale Verletzung erkannt wurde. Wie außerdem in 18 gezeigt wird, finden stattdessen in dieser Situation keine weiteren Operationen innerhalb einer gegebenen Iteration des Verfahrens 1800 statt und die Steuerung wird zurück zum Block 1810 weitergeleitet, wie oben erörtert wurde. Obwohl bei der Ausführungsform der 18 diese übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • In 19 wird jetzt ein Ablaufplan eines Verfahrens gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 19 gezeigt wird, ist das Verfahren 1900 ein Verfahren zum Zuteilen von Budgets zu mindestens einer Partition, zum Identifizieren von globalen Verletzungen und zum Melden derselben an lokale Schaltkreise. Insbesondere kann das Verfahren 1900 gemeinsam zwischen verschiedenen Agenten einschließlich einer Software, die eine auszuführende Arbeitslast aufweist, und einer Hardware einschließlich einer hardwarebasierten Leistungssteuereinheit und einem oder mehreren IP-Schaltkreisen ausgeführt werden, in denen mindestens ein Teil der Arbeitslast ausgeführt werden kann. Von daher kann das Verfahren 1900 durch Hardwareschaltungen, Firmware, Software und/oder Kombinationen davon ausgeführt werden.
  • Wie dargestellt wird, beginnt das Verfahren 1900 mit dem Empfangen einer Stromzuteilung für eine gegebene Partition z.B. ein Strombudget von einer Software, Firmware oder einer anderen Einrichtung (Block 1910). Eine PCU kann zum Beispiel diese Informationen von einer Planungseinheit empfangen. In einigen Fällen kann ein Prozessor für einen einzigen Partitionsbetrieb konfiguriert sein. In anderen Fällen können mehrere Partitionen vorhanden sein, wobei jede einen gegebenen Anteil an dem gesamten Strombudget für den Prozessor aufweist. Zum Beispiel kann ein Prozessor mit 2 Partitionen konfiguriert sein, wobei jede Partition einen oder mehrere Kerne aufweist, die einer gegebenen virtuellen Maschine zugeordnet sind. Als Nächstes kann die PCU im Block 1920 dieses Strombudget in einem Konfigurationsspeicher z.B. einem Konfigurationsregister speichern, das in der PCU enthalten ist. Mindestens teilweise aufgrund dieser Informationen kann die PCU ein lokales Strombudget für die IP-Schaltkreise in der Partition ermitteln (Block 1930). Bei einer anschaulichen Ausführungsform kann die PCU die lokalen Strombudgets ermitteln, indem das empfangene Strombudget durch die Anzahl von IP-Schaltkreisen in der Partition geteilt wird. In anderen Fällen können dynamische arbeitslastbasierte Ermittlungen erfolgen, sodass jeder IP-Schaltkreis der Partition aufgrund seiner individuellen Arbeitslastanforderungen ein potenziell anderes Strombudget empfangen kann.
  • In jedem Fall wird die Steuerung von dem Block 1930 zum Block 1940 weitergeleitet, in dem der IP-Schaltkreis mit diesem lokalen Strombudget programmiert werden kann. Die PCU kann zum Beispiel zusätzlich zum Speichern dieser lokalen Strombudgets in einem lokalen Konfigurationsspeicher der PCU die lokalen Strombudgets auch an jeden der IP-Schaltkreise senden. Auf diese Weise können die individuellen Strombudgets z.B. in einem Konfigurationsspeicher eines lokalen Steuerschaltkreises der IP-Schaltkreise für eine hier beschriebene Verwendung gespeichert werden. An diesem Punkt ist zu beachten, dass die Partition und ihre enthaltenen IP-Schaltkreise ordnungsgemäß für einen Normalbetrieb z.B. für einen gegebenen Bootzyklus oder dynamisch aufgrund von Änderungen bei der Arbeitslast programmiert sind.
  • Immer noch in 19 kann die PCU während des Normalbetriebs auch Stromanforderungen von den IP-Schaltkreisen empfangen (Block 1950). Diese Anforderungen können auf Arbeitslasten beruhen, die in den IP-Schaltkreisen auszuführen sind. In einigen Fällen können die lokalen IP-Schaltkreise Anforderungen für eine Strombewilligung mit einem besonderen Pegel senden. Diese Anforderungen können entweder in der Form einer angeforderten Betriebsfrequenz, Leistungsfähigkeitsebene oder eines einfachen richtungsweisenden Hinweises erfolgen.
  • Außerdem kann die PCU Telemetrieinformationen von den IP-Schaltkreisen empfangen. In jedem Fall kann die PCU als Reaktion auf diese Anforderungen bestimmen, ob die Anforderung bewilligt wird. Wenn eine Einschränkung für den Betrieb vorliegt, kann die PCU eine Autorisierung für eine niedrigere Betriebsebene bewilligen. Die Steuerung wird als Nächstes zum Block 1960 weitergeleitet, wo ein Gesamtstromverbrauch für die Partition mindestens der empfangenen Anforderungen und/oder der Telemetrieinformationen ermittelt werden kann, die von den IP-Schaltkreisen empfangen werden. Es ist zu beachten, dass der Stromverbrauch von jeder Partition durch eine EDP-Steuerung pro Partition auf ihr Strombudget geregelt wird. Der Gesamtstromverbrauch aller Partitionen kann über die Gesamtstromverbrauchspegel pro Partition ermittelt werden.
  • Mindestens teilweise aufgrund dieses Gesamtstromverbrauchs wird ermittelt, ob der Verbrauchspegel das konfigurierte Strombudget überschreitet (Raute 1970). Dieses konfigurierte Strombudget kann auf einem globalen IccMax-Schwellenwert beruhen. Falls nicht, findet eine weitere Operation hinsichtlich dieser Iteration statt und die Steuerung wird für den Empfang weiterer Stromanforderungen zurück zum Block 1950 weitergeleitet. Wenn stattdessen ermittelt wird, dass der Gesamtstromverbrauch aller Partitionen das konfigurierte globale Strombudget überschreitet, wird die Steuerung zum Block 1980 weitergeleitet, wo ein globales Verletzungserkennungssignal an die IP-Schaltkreise gesendet wird. Bei der Abwesenheit dieses Signals kann keine lokale Drosselung stattfinden, selbst wenn ein lokaler IP-Schaltkreis eine lokale Verletzung erkennt. Das heißt, dass eine Partition momentan ihr eigenes Strombudget ohne Strafe überschreiten kann, so lange der globale Gesamtstromverbrauch unter dem globalen IccMax-Schwellenwert liegt. Wie hier beschrieben wird, führt ein gegebener IP-Schaltkreis stattdessen eine Drosselung nur aus, wenn ermittelt wird, dass sowohl eine lokale als auch eine globale Verletzung vorliegt. Obwohl bei der Ausführungsform der 19 diese übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • In 20 wird jetzt ein Zeitdiagramm gezeigt, das die Steuerung eines Multipartitionsprozessors (oder eines SoC) gemäß einer Ausführungsform darstellt. Wie in dem Zeitdiagramm 2000 zu sehen ist, funktioniert das Gesamt-SoC zu einem ersten Zeitpunkt ohne jegliche globale Verletzung. Dann findet eine kurze globale Verletzung statt und danach findet wieder keine globale Verletzung statt. Die mehreren Kerne funktionieren ihrerseits gemäß den lokalen Strombudgets. Wie zu sehen ist, begehen die Kerne 1 bis N niemals eine lokale Strombudgetverletzung und können somit während des gesamten Zeitraums ohne eine Drosselung funktionieren, selbst in dem Zeitbereich, in dem das Gesamt-SoC einer globalen Verletzung unterliegt. Stattdessen kann nur ein Kern 0, der lokale Verletzungen begeht, gedrosselt werden, und nur dann, wenn seine lokalen Verletzungen sich mit der globalen Verletzung überschneiden. Wie zu einem ersten Zeitpunkt zu sehen ist, an dem der Kern 0 eine lokale Verletzung erleidet, wird somit keine Drosselung ausgeführt, da das Gesamt-SoC sich nicht einer Situation einer globalen Verletzung befindet. Stattdessen wird der Betrieb in diesem Kern nur dann gedrosselt, wenn gleichzeitige lokale und globale Verletzungen stattfinden. Obwohl bei der Ausführungsform der 20 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • Wie in 20 gezeigt wird, werden lokale Bedingungen verwendet, um darauf abzuzielen, welcher (welche) IP-Schaltkreis(e) zu drosseln sind, wenn eine globale Verletzung erkannt wird. Dadurch wird, wie in 20 gezeigt wird, eine Drosselung nur vorgenommen, wenn eine Verletzung des globalen Budgets vorliegt und nur an den IP-Schaltkreisen vorgenommen, die ihr lokales Budget überschreiten. Auf diese Weise können Ausführungsformen eine Leistungsfähigkeit verbessern, indem andere IP-Schaltkreise nicht bestraft werden, die in einer erwarteten Weise funktionieren, was bedeutet, dass sie innerhalb ihrer Budgets funktionieren.
  • Zum Durchführen einer VM-bewussten Partitionsverwaltung können einige Ausführungsformen z.B. von einer Planungseinheit Informationen hinsichtlich einer Zuordnung von Kernen/IP-Schaltkreisen zu verschiedenen Partitionen mit einer Kern/IP-Schaltkreis-Detailgenauigkeit empfangen. In einer Cloud/VM-Umgebung kann zum Beispiel ein Hypervisor diese Informationen bereitstellen. Eine globale Verwaltungseinheit wie zum Beispiel ein Partitionsverwaltungsschaltkreis 2135 kann ihrerseits IP-Schaltkreise/Kerne aufgrund ihrer (von einer Software bereitgestellten) Partitionskennung gruppieren. Die globale Verwaltungseinheit kann außerdem konfiguriert sein, um entsprechende EDP/RAPL-Algorithmen pro Partition auszuführen. Die Verwaltung pro Partition stellt sicher, dass ein Strombudget oder eine Leistungsgrenze für eine Partition nur auf die Kerne verteilt wird, die dieser Partition entsprechen. Wenn ein Kern/IP-Schaltkreis mehr Strom/Leistung verbraucht, veranlassen diese Steuertechniken eine Frequenzverringerung für die Kerne/IP-Schaltkreise innerhalb einer Partition, um einen Strom- oder Leistungsfreiraum zu schaffen, ohne die Frequenz von anderen Kernen/IP-Schaltkreisen in anderen Partitionen zu beeinträchtigen.
  • Es ist zu beachten, dass einige Ausführungsformen verwendet werden können, um andere elektrische Einschränkungen mit unterschiedlichen Zeitkonstanten wie zum Beispiel Leistungsgrenzen PL1, PL2, PL3 und PL4 zu verwalten, die jeweils einer anderen Zeitkonstante zugeordnet sind. Zu diesem Zweck können einige Ausführungsformen gleitende Mittelwerte für die Zeitkonstanten dieser elektrischen Einschränkungen berechnen. Einige Ausführungsformen berücksichtigen somit sowohl globale als auch lokale Verletzungsanzeigen und verwenden sie in einer abgestimmten Weise zum Bestrafen nur eines verletzenden IP-Schaltkreises. Auf diese Weise werden Leistungsverluste beim Auftreten einer elektrischen Verletzung bei einer gegebenen IccMax- und Leistungsgrenzenisolation zwischen mehreren Partitionen in dem gleiche SoC minimiert.
  • In 21 wird jetzt ein Blockschaltbild eines Ein-Chip-Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 21 gezeigt wird, ist das SoC 2100 ein Multipartitions-SoC. Wie dargestellt wird, weist eine erste Partition 21100 eine Vielzahl von Kernen 21120,0 bis 21120,N-1 auf. Auf ähnliche Weise weist eine zweite Partition 21101 eine Vielzahl von Kernen 21121,0 bis 21120,M-1 auf. Es ist zu beachten, dass die Kerne der verschiedenen Partitionen heterogen sein können. Zum Beispiel kann eine Gruppe von Kernen reihenfolgestarre Kerne enthalten und eine andere Gruppe von Kernen kann reihenfolgevariable Kerne enthalten. Bei einem weiteren Beispiel kann eine Gruppe von Kernen Mehrzweck-Prozessorkerne enthalten und eine andere Gruppe von Kernen kann Grafikprozessorkerne enthalten. Und selbstverständlich können bei anderen Umsetzungen mehr als 2 Partitionen vorhanden sein.
  • Im Betrieb kann die Leistungsaufnahme dieser verschiedenen Partitionen und enthaltenen Kerne durch eine Leistungssteuereinheit 2130 gesteuert werden. Bei verschiedenen Ausführungsformen kann eine Leistungssteuereinheit 2130, wie oben beschrieben, als eine PCU umgesetzt werden. Wie zu sehen ist, kann die Leistungssteuereinheit 2130 mit mehreren unabhängigen EDP-Steuereinheiten 21350,1 konfiguriert sein, die jeweils einer gegebenen Partition zugeordnet sind. Diese Steuereinheiten können eine geeignete Frequenzobergrenze in unabhängiger Weise für die entsprechenden Kerne der verschiedenen Partitionen ermitteln, sodass kein partitionsübergreifender Frequenzverschleiß vorliegt.
  • Wie außerdem in 21 dargestellt wird, weist das SoC 2100 auch einen globalen Steuerschaltkreis 2140 auf. Obwohl bei der Ausführungsform der 21 ein separater Schaltkreis gezeigt wird, ist es selbstverständlich, dass bei weiteren Umsetzungen ein globaler Steuerschaltkreis 2140 innerhalb der Leistungssteuereinheit 2130 umgesetzt werden kann. In jedem Fall kann der globale Steuerschaltkreis 2140 mindestens teilweise aufgrund von Budgetinformationen, die von der Leistungssteuereinheit 2130 empfangen werden, und z.B. aufgrund von Telemetrieinformationen, die von den Kernen der Partitionen 2110 empfangen werden, eine globale Verletzung identifizieren. Als Reaktion auf ein Erkennen einer solchen globalen Verletzung kann ein globales Verletzungserkennungssignal an die entsprechenden Kerne 2112 gesendet werden. Die Logikschaltungen innerhalb dieser Kerne können ihrerseits konfiguriert sein, um eine Drosselung des entsprechenden Kerns zu veranlassen, wenn er eine lokale Verletzung begeht und gleichzeitig dieser globalen Verletzung unterliegt. Andernfalls können diese Logikschaltungen konfiguriert sein, um eine beliebige Drosselung zu schalten, wenn eine lokale Verletzung erkannt wird. Obwohl bei der Ausführungsform der 21 eine übergeordnete Darstellung gezeigt wird, sind viele Variationen und Alternativen möglich.
  • Die folgenden Beispiele gehören zu weiteren Ausführungsformen.
  • Bei einem Beispiel weist ein Prozessor Folgendes auf: eine Vielzahl von IP-Schaltkreisen, die jeweils geeignet sind zum Ausführen von Befehlen und die einen lokalen Steuerschaltkreis aufweisen, um dem IP-Schaltkreis zu ermöglichen, auf einer Ebene oberhalb eines lokalen Strombudgets für den IP-Schaltkreis zu funktionieren, ausgenommen wenn der Prozessor einer globalen Verletzung unterliegt; und eine Leistungssteuereinheit, die mit der Vielzahl von IP-Schaltkreisen verbunden ist und einen Steuerschaltkreis aufweist zum Empfangen von Anforderungsinformationen von der Vielzahl von IP-Schaltkreisen und zum Ermitteln, mindestens teilweise aufgrund der Anforderungsinformationen, dass der Prozessor der globalen Verletzung unterliegt, wenn ein globales Strombudget überschritten wird.
  • Bei einem Beispiel umfasst ein erster IP-Schaltkreis aus der Vielzahl von IP-Schaltkreisen einen ersten Logikschaltkreis, um ein Drosselungssignal von dem lokalen Steuerschaltkreis zu empfangen und um zu vermeiden, dass der erste IP-Schaltkreis bei der Abwesenheit der globalen Verletzung gedrosselt wird.
  • Bei einem Beispiel ist der erste Logikschaltkreis geeignet zum Empfangen eines globalen Verletzungssignals von der Leistungssteuereinheit, wenn der Prozessor der globalen Verletzung unterliegt, wobei der erste Logikschaltkreis geeignet ist zum Veranlassen, dass der erste IP-Schaltkreis als Reaktion auf das Drosselungssignal und das globale Verletzungssignal gedrosselt wird.
  • Bei einem Beispiel umfasst ein zweiter IP-Schaltkreis aus der Vielzahl von IP-Schaltkreisen einen zweiten Logikschaltkreis, um das globale Verletzungssignal zu empfangen und um zu vermeiden, dass der zweite Logikschaltkreis gedrosselt wird, während der erste IP-Schaltkreis gedrosselt wird.
  • Bei einem Beispiel ist der erste Logikschaltkreis, als Reaktion auf das globale Verletzungssignal und ohne das Drosselungssignal zu empfangen, geeignet, um zu vermeiden, dass der erste IP-Schaltkreis gedrosselt wird.
  • Bei einem Beispiel ist der lokale Steuerschaltkreis geeignet, um das Drosselungssignal zu erzeugen, wenn ein Stromverbrauch des ersten IP-Schaltkreises ein lokales Strombudget für den ersten IP-Schaltkreis überschreitet.
  • Bei einem Beispiel umfasst der Prozessor eine erste Partition, die mindestens einen ersten IP-Schaltkreis enthält, und eine zweite Partition, die mindestens einen zweiten IP-Schaltkreis enthält, wobei die Leistungssteuereinheit geeignet ist, um der ersten Partition ein erstes Strombudget zuzuteilen und um der zweiten Partition ein zweites Strombudget zuzuteilen, wobei die erste Partition geeignet ist, eine erste virtuelle Maschine auszuführen, und wobei die zweite Partition geeignet ist, eine zweite virtuelle Maschine auszuführen.
  • Bei einem Beispiel, wenn die erste Partition das erste Strombudget überschreitet, ist der mindestens eine zweite IP-Schaltkreis geeignet, um ohne Einschränkungen zu funktionieren.
  • Bei einem Beispiel umfasst die Leistungssteuereinheit außerdem einen Partitionsverwaltungsschaltkreis, um der ersten Partition das erste Strombudget zuzuteilen und um der zweiten Partition das zweite Strombudget zuzuteilen.
  • Bei einem Beispiel, wenn die erste Partition der globalen Verletzung unterliegt, ist der Partitionsverwaltungsschaltkreis geeignet, um zu veranlassen, dass die zweite Partition ohne Einschränkung funktioniert.
  • Bei einem Beispiel, wenn die erste Partition der globalen Verletzung unterliegt und die zweite Partition nicht der globalen Verletzung unterliegt, ist die Leistungssteuereinheit geeignet zum Ausgeben eines globalen Verletzungssignals an die erste Partition, aber nicht an die zweite Partition.
  • Bei einem Beispiel wird der mindestens eine erste IP-Schaltkreis als Reaktion auf das globale Verletzungssignal und auf eine lokale Verletzung gedrosselt.
  • Bei einem weiteren Beispiel umfasst ein Verfahren: Ermitteln, in einem lokalen Steuerschaltkreis eines ersten IP-Schaltkreises eines Prozessors, ob ein Stromverbrauch des ersten IP-Schaltkreises ein lokales Strombudget für den ersten IP-Schaltkreis überschreitet; Erstellen eines Drosselungssignals als Reaktion auf das Ermitteln, dass der Stromverbrauch das lokale Strombudget überschreitet; und Vermeiden, dass der erste IP-Schaltkreis als Reaktion auf das Drosselungssignal gedrosselt wird, ausgenommen wenn der Prozessor einer globalen Verletzung eines globalen Strombudgets für den Prozessor unterliegt.
  • Bei einem Beispiel umfasst das Verfahren außerdem eine Drosselung des ersten IP-Schaltkreises als Reaktion auf das Drosselungssignal und auf ein globales Verletzungssignal, das anzeigt, dass der Prozessor einer globalen Verletzung unterliegt.
  • Bei einem Beispiel umfasst das Verfahren außerdem, während der erste IP-Schaltkreis als Reaktion darauf, dass der Stromverbrauch des ersten IP-Schaltkreises das lokale Strombudget überschreitet, und als Reaktion auf das globale Verletzungssignal gedrosselt wird, ein Vermeiden, dass ein zweiter IP-Schaltkreis des Prozessors gedrosselt wird, wobei ein Stromverbrauch des zweiten IP-Schaltkreises ein lokales Strombudget für den zweiten IP-Schaltkreis nicht überschreitet.
  • Bei einem Beispiel gilt das globale Strombudget für eine erste Partition und wobei, während der erste IP-Schaltkreis als Reaktion darauf, dass der Stromverbrauch des ersten IP-Schaltkreises das lokale Strombudget überschreitet, gedrosselt wird, einer zweiten Partition des Prozessors ermöglicht wird, ohne eine Drosselung zu funktionieren, wenn die zweite Partition keiner globalen Verletzung eines globalen Strombudgets für die zweite Partition unterliegt.
  • Bei einem weiteren Beispiel enthält ein computerlesbares Medium Befehle, die geeignet sind zum Ausführen des Verfahrens nach einem der obigen Beispiele.
  • Bei einem weiteren Beispiel enthält ein computerlesbares Medium Daten, die von mindestens einer Maschine verwendet werden zum Herstellen mindestens eines integrierten Schaltkreises, um das Verfahren nach einem der obigen Beispiele auszuführen.
  • Bei einem noch weiteren Beispiel umfasst eine Vorrichtung ein Element zum Ausführen des Verfahrens nach einem der obigen Beispiele.
  • Bei einem noch anderen Beispiel umfasst ein System ein SoC und einen Spannungsregler, der mit dem SoC verbunden ist, um das SoC mit einer oder mehreren Spannungen zu versorgen. Das SoC kann aufweisen: eine erste Partition, die eine erste Vielzahl von Kernen umfasst, eine zweite Partition, die eine zweite Vielzahl von Kernen umfasst; und eine Leistungssteuereinheit. Die Leistungssteuereinheit kann ihrerseits aufweisen: einen Partitionsverwaltungsschaltkreis, um der ersten Partition ein erstes Budget zuzuteilen und um der zweiten Partition ein zweites Budget zuzuteilen; und einen globalen Steuerschaltkreis, um eine erste globale Verletzung als Reaktion darauf zu identifizieren, dass die erste Partition das erste Budget überschreitet, und um eine zweite globale Verletzung als Reaktion darauf zu identifizieren, dass die zweite Partition das zweite Budget überschreitet. Als Reaktion auf die erste globale Verletzung muss mindestens Einer aus der ersten Vielzahl von Kernen gedrosselt werden, der einen Verbrauchspegel aufweist, der ein lokales Budget überschreitet, während die zweite Partition uneingeschränkt funktionieren kann.
  • Bei einem Beispiel umfasst der mindestens eine aus der ersten Vielzahl von Kernen einen Logikschaltkreis, um ein lokales Verletzungssignal als Reaktion darauf zu empfangen, dass der Verbrauchspegel das lokale Budget überschreitet, und um ein globales Verletzungssignal als Reaktion auf die erste globale Verletzung zu empfangen, und um zu veranlassen, dass der mindestens eine aus der ersten Vielzahl von Kernen als Reaktion auf das lokale Verletzungssignal und das globale Verletzungssignal gedrosselt werden muss.
  • Bei einem Beispiel ist der Logikschaltkreis geeignet, um bei einer Abwesenheit des globalen Verletzungssignals zu vermeiden, dass der mindestens eine aus der ersten Vielzahl von Kernen gedrosselt wird.
  • Bei einem Beispiel ist die Leistungssteuereinheit geeignet, um als Reaktion auf die erste globale Verletzung eine partitionsübergreifende Drosselung der zweiten Partition zu vermeiden.
  • Es ist selbstverständlich, dass verschiedene Kombinationen der obigen Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltkreis“ und „Schaltungen“ hier untereinander austauschbar verwendet werden. So wie diese Begriffe und der Begriff „Logik“ hier verwendet werden, werden sie verwendet, um sich eigenständig oder in einer beliebigen Kombination auf analoge Schaltungen, digitale Schaltungen, verkabelte Schaltungen, programmierbare Schaltungen, Prozessorschaltungen, Mikrosteuereinheitsschaltungen, Hardwarelogikschaltungen, Zustandsmaschinenschaltungen und/oder auf jeden beliebigen anderen Typ einer physischen Hardwarekomponente zu beziehen. Die Ausführungsformen können in vielen verschiedenen Systemtypen verwendet werden. Bei einer Ausführungsform kann zum Beispiel eine Kommunikationseinrichtung angeordnet sein, um die hier beschriebenen verschiedenen Verfahren und Techniken auszuführen. Selbstverständlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationseinrichtung beschränkt und stattdessen können sich weitere Ausführungsformen an andere Einrichtungstypen zum Verarbeiten von Befehlen oder ein oder mehrere maschinenlesbare Medien richten, die Befehle enthalten, die als Reaktion darauf, dass sie in einer Computervorrichtung ausgeführt werden, die Vorrichtung veranlassen, eines oder mehrere der hier beschriebenen Verfahren oder eine oder mehrere der hier beschriebenen Techniken auszuführen.
  • Einige Ausführungsformen können in einem Code umgesetzt werden und können in einem nichtflüchtigen Speichermedium gespeichert werden, in dem Befehle gespeichert sind, die verwendet werden können, um ein System zum Ausführen der Befehle zu programmieren. Einige Ausführungsformen können auch als Daten umgesetzt werden und können in einem nichtflüchtigen Speichermedium gespeichert werden, die, wenn sie von mindestens einer Maschine verwendet werden, die mindestens eine Maschine veranlassen können, mindestens einen integrierten Schaltkreis herzustellen, um eine oder mehrere Operationen auszuführen. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium umgesetzt werden, das Informationen enthält, die wenn sie in einem SoC oder einem anderen Prozessor hergestellt werden, geeignet sind, zum Konfigurieren des SoC oder des anderen Prozessors, um eine oder mehrere Operationen auszuführen. Das Speichermedium kann, ohne auf diese beschränkt zu sein, jeden beliebigen Typ einer Diskette einschließlich flexibler Disketten, optischer Disketten, Halbleiterlaufwerken (Solid State Drives, SSD), Compact-Disk-Speicher (Compact Disk Read-Only Memories, CD-ROMs), mehrfach beschreibbarer Compact-Disk-Speicher (Compact Disk Re-Writables, CD-RWs) und magnetooptischer Speicherplatten; Halbleitereinheiten wie zum Beispiel schreibgeschützte Speicher (Read-Only Memories, ROMs), Direktzugriffsspeicher (Random Access Memories, RAMs) wie zum Beispiel dynamische Direktzugriffsspeicher (Dynamic Random Access Memories, DRAMs), statische Direktzugriffsspeicher (Static Random Access Memories, SRAMs), löschbare programmierbare Direktzugriffsspeicher (Erasable Programmable Read-Only Memories, EPROMs), elektrisch löschbare programmierbare Direktzugriffsspeicher (Electrically Erasable Programmable Read-Only Memories, EEPROMs), magnetische oder optische Karten, oder jede beliebige andere Medienart aufweisen, die geeignet ist elektronische Befehle zu speichern.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind für den Fachmann zahlreiche Veränderungen und Variationen davon selbstverständlich. Die angefügten Ansprüche sind so zu verstehen, dass sie alle diese Veränderungen und Variationen abdecken, die in den wahren Erfindungsgedanken und den Umfang der vorliegenden Erfindung fallen.

Claims (26)

  1. Prozessor, umfassend: eine Vielzahl von Schaltkreisen geistigen Eigentums (Intellectual Property circuits, IP-Schaltkreisen), wobei jeder aus der Vielzahl von IP-Schaltkreisen geeignet ist zum Ausführen von Befehlen und einen lokalen Steuerschaltkreis aufweist, um dem IP-Schaltkreis zu ermöglichen, auf einer Ebene oberhalb eines lokalen Strombudgets für den IP-Schaltkreis zu funktionieren, ausgenommen wenn der Prozessor einer globalen Verletzung unterliegt; und eine Leistungssteuereinheit, die mit der Vielzahl von IP-Schaltkreisen verbunden ist, wobei die Leistungssteuereinheit einen Steuerschaltkreis aufweist zum Empfangen von Anforderungsinformationen von der Vielzahl von IP-Schaltkreisen und zum Ermitteln, mindestens teilweise aufgrund der Anforderungsinformationen, dass der Prozessor der globalen Verletzung unterliegt, wenn ein globales Strombudget überschritten wird.
  2. Prozessor nach Anspruch 1, wobei ein erster IP-Schaltkreis aus der Vielzahl von IP-Schaltkreisen außerdem einen ersten Logikschaltkreis umfasst, um ein Drosselungssignal von dem lokalen Steuerschaltkreis zu empfangen und um zu vermeiden, dass der erste IP-Schaltkreis bei der Abwesenheit der globalen Verletzung gedrosselt wird.
  3. Prozessor nach Anspruch 2, wobei der erste Logikschaltkreis geeignet ist zum Empfangen eines globalen Verletzungssignals von der Leistungssteuereinheit, wenn der Prozessor der globalen Verletzung unterliegt, wobei der erste Logikschaltkreis geeignet ist zum Veranlassen, dass der erste IP-Schaltkreis als Reaktion auf das Drosselungssignal und das globale Verletzungssignal gedrosselt wird.
  4. Prozessor nach Anspruch 3, wobei ein zweiter IP-Schaltkreis aus der Vielzahl von IP-Schaltkreisen einen zweiten Logikschaltkreis umfasst, um das globale Verletzungssignal zu empfangen und um zu vermeiden, dass der zweite Logikschaltkreis gedrosselt wird, während der erste IP-Schaltkreis gedrosselt wird.
  5. Prozessor nach Anspruch 3, wobei der erste Logikschaltkreis, als Reaktion auf das globale Verletzungssignal und ohne das Drosselungssignal zu empfangen, geeignet ist, um zu vermeiden, dass der erste IP-Schaltkreis gedrosselt wird.
  6. Prozessor nach Anspruch 2, wobei der lokale Steuerschaltkreis geeignet ist, um das Drosselungssignal zu erzeugen, wenn ein Stromverbrauch des ersten IP-Schaltkreises ein lokales Strombudget für den ersten IP-Schaltkreis überschreitet.
  7. Prozessor nach einem der Ansprüche 1 bis 6, wobei der Prozessor eine erste Partition, die mindestens einen ersten IP-Schaltkreis enthält, und eine zweite Partition umfasst, die mindestens einen zweiten IP-Schaltkreis enthält, wobei die Leistungssteuereinheit geeignet ist, um der ersten Partition ein erstes Strombudget zuzuteilen und um der zweiten Partition ein zweites Strombudget zuzuteilen, wobei die erste Partition geeignet ist, eine erste virtuelle Maschine auszuführen, und wobei die zweite Partition geeignet ist, eine zweite virtuelle Maschine auszuführen.
  8. Prozessor nach Anspruch 7, wobei, wenn die erste Partition das erste Strombudget überschreitet, der mindestens eine zweite IP-Schaltkreis geeignet ist, um ohne Einschränkungen zu funktionieren.
  9. Prozessor nach Anspruch 7, wobei die Leistungssteuereinheit außerdem einen Partitionsverwaltungsschaltkreis umfasst, um der ersten Partition das erste Strombudget zuzuteilen und um der zweiten Partition das zweite Strombudget zuzuteilen.
  10. Prozessor nach Anspruch 9, wobei, wenn die erste Partition der globalen Verletzung unterliegt, der Partitionsverwaltungsschaltkreis geeignet ist, um zu veranlassen, dass die zweite Partition ohne Einschränkung funktioniert.
  11. Prozessor nach Anspruch 9, wobei, wenn die erste Partition der globalen Verletzung unterliegt und die zweite Partition nicht der globalen Verletzung unterliegt, die Leistungssteuereinheit geeignet ist zum Ausgeben eines globalen Verletzungssignals an die erste Partition, aber nicht an die zweite Partition.
  12. Prozessor nach Anspruch 11, wobei der mindestens eine erste IP-Schaltkreis als Reaktion auf das globale Verletzungssignal und auf eine lokale Verletzung gedrosselt wird.
  13. Verfahren, umfassend: Ermitteln, in einem lokalen Steuerschaltkreis eines ersten Schaltkreises geistigen Eigentums (Intellectual Property circuit, IP-Schaltkreis) eines Prozessors, ob ein Stromverbrauch des ersten IP-Schaltkreises ein lokales Strombudget für den ersten IP-Schaltkreis überschreitet; Erstellen eines Drosselungssignals als Reaktion auf das Ermitteln, dass der Stromverbrauch das lokale Strombudget überschreitet, und Vermeiden, dass der erste IP-Schaltkreis als Reaktion auf das Drosselungssignal gedrosselt wird, ausgenommen wenn der Prozessor einer globalen Verletzung eines globalen Strombudgets für den Prozessor unterliegt.
  14. Verfahren nach Anspruch 13, das außerdem eine Drosselung des ersten IP-Schaltkreises als Reaktion auf das Drosselungssignal und auf ein globales Verletzungssignal umfasst, das anzeigt, dass der Prozessor der globalen Verletzung unterliegt.
  15. Verfahren nach Anspruch 14, das außerdem, während der erste IP-Schaltkreis als Reaktion darauf, dass der Stromverbrauch des ersten IP-Schaltkreises das lokale Strombudget überschreitet, und als Reaktion auf das globale Verletzungssignal gedrosselt wird, ein Vermeiden umfasst, dass ein zweiter IP-Schaltkreis des Prozessors gedrosselt wird, wobei ein Stromverbrauch des zweiten IP-Schaltkreises ein lokales Strombudget für den zweiten IP-Schaltkreis nicht überschreitet.
  16. Verfahren nach Anspruch 13, wobei das globale Strombudget für eine erste Partition des Prozessors gilt, und wobei, während der erste IP-Schaltkreis als Reaktion darauf, dass der Stromverbrauch des ersten IP-Schaltkreises das lokale Strombudget überschreitet, gedrosselt wird, einer zweiten Partition des Prozessors ermöglicht wird, ohne eine Drosselung zu funktionieren, wenn die zweite Partition keiner globalen Verletzung eines globalen Strombudgets für die zweite Partition unterliegt.
  17. Computerlesbares Speichermedium, das computerlesbare Befehle enthält, die, wenn sie ausgeführt werden, geeignet sind, um ein Verfahren nach einem der Ansprüche 13 bis 16 umzusetzen.
  18. Vorrichtung, die ein Element zum Ausführen eines Verfahrens nach einem der Ansprüche 13 bis 16 umfasst.
  19. System, umfassend: ein Ein-Chip-System (System-on-Chip, SoC), das umfasst: eine erste Partition, die eine erste Vielzahl von Kernen umfasst; eine zweite Partition, die eine zweite Vielzahl von Kernen umfasst; und eine Leistungssteuereinheit, die umfasst: einen Partitionsverwaltungsschaltkreis, um der ersten Partition ein erstes Budget zuzuteilen und um der zweiten Partition ein zweites Budget zuzuteilen; und einen globalen Steuerschaltkreis, um eine erste globale Verletzung als Reaktion darauf zu identifizieren, dass die erste Partition das erste Budget überschreitet, und um eine zweite globale Verletzung als Reaktion darauf zu identifizieren, dass die zweite Partition das zweite Budget überschreitet, wobei als Reaktion auf die erste globale Verletzung mindestens einer aus der ersten Vielzahl von Kernen gedrosselt werden muss, der einen Verbrauchspegel aufweist, der ein lokales Budget überschreitet, während die zweite Partition uneingeschränkt funktionieren kann; und einen Spannungsregler, der mit dem SoC verbunden ist, um das SoC mit einer oder mehreren Spannungen zu versorgen.
  20. System nach Anspruch 19, wobei der mindestens eine aus der ersten Vielzahl von Kernen einen Logikschaltkreis umfasst, um ein lokales Verletzungssignal als Reaktion darauf zu empfangen, dass der Verbrauchspegel das lokale Budget überschreitet, und um ein globales Verletzungssignal als Reaktion auf die erste globale Verletzung zu empfangen, und um zu veranlassen, dass der mindestens eine aus der ersten Vielzahl von Kernen als Reaktion auf das lokale Verletzungssignal und das globale Verletzungssignal gedrosselt werden muss.
  21. System nach Anspruch 20, wobei der Logikschaltkreis geeignet ist, um bei einer Abwesenheit des globalen Verletzungssignals zu vermeiden, dass der mindestens eine aus der ersten Vielzahl von Kernen gedrosselt wird.
  22. System nach Anspruch 20, wobei die Leistungssteuereinheit geeignet ist, um als Reaktion auf die erste globale Verletzung eine partitionsübergreifende Drosselung der zweiten Partition zu vermeiden.
  23. Vorrichtung, umfassend: ein Element zum Ermitteln, ob ein Stromverbrauch eines ersten Schaltkreises geistigen Eigentums (Intellectual Property circuit, IP-Schaltkreis) eines Prozessors ein lokales Strombudget für den ersten IP-Schaltkreis überschreitet; ein Element zum Erstellen eines Drosselungssignals als Reaktion auf das Ermitteln, dass der Stromverbrauch das lokale Strombudget überschreitet; und ein Element zum Vermeiden, dass der erste IP-Schaltkreis als Reaktion auf das Drosselungssignal gedrosselt wird, ausgenommen wenn der Prozessor einer globalen Verletzung eines globalen Strombudgets für den Prozessor unterliegt.
  24. Vorrichtung nach Anspruch 23, die außerdem ein Element zum Drosseln des ersten IP-Schaltkreises als Reaktion auf das Drosselungssignal und auf ein globales Verletzungssignal umfasst, das anzeigt, dass der Prozessor einer globalen Verletzung unterliegt.
  25. Vorrichtung nach Anspruch 24, die außerdem ein Element umfasst, um zu vermeiden, dass ein zweiter IP-Schaltkreis des Prozessors gedrosselt wird, wenn ein Stromverbrauch des zweiten IP-Schaltkreises ein lokales Strombudget für den zweiten IP-Schaltkreis nicht überschreitet und während der erste IP-Schaltkreis gedrosselt wird.
  26. Vorrichtung nach Anspruch 24, die außerdem ein Element umfasst, um zu ermöglichen, dass eine zweite Partition des Prozessors funktioniert, ohne gedrosselt zu werden, wenn die zweite Partition nicht einer globalen Verletzung eines globalen Strombudgets für die zweite Partition unterliegt und während der erste IP-Schaltkreis gedrosselt wird.
DE102020127742.3A 2019-11-22 2020-10-21 System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor Pending DE102020127742A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/691,873 US11366506B2 (en) 2019-11-22 2019-11-22 System, apparatus and method for globally aware reactive local power control in a processor
US16/691,873 2019-11-22

Publications (1)

Publication Number Publication Date
DE102020127742A1 true DE102020127742A1 (de) 2021-05-27

Family

ID=69774186

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020127742.3A Pending DE102020127742A1 (de) 2019-11-22 2020-10-21 System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor

Country Status (3)

Country Link
US (3) US11366506B2 (de)
CN (1) CN112835443A (de)
DE (1) DE102020127742A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200374310A1 (en) * 2020-08-11 2020-11-26 Intel Corporation Protection from network initiated attacks
US11822418B2 (en) * 2021-11-29 2023-11-21 Dell Products L.P. System and method for power consumption management

Family Cites Families (107)

* 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
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7010708B2 (en) 2002-05-15 2006-03-07 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
KR20050115227A (ko) 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서
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
US7337339B1 (en) * 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
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
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
US8510581B2 (en) 2007-03-26 2013-08-13 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7861102B1 (en) * 2007-04-30 2010-12-28 Hewlett-Packard Development Company, L.P. Unified power management architecture
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
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
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
US7519843B1 (en) * 2008-05-30 2009-04-14 International Business Machines Corporation Method and system for dynamic processor speed control to always maximize processor performance based on processing load and available power
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
CN102782606B (zh) * 2009-06-19 2015-11-25 惠普开发有限公司 外壳功率控制器
US20110145555A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Controlling Power Management Policies on a Per Partition Basis in a Virtualized Environment
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
US8793512B2 (en) * 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US9261949B2 (en) * 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8627128B2 (en) * 2010-11-09 2014-01-07 International Business Machines Corporation Power management for processing capacity upgrade on demand
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
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8909961B2 (en) * 2011-11-29 2014-12-09 Ati Technologies Ulc Method and apparatus for adjusting power consumption level of an integrated circuit
US9348656B2 (en) * 2011-12-19 2016-05-24 Advanced Micro Devices, Inc. Apparatus and method for managing power among a plurality of processors sharing a thermal platform
WO2013137862A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
US9354689B2 (en) 2012-03-13 2016-05-31 Intel Corporation Providing energy efficient turbo operation of a processor
US9606908B2 (en) * 2012-08-17 2017-03-28 International Business Machines Corporation Memory controller for memory with mixed cell array and method of controlling the memory
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
US9063727B2 (en) * 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
US9348401B2 (en) * 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9625974B2 (en) * 2013-12-23 2017-04-18 Dell Products, L.P. Global throttling of computing nodes in a modular, rack-configured information handling system
US9665161B2 (en) * 2014-08-27 2017-05-30 Mediatek Inc. Method and computer-readable medium for dynamically managing power of multi-core processor
US9652026B2 (en) * 2014-12-21 2017-05-16 Qualcomm Incorporated System and method for peak dynamic power management in a portable computing device
US9766673B2 (en) * 2015-02-27 2017-09-19 Intel Corporation Supercapacitor-based power supply protection for multi-node systems
US9760160B2 (en) * 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US10268262B2 (en) * 2015-08-02 2019-04-23 Dell Products, L.P. Dynamic peak power limiting to processing nodes in an information handling system
US10073511B2 (en) * 2016-03-31 2018-09-11 Qualcomm Incorporated Apparatus and methods for embedded current measurements for performance throttling
US10613611B2 (en) * 2016-06-15 2020-04-07 Intel Corporation Current control for a multicore processor
US10268255B2 (en) * 2016-06-29 2019-04-23 Intel Corporation Management of system current constraints with current limits for individual engines
US10831254B2 (en) * 2017-09-15 2020-11-10 Qualcomm Incorporated Allocating power between multiple central processing units (CPUs) in a multi-CPU processor based on total current availability and individual CPU quality-of-service (QoS) requirements
US20190146567A1 (en) * 2017-11-10 2019-05-16 Advanced Micro Devices, Inc. Processor throttling based on accumulated combined current measurements
US11132046B2 (en) * 2017-12-15 2021-09-28 Intel Corporation Power governance of processing unit
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
US11169583B2 (en) * 2018-08-07 2021-11-09 Western Digital Technologies, Inc. Methods and apparatus for mitigating temperature increases in a solid state device (SSD)
US11144105B2 (en) * 2018-10-30 2021-10-12 Dell Products L.P. Method and apparatus to provide platform power peak limiting based on charge of power assist unit
US10852804B2 (en) * 2018-11-02 2020-12-01 Dell Products L.P. Power management system
US11429173B2 (en) 2018-12-21 2022-08-30 Intel Corporation Apparatus and method for proactive power management to avoid unintentional processor shutdown
US10990434B2 (en) * 2019-02-05 2021-04-27 International Business Machines Corporation Increasing processing capacity of virtual machines for an abnormal event
US11054882B2 (en) * 2019-02-21 2021-07-06 Apple Inc. Externally-triggered throttling
CN110941321A (zh) * 2019-11-22 2020-03-31 北京小米移动软件有限公司 电子设备的供电方法、装置及智能设备

Also Published As

Publication number Publication date
CN112835443A (zh) 2021-05-25
US20240028101A1 (en) 2024-01-25
US20200089308A1 (en) 2020-03-19
US20230148150A1 (en) 2023-05-11
US11853144B2 (en) 2023-12-26
US11366506B2 (en) 2022-06-21

Similar Documents

Publication Publication Date Title
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
EP2894542B1 (de) Schätzung der Skalierbarkeit einer Belastung
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
DE112013005131T5 (de) Verfahren, Vorrichtung, System zur automatischen Abstimmung von Coderegionen
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE202015009867U1 (de) Einrichtung zum Bereitstellen einer Wärmeparametermeldung für eine Mehrchip-Baugruppe
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
DE102018131595A1 (de) Verwaltung von Prozessorleistung basierend auf Benutzerunterbrechungen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
TW201638717A (zh) 平台裝置的執行動態功率控制
CN104049715A (zh) 平台不可知的功率管理
CN104583896A (zh) 向处理器的异构计算元件分配功率
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
US20240028101A1 (en) System, apparatus and method for globally aware reactive local power control in a processor
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung
DE112017004991T5 (de) Ausgleichssteuerung für variable energieschienen
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
DE112017005000T5 (de) Prozessorspannungssteuerung unter verwendung eines beweglichen mittelwerts