DE112017004991T5 - Ausgleichssteuerung für variable energieschienen - Google Patents

Ausgleichssteuerung für variable energieschienen Download PDF

Info

Publication number
DE112017004991T5
DE112017004991T5 DE112017004991.1T DE112017004991T DE112017004991T5 DE 112017004991 T5 DE112017004991 T5 DE 112017004991T5 DE 112017004991 T DE112017004991 T DE 112017004991T DE 112017004991 T5 DE112017004991 T5 DE 112017004991T5
Authority
DE
Germany
Prior art keywords
processor
voltage
power rail
component
equalization
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.)
Withdrawn
Application number
DE112017004991.1T
Other languages
English (en)
Inventor
Xiuting Man
Amir Ali Radjai
Jeremy Shrall
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 DE112017004991T5 publication Critical patent/DE112017004991T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05FSYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
    • G05F1/00Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
    • G05F1/10Regulating voltage or current
    • G05F1/625Regulating voltage or current wherein it is irrelevant whether the variable actually regulated is ac or dc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • G06F1/305Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations in the event of power-supply fluctuations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

In einer Ausführungsform umfasst ein Prozessor eine erste Energieschiene, eine erste Komponente, welche mit der ersten Energieschiene verbunden ist, und eine Ausgleichssteuerungseinheit. Die Ausgleichssteuerungseinheit: erfasst eine Anforderung, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern; bestimmt in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört; und löst in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, eine erste Ausgleichshandlung aus, bevor die Spannung der ersten Energieschiene geändert wird. Andere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Gebiet der Erfindung
  • Ausführungsformen betreffen Computerprozessoren und insbesondere eine Ausgleichssteuerung für variable Energieschienen in Computerprozessoren.
  • Allgemeiner Stand der Technik
  • Fortschritte in der Halbleiterverarbeitung und im Logik-Design haben einen Anstieg der Logikmenge ermöglicht, die auf Vorrichtungen aus integrierten Schaltungen vorliegen kann. Als ein Ergebnis haben sich Computersystemkonfigurationen von einer einzigen oder mehreren integrierten Schaltungen in einem System zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen auf einzelnen integrierten Schaltungen entwickelt. Außerdem sind, da die Dichte integrierter Schaltungen zugenommen hat, die Stromerfordernisse für Rechensysteme (von eingebetteten Systemen bis zu Servern) ebenfalls gestiegen. Ferner haben ineffiziente Software und ihre Hardware-Erfordernisse ebenfalls zu einem Anstieg des Energieverbrauchs von Rechenvorrichtungen geführt. Tatsächlich zeigen einige Studien an, dass Rechenvorrichtungen einen ziemlich großen Prozentsatz der gesamten Elektrizitätsversorgung eines Landes, z.B. der Vereinigten Staaten von Amerika, verbrauchen. Als Ergebnis dessen besteht ein dringender Bedarf für Energieeffizienz und Energieeinsparungen im Zusammenhang mit integrierten Schaltungen. Dieser Bedarf steigt weiter an, da sich Server, Desktop-Computer, Notebooks, Ultrabooks™, Tablets, Mobiltelefone, Prozessoren, eingebettete Systeme usw. immer weiter verbreiten (vom Einbau in den typischen Computer, Automobile und Fernsehgeräte bis zur Biotechnologie).
  • Figurenliste
    • 1 ist ein Blockschaubild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockschaubild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockschaubild eines Mehr-Domänen-Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
    • 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne umfasst.
    • 5 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform.
    • 7 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß noch einer anderen Ausführungsform.
    • 8 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform.
    • 9 ist ein Blockschaubild eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
    • 10 ist ein Blockschaubild eines repräsentativen SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 11 ist ein Blockschaubild eines anderen beispielhaften SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 12 ist ein Blockschaubild eines beispielhaften Systems, mit welchem Ausführungsformen verwendet werden können.
    • 13 ist ein Blockschaubild eines anderen beispielhaften Systems, mit welchem Ausführungsformen verwendet werden können.
    • 14 ist ein Blockschaubild eines repräsentativen Computersystems.
    • 15 ist ein Blockschaubild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 16 ist ein Blockschaubild, welches ein IP-Kernentwicklungssystem, das verwendet wird, um eine integrierte Schaltung zum Durchführen von Operationen herzustellen, gemäß einer Ausführungsform veranschaulicht.
    • 17 ist ein Schaubild eines beispielhaften Systems gemäß einer oder mehreren Ausführungsformen.
    • 18 ist ein Schaubild einer beispielhaften Ausgleichseinheit gemäß einer oder mehreren Ausführungsformen.
    • 19 ist ein Schaubild einer beispielhaften Datenstruktur gemäß einer oder mehreren Ausführungsformen.
    • 20 ist ein Schaubild eines beispielhaften Systems gemäß einer oder mehreren Ausführungsformen.
    • 21 ist ein beispielhafter zeitlicher Ablaufplan gemäß einer oder mehreren Ausführungsformen.
    • 22 ist eine beispielhafte Abfolge gemäß einer oder mehreren Ausführungsformen.
  • Detaillierte Beschreibung
  • Obwohl die folgenden Ausführungsformen in Bezug auf Energieeinsparungen und Energieeffizienz in speziellen integrierten Schaltungen beschrieben werden, wie z.B. in Rechenplattformen oder Prozessoren, sind andere Ausführungsformen auf andere Arten integrierter Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren aus hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von einer besseren Energieeffizienz und Energieeinsparungen profitieren können. Beispielsweise sind die offenbarten Ausführungsformen nicht auf eine bestimmte Art von Computersystemen beschränkt. Das heißt, offenbarte Ausführungsformen können in vielen verschiedenen Systemarten angewendet werden, welche Server-Computer (z.B. Tower-Server, Rack-Server, Blade-Server, Mikroserver usw.), Kommunikationssysteme, Speichersysteme, Desktop-Computer beliebiger Konfiguration, Laptops, Notebooks und Tablet-Computer (umfassend 2:1-Tablets, Phablets usw.) umfassen, und können auch in anderen Vorrichtungen angewendet werden, wie z.B. Handgeräten, Systemen auf einem Chip (Systems on Chip, SoCs) und eingebetteten Anwendungen. Einige Beispiele für Handgeräte umfassen Mobiltelefone, z.B. Smartphones, Internet-Protokoll-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und Hand-PCs. Eingebettete Anwendungen können typischerweise einen Mikrocontroller, einen digitalen Signalprozessor (DSP), Netzwerk-Computer (NetPCs), Set-Top-Boxes, Netzwerkknoten, Wide-Area-Network(WAN)-Schalter, am Körper tragbare Vorrichtungen oder beliebige andere Systeme umfassen, welche die nachstehend gelehrten Funktionen und Operationen ausführen können. Außerdem können Ausführungsformen in mobilen Endgeräten ausgeführt werden, welche Standard-Sprachfunktionalitäten aufweisen, wie z.B. Mobiltelefone, Smartphones und Phablets, und/oder in nicht-mobilen Endgeräten ohne eine Kommunikationsfähigkeit durch drahtlose Standard-Sprachfunktion, wie z.B. viele am Körper tragbare Vorrichtungen, Tablets, Notebooks, Desktop-Computer, Mikroserver, Server usw. Ferner sind die hierin beschriebenen Vorrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können sich auch auf Software-Optimierungen zur Energieeinsparung und Energieeffizienz beziehen. Wie aus der nachstehenden Beschreibung schnell ersichtlich wird, sind die Ausführungsformen der hierin beschriebenen Verfahren, Vorrichtungen und Systeme (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) wichtig für eine Zukunft mit ,grüner Technologie', z.B. Stromeinsparungen und Energieeffizienz in Produkten, die einen großen Teil der US-Wirtschaft umfassen.
  • In 1 ist ein Blockschaubild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 1 dargestellt, kann das System 100 verschiedene Komponenten umfassen, umfassend einen Prozessor 110, welcher, wie dargestellt, ein mehrkerniger Prozessor ist. Der Prozessor 110 kann über einen externen Spannungsregler 160, welcher eine erste Spannungsumwandlung durchführen kann, um dem Prozessor 110 eine primäre regulierte Spannung Vreg zuzuführen, mit einer Energieversorgung 150 verbunden sein.
  • Wie dargestellt, kann der Prozessor 110 ein Einzel-Die-Prozessor sein, welcher mehrere Kerne 120a bis 120n umfasst. Außerdem kann jeder Kern mit einem integrierten Spannungsregler (Integrated Voltage Regulator, IVR) 125a bis 125n verbunden sein, welcher die primäre regulierte Spannung empfängt und eine Betriebsspannung erzeugt, welche einem oder mehreren Agenten des Prozessors bereitzustellen ist, der mit dem IVR verbunden ist. Entsprechend kann eine IVR-Anwendung bereitgestellt werden, um eine Feinsteuerung der Spannung und somit der Energie und der Leistungsfähigkeit jedes einzelnen Kerns zu ermöglichen. Somit kann jeder Kern mit einer unabhängigen Spannung und Frequenz arbeiten, was eine große Flexibilität ermöglicht und breit gestreute Möglichkeiten zur Balance des Stromverbrauchs mit der Leistungsfähigkeit eröffnet. In einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs die Gruppierung von Komponenten in separate Energieebenen, so dass die Energie reguliert und von dem IVR nur jenen Komponenten in der Gruppe zugeführt wird. Während des Energiemanagements kann eine gegebene Energieebene eines IVR heruntergefahren oder ausgeschaltet werden, wenn der Prozessor in einen bestimmten Niedrigenergiezustand gesetzt wird, während eine andere Energieebene eines anderen IVR aktiv oder vollständig eingeschaltet bleibt. In ähnlicher Weise können die Kerne 120 unabhängige Taktgeneratorschaltungen umfassen oder mit solchen verbunden sein, wie z.B. eine oder mehrere Phasenregelkreise (Phase Lock Loops, PLLs) zum unabhängigen Steuern der Betriebsfrequenz jedes Kerns 120.
  • Immer noch Bezug nehmend auf 1, können innerhalb des Prozessors weitere Komponenten vorhanden sein, z.B. eine Eingabe/Ausgabe-Schnittstelle (IF) 132, eine weitere Schnittstelle 134 und eine integrierte Speichersteuerung (Integrated Memory Controller, IMC) 136. Wie dargestellt, kann jede dieser Komponenten durch einen anderen integrierten Spannungsregler 125x versorgt werden. In einer Ausführungsform kann die Schnittstelle 132 den Betrieb einer Intel®-Quick-Path-Interconnect(QPI)-Verbindung ermöglichen, welche für Punkt-zu-Punkt(PtP)-Verbindungen in einem Cache-kohärenten Protokoll sorgt, welches mehrere Schichten umfasst, umfassend eine Bitübertragungsschicht, eine Sicherungsschicht und eine Protokollschicht. Die Schnittstelle 134 kann ihrerseits über ein Peripheral-Component-Interconnect-Express(PCIe™)-Protokoll kommunizieren.
  • Ebenfalls dargestellt ist eine Energiesteuerungseinheit (Power Control Unit, PCU) 138, welche Schaltungen umfassen kann, die Hardware, Software und/oder Firmware umfassen, um Energiemanagement-Operationen in Bezug auf den Prozessor 110 durchzuführen. Wie dargestellt, stellt die PCU 138 dem externen Spannungsregler 160 über eine digitale Schnittstelle 138 Steuerungsinformationen bereit, um zu bewirken, dass der Spannungsregler die richtige regulierte Spannung erzeugt. Die PCU 138 stellt außerdem über eine weitere digitale Schnittstelle 163 den IVRs 125 Steuerungsinformationen bereit, um die erzeugte Betriebsspannung zu steuern (oder um zu bewirken, dass ein entsprechender IVR in einem Niedrigenergiemodus ausgeschaltet wird). In verschiedenen Ausführungsformen kann die PCU 138 eine Vielfalt von Energiemanagement-Logikeinheiten zur Durchführung eines Energiemanagements auf Hardware-Basis umfassen. Ein solches Energiemanagement kann vollständig prozessorgesteuert sein (z.B. durch verschiedenartige Prozessor-Hardware, welche durch Arbeitslast und/oder Energie-, Wärme- oder andere Prozessorbeschränkungen ausgelöst werden kann) und/oder das Energiemanagement kann in Reaktion auf externe Quellen (z.B. eine Plattform oder eine Energiemanagementquelle oder eine System-Software) durchgeführt werden.
  • In 1 ist die PCU 138 so dargestellt, dass sie als eine separate Logik des Prozessors vorliegt. In anderen Fällen kann die PCU-Logik 138 auf einem oder mehreren gegebenen der Kerne 120 ausgeführt werden. In einigen Fällen kann die PCU 138 als ein (dedizierter oder allgemeiner) Mikrocontroller oder als eine andere Steuerungslogik realisiert sein, die so konfiguriert ist, dass sie ihren eigenen dedizierten Energiemanagement-Code ausführt, der manchmal als P-Code bezeichnet wird. In wiederum anderen Ausführungsformen können Energiemanagement-Operationen, die von der PCU 138 durchzuführen sind, extern eines Prozessors realisiert werden, z.B. mittels einer separaten Energiemanagement-IC (Power Management Integrated Circuit, PMIC) oder einer anderen Komponente extern des Prozessors. In noch anderen Ausführungsformen können Energiemanagement-Operationen, die von der PCU 138 durchzuführen sind, innerhalb einer BIOS oder einer anderen System-Software realisiert werden.
  • Ausführungsformen können besonders geeignet sein für einen mehrkernigen Prozessor, in welchem jeder von mehreren Kernen auf einem unabhängigen Spannungs- und Frequenzpunkt arbeiten kann. Wie hierin verwendet, bedeutet der Begriff „Domäne“ eine Zusammenstellung von Hardware und/oder Logik, welche auf demselben Spannungs- und Frequenzpunkt arbeitet. Außerdem kann ein mehrkerniger Prozessor ferner andere nichtkerngebundene Verarbeitungsmaschinen umfassen, wie z.B. feste Funktionseinheiten, Graphikmaschinen usw. Ein solcher Prozessor kann andere unabhängige Domänen als die Kerne umfassen, z.B. eine oder mehrere Domänen, die zu einer Graphikmaschine gehören (hierin als Graphikdomäne bezeichnet), und eine oder mehrere Domänen, die zu nichtkerngebundenen Schaltungen gehören, hierin als ein Uncore oder ein Systemagent bezeichnet. Obwohl auf einem einzelnen Halbleiter-Die viele Anwendungen eines Mehrdomänenprozessors gebildet werden können, können andere Anwendungen durch ein Multi-Chip-Package realisiert werden, in welchem verschiedene Domänen auf verschiedenen Halbleiter-Dies eines einzelnen Package vorhanden sein können.
  • Obwohl zur Vereinfachung der Illustration nicht dargestellt, versteht es sich, dass weitere Komponenten innerhalb des Prozessors 110 vorliegen können, wie z.B. eine Uncore-Logik und andere Komponenten, wie z.B. interne Speicher, z.B. eine oder mehrere Stufen einer Cache-Speicher-Hierarchie usw. Ferner sind die Ausführungsformen, obwohl in der Realisierung der 1 mit einem integrierten Spannungsregler dargestellt, diesbezüglich nicht beschränkt. Beispielsweise können On-Chip-Ressourcen von dem externen Spannungsregler 160 oder einer oder mehreren externen Quellen für regulierte Spannungen andere regulierte Spannungen bereitgestellt werden
  • Man beachte, dass die hierin beschriebenen Energiemanagement-Techniken von einem Energiemanagement-Mechanismus auf Betriebssystem(Operating System, OS)-Basis (OS-based Power Management, OSPM) unabhängig sein und diesen ergänzen können. Gemäß einer beispielhaften OSPM-Technik kann ein Prozessor in verschiedenen Leistungszuständen oder -stufen arbeiten, sogenannten P-Zuständen, nämlich von P0 bis PN. Im Allgemeinen kann der Leistungszustand P1 dem höchsten garantierten Leistungszustand entsprechen, der von einem OS angefordert werden kann. Zusätzlich zu diesem P1-Zustand kann das OS ferner einen höheren Leistungszustand anfordern, nämlich einen P0-Zustand. Dieser P0-Zustand kann somit ein zweckmäßiger, Übertaktungs-, Turbomodus-Zustand sein, in welchem, wenn das Energie- und/oder Wärmebudget verfügbar ist, die Prozessor-Hardware den Prozessor oder wenigstens Teile davon konfigurieren kann, mit einer höheren als der garantierten Frequenz zu arbeiten. In vielen Anwendungen kann ein Prozessor mehrere sogenannte Bin-Frequenzen oberhalb der garantierten P1-Maximalfrequenz umfassen, die eine maximale Peak-Frequenz des speziellen Prozessors übersteigen, wie sie während der Herstellung in den Prozessor eingebrannt oder auf andere Weise geschrieben wird. Außerdem kann ein Prozessor gemäß einem OSPM-Mechanismus in verschiedenen Leistungszuständen oder -stufen arbeiten. Bezüglich der Leistungszustände kann ein OSPM-Mechanismus verschiedene Energieverbrauchszustände spezifizieren, welche im Allgemeinen als C-Zustände bezeichnet werden, als die Zustände C0, C1 bis Cn. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand, und wenn sich der Kern im Ruhezustand befindet, kann er in einen Niedrigenergie-Kernzustand gesetzt werden, der auch als Nicht-C0-Kernzustand bezeichnet wird (z.B. die Zustände C1 bis C6), wobei jeder C-Zustand auf einer niedrigeren Energieverbrauchsstufe liegt (so dass C6 ein niedrigerer Niedrigenergiezustand ist als C1 usw.).
  • Es versteht sich, dass in verschiedenen Ausführungsformen viele verschiedene Arten von Energiemanagement-Techniken einzeln oder in Kombination angewendet werden können. Als repräsentative Beispiele kann eine Energiesteuerung den Prozessor steuern, ein Energiemanagement durch eine Form einer dynamischen Spannungs-Frequenz-Skalierung (Dynamic Voltage Frequency Scaling, DVFS) zu durchlaufen, wobei eine Betriebsspannung und/oder Betriebsfrequenz eines oder mehrerer Kerne oder einer anderen Prozessorlogik dynamisch gesteuert werden kann, um in bestimmten Situationen den Energieverbrauch zu verringern. In einem Beispiel kann eine DVFS unter Anwendung einer Enhanced-Intel-SpeedStep™-Technologie durchgeführt werden, die von der Intel Corporation, Santa Clara, CA, erhältlich ist, um für eine optimale Leistungsfähigkeit bei niedrigster Energieverbrauchsstufe zu sorgen. In einem anderen Beispiel kann eine DVFS unter Anwendung einer Intel-TurboBoost™-Technologie durchgeführt werden, um zu ermöglichen, dass ein oder mehrere Kerne oder andere Rechenmaschinen mit einer höheren als der garantierten Betriebsfrequenz arbeiten, basierend auf Bedingungen (z.B. Arbeitslast und Verfügbarkeit).
  • Eine andere Energiemanagement-Technologie, die in bestimmten Beispielen angewendet werden kann, ist ein dynamisches Austauschen von Arbeitslasten zwischen verschiedenen Rechenmaschinen. Beispielsweise kann der Prozessor asymmetrische Kerne oder andere Verarbeitungsmaschinen umfassen, welche auf verschiedenen Energieverbrauchsstufen arbeiten, so dass in einer Situation mit Energiebeschränkung eine oder mehrere Arbeitslasten dynamisch so geschaltet werden können, dass sie auf einem Kern niedrigerer Energie oder einer anderen Rechenmaschine ausgeführt werden. Eine weitere beispielhafte Energiemanagement-Technologie sind Hardware-Betriebszyklen (Hardware Duty Cycling, HDC), was bewirken kann, dass Kerne und/oder andere Rechenmaschinen gemäß einem Betriebszyklus periodisch eingeschaltet und ausgeschaltet werden, so dass ein oder mehrere Kerne während einer inaktiven Periode des Betriebszyklus inaktiv gemacht werden können und während einer aktiven Periode des Betriebszyklus aktiv gemacht werden können.
  • Energiemanagement-Techniken können ebenfalls angewendet werden, wenn Beschränkungen in einer Betriebsumgebung vorliegen. Wenn man beispielsweise eine Energie- und/oder Wärmebeschränkung begegnet, kann die Energie verringert werden, indem die Betriebsfrequenz und/oder die Spannung verringert wird. Andere Energiemanagement-Techniken umfassen eine Drosselung der Befehlsausführungsgeschwindigkeit oder eine Begrenzung der Terminierung von Befehlen. Ferner ist es möglich, dass Befehle einer gegebenen Befehlssatzarchitektur ausdrückliche oder implizite Anweisungen hinsichtlich Energiemanagement-Operationen umfassen. Obwohl die Beschreibung anhand dieser speziellen Beispiele erfolgt, versteht es sich, dass in bestimmten Ausführungsformen viele andere Energiemanagement-Techniken angewendet werden können.
  • Ausführungsformen können in Prozessoren für verschiedene Märkte realisiert werden, umfassend Server-Prozessoren, Desktop-Computer-Prozessoren, Mobiltelefonprozessoren usw. Nun Bezug nehmend auf 2, ist dort ein Blockschaubild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 2 dargestellt, kann der Prozessor 200 ein mehrkerniger Prozessor sein, welcher mehrere Kerne 210a bis 210n umfasst. In einer Ausführungsform kann jeder solche Kern eine unabhängige Energiedomäne aufweisen und kann dafür konfiguriert sein, auf der Grundlage der Arbeitslast in aktive Zustände und/oder Zustände maximaler Leistungsfähigkeit einzutreten und diese zu verlassen. Ein oder mehrere Kerne 210 können heterogen zu den anderen Kernen sein, wobei sie z.B. andere Mikroarchitekturen, Befehlssatzarchitekturen, Pipeline-Tiefen, Energie- und Leistungsfähigkeiten aufweisen. Die verschiedenen Kerne können über eine Verbindung 215 mit einem Systemagenten oder Uncore 220 verbunden sein, welcher verschiedene Komponenten umfasst. Wie dargestellt, kann der Uncore 220 einen gemeinsam benutzten Cache-Speicher 230 umfassen, welcher ein Last-Level-Cache-Speicher sein kann. Außerdem kann der Uncore eine integrierte Speichersteuerung 240 zum Kommunizieren mit einem Systemspeicher (in 2 nicht dargestellt), z.B. über einen Speicherbus, umfassen. Der Uncore 220 umfasst auch verschiedene Schnittstellen 250 und eine Energiesteuerungseinheit 255, welche Logik zur Durchführung der hierin beschriebenen Energiemanagement-Techniken umfassen kann.
  • Außerdem kann durch die Schnittstellen 250a bis 250n eine Verbindung zu verschiedenen Komponenten außerhalb des Chips hergestellt werden, wie z.B. Peripherievorrichtungen, Massenspeicher usw. Obwohl in der Ausführungsform der 2 mit dieser speziellen Realisierung dargestellt, ist der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt.
  • Nun Bezug nehmend auf 3, ist dort ein Blockschaubild eines Mehr-Domänen-Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. Wie in der Ausführungsform der 3 dargestellt, umfasst der Prozessor 300 mehrere Domänen. Speziell kann eine Kerndomäne 310 mehrere Kerne 310a bis 310n umfassen, eine Graphikdomäne 320 kann eine oder mehrere Graphikmaschinen umfassen und eine Systemagentdomäne 350 kann ebenfalls vorhanden sein. In einigen Ausführungsformen kann die Systemagentdomäne 350 mit einer von der Kerndomäne unabhängigen Frequenz ausgeführt werden und kann zu jeder Zeit eingeschaltet bleiben, um Energiesteuerungsereignisse und das Energiemanagement zu regeln, so dass die Domänen 310 und 320 so gesteuert werden können, dass sie dynamisch in Hoch- und Niedrigenergiezustände eintreten und diese verlassen. Jede der Domänen 310 und 320 kann mit einer anderen Spannung und/oder Energie arbeiten. Es sei angemerkt, dass es sich versteht, dass, obwohl nur mit drei Domänen dargestellt, der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist und in anderen Ausführungsformen weitere Domänen vorhanden sein können. Beispielsweise können mehrere Kerndomänen vorhanden sein, welche jeweils mindestens einen Kern umfassen.
  • Im Allgemeinen kann jeder Kern 310 ferner zusätzlich zu verschiedenen Ausführungseinheiten und weiteren Verarbeitungselementen Low-Level-Cache-Speicher umfassen. Die verschiedenen Kerne können ihrerseits miteinander und mit einem gemeinsam benutzten Cache-Speicher verbunden sein, der aus mehreren Einheiten eines Last-Level-Cache-Speichers (LLC) 340a bis 340n gebildet ist. In verschiedenen Ausführungsformen kann der LLC 340 von den Kernen und der Graphikmaschine gemeinsam benutzt werden, ebenso wie von verschiedenen Medienverarbeitungsschaltungen. Wie dargestellt, verbindet eine Ringverbindung 330 die Kerne miteinander und sorgt für eine Verbindung zwischen den Kernen, der Graphikdomäne 320 und den Systemagentschaltungen 350. In einer Ausführungsform kann die Verbindung 330 Teil der Kerndomäne sein. In anderen Ausführungsformen jedoch die Ringverbindung jedoch ihre eigene Domäne aufweisen.
  • Wie ebenfalls dargestellt, kann die Systemagentdomäne 350 eine Display-Steuerung 352 umfassen, welche für eine Steuerung eines zugehörigen Displays und eine Schnittstelle dafür sorgen kann. Wie ferner dargestellt, kann die Systemagentdomäne 350 eine Energiesteuerungseinheit 355 umfassen, welche eine Logik zur Durchführung der hierin beschriebenen Energiemanagement-Techniken umfassen kann.
  • Wie ferner in 3 dargestellt, kann der Prozessor 300 außerdem eine integrierte Speichersteuerung (Integrated Memory Controller, IMC) 370 umfassen, welche für eine Schnittstelle zu einem Systemspeicher sorgen kann, z.B. einem dynamischen Direktzugriffsspeicher (DRAM). Mehrere Schnittstellen 380a bis 380n können vorhanden sein, um eine Verbindung zwischen dem Prozessor und anderen Schaltungen zu ermöglichen. Beispielsweise kann in einer Ausführungsform mindestens eine Direct-Media-Interface(DMI)-Schnittstelle bereitgestellt werden, ebenso wie eine oder mehrere PCIe™-Schnittstellen. Ferner können außerdem eine oder mehrere QPI-Schnittstellen bereitgestellt werden, um für Kommunikationen zwischen anderen Agenten zu sorgen, z.B. weiteren Prozessoren oder anderen Schaltungen. Obwohl in der Ausführungsform der 3 mit diesem hohen Niveau dargestellt, versteht es sich, dass der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • In 4 ist eine Ausführungsform eines Prozessors dargestellt, der mehrere Kerne umfasst. Der Prozessor 400 umfasst einen beliebigen Prozessor oder eine beliebige Verarbeitungsvorrichtung, wie z.B. einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen Handprozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (System on a Chip, SoC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 400 umfasst in einer Ausführungsform mindestens zwei Kerne - die Kerne 401 und 402, welche asymmetrische Kerne oder symmetrische Kerne (wie in der veranschaulichten Ausführungsform) umfassen können. Der Prozessor 400 kann jedoch eine beliebige Anzahl an Verarbeitungselementen umfassen, welche symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente umfassen: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Verfahrenseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder beliebige andere Elemente, welche in der Lage sind, einen Zustand für einen Prozessor zu halten, z.B. einen Ausführungszustand oder Architekturzustand. Mit anderen Worten, ein Verarbeitungselement bezieht sich in einer Ausführungsform auf eine beliebige Hardware, welche in der Lage ist, unabhängig mit Code verbunden zu werden, z.B. mit einem Software-Thread, einem Betriebssystem, einer Anwendung oder einem anderen Code. Ein physischer Prozessor bezieht sich typischerweise auf eine integrierte Schaltung, welche möglicherweise eine beliebige Anzahl anderer Verarbeitungselemente umfasst, z.B. Kerne oder Hardware-Threads.
  • Ein Kern bezieht sich oft auf Logik, die auf einer integrierten Schaltung lokalisiert ist und in der Lage ist, einen unabhängigen Architekturzustand beizubehalten, wobei jeder unabhängig beibehaltene Architekturzustand mit zumindest einigen dedizierten Ausführungsressourcen verbunden ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread typischerweise auf eine beliebige Logik, die auf einer integrierten Schaltung lokalisiert ist und in der Lage ist, einen unabhängigen Architekturzustand beizubehalten, wobei die unabhängig beibehaltenen Architekturzustände einen gemeinsamen Zugang zu Ausführungsressourcen aufweisen. Wie man sieht, überlappen sich die Grenzen zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam benutzt werden und andere für einen Architekturzustand dediziert sind. Oft jedoch werden ein Kern und ein Hardware-Thread von einem Betriebssystem als individuelle logische Prozessoren angesehen, wo das Betriebssystem in der Lage ist, Operationen individuell auf jeden logischen Prozessor zu legen.
  • Der physische Prozessor 400, wie in 4 dargestellt, umfasst zwei Kerne, die Kerne 401 und 402. Hier werden die Kerne 401 und 402 als symmetrische Kerne angesehen, d.h. als Kerne mit denselben Konfigurationen, denselben funktionellen Einheiten und/oder derselben Logik. In einer anderen Ausführungsform umfasst der Kern 401 einen Out-of-Order-Prozessorkern, während der Kern 402 einen In-Order-Prozessorkern umfasst. Jedoch können die Kerne 401 und 402 individuell aus beliebigen Kerntypen ausgewählt werden, z.B. einem nativen Kern, einem Software-verwalteten Kern, einem Kern, der dafür geeignet ist, eine native Befehlssatzarchitektur (Instruction Set Architecture, ISA) auszuführen, einem Kern, der dafür geeignet ist, eine übersetzte ISA auszuführen, einem co-designten Kern oder einem anderen bekannten Kern. Um die Beschreibung noch weiter fortzuführen, werden die im Kern 401 veranschaulichten funktionellen Einheiten nachstehend detaillierter beschrieben, da die Einheiten im Kern 402 ähnlich arbeiten.
  • Wie dargestellt, umfasst der Kern 401 zwei Hardware-Threads 401a und 401b, welche auch als Hardware-Thread-Slots 401a und 401b bezeichnet werden können. Daher sehen Software-Einheiten, wie z.B. ein Betriebssystem, den Prozessor 400 in einer Ausführungsform möglicherweise als vier separate Prozessoren, d.h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angeführt, ist ein erster Thread mit Architekturzustandsregistern 401a verbunden, ein zweiter Thread ist mit Architekturzustandsregistern 401b verbunden, ein dritter Thread kann mit Architekturzustandsregistern 402a verbunden sein und ein vierter Thread kann mit Architekturzustandsregistern 402b verbunden sein. Hier kann jedes der Architekturzustandsregister (401a, 401b, 402a, 402b) als Verarbeitungselement, Thread-Slot oder Thread-Einheit bezeichnet werden, wie oben beschrieben. Wie dargestellt, werden die Architekturzustandsregister 401a in den Architekturzustandsregistern 401b nachgebildet, so dass es möglich ist, individuelle Architekturzustände/Kontexte für den logischen Prozessor 401a und den logischen Prozessor 401b zu speichern. Im Kern 401 können andere kleinere Ressourcen, z.B. Befehlszeiger und eine Umbenennungslogik im Zuordnungs- und Umbenennungsblock 430, ebenso für die Threads 401a und 401b nachgebildet sein. Einige Ressourcen, z.B. Neuordnungs-Pufferspeicher in der Neuordnungs-/Stilllegungseinheit 435, ein Sprungziel-Pufferspeicher und ein assoziativer Befehlsübersetzungs-Pufferspeicher (Branch Target Buffer, BTB, und Instruction Translation Lookaside Buffer, I-LTB) 420, Lade/Speicherungs-Pufferspeicher und Warteschlangen können durch Partitionierung gemeinsam benutzt werden. Andere Ressourcen, z.B. allgemeine interne Register, Seitentabellen-Basisregister, ein niedrigstufiger Daten-Cache-Speicher und Daten-TLB 450, Ausführungseinheit(en) 440 und Teile der Out-of-Order-Einheit 435 werden möglicherweise vollständig gemeinsam benutzt.
  • Der Prozessor 400 umfasst oft andere Ressourcen, welche vollständig gemeinsam benutzt werden können, durch Partitionierung gemeinsam benutzt werden können oder durch/an Verarbeitungselemente dediziert sein können. In 4 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors dargestellt. Man beachte, dass ein Prozessor beliebige dieser funktionellen Einheiten umfassen oder weglassen kann, ebenso wie er beliebige andere bekannte funktionelle Einheiten, Logik oder Firmware umfassen kann, die nicht abgebildet sind. Wie dargestellt, umfasst der Kern 401 einen vereinfachten repräsentativen Out-of-Order(OOO)-Prozessorkern. In anderen Ausführungsformen kann jedoch ein In-Order-Prozessor verwendet werden. Der OOO-Kern umfasst einen Sprungziel-Pufferspeicher 420 zum Voraussagen von Verzweigungen, die auszuführen/zu nehmen sind, und einen assoziativen Befehlsübersetzungs-Pufferspeicher (1-TLB) 420 zum Speichern von Adressübersetzungseinträgen für Befehle.
  • Der Kern 401 umfasst ferner ein Decodierungsmodul 425, welches mit einer Abrufeinheit verbunden ist, um abgerufene Elemente zu decodieren. Eine Abruflogik umfasst in einer Ausführungsform individuelle Ablaufsteuerungen, die mit den Thread-Slots 401a bzw. 401b verbunden sind. Gewöhnlich ist der Kern mit einer ersten ISA verbunden, welche Befehle definiert/spezifiziert, die auf dem Prozessor 400 ausführbar sind. Oft umfassen Maschinen-Code-Befehle, die ein Teil der ersten ISA sind, einen Teil des Befehls (als Opcode bezeichnet), welcher auf einen auszuführenden Befehl oder eine auszuführende Operation verweist/diese(n) spezifiziert. Die Decodierungslogik 425 umfasst Schaltungen, welche diese Befehle aus ihren Opcodes erkennen und die decodierten Befehle in die Pipeline weiterleiten, um sie zu verarbeiten, wie durch die erste ISA definiert. Beispielsweise umfassen die Decodierer 425 in einer Ausführungsform Logik, die dafür ausgelegt oder geeignet ist, spezielle Befehle zu erkennen, z.B. einen Transaktionsbefehl. Als ein Ergebnis der Erkennung durch die Decodierer 425 nimmt die Architektur oder der Kern 401 spezielle vorgegebene Handlungen vor, um Aufgaben zu erfüllen, die mit dem entsprechenden Befehl verbunden sind. Es ist wichtig anzumerken, dass jede der Aufgaben, Blöcke, Operationen und Verfahren, die hierin beschrieben werden, in Reaktion auf einen einzelnen oder mehrere Befehle erfüllt bzw. durchgeführt werden kann, von denen einige neue oder alte Befehle sein können.
  • In einem Beispiel umfasst der Zuordnungs- und Umbenennungsblock 430 eine Zuordnungseinheit zum Reservieren von Ressourcen, wie z.B. Registerdateien zum Speichern von Befehlsverarbeitungsergebnissen. Jedoch sind die Threads 401a und 401b möglicherweise zu einer Ausführung außerhalb einer Reihenfolge fähig, wobei der Zuordnungs- und Umbenennungsblock 430 außerdem andere Ressourcen reserviert, wie z.B. Neuordnungs-Pufferspeicher zum Verfolgen von Befehlsergebnissen. Die Einheit 430 kann auch eine Registerumbenennungseinheit zum Umbenennen von Programm/Befehls-Verweisregistern in andere Register innerhalb des Prozessors 400 umfassen. Die Neuordnungs-/Stilllegungseinheit 435 umfasst Komponenten, wie z.B. die oben erwähnten Neuordnungs-Pufferspeicher, Lade-Pufferspeicher und Speicherungs-Pufferspeicher, zum Unterstützen der Ausführung außerhalb der Reihenfolge und einer späteren Stilllegung von Befehlen in der Reihenfolge, die außerhalb der Reihenfolge ausgeführt wurden.
  • Der Ablaufplanungs- und Ausführungseinheit(en)-Block 440 umfasst in einer Ausführungsform eine Ablaufplanungseinheit zum Legen von Befehlen/Operationen auf Ausführungseinheiten. Beispielsweise wird ein Gleitkommabefehl auf einen Anschluss einer Ausführungseinheit gelegt, die eine verfügbare Gleitkomma-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten verbunden sind, sind ebenfalls enthalten, um Informationsbefehlsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten sind eine Gleitkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherungsausführungseinheit und andere bekannte Ausführungseinheiten.
  • Der niedrigstufige Daten-Cache-Speicher und der assoziative Datenübersetzungs-Pufferspeicher (D-TLB) 450 sind mit der(den) Ausführungseinheit(en) 440 verbunden. Der Daten-Cache-Speicher speichert kürzlich verwendete Elemente/Elemente, mit denen gearbeitet wurde, wie z.B. Datenoperanden, welche möglicherweise in Speicherkohärenzzuständen gehalten werden. Der D-TLB speichert kürzliche virtuelle/zu physischen lineare Adressübersetzungen. Als ein spezielles Beispiel kann ein Prozessor eine Seitentabellenstruktur umfassen, um physischen Speicher in mehrere virtuelle Seiten aufzuteilen.
  • Hier greifen die Kerne 401 und 402 gemeinsam auf den höherstufigen oder weiter außen befindlichen Cache-Speicher 410 zu, welcher kürzlich abgerufene Elemente cachespeichert. Man beachte, dass sich höherstufig oder weiter außen befindlich auf Cache-Stufen bezieht, die ansteigen oder immer weiter von der(den) Ausführungseinheit(en) entfernt sind. In einer Ausführungsform ist der höherstufige Cache-Speicher 410 ein Last-Level-Daten-Cache-Speicher - der letzte Cache-Speicher in der Speicherhierarchie auf dem Prozessor 400 - z.B. ein Daten-Cache-Speicher der zweiten oder dritten Stufe. Der höherstufige Cache-Speicher 410 ist jedoch nicht darauf beschränkt, da er mit einem Befehls-Cache-Speicher verbunden sein kann oder einen solchen umfasst. Stattdessen kann ein Ablaufdaten-Cache-Speicher - ein Typ eines Befehls-Cache-Speichers - hinter den Decodierer 425 gekoppelt sein, um kürzlich decodierte Ablaufdaten zu speichern.
  • In der dargestellten Konfiguration umfasst der Prozessor 400 gemäß einer Ausführungsform der vorliegenden Erfindung außerdem ein Busschnittstellen-Modul 405 und eine Energiesteuerungseinheit 460, welche ein Energiemanagement durchführen kann. In diesem Szenario kommuniziert die Busschnittstelle 405 mit Vorrichtungen außerhalb des Prozessors 400, z.B. mit einem Systemspeicher und anderen Komponenten.
  • Eine Speichersteuerung 470 kann mit anderen Vorrichtungen, z.B. einem oder mehreren Speichern, in Verbindung treten. In einem Beispiel umfasst die Busschnittstelle 405 eine Ringverbindung mit einer Speichersteuerung, um mit einem Speicher in Verbindung zu treten, und einer Graphiksteuerung, um mit einem Graphikprozessor in Verbindung zu treten. In einer SoC-Umgebung können noch mehr Vorrichtungen, wie z.B. eine Netzwerk-Schnittstelle, Coprozessoren, Speicher, ein Graphikprozessor und beliebige andere bekannte Computervorrichtungen/Schnittstellen auf einem einzelnen Die oder einer einzelnen integrierten Schaltung integriert sein, um für einen kleinen Formfaktor mit hoher Funktionalität und niedrigem Energieverbrauch zu sorgen.
  • In 5 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 5 dargestellt, kann der Prozessorkern 500 ein mehrstufiger Out-of-Order-Pipeline-Prozessor sein. Der Kern 500 kann mit verschiedenen Spannungen arbeiten, basierend auf einer empfangenen Betriebsspannung, welche von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann.
  • Wie in 5 zu sehen, umfasst der Kern 500 Front-End-Einheiten 510, welche verwendet werden können, um auszuführende Befehle abzurufen und diese zur späteren Verwendung in der Prozessor-Pipeline vorzubereiten. Beispielsweise können die Front-End-Einheiten 510 eine Abrufeinheit 501, einen Befehls-Cache-Speicher 503 und einen Befehlsdecodierer 505 umfassen. In einigen Realisierungen können die Front-End-Einheiten 510 ferner einen Ablaufdaten-Cache-Speicher zusammen mit einem Mikrocode-Speicher sowie einem Mikrooperationsspeicher umfassen. Die Abrufeinheit 501 kann Makrobefehle abrufen, z.B. aus dem Speicher oder dem Befehls-Cache-Speicher 503, und diese dem Befehlsdecodierer 505 zuführen, um sie zu Primitiva zu decodieren, d.h. Mikrooperationen zur Ausführung durch den Prozessor.
  • Zwischen den Front-End-Einheiten 510 und den Ausführungseinheiten 520 ist eine Out-of-Order(OOO)-Maschine 515 verbunden, welche verwendet werden kann, um die Mikrobefehle zu empfangen und sie für die Ausführung vorzubereiten. Spezieller kann die OOO-Maschine 515 verschiedene Pufferspeicher umfassen, um den Mikrobefehlsablauf neu zu ordnen und verschiedene Ressourcen zuzuordnen, die für die Ausführung benötigt werden, sowie um für eine Umbenennung logischer Register auf Speicherstellen innerhalb verschiedener Registerdateien zu sorgen, z.B. der Registerdatei 530 und der erweiterten Registerdatei 535. Die Registerdatei 530 kann separate Registerdateien für Ganzzahl- und Gleitkomma-Operationen umfassen. Zu Zwecken der Konfiguration, der Steuerung und zusätzlicher Operationen kann außerdem eine Gruppe maschinenspezifischer Register (MSRs) 538 vorhanden und für verschiedene Logik innerhalb des Kerns 500 (und außerhalb des Kerns) zugänglich sein
  • In den Ausführungseinheiten 520 können verschiedene Ressourcen vorhanden sein, beispielsweise verschiedene Ganzzahl-, Gleitkomma- und Single-Instruction-Multiple-Data(SIMD)-Logikeinheiten, neben anderer spezialisierter Hardware. Zum Beispiel können solche Ausführungseinheiten eine oder mehrere arithmetische Logikeinheiten (Arithmetic Logic Units, ALUs) 522 und eine oder mehrere Vektorausführungseinheiten 524 umfassen, neben anderen solchen Ausführungseinheiten.
  • Ergebnisse aus den Ausführungseinheiten können einer Stilllegungslogik bereitgestellt werden, namentlich einem Neuordnungs-Pufferspeicher (Reorder Buffer, ROB) 540. Spezieller kann der ROB 540 verschiedene Matrixfelder und Logik zum Empfangen von Informationen umfassen, die zu Befehlen gehören, die ausgeführt werden. Diese Informationen werden dann vom ROB 540 untersucht, um zu bestimmen, ob die Befehle wirksam stillgelegt werden können und Ergebnisdaten dem Architekturzustand des Prozessors zugeschrieben werden können oder ob eine oder mehrere Ausnahmen aufgetreten sind, welche eine korrekte Stilllegung der Befehle verhindern. Natürlich kann der ROB 540 andere Operationen handhaben, die mit der Stilllegung zusammenhängen.
  • Wie in 5 dargestellt, ist der ROB 540 mit einem Cache-Speicher 550 verbunden, welcher in einer Ausführungsform ein niedrigstufiger Cache-Speicher (z.B. ein LI-Cache) sein kann, obwohl der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist. Außerdem können die Ausführungseinheiten 520 direkt mit dem Cache-Speicher 550 verbunden sein. Von dem Cache-Speicher 550 kann eine Datenkommunikation mit höherstufigen Cache-Speichern, Systemspeicher usw. erfolgen. Obwohl die Ausführungsform der 5 mit diesem hohen Niveau dargestellt ist, versteht es sich, dass der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist. Beispielsweise ist, obwohl die Realisierung der 5 auf eine Out-of-Order-Maschine bezogen ist, z.B. eine Intel®-x86-Befehlssatzarchitektur (ISA), der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist. Das heißt, andere Ausführungsformen können in einem In-Order-Prozessor, einem Prozessor mit eingeschränktem Befehlsvorrat (Reduced Instruction Set Computing, RISC), z.B. einem Prozessor auf ARM-Basis oder einem Prozessor eines anderen ISA-Typs realisiert werden, welcher Befehle und Operationen einer anderen ISA über eine Emulationsmaschine und zugehörige Logikschaltungen emulieren kann.
  • In 6 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform dargestellt. In der Ausführungsform der 6 kann der Kern 600 ein Niedrigenergiekern einer anderen Mikroarchitektur sein, z.B. ein Prozessor auf Intel®-Atom™-Basis, welcher eine relativ begrenzte Pipeline-Tiefe aufweist, die dafür ausgelegt ist, den Energieverbrauch zu beschränken. Wie dargestellt, umfasst der Kern 600 einen Befehls-Cache-Speicher 610, welcher so verbunden ist, dass er einem Befehlsdecodierer 615 Befehle bereitstellt. Mit dem Befehls-Cache-Speicher 610 kann eine Verzweigungsvoraussagevorrichtung 605 verbunden sein. Man beachte, dass der Befehls-Cache-Speicher 610 außerdem mit einem Cache-Speicher einer anderen Stufe verbunden sein kann, z.B. mit einem L2-Cache-Speicher (zur Vereinfachung der Darstellung in 6 nicht dargestellt). Der Befehlsdecodierer 615 liefert seinerseits decodierte Befehle zur Speicherung und Übermittlung an eine gegebene Ausführungs-Pipeline an eine Ausgabewarteschlange (Issue Queue, IQ) 620. Ein Mikrocode-ROM 618 ist mit dem Befehlsdecodierer 615 verbunden.
  • Eine Gleitkomma-Pipeline 630 umfasst eine Gleitkomma(Floating Point, FP)-Registerdatei 632, welche mehrere Architekturregister einer gegebenen Bitbreite umfassen kann, wie z.B. 128, 256 oder 512 Bits. Die Pipeline 630 umfasst eine Gleitkomma-Ablaufplanung 634 zum Legen von Befehlen zur Ausführung auf eine von mehreren Ausführungseinheiten der Pipeline. In der dargestellten Ausführungsform umfassen solche Ausführungseinheiten eine ALU 635, eine Mischeinheit 636 und eine Gleitkomma-Additionseinheit 638. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können ihrerseits in Pufferspeicher und/oder Register der Registerdatei 632 zurückgeführt werden. Es versteht sich natürlich, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten dargestellt, in einer anderen Ausführungsform zusätzliche oder andere Gleitkomma-Ausführungseinheiten vorhanden sein können.
  • Eine Ganzzahl-Pipeline 640 kann ebenfalls bereitgestellt werden. In der dargestellten Ausführungsform umfasst die Pipeline 640 eine Ganzzahl(INT)-Registerdatei 642, welche mehrere Architekturregister einer gegebenen Bitbreite umfassen kann, wie z.B. 128 oder 256 Bits. Die Pipeline 640 umfasst eine Ganzzahl-Ausführungs(Integer Execution, IE)-Ablaufplanung 644 zum Legen von Befehlen zur Ausführung auf eine von mehreren Ausführungseinheiten der Pipeline. In der dargestellten Ausführungsform umfassen solche Ausführungseinheiten eine ALU 645, eine Verschiebeeinheit 646 und eine Sprungausführungseinheit (Jump Execution Unit, JEU) 648. Die in diesen Ausführungseinheiten erzeugten Ergebnisse können ihrerseits in Pufferspeicher und/oder Register der Registerdatei 642 zurückgeführt werden. Es versteht sich natürlich, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten dargestellt, in einer anderen Ausführungsform zusätzliche oder andere Ganzzahl-Ausführungseinheiten vorhanden sein können.
  • Eine Speicherausführungs(Memory Execution, ME)-Ablaufplanung 650 kann Speicheroperationen zur Ausführung in eine Adresserzeugungseinheit (Address Generation Unit, AGU) 652 geben, welche außerdem mit einem TLB 654 verbunden ist. Wie dargestellt, können diese Strukturen mit einem Daten-Cache-Speicher 660 verbunden sein, welcher ein L0- und/oder L1-Daten-Cache-Speicher sein kann, der seinerseits mit weiteren Stufen einer Cache-Speicherhierarchie verbunden ist, z.B. einem L2-Cache-Speicher.
  • Um eine Ausführung außerhalb einer Reihenfolge zu unterstützen, kann eine Zuordnungs-/Umbenennungseinheit 670 bereitgestellt werden, zusätzlich zu einem Neuordnungs-Pufferspeicher 680, welcher dafür konfiguriert ist, Befehle, die außerhalb der Reihenfolge ausgeführt werden, für eine Stilllegung in der Reihenfolge neu zu ordnen. Obwohl die Veranschaulichung der 6 mit dieser speziellen Pipeline-Architektur dargestellt ist, versteht es sich, dass viele Variationen und Alternativen möglich sind.
  • Man beachte, dass in einem Prozessor mit asymmetrischen Kernen, wie z.B. gemäß den Mikroarchitekturen der 5 und 6, Arbeitslasten aus Gründen des Energiemanagements dynamisch zwischen den Kernen ausgetauscht werden können, da die Kerne, obwohl sie unterschiedliche Pipeline-Designs und -Tiefen aufweisen, dieselbe oder eine verwandte ISA aufweisen können. Ein solcher dynamischer Kernaustausch kann auf eine Weise erfolgen, die für eine Benutzeranwendung (und möglicherweise auch für eine Kernroutine) durchschaubar ist.
  • In 7 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß noch einer anderen Ausführungsform dargestellt. Wie in 7 dargestellt, kann ein Kern 700 eine mehrstufige In-Order-Pipeline zur Ausführung mit sehr niedrigen Energieverbrauchsniveaus umfassen. Als ein solches Beispiel kann der Prozessor 700 eine Mikroarchitektur gemäß einem ARM-Cortex-A53-Design aufweisen, erhältlich von ARM Holdings, LTD., Sunnyvale, CA. In einer Realisierung kann eine 8-stufige Pipeline bereitgestellt werden, welche dafür konfiguriert ist, sowohl 32-Bit- als auch 64-Bit-Code auszuführen. Der Kern 700 umfasst eine Abrufeinheit 710, welche dafür konfiguriert ist, Befehle abzurufen und sie einer Decodiereinheit 715 bereitzustellen, welche die Befehle decodieren kann, z.B. Makrobefehle einer gegebenen ISA, wie z.B. einer ARMv8-ISA. Man beachte ferner, dass eine Warteschlange 730 mit der Decodiereinheit 715 verbunden sein kann, um decodierte Befehle zu speichern. Decodierte Befehle werden einer Ausgabelogik 725 bereitgestellt, wo die decodierten Befehle an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden können.
  • Weiter Bezug nehmend auf 7, kann die Ausgabelogik 725 Befehle an eine von mehreren Ausführungseinheiten ausgeben. In der dargestellten Ausführungsform umfassen diese Ausführungseinheiten eine Ganzzahleinheit 735, eine Multiplikationseinheit 740, eine Gleitkomma-/Vektoreinheit 750, eine Doppelausgabeeinheit 760 und eine Lade-/Speicherungseinheit 770. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Rückschreib(Writeback, WB)-Einheit 780 bereitgestellt werden. Es versteht sich, dass, obwohl zur Vereinfachung der Darstellung eine einzige Rückschreibeinheit dargestellt ist, in einigen Realisierungen mit jeder der Ausführungseinheiten separate Rückschreibeinheiten verbunden sein können. Ferner versteht es sich, dass, obwohl jede der Einheiten und Logiken, die in 7 dargestellt sind, mit einem hohen Niveau dargestellt ist, eine bestimmte Realisierung mehr oder andere Strukturen umfassen kann. Ein Prozessor, der für eine Verwendung eines oder mehrerer Kerne mit einer Pipeline wie in 7 ausgelegt ist, kann in vielen verschiedenen Endprodukten realisiert werden, welche sich von mobilen Vorrichtungen bis zu Server-Systemen erstrecken.
  • In 8 ist ein Blockschaubild einer Mikroarchitektur eines Prozessorkerns gemäß einer weiteren Ausführungsform dargestellt. Wie in 8 veranschaulicht, kann ein Kern 800 eine mehrstufige Mehrfachausgabe-Out-of-Order-Pipeline zur Ausführung auf sehr hohen Leistungsniveaus umfassen (welche mit höheren Energieverbrauchsniveaus als beim Kern 700 der 7 erfolgen kann). Als ein solches Beispiel kann der Prozessor 800 eine Mikroarchitektur gemäß einem ARM-Cortex-A57-Design aufweisen. In einer Realisierung kann eine 15-stufige (oder höherstufige) Pipeline bereitgestellt werden, welche dafür konfiguriert ist, sowohl 32-Bit- als auch 64-Bit-Code auszuführen. Außerdem kann die Pipeline für einen Betrieb mit der Breite 3 (oder mehr) und 3 (oder mehr) Ausgaben sorgen. Der Kern 800 umfasst eine Abrufeinheit 810, welche dafür konfiguriert ist, Befehle abzurufen und sie einer Decodierer-/Umbenennungs-/Abgabeeinheit 815 bereitzustellen, die mit einem Cache-Speicher 820 verbunden ist. Die Einheit 815 kann die Befehle decodieren, z.B. Makrobefehle einer ARMv8-Befehlssatzarchitektur, Registerverweise innerhalb der Befehle umbenennen und die Befehle (schließlich) an eine ausgewählte Ausführungseinheit abgeben. Decodierte Befehle können in einer Warteschlange 825 gespeichert werden. Man beachte, dass, obwohl in 8 zur Vereinfachung der Darstellung eine einzige Warteschlangenstruktur dargestellt ist, es sich versteht, dass für jeden der mehreren verschiedenen Typen von Ausführungseinheiten separate Warteschlangen bereitgestellt werden können.
  • Ebenso in 8 dargestellt ist eine Ausgabelogik 830, aus welcher decodierte Befehle, die in der Warteschlange 825 gespeichert sind, an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Ausgabelogik 830 kann in einer speziellen Ausführungsform auch mit einer separaten Ausgabelogik für jeden der mehreren verschiedenen Typen von Ausführungseinheiten realisiert werden, mit welcher die Ausgabelogik 830 verbunden ist.
  • Decodierte Befehle können an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden. In der dargestellten Ausführungsform umfassen diese Ausführungseinheiten eine oder mehrere Ganzzahleinheiten 835, eine Multiplikationseinheit 840, eine Gleitkomma-/Vektoreinheit 850, eine Verzweigungseinheit 860 und eine Lade-/Speicherungseinheit 870. In einer Ausführungsform kann die Gleitkomma-/Vektoreinheit 850 dafür konfiguriert sein, SIMD oder Vektordaten von 128 oder 256 Bits zu handhaben. Ferner kann die Gleitkomma-/Vektoreinheit 850 Gleitkommaoperationen doppelter Genauigkeit nach IEEE-754 ausführen. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Rückschreibeinheit 880 bereitgestellt werden. Man beachte, dass in einigen Realisierungen mit jeder der Ausführungseinheiten separate Rückschreibeinheiten verbunden sein können. Ferner versteht es sich, dass, obwohl jede der Einheiten und Logiken, die in 8 dargestellt sind, mit einem hohen Niveau dargestellt ist, eine bestimmte Realisierung mehr oder andere Strukturen umfassen kann.
  • Man beachte, dass in einem Prozessor mit asymmetrischen Kernen, wie z.B. gemäß den Mikroarchitekturen der 7 und 8, Arbeitslasten aus Gründen des Energiemanagements dynamisch ausgetauscht werden können, da diese Kerne, obwohl sie unterschiedliche Pipeline-Designs und -Tiefen aufweisen, dieselbe oder eine verwandte ISA aufweisen können. Ein solcher dynamischer Kernaustausch kann auf eine Weise erfolgen, die für eine Benutzeranwendung (und möglicherweise auch für eine Kernroutine) durchschaubar ist.
  • Ein Prozessor, der für eine Verwendung eines oder mehrerer Kerne mit Pipelines wie in einer oder mehreren der 5 bis 8 ausgelegt ist, kann in vielen verschiedenen Endprodukten realisiert werden, welche sich von mobilen Vorrichtungen bis zu Server-Systemen erstrecken. In 9 ist ein Blockschaubild eines Prozessors gemäß einer weiteren Ausführungsform der vorliegenden Erfindung dargestellt. In der Ausführungsform der 9 kann der Prozessor 900 ein SoC sein, welches mehrere Domänen umfasst, von denen jede gesteuert werden kann, mit einer unabhängigen Betriebsspannung und Betriebsfrequenz zu arbeiten. Als ein spezielles veranschaulichendes Beispiel kann der Prozessor 900 ein Prozessor auf Intel®-Architecture-Core™-Basis sein, wie z.B. ein i3-, i5, i7- oder anderer solcher Prozessor, erhältlich von der Intel Corporation. Jedoch können in anderen Ausführungsformen stattdessen andere Niedrigenergieprozessoren, erhältlich z.B. von Advanced Micro Devices, Inc., (AMD) aus Sunnyvale, CA, mit einem Design auf ARM-Basis von ARM Holdings, Ltd., oder deren Lizenznehmern oder einem Design auf MIPS-Basis von MIPS Technologies, Inc., aus Sunnyvale, CA, oder deren Lizenznehmern oder Nutzern vorhanden sein, z.B. ein Apple-A7-Prozessor, ein Qualcomm-Snapdragon-Prozessor oder ein Texas-Instruments-OMAP-Prozessor. Ein solches SoC kann in einem Niedrigenergiesystem verwendet werden, wie z.B. einem Smartphone, einem Tablet-Computer, einem Phablet-Computer, einem Ultrabook™-Computer oder einer anderen tragbaren Rechenvorrichtung, welche eine heterogene Systemarchitektur beinhalten kann und ein Prozessor-Design auf Basis einer heterogenen Systemarchitektur aufweist.
  • In der Ansicht eines hohen Niveaus, die in 9 dargestellt ist, umfasst der Prozessor 900 mehrere Kerneinheiten 910a bis 910n. Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cache-Speicher und andere Schaltungen umfassen. Jede Kerneinheit 910 kann einen oder mehrere Befehlssätze (z.B. einen x86-Befehlssatz (mit einigen Erweiterungen, die mit neueren Versionen hinzugefügt worden sind); einen MIPS-Befehlssatz; einen ARM-Befehlssatz (gegebenenfalls mit zusätzlichen Erweiterungen wie NEON)) oder einen anderen Befehlssatz oder Kombinationen davon unterstützen. Man beachte, dass einige der Kerneinheiten heterogene Ressourcen sein können (z.B. eines unterschiedlichen Designs). Außerdem kann jeder solche Kern mit einem (nicht dargestellten) Cache-Speicher verbunden sein, welcher in einer Ausführungsform ein gemeinsam benutzter Cache-Speicher der Stufe Zwei (L2) sein kann. Es kann ein nichtflüchtiger Speicher 930 benutzt werden, um verschiedene Programmdaten und andere Daten zu speichern. Beispielsweise kann dieser Speicher benutzt werden, um zumindest Teile eines Mikrocodes, von Boot-Informationen wie BIOS, anderer System-Software usw. zu speichern.
  • Jede Kerneinheit 910 kann außerdem eine Schnittstelle umfassen, z.B. eine Busschnittstelleneinheit, um eine Verbindung zu weiteren Schaltungen des Prozessors zu ermöglichen. In einer Ausführungsform ist jede Kerneinheit 910 mit einer kohärenten Struktur verbunden, welche als ein primärer Cache-kohärente On-Die-Verbindung fungieren kann, welche ihrerseits mit einer Speichersteuerung 935 verbunden ist. Die Speichersteuerung 935 wiederum steuert Kommunikationen mit einem Speicher, z.B. einem DRAM (zur Vereinfachung der Veranschaulichung in 9 nicht dargestellt).
  • Zusätzlich zu den Kerneinheiten sind in dem Prozessor weitere Verarbeitungsmaschinen vorhanden, z.B. mindestens eine Graphikeinheit 920, welche eine oder mehrere Graphikverarbeitungseinheiten (Graphics Processing Units, GPUs) umfassen kann, um eine Graphikverarbeitung durchzuführen sowie um möglicherweise allgemeine Operationen auf dem Graphikprozessor (sogenannte GPGPU-Operationen) auszuführen. Außerdem kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann dafür konfiguriert sein, eingehende Bilddaten zu verarbeiten, die von einer oder mehreren Aufnahmevorrichtungen empfangen werden, entweder innerhalb des SoC oder außerhalb des Chips.
  • Außerdem können andere Beschleuniger vorhanden sein. In der Darstellung der 9 kann ein Videocodierer 950 Codierungsoperationen durchführen, umfassend Codieren und Decodieren für Videoinformationen, z.B. Bereitstellen einer Hardware-Beschleunigungsunterstützung für High-Definition-Video-Inhalt. Ferner kann eine Display-Steuerung 955 bereitgestellt werden, um Display-Operationen zu beschleunigen, umfassend Bereitstellen einer Unterstützung für interne und externe Displays eines Systems. Zusätzlich kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsoperationen durchzuführen, z.B. sichere Boot-Operationen, verschiedene Verschlüsselungsoperationen usw.
  • Für jede der Einheiten kann ihr Energieverbrauch über einen Energie-Manager 940 gesteuert werden, welcher eine Steuerungslogik umfassen kann, um die verschiedenen hierin beschriebenen Energiemanagement-Techniken durchzuführen.
  • In einigen Ausführungsformen kann das SoC 900 ferner eine nicht-kohärente Struktur umfassen, die mit der kohärenten Struktur verbunden ist, mit welcher verschiedene Peripherievorrichtungen verbunden sein können. Eine oder mehrere Schnittstellen 960a bis 960d ermöglichen eine Kommunikation mit einer oder mehreren Vorrichtungen außerhalb des Chips. Solche Kommunikationen können über eine Vielfalt von Kommunikationsprotokollen erfolgen, wie z.B. PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI, neben anderen Typen von Kommunikationsprotokollen. Obwohl in der Ausführungsform der 9 mit diesem hohen Niveau dargestellt, versteht es sich, dass der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • In 10 ist ein Blockschaubild eines repräsentativen SoC dargestellt. In der dargestellten Ausführungsform kann das SoC 1000 ein mehrkerniges SoC sein, welches für einen Niedrigenergiebetrieb konfiguriert ist, um für den Einbau in ein Smartphone oder eine andere Niedrigenergievorrichtung optimiert zu werden, z.B. einen Tablet-Computer oder eine andere tragbare Rechenvorrichtung. Als ein Beispiel kann das SoC 1000 unter Verwendung asymmetrischer oder unterschiedlicher Typen von Kernen realisiert werden, z.B. Kombinationen aus Kernen höherer Energie und/oder Niedrigenergiekernen, z.B. Out-of-Order-Kernen und In-Order-Kernen. In anderen Ausführungsformen können diese Kerne auf einem Intel®-Architecture™-Kerndesign oder einem ARM-Architekturdesign basieren. In wiederum anderen Ausführungsformen kann in einem gegeben SoC eine Mischung aus Intel- und ARM-Kernen realisiert sein.
  • Wie in 10 zu sehen, umfasst das SoC 1000 eine erste Kerndomäne 1010, welche mehrere erste Kerne 1012a bis 1012d aufweist. In einem Beispiel können diese Kerne Niedrigenergiekerne sein, z.B. In-Order-Kerne. In einer Ausführungsform können diese ersten Kerne als ARM-Cortex-A53-Kerne realisiert sein. Diese Kerne sind ihrerseits mit einem Cache-Speicher 1015 der Kerndomäne 1010 verbunden. Außerdem umfasst das SoC 1000 eine zweite Kerndomäne 1020. In der Darstellung der 10 weist die zweite Kerndomäne 1020 mehrere zweite Kerne 1022a bis 1022d auf. In einem Beispiel können diese Kerne Kerne mit höherem Energieverbrauch sein als die Kerne 1012. In einer Ausführungsform können die zweiten Kerne Out-of-Order-Kerne sein, welche als ARM-Cortex-A57-Kerne realisiert sein können. Diese Kerne sind ihrerseits mit einem Cache-Speicher 1025 der Kerndomäne 1020 verbunden. Man beachte, dass, obwohl das in 10 dargestellte Beispiel in jeder Domäne 4 Kerne umfasst, es sich versteht, dass in anderen Beispielen in einer gegebenen Domäne mehr oder weniger Kerne vorhanden sein können.
  • Weiter Bezug nehmend auf 10, ist auch eine Graphikdomäne 1030 vorgesehen, welche eine oder mehrere Graphikverarbeitungseinheiten (GPUs) umfassen kann, die dafür konfiguriert sind, unabhängig Graphik-Arbeitslasten auszuführen, welche z.B. von einem oder mehreren Kernen der Kerndomänen 1010 und 1020 bereitgestellt werden. Als ein Beispiel kann die GPU-Domäne 1030 verwendet werden, um eine Display-Unterstützung für eine Vielfalt von Bildschirmgrößen bereitzustellen, zusätzlich zur Bereitstellung von Graphik- und Display-Aufbereitungsoperationen.
  • Wie dargestellt, sind die verschiedenen Domänen mit einer kohärenten Verbindung 1040 verbunden, welche in einer Ausführungsform eine Cache-kohärente Verbindungsstruktur sein kann, die ihrerseits mit einer integrierten Speichersteuerung 1050 verbunden ist. Die kohärente Verbindung 1040 kann in einigen Beispielen einen gemeinsam benutzten Cache-Speicher umfassen, z.B. einen L3-Cache. In einer Ausführungsform kann die Speichersteuerung 1050 eine direkte Speichersteuerung sein, um mehrere Kommunikationskanäle mit einem Off-Chip-Speicher bereitzustellen, z.B. mehrere Kanäle eines DRAM (zur Vereinfachung der Veranschaulichung in 10 nicht dargestellt).
  • In verschiedenen Beispielen kann die Anzahl der Kerndomänen variieren. Beispielsweise kann für ein Niedrigenergie-SoC, das für einen Einbau in eine mobile Rechenvorrichtung geeignet ist, eine begrenzte Anzahl an Kerndomänen vorhanden sein, wie in 10 dargestellt. Ferner kann in solchen Niedrigenergie-SoCs die Kerndomäne 1020, die Kerne höherer Energie umfasst, geringere Anzahlen solcher Kerne aufweisen. Zum Beispiel können in einer Realisierung zwei Kerne 1022 vorgesehen sein, um einen Betrieb mit verringertem Energieverbrauch zu ermöglichen. Außerdem können die verschiedenen Kerndomänen auch mit einer Unterbrechungssteuerung verbunden sein, um einen dynamischen Austausch von Arbeitslasten zwischen den verschiedenen Domänen zu ermöglichen.
  • In wiederum anderen Ausführungsformen können eine höhere Anzahl an Kerndomänen sowie gegebenenfalls eine zusätzliche IP-Logik vorhanden sein, in welcher ein SoC zum Einbau in andere Rechenvorrichtungen, z.B. Desktop-Computer, Server, Hochleistungs-Computersysteme, Basisstationen usw., auf höhere Leistungsniveaus (und Energieniveaus) gehoben werden kann. Als ein solches Beispiel können 4 Kerndomänen vorgesehen sein, welche jeweils eine gegebene Anzahl an Out-of-Order-Kernen aufweisen. Ferner können zusätzlich zu einer optionalen GPU-Unterstützung (welche als ein Beispiel die Form einer GPGPU annehmen kann) ein oder mehrere Beschleuniger vorgesehen sein, um eine optimierte Hardware-Unterstützung für bestimmte Funktionen (z.B. Web-Server-Funktionen, Netzwerkverarbeitung, Schalten usw.) bereitzustellen. Außerdem kann eine Eingabe/Ausgabe-Schnittstelle vorhanden sein, um solche Beschleuniger mit Komponenten außerhalb des Chips zu verbinden.
  • In 11 ist ein Blockschaubild eines anderen beispielhaften SoC dargestellt. In der Ausführungsform der 11 kann das SoC 1100 verschiedene Schaltungen umfassen, um eine hohe Leistungsfähigkeit für Multimedia-Anwendungen, Kommunikationen und andere Funktionen zu ermöglichen. Daher ist das SoC 1100 für den Einbau in eine breite Vielfalt von tragbaren und anderen Vorrichtungen geeignet, wie z.B. Smartphones, Tablet-Computer, Smart-TVs usw. In dem dargestellten Beispiel umfasst das SoC 1100 eine Zentralprozessoreinheits(CPU)-Domäne 1110. In einer Ausführungsform können in der CPU-Domäne 1110 mehrere individuelle Prozessorkerne vorhanden sein. Als ein Beispiel kann die CPU-Domäne 1110 ein Quad-Core-Prozessor sein, welcher 4 Multi-Thread-Kerne aufweist. Solche Prozessoren können homogene oder heterogene Prozessoren sein, z.B. eine Mischung aus Niedrigenergie- und Hochenergie-Prozessorkernen.
  • Außerdem ist eine GPU-Domäne 1120 vorgesehen, um eine hochentwickelte Graphikverarbeitung in einer oder mehreren GPUs durchzuführen, um Graphiken zu handhaben und APIs zu berechnen. Eine DSP-Einheit 1130 kann einen oder mehrere Niedrigenergie-DSPs bereitstellen, um Niedrigenergie-Multimedia-Anwendungen zu handhaben, wie z.B. das Abspielen von Musik, Audio/Video usw., zusätzlich zu höheren Berechnungen, die während der Ausführung von Multimediabefehlen erfolgen können. Eine Kommunikationseinheit 1140 wiederum kann verschiedene Komponenten umfassen, um Verbindungsmöglichkeiten mit verschiedenen Drahtlos-Protokollen, wie z.B. zelluläre Kommunikationen (umfassend 3G/4G LTE), lokalen Drahtlos-Protokollen wie Bluetooth™, IEEE 802.11 usw. zu schaffen.
  • Ferner kann ein Multimediaprozessor 1150 benutzt werden, um die Aufnahme und das Abspielen von High-Definition-Video- und Audio-Inhalt durchzuführen, umfassend die Verarbeitung von Benutzergesten. Eine Sensoreinheit 1160 kann mehrere Sensoren und/oder eine Sensorsteuerung umfassen, um mit verschiedenen Sensoren außerhalb des Chips in Verbindung zu treten, die in einer gegebenen Plattform vorhanden sind. Ein Bildsignalprozessor 1170 kann mit einem oder mehreren separaten ISPs vorgesehen sein, um eine Bildverarbeitung in Bezug auf aufgenommenen Inhalt von einer oder mehreren Kameras einer Plattform durchzuführen, umfassend Ruhebild- und Videokameras.
  • Ein Display-Prozessor 1180 kann eine Unterstützung für eine Verbindung mit einem High-Definition-Display einer gegebenen Pixeldichte bereitstellen, umfassend die Fähigkeit, Inhalt zum Abspielen auf einem solchen Display drahtlos zu übermitteln. Ferner kann eine Positionseinheit 1190 einen GPS-Empfänger mit Unterstützung für mehrere GPS-Konstellationen umfassen, um Anwendungen hochgenaue Positionsinformationen bereitzustellen, die unter Verwendung eines solchen GPS-Empfängers erhalten werden. Es versteht sich, dass, obwohl das Beispiel der 11 mit diesem speziellen Satz Komponenten dargestellt ist, viele Variationen und Alternativen möglich sind.
  • In 12 ist ein Blockschaubild eines beispielhaften Systems dargestellt, mit welchem Ausführungsformen verwendet werden können. Wie dargestellt, kann das System 1200 ein Smartphone oder eine andere drahtlose Kommunikationseinheit sein. Ein Basisbandprozessor 1205 ist dafür konfiguriert, verschiedene Signalverarbeitungen in Bezug auf Kommunikationssignale durchzuführen, die von dem System zu senden oder zu empfangen sind. Seinerseits ist der Basisbandprozessor 1205 mit einem Anwendungsprozessor 1210 verbunden, welcher eine Haupt-CPU des Systems sein kann, um ein Betriebssystem und andere System-Software auszuführen, zusätzlich zu Benutzeranwendungen, wie z.B. viele wohlbekannte Social-Media- und Multimedia-Apps. Der Anwendungsprozessor 1210 kann ferner dafür konfiguriert sein, eine Vielfalt von anderen Computeroperationen für die Vorrichtung auszuführen.
  • Der Anwendungsprozessor 1210 kann seinerseits mit einer Benutzerschnittstelle/Display 1220 verbunden sein, z.B. einem berührungsempfindlichen Bildschirm. Außerdem kann der Anwendungsprozessor 1210 mit einem Speichersystem verbunden sein, umfassend einen nichtflüchtigen Speicher, nämlich einen Flash-Speicher 1230, und einen Systemspeicher, nämlich einen dynamischen Direktzugriffsspeicher (DRAM) 1235. Wie ebenfalls dargestellt, ist der Anwendungsprozessor 1210 ferner mit einer Aufnahmevorrichtung 1240 verbunden, wie z.B. einer oder mehreren Bildaufnahmevorrichtungen, welche Video und/oder Ruhebilder aufnehmen können.
  • Weiter Bezug nehmend auf 12, ist mit dem Anwendungsprozessor 1210 auch eine universelle IC-Karte (UICC) 1240, welche ein Teilnehmeridentitätsmodul umfasst, und möglicherweise ein sicherer Speicher und ein Kryptoprozessor verbunden. Das System 1200 kann ferner einen Sicherheitsprozessor 1250 umfassen, welcher mit dem Anwendungsprozessor 1210 verbunden sein kann. Mehrere Sensoren 1225 können mit dem Anwendungsprozessor 1210 verbunden sein, um eine Eingabe einer Vielfalt von erfassten Informationen zu ermöglichen, wie z.B. Beschleunigungsmesser-Informationen und andere Umgebungsinformationen. Eine Audio-Ausgabevorrichtung 1295 kann eine Schnittstelle zum Ausgeben von Tönen bereitstellen, z.B. in der Form von Sprachkommunikationen, abgespielten Audiodaten oder Streaming-Audiodaten usw.
  • Wie ferner dargestellt, ist eine kontaktlose Nahfeldkommunikations(NFC)-Schnittstelle 1260 vorgesehen, welche über eine NFC-Antenne 1265 in einem NFC-Nahfeld kommuniziert. Obwohl in 12 separate Antennen dargestellt sind, versteht es sich, dass in einigen Realisierungen eine Antenne oder eine andere Antennengruppe vorgesehen sein kann, um verschiedene drahtlose Funktionalitäten zu ermöglichen.
  • Eine Energiemanagement-IC (PMIC) 1215 ist mit dem Anwendungsprozessor 1210 verbunden, um ein Energiemanagement auf Plattform ebene durchzuführen. Zu diesem Zweck kann die PMIC 1215 Energiemanagement-Anforderungen an den Anwendungsprozessor 1210 ausgeben, um nach Wunsch in bestimmte Niedrigenergiezustände einzutreten. Ferner kann die PMIC 1215 auf der Basis von Plattformbeschränkungen auch das Energieniveau anderer Komponenten des Systems 1200 steuern.
  • Um zu ermöglichen, dass Kommunikationen gesendet und empfangen werden, können verschiedene Schaltungen zwischen den Basisbandprozessor 1205 und eine Antenne 1290 geschaltet werden. Speziell können ein Funkfrequenz(RF)-Sendeempfänger1270 und ein Wireless-Local-Area-Network(WLAN)-Sendeempfänger 1275 vorhanden sein. Im Allgemeinen kann der RF-Sendeempfänger 1270 verwendet werden, um gemäß einem gegebenen Drahtlos-Kommunikationsprotokoll, z.B. einem 3G- oder 4G-Drahtlos- Kommunikationsprotokoll, z.B. gemäß einem Codevielfachzugriff(Code Division Multiple Access, CDMA)-, Global-System-for-Mobile-Communication(GSM)-, Long-Term-Evolution(LTE)-Protokoll oder einem anderen Protokoll, drahtlose Daten und Anrufe zu empfangen und zu senden. Außerdem kann ein GPS-Sensor 1280 vorhanden sein. Andere drahtlose Kommunikationen, wie Empfang oder Senden von Funksignalen, z.B. AM/FM- und andere Signalen, können ebenfalls vorgesehen sein. Außerdem können über den WLAN-Sendeempfänger 1275 auch lokale drahtlose Kommunikationen realisiert werden.
  • In 13 ein Blockschaubild eines anderen beispielhaften Systems, mit welchem Ausführungsformen verwendet werden können. In der Darstellung der 13 kann das System 1300 ein mobiles Niedrigenergiesystem sein, wie z.B. ein Tablet-Computer, ein 2:1-Tablet, ein Phablet oder ein anderes umwandelbares oder selbständiges Tablet-System. Wie dargestellt, ist ein SoC 1310 vorhanden und kann dafür konfiguriert sein, als ein Anwendungsprozessor für die Vorrichtung zu arbeiten.
  • Eine Vielfalt von Vorrichtungen kann mit dem SoC 1310 verbunden sein. In der dargestellten Illustration umfasst ein Speicher-Teilsystem einen Flash-Speicher 1340 und einen DRAM 1345, verbunden mit dem SoC 1310. Außerdem ist ein Berührungsfeld 1320 mit dem SoC 1310 verbunden, um für Anzeigefähigkeiten und Benutzereingaben durch Berührung zu sorgen, umfassend das Bereitstellen einer virtuellen Tastatur auf einem Display des Berührungsfelds 1320. Um drahtgebundene Netzwerk-Verbindungsmöglichkeiten bereitzustellen, ist das SoC 1310 mit einer Ethernet-Schnittstelle 1330 verbunden. Ein Peripherieknoten 1325 ist mit dem SoC 1310 verbunden, um eine Verbindung mit verschiedenen Peripherievorrichtungen zu ermöglichen, welche z.B. über beliebige von verschiedenen Anschlüssen oder andere Verbinder mit dem System 1300 verbunden werden können.
  • Zusätzlich zu internen Energiemanagement-Schaltungen und Funktionalität innerhalb des SoC 1310 ist eine PMIC 1380 mit dem SoC 1310 verbunden, um ein Energiemanagement auf Plattformbasis bereitzustellen, z.B. auf Basis dessen, ob das System von einer Batterie 1390 oder durch Wechselstrom über einen Wechselstromadapter 1395 betrieben wird. Zusätzlich zu diesem Energiemanagement auf Basis der Stromquelle kann die PMIC 1380 ferner Plattform-Energiemanagement-Aktivitäten ausführen, basierend auf Umgebungs- und Benutzungsbedingungen. Ferner kann die PMIC 1380 Steuerungs- und Statusinformationen an das SoC 1310 übermitteln, um verschiedene Energiemanagement-Handlungen innerhalb des SoC 1310 zu bewirken.
  • Weiter Bezug nehmend auf 13, ist eine WLAN-Einheit 1350 mit dem SoC 1310 und im Gegenzug mit einer Antenne 1355 verbunden, um für Drahtlos-Fähigkeiten zu sorgen. In verschiedenen Realisierungen kann die WLAN-Einheit 1350 für eine Kommunikation gemäß einem oder mehreren Drahtlos-Protokollen sorgen.
  • Wie ferner veranschaulicht, können mehrere Sensoren 1360 mit dem SoC 1310 verbunden sein. Diese Sensoren können verschiedene Beschleunigungsmesser, Umgebungssensoren und andere Sensoren umfassen, z.B. Benutzergesten-Sensoren. Schließlich ist ein Audio-Codec 1365 mit dem SoC 1310 verbunden, um eine Schnittstelle zu einer Audio-Ausgabevorrichtung 1370 bereitzustellen. Natürlich versteht es sich, dass, obwohl 13 mit dieser speziellen Realisierung dargestellt ist, viele Variationen und Alternativen möglich sind.
  • In 14 ist ein Blockschaubild eines repräsentativen Computersystems dargestellt, wie z.B. eines Notebooks, Ultrabooks™, oder eines anderen Systems mit niedrigem Formfaktor. Ein Prozessor 1410 umfasst in einer Ausführungsform einen Mikroprozessor, einen mehrkernigen Prozessor, einen Multithread-Prozessor, einen Prozessor mit ultraniedriger Spannung, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement. In der dargestellten Realisierung fungiert der Prozessor 1410 als eine Hauptverarbeitungseinheit und ein zentraler Knoten für die Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400 und kann Energiemanagement-Schaltungen umfassen, wie hierin beschrieben. Als ein Beispiel ist der Prozessor 1410 als ein SoC realisiert.
  • Der Prozessor 1410 kommuniziert in einer Ausführungsform mit einem Systemspeicher 1415. Als ein veranschaulichendes Beispiel ist der Systemspeicher 1415 über mehrere Speichervorrichtungen oder -module realisiert, um für eine gegebene Menge an Systemspeicher zu sorgen.
  • Um für eine dauerhafte Speicherung von Informationen, wie z.B. Daten, Anwendungen, ein oder mehrere Betriebssysteme usw., zu sorgen, kann außerdem ein Massenspeicher 1420 mit dem Prozessor 1410 verbunden sein. In verschiedenen Ausführungsformen kann dieser Massenspeicher, um ein dünneres und leichteres Systemdesign zu ermöglichen, sowie um die Ansprechempfindlichkeit des Systems zu verbessern, über ein SSD realisiert sein oder der Massenspeicher kann hauptsächlich durch ein Festplattenlaufwerk (Hard Disk Drive, HDD) realisiert sein, wobei eine geringere Menge an SSD-Speicher als ein SSD-Cache fungiert, um während Abschaltereignissen eine nicht-flüchtige Speicherung von Kontextzustand und anderen solchen Informationen zu ermöglichen, so dass nach dem Neubeginn von Systemaktivitäten ein schnelleres Einschalten erfolgen kann. Wie ebenfalls in 14 dargestellt, kann eine Flash-Vorrichtung 1422 mit dem Prozessor 1410 verbunden sein, z.B. über eine serielle periphere Schnittstelle (Serial Peripheral Interface, SPI). Die Flash-Vorrichtung kann für eine nicht-flüchtige Speicherung von System-Software sorgen, z.B. eine Eingabe/Ausgabe-Grund-Software (Basic Input/Output Software, BIOS) sowie andere Firmware des Systems.
  • Innerhalb des Systems 1400 können verschiedene Eingabe/Ausgabe(I/O)-Vorrichtungen vorhanden sein. Speziell dargestellt in der Ausführungsform der 14 ist ein Display 1424, welches ein High-Definition-LCD- oder LED-Feld sein kann, das ferner einen berührungsempfindlichen Bildschirm 1425 bereitstellt. In einer Ausführungsform kann das Display 1424 über eine Display-Verbindung, die als eine Hochleistungs-Graphikverbindung realisiert sein kann, mit dem Prozessor 1410 verbunden sein. Der berührungsempfindliche Bildschirm 1425 kann über eine andere Verbindung mit dem Prozessor 1410 verbunden sein, welche in einer Ausführungsform eine I2C-Verbindung sein kann. Wie ferner in 14 dargestellt, kann zusätzlich zu dem berührungsempfindlichen Bildschirm 1425 eine Benutzereingabe durch Berührung auch über ein Touch Pad 1430 erfolgen, welches innerhalb des Gehäuses konfiguriert sein kann und auch mit derselben I2C-Verbindung verbunden sein kann wie der berührungsempfindliche Bildschirm 1425.
  • Für Wahrnehmungsberechnungen und andere Zwecke können verschiedene Sensoren innerhalb des Systems vorhanden sein und können auf verschiedene Weisen mit dem Prozessor 1410 verbunden sein. Bestimmte Inertial- und Umgebungssensoren können durch einen Sensorknoten 1440 mit dem Prozessor 1410 verbunden sein, z.B. über eine I2C-Verbindung. In der Ausführungsform, die in 14 dargestellt ist, können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (Ambient Light Sensor, ALS) 1442, einen Kompass 1443 und ein Gyroskop 1444 umfassen. Andere Umgebungssensoren können einen oder mehrere Wärmesensoren 1446 umfassen, welche in einigen Ausführungsformen über einen Systemmanagement-Bus (SMBus) mit dem Prozessor 1410 verbunden sind.
  • Wie ebenfalls in 14 dargestellt, können verschiedene Peripherievorrichtungen über eine Low-Pin-Count(LPC)-Verbindung mit dem Prozessor 1410 verbunden sein. In der dargestellten Ausführungsform können verschiedene Komponenten über eine eingebettete Steuerung 1435 verbunden sein. Solche Komponenten können eine Tastatur 1436 (z.B. über eine PS2-Schnittstelle verbunden), ein Gebläse 1437 und einen Wärmesensor 1439 umfassen. In einigen Ausführungsformen kann das Touch Pad 1430 ebenfalls über eine PS2-Schnittstelle mit der EC 1435 verbunden sein. Außerdem kann auch ein Sicherheitsprozessor, z.B. ein Trusted-Platform-Modul (TPM) 1438, über diese LPC-Verbindung mit dem Prozessor 1410 verbunden sein.
  • Das System 1400 kann auf vielerlei Weisen mit externen Vorrichtungen kommunizieren, z.B. drahtlos. In der Ausführungsform, die in 14 dargestellt ist, sind verschiedene Drahtlos-Module vorhanden, welche jeweils einem Funk entsprechen können, der für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert ist. Eine Möglichkeit für eine drahtlose Kommunikation in einem kurzen Bereich, z.B. einem Nahfeld, kann die über eine NFC-Einheit 1445 sein, welche in einer Ausführungsform über einen SMBus mit dem Prozessor 1410 kommunizieren kann. Man beachte, dass über diese NFC-Einheit 1445 Vorrichtungen in enger Nähe zueinander kommunizieren können.
  • Wie ferner in 14 dargestellt, können weitere Drahtlos-Einheiten andere Nahbereichs-Drahtlos-Maschinen umfassen, z.B. eine WLAN-Einheit 1450 und eine Bluetooth™-Einheit 1452. Unter Verwendung der WLAN-Einheit 1450 können Wi-Fi™-Kommunikationen realisiert werden, während über die Bluetooth™-Einheit 1452 Nahbereichs-Bluetooth™-Kommunikationen erfolgen können. Diese Einheiten können über eine gegebene Verbindung mit dem Prozessor 1410 kommunizieren.
  • Außerdem können über eine WWAN-Einheit 1456, welche ihrerseits mit einem Teilnehmeridentitätsmodul (Subscriber Identity Module, SIM) 1457 verbunden sein kann, Fernbereichskommunikationen erfolgen, z.B. gemäß einem zellulären oder anderen Drahtlos-Fernbereichsprotokoll. Des Weiteren kann auch ein GPS-Modul 1455 vorhanden sein, um den Empfang und die Verwendung von Positionsinformationen zu ermöglichen. Man beachte, dass in der Ausführungsform, die in 14 dargestellt ist, die WWAN-Einheit 1456 und eine integrierte Aufnahmeeinheit, z.B. ein Kameramodul 1454, über eine gegebene Verbindung kommunizieren können.
  • Um für Audio-Eingaben und -Ausgaben zu sorgen, kann über einen digitalen Signalprozessor (DSP) 1460, welcher über eine High-Definition-Audio(HDA)-Verbindung mit dem Prozessor 1410 verbunden sein kann, ein Audioprozessor realisiert werden. In ähnlicher Weise kann der DSP 1460 mit einem integrierten Codierer/Decodierer (CODEC) und Verstärker 1462 kommunizieren, welcher seinerseits mit Ausgabelautsprechern 1463 verbunden sein kann, welche innerhalb des Gehäuses realisiert sein können. In ähnlicher Weise können der Verstärker und CODEC 1462 verbunden sein, um Audio-Eingaben von einem Mikrofon 1465 zu empfangen, welches in einer Ausführungsform über Doppelmatrixmikrofone (z.B. ein digitales Mikrofonmatrixfeld) realisiert sein kann, um für Audio-Eingaben hoher Qualität zu sorgen, um eine sprachaktivierte Steuerung verschiedener Operationen innerhalb des Systems zu ermöglichen. Man beachte auch, dass Audio-Ausgaben von einem Verstärker/CODEC 1462 einem Kopfhöreranschluss 1464 bereitgestellt werden können. Obwohl die Ausführungsform der 14 mit diesen speziellen Komponenten dargestellt ist, versteht es sich, dass der Umfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • Die Ausführungsformen können in vielen verschiedenen Systemtypen realisiert werden. In 15 ist ein Blockschaubild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 15 dargestellt, ist das Multiprozessorsystem 1500 ein Punkt-zu-Punkt-Verbindungssystem und umfasst einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Verbindung 1550 verbunden sind. Wie in 15 dargestellt, kann jeder der Prozessoren 1570 und 1580 ein mehrkerniger Prozessor sein, welcher einen ersten und zweiten Prozessorkerne umfasst (d.h. die Prozessorkerne 1574a und 1574b und die Prozessorkerne 1584a und 1584b), obwohl in den Prozessoren möglicherweise viel mehr Kerne vorhanden sein können. Jeder der Prozessoren kann eine PCU oder eine andere Energiemanagement-Logik umfassen, um ein Energiemanagement auf Prozessorbasis durchzuführen, wie hierin beschrieben.
  • Weiter Bezug nehmend auf 15, umfasst der erste Prozessor 1570 ferner einen Speichersteuerungsknoten (Memory Controller Hub, MCH) 1572 und Punkt-zu-Punkt(P-P)-Schnittstellen 1576 und 1578. In ähnlicher Weise umfasst der zweite Prozessor 1580 einen MCH 1582 und P-P-Schnittstellen 1586 und 1588. Wie in 15 dargestellt, verbinden die MCHs 1572 und 1582 die Prozessoren mit entsprechenden Speichern, nämlich einem Speicher 1532 und einem Speicher 1534, welche Teile des Systemspeichers (z.B. DRAM) sein können, die lokal an den entsprechenden Prozessoren angebracht sind. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über die P-P-Verbindungen 1562 bzw. 1564 mit einem Chipsatz 1590 verbunden sein. Wie in 15 dargestellt, umfasst der Chipsatz 1590 die P-P-Schnittstellen 1594 und 1598.
  • Ferner umfasst der Chipsatz 1590 eine Schnittstelle 1592, um den Chipsatz 1590 über eine P-P-Verbindung 1539 mit einer Hochleistungs-Graphikmaschine 1538 zu verbinden. Außerdem kann der Chipsatz 1590 über eine Schnittstelle 1596 mit einem ersten Bus 1516 verbunden sein. Wie in 15 dargestellt, können verschiedene Eingabe/Ausgabe(I/O)-Vorrichtungen 1514 mit dem ersten Bus 1516 verbunden sein, zusammen mit einer Busbrücke 1518, welche den ersten Bus 1516 mit einem zweiten Bus 1520 verbindet. Verschiedene Vorrichtungen können mit dem zweiten Bus 1520 verbunden sein, Beispielsweise eine Tastatur/Maus 1522, Kommunikationsvorrichtungen 1526 und eine Datenspeichereinheit 1528, wie z.B. ein Plattenlaufwerk oder eine andere Massenspeichervorrichtung, welche in einer Ausführungsform Code umfassen kann. Ferner kann eine Audio-I/O 1524 mit dem zweiten Bus 1520 verbunden sein. Ausführungsformen können in andere Systemtypen eingebaut sein, umfassend mobile Vorrichtungen wie z.B. ein intelligentes zelluläres Telefon, einen Tablet-Computer, ein Netbook, ein Ultrabook™ usw.
  • Eine oder mehrere Erscheinungsformen mindestens einer Ausführungsform können durch repräsentativen Code realisiert werden, der auf einem maschinenlesbaren Medium gespeichert ist und Logik innerhalb einer integrierten Schaltung, z.B. einem Prozessor, repräsentiert und/oder definiert. Beispielsweise kann das maschinenlesbare Medium Befehle umfassen, welche verschiedenartige Logik innerhalb des Prozessors umfassen. Wenn sie von einer Maschine gelesen werden, können die Befehle bewirken, dass die Maschine die Logik zur Durchführung der hierin beschriebenen Techniken erzeugt. Solche Repräsentationen, bekannt als „IP-Kerne“, sind wiederverwendbare Logikeinheiten für eine integrierte Schaltung, welche auf einem greifbaren, maschinenlesbaren Medium gespeichert sein können, als ein Hardware-Modell, welches die Struktur der integrierten Schaltung beschreibt. Das Hardware-Modell kann an verschiedene Kunden oder Produktionsanlagen geliefert werden, welche das Hardware-Modell in Produktionsmaschinen der integrierten Schaltung laden. Die integrierte Schaltung kann so hergestellt werden, dass die Schaltung Operationen durchführt, die in Verbindung mit beliebigen der hierin beschriebenen Ausführungsformen beschrieben sind.
  • 16 ist ein Blockschaubild, welches ein IP-Kernentwicklungssystem 1600, das verwendet werden kann, um eine integrierte Schaltung zum Durchführen von Operationen herzustellen, gemäß einer Ausführungsform veranschaulicht. Das IP-Kernentwicklungssystem 1600 kann verwendet werden, um modulare, wiederverwendbare Designs zu erzeugen, welche in ein größeres design eingebaut werden können oder verwendet werden können, um eine vollständige integrierte Schaltung zu konstruieren (z.B. eine integrierte SoC-Schaltung). Eine Design-Anlage 1630 kann eine Software-Simulation 1610 eines IP-Kern-Designs in einer höheren Programmiersprache (z.B. C/C++) erzeugen. Die Software-Simulation 1610 kann verwendet werden, um das Verhalten des IP-Kerns auszugestalten, zu testen und zu verifizieren. Anschließend kann aus dem Simulationsmodell ein Register-Transfer-Level(RTL)-Design erzeugt oder synthetisiert werden. Das RTL-Design 1615 ist eine Abstraktion des Verhaltens der integrierten Schaltung, welche den Fluss digitaler Signale zwischen Hardware-Registern modelliert, umfassend die zugehörige Logik, die unter Verwendung der modellierten digitalen Signale ausgeführt wird. Zusätzlich zu einem RTL-Design 1615 können auch niedrigstufige Designs auf der Logikebene oder Transistorebene erzeugt, ausgestaltet oder synthetisiert werden. Daher können die speziellen Einzelheiten des Ausgangs-Designs und der Simulation variieren.
  • Das RTL-Design 1615 oder ein Äquivalent kann ferner durch die Design-Anlage zu einem Hardware-Modell 1620, welches in einer Hardware-Beschreibungssprache (Hardware Description Language, HDL) vorliegen kann, oder irgendeiner anderen Repräsentation physischer Design-Daten synthetisiert werden. Die HDL kann ferner simuliert oder getestet werden, um das IP-Kern-Design zu verifizieren. Das IP-Kern-Design kann unter Verwendung eines nicht-flüchtigen Speichers 1640 (z.B. einer Hartplatte, eines Flash-Speichers oder eines beliebiges nicht-flüchtigen Speichermedium) für eine Lieferung an eine Herstellungsanlage 1665 einer dritten Partei gespeichert werden. Alternativ kann das IP-Kern-Design über eine drahtgebundene Verbindung 1650 oder drahtlose Verbindung 1660 gesendet werden (z.B. über das Internet). Die Herstellungsanlage 1665 kann dann eine integrierte Schaltung herstellen, welche zumindest teilweise auf dem IP-Kern-Design basiert. Die hergestellte integrierte Schaltung kann dafür konfiguriert sein, Operationen gemäß mindestens einer hierin beschriebenen Ausführungsform durchzuführen.
  • Gemäß einer oder mehreren Ausführungsformen kann ein Prozessor eine Ausgleichseinheit umfassen, um eine oder mehrere Ausgleichshandlungen durchzuführen. In einigen Ausführungsformen kann die Ausgleichseinheit eine angeforderte Änderung für eine Energieschiene in dem Prozessor erfassen. Die Ausgleichseinheit kann bestimmen, ob die angeforderte Änderung einen Schwellenwert übersteigt, der zu einer Komponente des Prozessors gehört. Wenn die angeforderte Änderung den Schwellenwert übersteigt, kann die Ausgleichseinheit vor der angeforderten Änderung eine Ausgleichshandlung auslösen. Die Ausgleichshandlung kann durchgeführt werden, bis die angeforderte Änderung abgeschlossen ist. In einigen Ausführungsformen kann die Auslösung der Ausgleichshandlung vor der angeforderten Änderung ermöglichen, dass die Komponente während der angeforderten Änderung richtig funktioniert. Entsprechend können einige Ausführungsformen zur Leistungsfähigkeit und zur Zuverlässigkeit des Prozessors beitragen.
  • In 17 ist ein Blockschaubild eines Systems 1700 gemäß einer oder mehreren Ausführungsformen dargestellt. Wie in 17 dargestellt, kann das System 1700 einen Prozessor 1710 umfassen, welcher operativ mit einer Energieversorgung 1750 verbunden ist. Ferner kann das System 1700, obwohl in 17 nicht dargestellt, andere Komponenten umfassen. Gemäß einigen Ausführungsformen kann das System 1700 die gesamte oder ein Teil einer elektronischen Vorrichtung sein, z.B. eines zellulären Telefons, eines Computers, eines Servers, eines Medienabspielgeräts, einer Netzwerkvorrichtung usw.
  • In einer oder mehreren Ausführungsformen kann der Prozessor 1710 eine Hardware-Verarbeitungsvorrichtung sein, wie z.B. eine Zentralprozessoreinheit (CPU), ein System auf einem Chip (SoC) usw. Wie in dem Beispiel aus 17 gezeigt, kann der Prozessor 1710 einen oder mehrere Komponentenblöcke 1720A-1720N (auch allgemein als „Komponentenblöcke 1720“ bezeichnet), eine Energiesteuereinheit 1730 und eine Ausgleichseinheit 1740 umfassen. In manchen Ausführungsformen kann jeder Komponentenblock 1720 eine oder mehrere Komponenten umfassen, die dafür konfiguriert ist/sind, eine spezifizierte Funktion (oder Funktionen) durchzuführen. Zum Beispiel können in solchen Ausführungsformen die Komponentenblöcke 1720 allgemeine Verarbeitungskerne, Grafikverarbeitungseinheiten (GPUs), digitale Signalprozessoren, Verschlüsselungs/Entschlüsselungs-Prozessoren, Speichervorrichtungen (z. B. Dual-Inline-Speichermodule (DIMMs), Speicher-Caches), Intellektuelles-Eigentum(IP)-Blöcke, Netzwerkschnittstellenmodule und so weiter repräsentieren.
  • In einer oder mehreren Ausführungsformen können die Komponentenblöcke 1720 über eine oder mehrere Energieschienen des Prozessors 1710 elektrische Energie von der Energieversorgung 1750 empfangen. Die Energiesteuerungseinheit 1730 kann die elektrische Energie steuern, die den Komponentenblöcken 1720 bereitgestellt wird. In einigen Ausführungsformen kann die Energiesteuerungseinheit 1730 die Energie variieren, die von einer bestimmten Schiene bereitgestellt wird. Beispielsweise kann die Energiesteuerungseinheit 1730 eine Anforderung von dem Komponentenblock 1720A empfangen, die Spannung in einer Energieschiene zu erhöhen, die mit dem Komponentenblock 1720A verbunden ist. In Reaktion auf die empfangene Anforderung kann die Energiesteuerungseinheit 1730 die Spannung erhöhen, die von der Energieschiene bereitgestellt wird, die mit dem Komponentenblock 1720A verbunden ist.
  • In einigen Ausführungsformen kann die Ausgleichseinheit 1740 Anforderungen für Änderungen der Energieversorgung erfassen. Beispielsweise kann die Ausgleichseinheit 1740 eine Anforderung erfassen, eine Spannung in einer bestimmten Energieschiene zu erhöhen oder zu senken. In einem anderen Beispiel kann die Ausgleichseinheit 1740 eine Anforderung erfassen, eine Spannung zu erhöhen oder zu senken, die einem bestimmten Komponentenblock 1720 bereitgestellt wird.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichseinheit 1740 bestimmen, ob das Maß einer angeforderten Änderung einen Schwellenwert erreicht. In einigen Ausführungsformen kann der Schwellenwert für einen bestimmten Komponentenblock 1720 spezifiziert sein. Beispielsweise kann die Ausgleichseinheit 1740 eine angeforderte Spannungsänderung mit einem vorab definierten Spannungsschwellenwert vergleichen, der für den Komponentenblock 1720A spezifiziert ist. Wie hierin verwendet, kann „Erreichen eines Schwellenwerts“ darauf beziehen, einen Schwellenwert zu treffen, einen maximalen Schwellenwert zu übersteigen, einen minimalen Schwellenwert zu unterschreiten usw.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichseinheit 1740 Ausgleichshandlungen in Reaktion auf die Bestimmung auslösen und/oder durchführen, dass die angeforderte Änderung einen Schwellenwert erreicht. In einigen Ausführungsformen können die durch die Ausgleichseinheit 1740 ausgelösten und/oder durchgeführten Ausgleichshandlungen eine Auswirkung bzw. Auswirkungen ausgleichen, die mit Änderungen einer Energieversorgung in Zusammenhang stehen oder von diesen bewirkt werden. Beispielsweise können die Ausgleichshandlungen Auswirkungen auf Komponenten aufgrund Änderungen der Spannung, der Stromstärke, der Frequenz usw. ausgleichen. Ferner können die Ausgleichshandlungen Auswirkungen auf Komponenten aufgrund von Temperaturhöhen, Kapazitätseffekten, Signalstörungen, Resonanzeffekten usw. ausgleichen.
  • In einigen Ausführungsformen kann die Ausgleichseinheit 1740 Schaltungen und/oder Logik verwenden, um Ausgleichshandlungen auszuführen. Beispielsweise kann die Ausgleichseinheit 1740 über einen Verzögerungsregelkreis (Delay Locked Loop, DLL) oder einen Phasenregelkreis (Phase Locked Loop, PLL) eine Verzögerung einstellen, um Zeitcharakteristiken in Taktsignalen und/oder Datensignalen aufrechtzuerhalten. In einem anderen Beispiel kann die Ausgleichseinheit 1740 Spannungen und/oder Stromstärken einstellen, um Schwankungen in einer Energieversorgung für eine Komponente, Änderungen in der Umgebung (z.B. einen Temperaturanstieg) usw. auszugleichen. In noch einem anderen Beispiel kann die Ausgleichseinheit 1740 eine Betriebsfrequenz einer Komponente einstellen, um Temperatureffekte auszugleichen, die mit einer Änderung der Energieversorgung in Zusammenhang stehen. In wiederum einem anderen Beispiel kann die Ausgleichseinheit 1740 die Impedanz eines Ausgangstreibers einstellen, basierend auf einer Messung gegen einen externen Widerstand, um Änderungen der Spannung und der Temperatur zu berücksichtigen.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichseinheit 1740 in Hardware-Komponenten des Prozessors 1710 realisiert sein. Beispielsweise kann die Ausgleichseinheit 1740 in Schaltungen und/oder Mikroarchitektur des Prozessors 1710 realisiert sein. Ferner kann die Ausgleichseinheit 1740 in einigen Ausführungsformen zumindest teilweise in Firmware und/oder Software realisiert sein. Obwohl die Ausführungsform der 17 als eine spezielle Realisierung dargestellt ist, ist der Umfang der verschiedenen hierin beschriebenen Ausführungsformen diesbezüglich nicht beschränkt. Beispielsweise ist vorgesehen, dass sich in einigen Ausführungsformen die Ausgleichseinheit 1740 außerhalb des Prozessors 1710 befinden kann (z.B. in einer eingebetteten Steuerung, in einem Chipsatz usw.). Ferner können in einigen Ausführungsformen einige oder alle Funktionen und/oder Komponenten der Ausgleichseinheit 1740 in den Komponentenblöcken 1720, der Energiesteuerungseinheit 1730 oder einer beliebigen anderen Komponente des Prozessors 1710 realisiert sein.
  • In 18 ist ein Schaubild einer Ausgleichseinheit 1800 gemäß einer oder mehreren Ausführungsformen dargestellt. Die Ausgleichseinheit 1800 kann allgemein einem Beispiel für die Ausgleichseinheit 1740 (dargestellt in 17) entsprechen.
  • Wie in 18 dargestellt, kann die Ausgleichseinheit 1800 eine Ausgleichssteuerungslogik 1820, Komponentendaten 1830 und eine beliebige Anzahl an Kompensatoren 1810A bis 1810N (auch als „Kompensatoren 1810“ bezeichnet) umfassen. Es ist vorgesehen, dass die Ausgleichseinheit 1800 andere und/oder verschiedene Komponenten umfassen kann. In einer oder mehreren Ausführungsformen kann die Ausgleichseinheit 1800 in Hardware (z.B. Schaltungen und/oder Mikroarchitektur) realisiert sein.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichssteuerungslogik 1820 eine Anzeige 1840 einer Änderung der Energieversorgung innerhalb eines Prozessors (z.B. des in 17 dargestellten Prozessors) empfangen. Beispielsweise kann die Anzeige 1840 Informationen hinsichtlich einer Energieversorgungsänderung für eine bestimmte Komponente (oder einen bestimmten Komponentenblock), in einer bestimmten Energieschiene usw. umfassen. In einigen Ausführungsformen kann die Anzeige 1840 Informationen hinsichtlich der Stärke oder Größe der Energieversorgungsänderung (z.B. einer Spannungsänderung, einer Stromstärkeänderung usw.) umfassen.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichssteuerungslogik 1820 in Reaktion auf die empfangene Anzeige 1840 eine oder mehrere Komponenten bestimmen, welche von der Energieversorgungsänderung beeinflusst werden. Ferner kann die Ausgleichssteuerungslogik 1820 bestimmen, ob die Stärke der Energieversorgungsänderung einen Schwellenwert erreicht, der zu der (den) beeinflussten Komponente(n) gehört (hierin auch als ein „Schwellenwertereignis“ bezeichnet). In einigen Ausführungsformen kann die Ausgleichssteuerungslogik 1820 unter Verwendung der Komponentendaten 1830 Schwellenwerte bestimmen, die zu verschiedenen Komponenten gehören.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichssteuerungslogik 1820 in Reaktion auf die Bestimmung, dass die Stärke der Energieversorgungsänderung einen Schwellenwert erreicht, eine oder mehrere Ausgleichshandlungen bestimmen, die auszulösen sind. Ferner kann die Ausgleichssteuerungslogik 1820 die Komponentendaten 1830 verwenden, um zu bestimmen, welche Ausgleichshandlungen auszulösen sind, nachdem ein solcher Schwellenwert erreicht wird. In einigen Ausführungsformen kann die Komponentendaten 1830 eine gespeicherte Datenstruktur sein, welche Informationen hinsichtlich zugehöriger Komponenten, Schwellenwerte und Ausgleichshandlungen umfasst.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichssteuerungslogik 1820 die Kompensatoren 1810 verwenden, um eine bestimmte Ausgleichshandlung auszulösen. In einigen Ausführungsformen kann jeder Kompensator 1810 dafür konfiguriert sein, einen bestimmten Typ einer Ausgleichstechnik auszuführen. Beispielsweise kann der Kompensator 1810A einen DLL oder PLL umfassen, um Zeitcharakteristiken in Signalen aufrechtzuerhalten. In einem anderen Beispiel kann der Kompensator 1810N eine Schaltung und/oder Logik zum Einstellen von Spannungen und/oder Stromstärken umfassen. Es ist vorgesehen, dass die Kompensatoren 1810 einen beliebigen Typ einer Ausgleichsvorrichtung, -technik, -algorithmus, -schaltung, -logik usw. umfassen können.
  • In einer oder mehreren Ausführungsformen kann die Ausgleichssteuerungslogik 1820 eine Gruppe mehrerer Kompensatoren 1810 identifizieren, welche einem aktuellen Zustand oder einer aktuellen Aktivität ausgelöst werden können. In einigen Ausführungsformen kann die Ausgleichssteuerungslogik 1820 vorab definierte Regeln anwenden, um einen aus der identifizierten Gruppe mehrerer Kompensatoren 1810 dafür auszuwählen, ausgelöst zu werden. Ferner kann die Ausgleichssteuerungslogik 1820 in einigen Ausführungsformen bewirken, dass einige oder alle aus der identifizierten Gruppe mehrerer Kompensatoren 1810 ausgelöst werden.
  • In 19 ist eine beispielhafte Datenstruktur 1900 gemäß einer oder mehreren Ausführungsformen dargestellt. Die Datenstruktur 1900 kann allgemein einem Beispiel für die Komponentendaten 1830 (dargestellt in 18) entsprechen. Es ist vorgesehen, dass die Datenstruktur 1900 andere und/oder verschiedene Spalten umfassen kann. In einigen Ausführungsformen kann die Datenstruktur 1900 in einer nicht-flüchtigen Speichervorrichtung (z.B. Hartplatte, Flash-Speicher usw.) gespeichert sein. Ferner kann die Datenstruktur 1900 in einem flüchtigen Speicher gespeichert sein.
  • In einigen Ausführungsformen kann die Datenstruktur 1900 als eine Tabelle realisiert sein, die verschiedene Reihen und Spalten umfasst. Beispielsweise kann die Datenstruktur 1900, wie in 19 dargestellt, eine Komponentenspalte 1910, eine Schienenspalte 1920, eine Schwellenwertspalte 1930, eine Zeitspalte 1940 und eine Ausgleichstypspalte 1950 umfassen. In einigen Ausführungsformen können in der Komponentenspalte 1910 Informationen gespeichert sein, welche Komponenten identifizieren und/oder beschreiben, die von einer Energieversorgungsänderung beeinflusst werden (z.B. eine einzigartige Kennung). In einigen Ausführungsformen können in der Schienenspalte 1920 Informationen gespeichert sein, welche eine Energieschiene identifizieren und/oder beschreiben, die von einer Energieversorgungsänderung beeinflusst wird. Ferner können in der Schienenspalte 1920 Informationen über eine Energieschiene gespeichert sein, die eine bestimmte Komponente (z.B. die in der Komponentenspalte 1910 identifizierte Komponente) mit Energie versorgt.
  • In einigen Ausführungsformen können in der Schwellenwertspalte 1930 Informationen über einen Schwellenwert gespeichert sein, der zu einer Komponente gehört. Beispielsweise kann in der Schwellenwertspalte 1930 ein Schwellenwert gespeichert sein, der zu einem maximalen zulässigen Wert gehört, ein Schwellenwert, der zu einem minimalen zulässigen Wert gehört, usw.
  • In einigen Ausführungsformen können in der Zeitspalte 1940 Informationen über die Zeitempfindlichkeit einer bestimmten Komponente gespeichert sein, die zu einer Änderung der Energieversorgung gehört. Beispielsweise können in der Zeitspalte 1940 Informationen gespeichert sein, welche anzeigen, dass eine Komponente während einer Spannungsänderung, die schneller auftritt als eine gegebene Zeitperiode, nicht richtig funktionieren kann.
  • In einigen Ausführungsformen können in der Ausgleichstypspalte 1950 Informationen gespeichert sein, welche eine oder mehrere Ausgleichshandlungen identifizieren und/oder beschreiben, die auszulösen sind in Reaktion auf eine Bestimmung, dass ein Schwellenwert (der z.B. in der Schwellenwertspalte 1930 gespeichert ist) erreicht worden ist. Beispielsweise können in der Ausgleichstypspalte 1950 Informationen über einen Zeitausgleich, einen Spannungsausgleich, einen Stromstärkeausgleich usw. gespeichert sein.
  • In 20 ist ein beispielhaftes System 2000 gemäß einer oder mehreren Ausführungsformen dargestellt. Das System 2000 kann im Allgemeinen einem beispielhaften Teil des Prozessors 17 (dargestellt in 17) entsprechen. Es ist vorgesehen, dass das System 2000 andere und/oder verschiedene Komponenten umfassen kann. In einigen Ausführungsformen kann das System 2000 in Hardware (z.B. Schaltungen und/oder Mikroarchitektur) realisiert sein.
  • Wie in 20 dargestellt, kann das System 2000 eine Zielkomponente 2010, einen Multiplexer 2020, einen Kompensator 2030, eine Ausgleichslogik 2040, eine erste Energieschiene 2050, eine zweite Energieschiene 2060 und eine zweite Komponente 2070 umfassen. In dem Beispiel der 20 stellt der Multiplexer 2020 der Zielkomponente 2010 anfänglich die Energieversorgung aus der ersten Energieschiene 2050 bereit. In einigen Ausführungsformen kann der Multiplexer 2020 durch ein Auswahlsignal 2025 umgeschaltet werden, um der Zielkomponente 2010 stattdessen die Energieversorgung aus der zweiten Energieschiene 2060 bereitzustellen. Beispielsweise kann das Auswahlsignal 2025 durch Firmware und/oder Software (z.B. ein Betriebssystem, ein Steuerprogramm usw.) bereitgestellt werden. In einigen Ausführungsformen kann die erste Energieschiene 2050 eine Energieschiene mit fester Spannung sein und die zweite Energieschiene 2060 kann eine Energieschiene mit variabler Spannung sein.
  • In einigen Ausführungsformen kann die Zielkomponente 2010 die variable Energieversorgung aus der zweiten Energieschiene 2060 über einen Kompensator 2030 empfangen. Es sei angenommen, dass in dem Beispiel der 20 die Funktionalität der Zielkomponente 2010 durch Spannungsänderungen beeinflusst wird, die einen Schwellenwert übersteigen (z.B. 1 Volt, 5 Volt usw.). Es sei ferner angenommen, dass in dem Fall, dass eine Spannungsänderung in der zweiten Energieschiene 2060 diesen Schwellenwert erreicht, die Zielkomponente 2010 einen Ausgleich benötigt, um richtig zu funktionieren.
  • In einer oder mehreren Ausführungsformen kann der Kompensator 2030 einen Ausgleich für Spannungsänderungen in der zweiten Energieschiene 2060 durchführen. Der Kompensator 2030 kann durch die Ausgleichslogik 2040 gesteuert werden. In einigen Ausführungsformen kann die Ausgleichslogik 2040 den Kompensator 2030 steuern, die Ausgleichshandlung vor einem Beginn der Spannungsänderung auszulösen. Ferner kann die Ausgleichslogik 2040 den Kompensator 2030 steuern, die Ausgleichshandlung während der Spannungsänderung durchzuführen. Beispielsweise kann die Ausgleichslogik 2040 den Kompensator 2030 während der Spannungsänderung durchgängig aktivieren oder sie kann den Kompensator 2030 während der Spannungsänderung in einem festen oder variablen Zeitintervall wiederholt aktivieren. Das Zeitintervall kann auf der Schnelligkeit der Änderung der Spannung basieren. In einer oder mehreren Ausführungsformen kann die Ausgleichslogik 2040 den Kompensator 2030 steuern, die Ausgleichshandlung nach einem Ende der Spannungsänderung zu beenden. Ferner kann in einigen Ausführungsformen die Ausgleichslogik 2040 den Kompensator 2030 auf der Basis des Anzeigesignals 2045 steuern. In einigen Ausführungsformen kann das Anzeigesignal 2045 eine Anforderung oder einen Befehl anzeigen, die Spannung der zweiten Energieschiene 2060 zu ändern. Beispielsweise kann das Anzeigesignal 2045 eine Anforderung durch die zweite Komponente 2070 anzeigen, die Spannung der zweiten Energieschiene 2060 zu erhöhen. In einem anderen Beispiel kann das Anzeigesignal 2045 eine Anforderung durch die Zielkomponente 2010 anzeigen, die Spannung der zweiten Energieschiene 2060 zu erhöhen. In einigen Ausführungsformen kann die Ausgleichslogik 2040 den Kompensator 2030 auf der Basis gespeicherter Informationen über den Ausgleich für die Zielkomponente 2010 und/oder die zweite Energieschiene 2060 (z.B. der in 19 dargestellten Datenstruktur 1900) auswählen.
  • In 21 ist ein beispielhafter zeitlicher Ablaufplan 2100 gemäß einer oder mehreren Ausführungsformen dargestellt. Insbesondere kann 21 ein Beispiel der Funktionalität des Systems 2000 veranschaulichen, das in 20 dargestellt ist.
  • Wie in 21 dargestellt, veranschaulicht der zeitliche Ablaufplan 2100 eine Spannung einer Energieschiene (entlang der vertikalen Achse) zu verschiedenen Zeitpunkten (entlang der horizontalen Achse). In dem Beispiel der 21 befindet sich die Energieschiene (z.B. die zweite Energieschiene 2060, die in 20 dargestellt ist) anfänglich auf einer ersten Spannung V1. Wie dargestellt, wird zu der Zeit T2 eine Umstellung von der ersten Spannung V1 zu einer zweiten Spannung V2 ausgelöst und zu der Zeit T3 beendet. Es sei angenommen, dass zu einer bestimmten Zeit T1, die vor der Zeit T2 liegt, eine Ausgleichshandlung ausgelöst wird. Ferner wird die Ausgleichshandlung zu einer Zeit T4 beendet, die nach der Zeit T3 liegt. Daher kann in dem Beispiel der 21 die Ausgleichshandlung für eine Periode (d.h. von T1 bis T4) durchgeführt werden, die vor der Spannungsumstellungsperiode (d.h. von T2 bis T3) beginnt und nach dieser endet.
  • In einigen Ausführungsformen können die Zeiten T1 und T4 durch eine Ausgleichslogik (z.B. die in 20 dargestellte Ausgleichslogik 2040) bestimmt werden. Ferner können in einigen Ausführungsformen die Zeiten T1 und T4 auf der Grundlage einer Zeitempfindlichkeit einer bestimmten Komponente bestimmt werden, die mit der Energieschiene verbunden ist. Beispielsweise kann die Zeit T1 so gewählt werden, dass die Zeitperiode zwischen T1 und T2 größer oder gleich einer minimalen Zeit zum vollständigen Auslösen einer Ausgleichshandlung ist. Somit kann die Ausgleichshandlung vollständig aktiv sein, wenn die Spannungsänderung auftritt. In einem anderen Beispiel kann die Zeit T4 so gewählt werden, dass die Zeitperiode zwischen T3 und T4 größer oder gleich einer minimalen Zeit zum vollständigen Ausgleichen aller Auswirkungen ist, die aus der Spannungsänderung herrühren. In einigen Ausführungsformen können die Zeiten T1 und/oder T4 unter Verwendung gespeicherter Daten bestimmt werden, welche die Zeitempfindlichkeit einer Komponente und/oder einer Energieversorgung beschreiben (z.B. der in 19 dargestellten Zeitspalte 1940).
  • In 22 ist eine Abfolge 2200 gemäß einer oder mehreren Ausführungsformen dargestellt. In einigen Ausführungsformen kann die gesamte oder ein Teil der Abfolge 2200 in der Ausgleichseinheit 1740 (dargestellt in 17), der Ausgleichseinheit 1800 (dargestellt in 18) und/oder dem System 2000 (dargestellt in 20) realisiert sein. Die Abfolge 2200 kann in Hardware, Software und/oder Firmware realisiert sein. In Hardware-Ausführungsformen kann sie als Schaltungen und/oder Mikroarchitektur realisiert sein. In Firmware- und/oder Software-Ausführungsformen kann sie durch computerausführbare Befehle realisiert sein, die in einem nicht-flüchtigen maschinenlesbaren Medium gespeichert sind, wie z.B. einer optischen, Halbleiter- oder magnetischen Speichervorrichtung. Auf dem maschinenlesbaren Medium können Daten gespeichert sein, welche, wenn sie von mindestens einer Maschine verwendet werden, bewirken, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zur Ausführung eines Verfahrens herstellt. Zu Veranschaulichungszwecken können die Schritte der Abfolge 2200 nachstehend in Bezug auf 17 bis 21 beschrieben sein, welche Beispiele gemäß einer oder mehreren Ausführungsformen zeigen. Der Umfang der verschiedenen Ausführungsformen ist jedoch diesbezüglich nicht beschränkt.
  • Im Block 2210 kann eine Anforderung erfasst werden, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern. Beispielsweise kann, Bezug nehmend auf 20, eine Ausgleichslogik 2040 ein Anzeigesignal 2045 empfangen, welches eine Anforderung anzeigt, die Spannung der Energieschiene 2060 zu ändern. In einigen Ausführungsformen kann das Anzeigesignal 2045 eine angeforderte Änderung auf eine bestimmte Spannung, eine Anforderung eines bestimmten Änderungswerts usw. anzeigen.
  • Im Block 2220 kann in Reaktion auf die Erfassung der Anforderung (im Block 2210) bestimmt werden, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört. Beispielsweise kann, Bezug nehmend auf 20, die Ausgleichslogik 2040 bestimmen, ob eine angeforderte Spannungsänderung für die Energieschiene 2060 einen vorab definierten Schwellenwert der Zielkomponente 2010 übersteigt. In einigen Ausführungsformen kann die Ausgleichslogik 2040 den Schwellenwert unter Verwendung gespeicherter Daten bestimmen, die zu der Zielkomponente 2010 gehören (z.B. der in 19 dargestellten Datenstruktur 1900).
  • Im Block 2230 kann in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, eine erste Ausgleichshandlung ausgelöst werden, bevor die Spannungseingabe der ersten Energieschiene geändert wird. Beispielsweise kann, Bezug nehmend auf 20, die Ausgleichslogik 2040 den Kompensator 2030 als einzig der Zielkomponente 2010 zugehörig identifizieren und kann dann bewirken, dass der Kompensator 2030 Auswirkungen der angeforderten Spannungsänderung auf die Zielkomponente 2010 ausgleicht. In einigen Ausführungsformen kann die Ausgleichslogik 2040 den Kompensator 2030 unter Verwendung gespeicherter Daten identifizieren, die zu der Zielkomponente 2010 gehören (z.B. der in 19 dargestellten Datenstruktur 1900).
  • Im Block 2240 kann nach dem Auslösen der ersten Ausgleichshandlung die Spannungseingabe der ersten Energieschiene um den ersten Spannungsänderungswert geändert werden. Beispielsweise kann, Bezug nehmend auf 17, während eine Ausgleichshandlung ausgeführt wird, die Energiesteuerungseinheit 1730 die Spannung in einer Energieschiene erhöhen, die mit dem Komponentenblock 1720A verbunden ist.
  • Im Block 2250 kann nach dem Ändern der Spannungseingabe durch die erste Energieschiene um den ersten Spannungsänderungswert die erste Ausgleichshandlung beendet werden. Beispielsweise kann, Bezug nehmend auf 17, nachdem die Energiesteuerungseinheit 1730 eine Umstellung zur Erhöhung der Spannung in der Energieschiene, die mit dem Komponentenblock 1720A verbunden ist, beendet, die Ausgleichseinheit 1740 die Ausgleichshandlung beenden, die zu der Spannungserhöhung gehört. Nach dem Block 2250 endet die Abfolge 2200. In einigen Ausführungsformen kann die Abfolge 2200 wiederholt werden, um Ausgleichshandlungen in einem System (z.B. dem in 17 dargestellten Prozessor 1710) durchzuführen, wie erforderlich.
  • Man beachte, dass die in 1 bis 22 dargestellten Beispiele zu Veranschaulichungszwecken gegeben werden und nicht irgendwelche Ausführungsformen beschränken sollen. Man beachte außerdem, dass, obwohl die Ausführungsformen zur Verdeutlichung in vereinfachter Form dargestellt sein können, die Ausführungsformen eine beliebige Anzahl und/oder Anordnung der Prozessoren, Kerne und/oder weiteren Komponenten (z.B. Busse, Speichermedien, Verbinder, Energieversorgungskomponenten, Pufferspeicher, Schnittstellen usw.) umfassen können. Insbesondere ist es vorgesehen, dass einige Ausführungsformen eine beliebige Anzahl an Komponenten zusätzlich zu den dargestellten umfassen können und dass in bestimmten Realisierungen eine andere Anordnung der dargestellten Komponenten auftreten kann. Ferner ist vorgesehen, dass Spezifika in den Beispielen, die in 1 bis 22 dargestellt sind, überall in einer oder mehreren Ausführungsformen angewendet werden können. Beispielsweise können die oben in Bezug auf 17 bis 22 beschriebenen Komponenten und/oder Funktionen in beliebigen der Systeme und/oder Komponenten realisiert werden, die oben in Bezug auf 1 bis 16 beschrieben werden.
  • Die folgenden Abschnitte und/oder Beispiele betreffen weitere Ausführungsformen.
  • In einem Beispiel umfasst ein Prozessor zum Auslösen von Ausgleichshandlungen eine erste Energieschiene, eine erste Komponente, die mit der ersten Energieschiene verbunden ist, und eine Ausgleichssteuerungseinheit. Die Ausgleichssteuerungseinheit: erfasst eine Anforderung, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern; bestimmt in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört; und löst in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, eine erste Ausgleichshandlung aus, bevor die Spannung der ersten Energieschiene geändert wird.
  • In einem Beispiel ändert die Ausgleichssteuerungseinheit ferner nach dem Auslösen der ersten Ausgleichshandlung die Spannung der ersten Energieschiene um den ersten Spannungsänderungswert. In einem Beispiel beendet die Ausgleichssteuerungseinheit ferner nach dem Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert die erste Ausgleichshandlung.
  • In einem Beispiel empfängt die Ausgleichssteuerungseinheit die Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des Prozessors, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  • In einem Beispiel bestimmt die Ausgleichssteuerungseinheit ferner den ersten Schwellenwert auf der Basis der ersten Komponente. In einem Beispiel bestimmt die Ausgleichssteuerungseinheit ferner den ersten Schwellenwert unter Verwendung einer gespeicherten Datenstruktur, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge eine Kennung der ersten Komponente und den ersten Schwellenwert umfasst. In einem Beispiel ist die erste Ausgleichshandlung eine eines ersten Ausgleichstyps von mehreren Ausgleichstypen, wobei der erste Eintrag der mehreren Einträge Daten umfasst, welche den ersten Ausgleichstyp der ersten Ausgleichshandlung identifizieren.
  • In einem Beispiel umfasst die erste Ausgleichshandlung die Verwendung eines Kompensators, um Zeitcharakteristiken in einem Signal aufrechtzuerhalten.
  • In einem Beispiel umfasst ein Verfahren zum Auslösen von Ausgleichshandlungen: Erfassen einer Anforderung zum Ändern einer Spannung einer ersten Energieschiene in einem Prozessor um einen ersten Spannungsänderungswert, wobei die erste Energieschiene mit einem ersten Komponentenblock des Prozessors verbunden ist; Bestimmen in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der eindeutig zu dem ersten Komponentenblock gehört; und in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, Auslösen einer ersten Ausgleichshandlung in dem Prozessor, bevor die Spannung der ersten Energieschiene geändert wird.
  • In einem Beispiel umfasst das Verfahren ferner: Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert nach dem Auslösen der ersten Ausgleichshandlung. In einem Beispiel umfasst das Verfahren ferner Beenden der ersten Ausgleichshandlung nach dem Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert.
  • In einem Beispiel umfasst das Verfahren ferner Empfangen der Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des Prozessors, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  • In einem Beispiel umfasst das Verfahren ferner Bestimmen des ersten Schwellenwerts unter Verwendung einer gespeicherten Datenstruktur, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge den ersten Schwellenwert und eine Kennung der ersten Komponente umfasst. In einem Beispiel umfasst das Verfahren ferner Bestimmen der ersten Ausgleichshandlung unter Verwendung des ersten Eintrags der mehreren Einträge, wobei der erste Eintrag der mehreren Einträge Daten über die erste Ausgleichshandlung umfasst.
  • In einem Beispiel umfasst das Verfahren ferner Auswählen eines ersten Kompensators von mehreren Kompensatoren auf der Basis der ersten Komponente und Bewirken, dass der erste Kompensator die erste Ausgleichshandlung auslöst.
  • In einem Beispiel weist ein maschinenlesbares Medium darauf gespeicherte Daten auf, welche, wenn sie von mindestens einer Maschine verwendet werden, bewirken, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zum Durchführen eines Verfahrens gemäß einem der obigen Beispiele herstellt.
  • In einem Beispiel ist eine Vorrichtung zur Verarbeitung von Befehlen dafür konfiguriert, das Verfahren nach einem der obigen Beispiele durchzuführen.
  • In einem Beispiel umfasst ein System auf einem Chip (SoC) zum Auslösen von Ausgleichshandlungen eine erste Energieschiene, eine erste Komponente, die mit der ersten Energieschiene verbunden ist, und eine Ausgleichseinheit. Die Ausgleichseinheit: erfasst eine Anforderung, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern; bestimmt in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört; und löst in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, eine erste Ausgleichshandlung aus, bevor die Spannung der ersten Energieschiene geändert wird; und ändert die Spannung der ersten Energieschiene um den ersten Spannungsänderungswert, während die erste Ausgleichshandlung weiter durchgeführt wird.
  • In einem Beispiel beendet die Ausgleichseinheit ferner die erste Ausgleichshandlung nach dem Ändern der Spannungseingabe der ersten Energieschiene um den ersten Spannungsänderungswert.
  • In einem Beispiel empfängt die Ausgleichseinheit ferner die Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des SoC, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  • In einem Beispiel bestimmt die Ausgleichseinheit ferner den ersten Schwellenwert unter Verwendung einer gespeicherten Datenstruktur, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge den ersten Schwellenwert und eine Kennung der ersten Komponente umfasst.
  • In einem Beispiel ist die erste Ausgleichshandlung eine von mehreren Ausgleichshandlungen, wobei der erste Eintrag der mehreren Einträge Daten umfasst, welche anzeigen, dass die erste Komponente zu der ersten Ausgleichshandlung gehört.
  • In einem Beispiel weist ein maschinenlesbares Medium darauf gespeicherte daten auf, welche, wenn sie von mindestens einer Maschine verwendet werden, bewirken, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zur Durchführung eines Verfahrens herstellt, umfassend: Erfassen einer Anforderung zum Ändern einer Spannung einer ersten Energieschiene in einem Prozessor um einen ersten Spannungsänderungswert, wobei die erste Energieschiene mit einem ersten Komponentenblock des Prozessors verbunden ist; Bestimmen in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der eindeutig zu dem ersten Komponentenblock gehört; und in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, Auslösen einer ersten Ausgleichshandlung in dem Prozessor, bevor die Spannung der ersten Energieschiene geändert wird.
  • In einem Beispiel umfasst das Verfahren ferner: Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert nach dem Auslösen der ersten Ausgleichshandlung.
  • In einem Beispiel umfasst das Verfahren ferner Beenden der ersten Ausgleichshandlung nach dem Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert.
  • In einem Beispiel umfasst das Verfahren ferner Empfangen der Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des Prozessors, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  • In einem Beispiel umfasst das Verfahren ferner Bestimmen des ersten Schwellenwerts unter Verwendung einer gespeicherten Datenstruktur, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge den ersten Schwellenwert und eine Kennung der ersten Komponente umfasst. In einem Beispiel umfasst das Verfahren ferner Bestimmen der ersten Ausgleichshandlung unter Verwendung des ersten Eintrags der mehreren Einträge, wobei der erste Eintrag der mehreren Einträge Daten über die erste Ausgleichshandlung umfasst.
  • In einem Beispiel umfasst das Verfahren ferner Auswählen eines ersten Kompensators von mehreren Kompensatoren auf der Basis der ersten Komponente und Bewirken, dass der erste Kompensator die erste Ausgleichshandlung auslöst.
  • Ausführungsformen können in Code realisiert sein und können auf einem nichtflüchtigen Speichermedium gespeichert sein, auf welchem Befehle gespeichert sind, welche verwendet werden können, um ein System zum Ausführen der Befehle zu programmieren. Ausführungsformen können auch in Daten realisiert sein und können auf einem nichtflüchtigen Speichermedium gespeichert sein, welches, wenn es von mindestens einer Maschine benutzt wird, bewirkt, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zur Durchführung einer oder mehrerer Operationen herstellt. Das Speichermedium kann, ohne darauf beschränkt zu sein, einen beliebigen Typ einer Platte umfassen, z.B. Disketten, optische Platten, Halbleiterlaufwerke (Solid State Drives, SSDs), Compact-Disk-Nur-Lese-Speicher (Compact Disk Read-Only Memories, CD-ROMs), überschreibbare CDs (Compact Disk Rewritables, CD-RWs), und magnetooptische Platten, Halbleitervorrichtungen, wie z.B. Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (Random Access Memories, RAMs), z.B. dynamische Direktzugriffsspeicher (DRAMs), statische Direktzugriffsspeicher (SRAMs), löschbare programmierbare Nur-Lese-Speicher (Erasable Programmable ROMs, EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), magnetische oder optische Karten oder andere Arten von Medien, die zum Speichern elektronischer Befehle geeignet sind.
  • Es ist vorgesehen, dass verschiedene Kombinationen der obigen Beispiele möglich sind. Ausführungsformen können in vielen verschiedenen Typen von Systemen angewendet werden. Beispielsweise kann in einer Ausführungsform eine Kommunikationsvorrichtung dafür eingerichtet sein, die verschiedenen hierin beschriebenen Verfahren und Techniken durchzuführen. Natürlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt und stattdessen können sich andere Ausführungsformen auf andere Arten von Vorrichtungen zur Verarbeitung von Befehlen beziehen oder ein oder mehrere andere maschinenlesbare Medien, welche Befehle umfassen, die in Reaktion darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, bewirken, dass die Vorrichtung eine oder mehrere der hierin beschriebenen Verfahren und Techniken ausführt.
  • Bezugnahmen überall in der vorliegenden Beschreibung auf „eine Ausführungsform“ bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Realisierung enthalten ist, die von der vorliegenden Erfindung umfasst ist. Daher bezieht sich ein Vorkommen des Begriffs „eine Ausführungsform“ oder „in einer Ausführungsform“ nicht notwendigerweise auf dieselbe Ausführungsform. Ferner können die speziellen Merkmale, Strukturen oder Eigenschaften in anderen geeigneten Formen eingesetzt sein als bei der dargestellten speziellen Ausführungsform und all solche Formen können von den Ansprüchen der vorliegenden Anmeldung umfasst sein. Wie hierin verwendet, bezieht sich „in Reaktion auf“ auf eine direkte Ursache-Wirkung-Beziehung.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl an Ausführungsformen beschrieben worden ist, erkennt der Fachmann zahlreiche Modifikationen und Variationen derselben. Es ist vorgesehen, dass die anhängenden Ansprüche all solche Modifikationen und Variationen abdecken, welche unter die wahre Idee und den Umfang der vorliegenden Erfindung fallen.

Claims (22)

  1. Prozessor, umfassend: eine erste Energieschiene; eine erste Komponente, welche mit der ersten Energieschiene verbunden ist; und eine Ausgleichssteuerungseinheit zum: Erfassen einer Anforderung, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern; Bestimmen in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört; und in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, Auslösen einer ersten Ausgleichshandlung, bevor die Spannung der ersten Energieschiene geändert wird.
  2. Prozessor nach Anspruch 1, wobei die Ausgleichssteuerungseinheit ferner: nach dem Auslösen der ersten Ausgleichshandlung die Spannung der ersten Energieschiene um den ersten Spannungsänderungswert ändert.
  3. Prozessor nach Anspruch 2, wobei die Ausgleichssteuerungseinheit ferner: nach dem Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert die erste Ausgleichshandlung beendet.
  4. Prozessor nach Anspruch 1, wobei die Ausgleichssteuerungseinheit die Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des Prozessors empfängt, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  5. Prozessor nach Anspruch 1, wobei die Ausgleichssteuerungseinheit ferner: den ersten Schwellenwert auf der Basis der ersten Komponente bestimmt.
  6. Prozessor nach Anspruch 5, wobei die Ausgleichssteuerungseinheit ferner: den ersten Schwellenwert unter Verwendung einer gespeicherten Datenstruktur bestimmt, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge eine Kennung der ersten Komponente und den ersten Schwellenwert umfasst.
  7. Prozessor nach Anspruch 6, wobei die erste Ausgleichshandlung eine eines ersten Ausgleichstyps von mehreren Ausgleichstypen ist, wobei der erste Eintrag der mehreren Einträge Daten umfasst, welche den ersten Ausgleichstyp der ersten Ausgleichshandlung identifizieren.
  8. Prozessor nach Anspruch 1, wobei die erste Ausgleichshandlung die Verwendung eines Kompensators umfasst, um Zeitcharakteristiken in einem Signal aufrechtzuerhalten.
  9. Verfahren, umfassend: Erfassen einer Anforderung zum Ändern einer Spannung einer ersten Energieschiene in einem Prozessor um einen ersten Spannungsänderungswert, wobei die erste Energieschiene mit einem ersten Komponentenblock des Prozessors verbunden ist; Bestimmen in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der eindeutig zu dem ersten Komponentenblock gehört; und in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, Auslösen einer ersten Ausgleichshandlung in dem Prozessor, bevor die Spannung der ersten Energieschiene geändert wird.
  10. Verfahren nach Anspruch 9, ferner umfassend: Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert nach dem Auslösen der ersten Ausgleichshandlung.
  11. Verfahren nach Anspruch 10, ferner umfassend: Beenden der ersten Ausgleichshandlung nach dem Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert.
  12. Verfahren nach Anspruch 9, ferner umfassend: Empfangen der Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des Prozessors, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  13. Verfahren nach Anspruch 9, ferner umfassend: Bestimmen des ersten Schwellenwerts unter Verwendung einer gespeicherten Datenstruktur, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge den ersten Schwellenwert und eine Kennung der ersten Komponente umfasst.
  14. Verfahren nach Anspruch 13, ferner umfassend: Bestimmen der ersten Ausgleichshandlung unter Verwendung des ersten Eintrags der mehreren Einträge, wobei der erste Eintrag der mehreren Einträge Daten über die erste Ausgleichshandlung umfasst.
  15. Verfahren nach Anspruch 9, ferner umfassend: Auswählen eines ersten Kompensators von mehreren Kompensatoren auf der Basis der ersten Komponente; und Bewirken, dass der erste Kompensator die erste Ausgleichshandlung auslöst.
  16. Maschinenlesbares Medium mit darauf gespeicherten Daten, welche, wenn sie von mindestens einer Maschine verwendet werden, bewirken, dass die mindestens eine Maschine mindestens eine integrierte Schaltung zum Durchführen eines Verfahrens nach einem der Ansprüche 9 bis 15 herstellt.
  17. Vorrichtung zur Verarbeitung von Befehlen, welche dafür konfiguriert ist, das Verfahren nach einem der Ansprüche 9 bis 15 durchzuführen.
  18. System auf einem Chip (SoC), umfassend: eine erste Energieschiene; eine erste Komponente, die mit der ersten Energieschiene verbunden ist; und eine Ausgleichseinheit zum: Erfassen einer Anforderung, eine Spannung der ersten Energieschiene um einen ersten Spannungsänderungswert zu ändern; Bestimmen in Reaktion auf die Erfassung der Anforderung, dass der erste Spannungsänderungswert einen ersten Schwellenwert übersteigt, der zu der ersten Komponente gehört; in Reaktion auf die Bestimmung, dass der erste Spannungsänderungswert den ersten Schwellenwert übersteigt, Auslösen einer ersten Ausgleichshandlung, bevor die Spannung der ersten Energieschiene geändert wird; und Ändern der Spannung der ersten Energieschiene um den ersten Spannungsänderungswert, während die erste Ausgleichshandlung weiter durchgeführt wird.
  19. SoC nach Anspruch 18, wobei die Ausgleichseinheit ferner: nach dem Ändern der Spannungseingabe der ersten Energieschiene um den ersten Spannungsänderungswert die erste Ausgleichshandlung beendet.
  20. SoC nach Anspruch 18, wobei die Ausgleichseinheit ferner: die Anforderung, die Spannung der ersten Energieschiene zu ändern, von einer zweiten Komponente des SoC empfängt, wobei die zweite Komponente mit der ersten Energieschiene verbunden ist.
  21. SoC nach Anspruch 18, wobei die Ausgleichseinheit ferner: den ersten Schwellenwert unter Verwendung einer gespeicherten Datenstruktur bestimmt, wobei die gespeicherte Datenstruktur mehrere Einträge umfasst, wobei ein erster Eintrag der mehreren Einträge den ersten Schwellenwert und eine Kennung der ersten Komponente umfasst.
  22. SoC nach Anspruch 21, wobei die erste Ausgleichshandlung eine von mehreren Ausgleichshandlungen ist, wobei der erste Eintrag der mehreren Einträge Daten umfasst, welche anzeigen, dass die erste Komponente zu der ersten Ausgleichshandlung gehört.
DE112017004991.1T 2016-09-30 2017-09-05 Ausgleichssteuerung für variable energieschienen Withdrawn DE112017004991T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/281,299 2016-09-30
US15/281,299 US10754404B2 (en) 2016-09-30 2016-09-30 Compensation control for variable power rails
PCT/US2017/050039 WO2018063751A1 (en) 2016-09-30 2017-09-05 Compensation control for variable power rails

Publications (1)

Publication Number Publication Date
DE112017004991T5 true DE112017004991T5 (de) 2019-06-27

Family

ID=61757042

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017004991.1T Withdrawn DE112017004991T5 (de) 2016-09-30 2017-09-05 Ausgleichssteuerung für variable energieschienen

Country Status (4)

Country Link
US (1) US10754404B2 (de)
CN (1) CN109661637B (de)
DE (1) DE112017004991T5 (de)
WO (1) WO2018063751A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10535394B2 (en) * 2017-07-20 2020-01-14 Samsung Electronics Co., Ltd. Memory device including dynamic voltage and frequency scaling switch and method of operating the same
KR20190010390A (ko) * 2017-07-20 2019-01-30 삼성전자주식회사 다수의 전압 영역들을 갖는 메모리 장치 및 그 동작방법
US10529407B2 (en) * 2017-07-20 2020-01-07 Samsung Electronics Co., Ltd. Memory device including a plurality of power rails and method of operating the same
US10860083B2 (en) * 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978388B1 (en) * 2002-01-18 2005-12-20 Apple Computer, Inc. Method and apparatus for managing a power load change in a system
WO2003065557A2 (en) 2002-01-25 2003-08-07 Masimo Corporation Power supply rail controller
US7075276B2 (en) * 2003-07-03 2006-07-11 Isine, Inc. On-chip compensation control for voltage regulation
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
US20100188385A1 (en) 2007-07-24 2010-07-29 Koninklijke Philips Electronics N.V. Shift register circuit having threshold voltage compensation
US7525373B1 (en) * 2008-05-19 2009-04-28 International Business Machines Corporation Compensation of process and voltage variability in multi-threshold dynamic voltage scaling circuits
DE112009004066B4 (de) * 2009-02-27 2014-11-06 Hewlett-Packard Development Company, L.P. Verfahren und system zum melden von elektrischem strom an einen prozessor
US9110480B2 (en) * 2010-06-09 2015-08-18 Infineon Technologies Austria Ag Voltage ramp circuitry and voltage ramp methods for voltage regulators
US20120002332A1 (en) 2010-06-30 2012-01-05 Riley Joseph D Overvoltage circuit, and motor starter, overload relay and low-power system including the same
KR101868332B1 (ko) * 2010-11-25 2018-06-20 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 데이터 저장 장치
US8638161B2 (en) 2011-07-20 2014-01-28 Nxp B.V. Power control device and method therefor
US9335814B2 (en) * 2013-08-28 2016-05-10 Intel Corporation Adaptively controlling low power mode operation for a cache memory
US9678550B2 (en) 2014-07-22 2017-06-13 Empire Technology Development Llc Dynamic router power control in multi-core processors
US9575537B2 (en) * 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US20160147280A1 (en) * 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US9785222B2 (en) * 2014-12-22 2017-10-10 Qualcomm Incorporated Hybrid parallel regulator and power supply combination for improved efficiency and droop response with direct current driven output stage attached directly to the load
US9874922B2 (en) * 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
US10642329B2 (en) * 2016-03-23 2020-05-05 Qualcomm Incorporated Peak current support for a power rail system via a shared secondary power supply

Also Published As

Publication number Publication date
US10754404B2 (en) 2020-08-25
WO2018063751A1 (en) 2018-04-05
CN109661637A (zh) 2019-04-19
US20180095514A1 (en) 2018-04-05
CN109661637B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
US9983644B2 (en) Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
DE112013005131T5 (de) Verfahren, Vorrichtung, System zur automatischen Abstimmung von Coderegionen
DE102018131595A1 (de) Verwaltung von Prozessorleistung basierend auf Benutzerunterbrechungen
US11481013B2 (en) Multi-level loops for computer processor control
DE112016004776T5 (de) Datenkomprimierung unter Verwendung eines Beschleunigers mit mehreren Suchmaschinen
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
DE112017004991T5 (de) Ausgleichssteuerung für variable energieschienen
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
US20230315192A1 (en) System, apparatus and method for dynamic thermal distribution of a system on chip
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung
DE112017005000T5 (de) Prozessorspannungssteuerung unter verwendung eines beweglichen mittelwerts
DE102020127742A1 (de) System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
DE102018001896A1 (de) Hardwarebeschleuniger für das Auswählen von Datenelementen
DE102018114958A1 (de) Validieren eines Abbilds für eine umkonfigurierbare Vorrichtung
DE102022121048A1 (de) Auswahl der leistungsversorgung für ein hostsystem
CN109478086B (zh) 至少部分地基于平台电容来控制处理器的电流消耗
CN110998487A (zh) 现场可编程门阵列(fpga)中的自适应操作电压的系统、装置和方法

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee