-
STAND DER TECHNIK
-
Prozessorsysteme mit integrierten USB (Universal Serial Bus)-Typ-C-Ports hindern, in einem USB-Subsystem, das eine feste DP (Display Port)- oder HDMI (High-Definition Multimedia Interface)-Port-Konfiguration aufweist, das USB-Typ-C-Subsystem des Prozessorsystems daran, den energiesparendsten Zustand zu erreichen, selbst wenn keine Anzeigevorrichtung an diesen USB-Typ-C-Ports angeschlossen ist.
-
Figurenliste
-
Die Ausführungsformen der Offenbarung können unter Bezugnahme auf die nachstehende ausführliche Beschreibung und die beigefügten Zeichnungen der verschiedenen Ausführungsformen der Offenbarung, die jedoch nicht als die Offenbarung auf die spezifischen Ausführungsformen einschränkend zu verstehen sind, sondern nur den Zweck der Erläuterung und Erleichterung des Verständnisses erfüllen, leichter verstanden werden.
- 1 veranschaulicht ein USB (Universal Serial Bus)-Typ-C-Subsystem mit Energieverwaltung gemäß einigen Ausführungsformen.
- 2 veranschaulicht Hardwarelogik zum Identifizieren, wann keine Festport-Anzeige angeschlossen ist und wann eine Festport-verbundene Anzeige inaktiv ist, gemäß einigen Ausführungsformen.
- 3 veranschaulicht einen Energieverwaltungsfluss eines USB-Typ-C-Subsystems gemäß einigen Ausführungsformen.
- 4 veranschaulicht eine intelligente Vorrichtung oder ein Computersystem oder ein Ein-Chip-System (System-on-Chip, SoC) mit Energieverwaltung für USB-Typ-C-Subsysteme gemäß einigen Ausführungsformen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Verschiedene Ausführungsformen bieten eine hardwarebasierte Weckdetektion und SoC (System-on-Chip)-Firmware (Software)-Unterstützung für die Abwicklung von Hotplug-Ereignissen des festen DP (Display Port)- und HDMI (High Definition Multimedia Interface)-Ports, die es einem USB (Universal Serial Bus)-Typ-C-Subsystem erlauben, in einen ausgeschalteten Zustand (z. B. D3COLD) zu wechseln, während die Festanzeige nicht streamt. Wird ein von der Anzeigesoftware initiiertes Wecksignal für das Festanzeige-Streaming in Reaktion auf eine Hotplug-Detektion am USB-Typ-C-Port empfangen, löst die USB-Typ-C-Firmware des SoC ein Verlassen des Niedrigenergiezustand-Flusses aus, um das USB-Typ-C-Subsystem zum Handhaben des Anzeigeverkehrs hochzufahren. Die USB-Typ-C-Firmware des SoC hat die Fähigkeit, eigenständig wieder in den Niedrigenergiezustand zu wechseln, wenn die ein oder mehreren Festanzeigen gerade nicht streamen.
-
In einigen Ausführungsformen wird eine Einrichtung bereitgestellt, die eine Anzeige-Engine zum Generieren eines Interrupts für einen Vorrichtungstreiber umfasst, in Reaktion darauf, dass eine Anzeigevorrichtung mit einem Port (z. B. einem USB-Typ-C-Port) gekoppelt wird, wobei der Vorrichtungstreiber eine Energieanforderung für die Anzeigevorrichtung ausgeben soll. Die Einrichtung umfasst ferner einen Energieverwaltungsagenten zum Detektieren der Energieanforderung und Verlassen eines Niedrigenergiezustands (z. B. D3COLD), um in einen aktiven Zustand (z. B. den Zustand S0 oder D0) zu wechseln. In einigen Ausführungsformen umfasst die Einrichtung einen Plattformsteuerungsknoten zum Detektieren eines Hotplug-Ereignisses in Reaktion darauf, dass die Anzeigevorrichtung mit dem Port gekoppelt wird. In einigen Ausführungsformen soll der Plattformsteuerungsknoten das Hotplug-Ereignis an die Anzeige-Engine weiterleiten, wobei die Anzeige-Engine den Interrupt in Reaktion auf den Empfang des Hotplug-Ereignisses von dem Plattformsteuerungsknoten generieren soll. In einigen Ausführungsformen umfasst der Energieverwaltungsagent eine Anstiegsflanken-Detektionslogik zum Detektieren des Anliegens der Energieanforderung. In einigen Ausführungsformen umfasst der Energieverwaltungsagent Register zum Maskieren von Ausgaben der Flankendetektionslogik. In einigen Ausführungsformen beinhaltet der Energieverwaltungsagent eine Mikrosteuerung zum Abwickeln einer Ausgabe der Flankendetektionslogik, um ein Wecksignal zu generieren. In einigen Ausführungsformen führt die Mikrosteuerung eine Software aus, um das Wecksignal zu generieren. In einigen Ausführungsformen trainiert der Anzeigetreiber eine Anzeigeverbindung der Anzeigevorrichtung in Reaktion auf das Verlassen des Niedrigenergiezustands. In einigen Ausführungsformen handelt es sich bei dem Niedrigenergiezustand um einen D3COLD-Zustand, wobei der aktive Zustand einer der Zustände S0 oder D0 ist.
-
In einigen Ausführungsformen weist ein maschinenlesbares Datenspeichermedium darauf gespeicherte maschinenlesbare Anweisungen (z. B. USB-Typ-C-Subsystem-Software oder -Firmware) auf, die, wenn sie ausgeführt werden, die Mikrosteuerung des Energieverwaltungsagenten veranlassen, ein Verfahren durchzuführen, das Folgendes umfasst: Empfangen einer Flankendetektion eines Energieanforderungssignals, wobei das Energieanforderungssignal von einem Vorrichtungstreiber generiert wird, in Reaktion darauf, dass eine Anzeigevorrichtung mit einem Port gekoppelt wird; und Verarbeiten des Energieanforderungssignals, indem ein Niedrigenergiezustand verlassen und zu einem aktiven Zustand gewechselt wird. In einigen Ausführungsformen umfasst das Verfahren ferner Folgendes: Generieren eines Wecksignals zum Aufwecken aus dem Niedrigenergiezustand, wobei das Wecksignal ein USB-Typ-C-Subsystem aufweckt.
-
Es gibt viele technische Effekte verschiedener Ausführungsformen. Beispielsweise hat das Energieverwaltungsschema signifikante Energieeinsparungen zur Folge. Der USB-Typ-C-Komplex in einem Prozessorsystem kann häufiger in einen Niedrigenergiezustand wechseln, bei dem es sich um einen stark energiegesteuerten (powergated) Zustand handelt, der beispielsweise eine Energieeinsparung von 80 mW bringt. Diese Energieeinsparung bewirkt eine Verbesserung der Batterielebensdauer um etwa 2,8 % bis 3,5 % und Leistungssteigerungen bei Multi-Threading-Grafikprozessen und bei Single-Threading-Arbeitslasten um 1 % bzw. 0,37 %. Andere technische Effekte werden aus den verschiedenen Figuren und Ausführungsformen ersichtlich.
-
In der nachfolgenden Beschreibung werden zahlreiche Einzelheiten besprochen, um ein gründlicheres Verständnis der Ausführungsformen der vorliegenden Offenbarung zu vermitteln. Für Fachleute ist es jedoch offensichtlich, dass die Ausführungsformen der vorliegenden Erfindung ohne diese spezifischen Einzelheiten verwirklicht werden können. In anderen Fällen sind bekannte Strukturen und Vorrichtungen in Form eines Blockschaltbilds anstatt in ihren Einzelheiten dargestellt, um sicherzustellen, dass die Ausführungsformen der vorliegenden Erfindung deutlicher ersichtlich werden.
-
Es sei darauf hingewiesen, dass in den entsprechenden Zeichnungen der Ausführungsformen die Signale durch Linien dargestellt sind. Einige Linien können dicker sein, um die wesentlicheren Signalpfade zu verdeutlichen, und/oder an einem oder mehreren Enden Pfeile aufweisen, um die Hauptrichtung des Informationsflusses zu verdeutlichen. Diese Verdeutlichungen sind nicht als Einschränkung gedacht. Die Linien werden vielmehr in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet, um das Verständnis einer Schaltung oder einer logischen Einheit zu erleichtern. Jedes dargestellte Signal kann tatsächlich den konstruktionsbedingten Anforderungen oder Präferenzen entsprechend ein oder mehrere Signale umfassen, die sich in beide Richtungen bewegen können und mit jedem beliebigen, hierfür geeigneten Signalschema implementiert werden können.
-
In der gesamten Patentbeschreibung und in den Ansprüchen bezeichnet der Begriff „verbunden“ eine direkte Verbindung, wie etwa eine direkte elektrische, mechanische oder magnetische Verbindung, zwischen den miteinander verbundenen Elementen, ohne irgendwelche zwischengeschalteten Vorrichtungen.
-
Mit dem Begriff „gekoppelt“ ist eine direkte oder indirekte Verbindung, wie etwa eine direkte elektrische, mechanische oder magnetische Verbindung zwischen den verbundenen Dingen, oder eine indirekte Verbindung durch eine oder mehrere passive oder aktive zwischengeschaltete Vorrichtungen gemeint.
-
Der Begriff „benachbart“ bezieht sich hier allgemein auf eine Position eines Dings, das neben (z. B. unmittelbar neben oder in der Nähe von, mit einem oder zwei Dingen dazwischen) oder an ein anderes Ding angrenzend (z. B. daran anstoßend) vorliegt.
-
Mit dem Begriff „Schaltung“ oder „Modul“ können ein oder mehrere passive und/oder aktive Komponenten gemeint sein, die so angeordnet sind, dass sie zusammenwirken können, um eine gewünschte Funktion bereitzustellen.
-
Der Begriff „Signal“ kann sich auf wenigstens ein Stromsignal, ein Spannungssignal oder ein Daten-/Taktsignal beziehen.
-
Die Bedeutung von „einer/eine/ein“ und „der/die/das“ schließt auch Verweise auf den Plural mit ein. Die Bedeutung von „in“ schließt „in“, „auf“ und „an“ mit ein.
-
Der Begriff „analoges Signal“ bezieht sich hier auf ein beliebiges kontinuierliches Signal, für welches das zeitveränderliche Merkmal (Variable) des Signals eine Darstellung einer anderen zeitveränderlichen Größe, d. h. analog zu einem anderen zeitveränderlichen Signal, ist.
-
Der Begriff „digitales Signal“ steht für ein physikalisches Signal, das eine Darstellung einer Folge diskreter Werte (ein quantifiziertes zeitdiskretes Signal), beispielsweise eines beliebigen Bitstroms oder eines digitalisierten (abgetasteten und analogzu-digital-konvertierten) analogen Signals ist.
-
Der Begriff „Skalieren“ bezieht sich allgemein auf das Umwandeln eines Entwurfs (Schema und Layout) von einer Prozesstechnologie in eine andere Prozesstechnologie und kann für das spätere Verkleinern des Layoutbereichs stehen.
In einigen Fällen bezieht sich Skalieren auch auf das Upsizing eines Entwurfs von einer Prozesstechnologie zu einer anderen Prozesstechnologie und kann für das spätere Vergrößern des Layoutbereichs stehen. Der Begriff „Skalieren“ bezieht sich allgemein auf das Verkleinern („Downsizing“) oder Vergrößern („Upsizing“) von Layouts und Vorrichtungen innerhalb desselben Technologieknotens. Der Begriff „Skalieren“ kann sich auch auf das Anpassen (z. B. Verlangsamen oder Beschleunigen - d. h. Herunterskalieren bzw. Hochskalieren) einer Signalfrequenz relativ zu einem anderen Parameter, beispielsweise einem Energieversorgungspegel, beziehen. Die Begriffe „im Wesentlichen“, „nah“, „ungefähr“, „fast“ und „etwa“ beziehen sich allgemein auf einen Bereich von +/- 10 % um den Zielwert herum.
-
Soweit nicht anders angegeben, ist die Verwendung der ordinalen Adjektive „erste(r/s)“, „zweite(r/s)“ und „dritte(r/s)“ etc. zum Beschreiben eines gemeinsamen Objekts lediglich so zu verstehen, dass auf verschiedene Instanzen gleicher Objekte Bezug genommen wird; dies ist also nicht so zu verstehen, dass die so beschriebenen Objekte in einer vorgegebenen Reihenfolge sein müssen, sei es zeitlich, räumlich, in Form einer Rangordnung oder auf irgendeine andere Weise.
-
Für die Zwecke der vorliegenden Offenbarung bedeuten die Formulierungen „A und/oder B“ und „A oder B“ (A), (B) oder (A und B). Für die Zwecke der vorliegenden Offenbarung bedeutet die Formulierung „A, B und/oder C“ (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
-
Die Begriffe „links“, „rechts“ „vorne“, „hinten“, „oben“, „unten“, „über“, „unter“ und dergleichen in der Beschreibung und in den Ansprüchen werden, sofern vorhanden, zu Beschreibungszwecken verwendet und nicht notwendigerweise, um dauerhafte relative Positionen zu beschreiben.
-
Es wird darauf hingewiesen, dass diejenigen Elemente der Figuren mit den gleichen Bezugszeichen (oder Bezeichnungen) wie die Elemente einer beliebigen anderen Figur ähnlich wie beschrieben betrieben werden oder funktionieren können, aber nicht darauf beschränkt sind.
-
Für die Zwecke der Ausführungsformen handelt es sich bei den hier beschriebenen Transistoren in verschiedenen Schaltungen und Logikblöcken um Metalloxid-Halbleiter (Metal Oxide Semiconductor, MOS)-Transistoren oder deren Derivate, wobei die MOS-Transistoren Drain-, Source-, Gate- und Bulk-Anschlüsse aufweisen. Die Transistoren und/oder die MOS-Transistor-Derivate beinhalten auch Tri-Gate- und FinFET-Transistoren, Gate-All-Around-Cylindrical-Transistoren, Tunnel-FET (TFET)-, Quadratdraht- oder Rechteckband-Transistoren, ferroelektrische FETs (FeFETs) oder andere Vorrichtungen, die eine Transistorfunktionalität implementieren, wie etwa Kohlenstoff-Nanoröhren oder Spintronic-Vorrichtungen. Symmetrische MOSFET-Source-und-Drain-Anschlüsse sind identische Anschlüsse und werden hier austauschbar verwendet. Eine TFET-Vorrichtung andererseits hat asymmetrische Source- und Drain-Anschlüsse. Fachleute auf diesem Gebiet der Technik werden erkennen, dass auch andere Transistoren, beispielsweise bipolare Sperrschichttransistoren (BJT PNP/NPN), BiCMOS, CMOS, eFET etc., verwendet werden können, ohne damit vom Schutzumfang der Erfindung abzuweichen.
-
1 veranschaulicht die Einrichtung 100 mit einem USB (Universal Serial Bus)-Typ-C-Subsystem mit Energieverwaltung gemäß einigen Ausführungsformen. Ein integriertes Typ-C-Subsystem auf einem Client-Ein-Chip-System (System-on-Chip, SoC) umfasst mehrere als geistiges Eigentum (Intellectual Property) geschützte Blöcke (IP-Blöcke). Das USB-Typ-C-Subsystem ist über einen Verbindungsfabric 103 mit einem oder mehreren Prozessoren 101 und Speicher 102 gekoppelt. Das USB-Typ-C-Subsystem umfasst Steuerungen, Switches, Multiplexer und physische (PHY) E/As. Die Anzeige-Engine 104 wird typischerweise als sich außerhalb des USB-Typ-C-Subsystems befindend, aber mit diesem gekoppelt betrachtet. In einigen Ausführungsformen umfasst das USB-Typ-C-Subsystem Host-Direktspeicherzugriff (Direct Memory Access, DMA) 105, einen ersten Satz von Peripheriekomponentenschnittstellen (Peripheral Component Interfaces, PCIs) 106 (z. B. zwei Gruppen von vier PCIs 106a bzw. 106b), einen Energieverwaltungs- oder Funktionsagenten (Power Management Agent, PMA) 107, eine Host-Steuerung (xHCI) 108, eine Vorrichtungssteuerung (xDCI) 109, einen Host-Direktspeicherzugriff 110, einen zweiten Satz von Peripheriekomponentenschnittstellen 111a und 111b, Thunderbolt-Switches 112 und 113, Multiplexer 114 und 115 und Typ-C-PHYs (z. B. E/A-Schaltungen) 116, 117, 118 und 119. Auch wenn die Ausführungsformen unter Bezugnahme auf vier Typ-C-PHYs beschrieben werden, sind die Ausführungsformen nicht auf eine bestimmte Anzahl von PHYs beschränkt. Beispielsweise sind die Ausführungsformen auf einzelne Typ-C-PHYs, zwei Typ-C-PHYs, drei Typ-C-PHYs und mehr als vier einzelne Typ-C-PHYs anwendbar.
-
In einigen Ausführungsformen handelt es sich bei dem Prozessor 101 um einen beliebigen geeigneten Prozessor wie etwa den SoC 2401 oder den Prozessor 2404 von 4. In einigen Ausführungsformen ist der Speicher 102 ein beliebiger geeigneter Speicher wie etwa die Datenspeichervorrichtungen 2428 oder der Speicher 2430 von 4. In einigen Ausführungsformen ist der Prozessor 101 mit dem Speicher 102 über die Speicherschnittstelle 2434 von 4 gekoppelt. Ein Fabric 103 ist ein Netz von Zwischenverbindungen, die den Prozessor 101 und/oder den Speicher 102 mit dem Rest des USB-Subsystems koppeln. Der Fabric 103 stellt eine latenzarme Hochgeschwindigkeits-Zwischenverbindung bereit, um die Steuerungen des USB-Subsystems mit dem Prozessor 101 und/oder dem Speicher 102 zu koppeln. Diese Steuerungen beinhalten Host-DMA 105, 110; PCIs 106a, 106b, 111a, 111b, xHCI 108, xDCI 109 und PMA 107. Die Thunderbolt-Switches 112 und 113 implementieren ein Tunnelprotokoll, das die Protokolle PCI, USB (nur xHCI, nicht xDCI) und Display (nur DP, nicht HDMI) heranzieht und diese auf einer Thunderbolt-Verbindungsstrecke zeitmultiplext.
-
In einigen Ausführungsformen ist die Anzeige-Engine 104 Teil einer Grafik-Engine. Die Anzeige-Engine 104 kann außerhalb eines Grafikprozessors oder des Prozessors 101 vorliegen und mit dem Grafikprozessor über eine Ringverbindung oder einen geeigneten Fabric gekoppelt sein. Die Anzeige-Engine 104 beinhaltet eine 2D-Engine und eine Anzeigesteuerung. In einigen Ausführungsformen enthält die Anzeige-Engine 104 Speziallogik, die in der Lage ist, unabhängig von einer 3D-Pipeline zu arbeiten. In einigen Ausführungsformen ist die Anzeigesteuerung über Typ-C-PHYs mit einer (nicht gezeigten) Anzeigevorrichtung gekoppelt, bei der es sich um eine systemintegrierte Anzeigevorrichtung wie in einem Laptop-Computer oder um eine externe Anzeigevorrichtung handeln kann, die über einen Anzeigevorrichtungsverbinder (z. B einen USB-Typ-C-Verbinder) angeschlossen ist.
-
Multiplexer 114 und 115 stellen einen Zugang zu verschiedenen Steuerungsausgängen zu den Typ-C-PHYs 116-119 bereit. In einigen Ausführungsformen werden die Multiplexer 114 und 115 durch den PMA 107 gesteuert (auch als E/A-Manager (IO Manager, IOM) bezeichnet). Der PMA 107 steuert die Flüsse des Typ-C-Subsystems. Die Ausführungsformen hierin legen den Fokus auf die energieverwaltungsbezogenen Flüsse des PMA 107. In verschiedenen Ausführungsformen umfasst der PMA 107 Hardware (HW) Zustandsmaschinen, Logikblöcke und eine Mikrosteuerung. Der PMA 107 ist auch durch Software steuerbar, etwa durch Treiber (z. B. 2454 von 4), BIOS und/oder ein Betriebssystem (Operating System, OS) (z. B. das OS 2452 von 4). Der PMA 107 erlaubt es dem USB-Subsystem, in verschiedenen Energiezuständen betrieben zu werden, etwa Zustand D1, D2, D3 und D3COLD gemäß Definition der Spezifikationen PCI (PCI Bus Power Management Interface) und/oder ACPI (Advanced Configuration and Power Interface). Bei den Energiezuständen D1, D2, D3 und D3COLD der Vorrichtung handelt es sich um die Niedrigenergiezustände der Vorrichtung.
-
Der Energiezustand D1 der Vorrichtung ist der energiestärkste Niedrigenergiezustand der Vorrichtung. Hier bezieht sich Vorrichtung auf das USB-Typ-C-Subsystem. Im D1-Zustand ist der Energieverbrauch geringer als im DO-Zustand, aber größer oder gleich dem Energieverbrauch im D2-Zustand. Der DO-Zustand ist ein aktiver Vorrichtungszustand. Der Energiezustand D1 ist ein taktgesteuerter (clock-gated) Zustand. Im Energiezustand D1 empfängt die Vorrichtung gerade genug Energie, um den Hardwarekontext der Vorrichtung zu erhalten. Im D1 -Zustand wird der Vorrichtungskontext durch die Hardware erhalten und kann unter Umständen nicht durch den Treiber wiederhergestellt werden. Im D1-Zustand erfolgt, durch die Treiber, ein Speichern und Wiederherstellen oder erneutes Initialisieren jedes Kontextes, den die Hardware verliert. Von daher wird der D1-Zustand im Allgemeinen von Vorrichtungen verwendet, da eine Wiederaufnahme aus diesem Zustand unter Umständen nicht einschließt, dass der Treiber den vollständigen Hardwarekontext der Vorrichtung wiederherstellt.
-
Der Energiezustand D2 der Vorrichtung ist ein Niedrigenergie-Zwischenzustand der Vorrichtung zwischen den Energiezuständen D1 und D3. Im Allgemeinen ist der Energieverbrauch einer Vorrichtung in einem D2-Zustand geringer oder gleich dem Energieverbrauch im D1-Zustand. Im D2-Zustand geht der Vorrichtungskontext im Allgemeinen durch die Hardware verloren. Häufig erhält der D2-Zustand den Teil des Kontextes, der verwendet wird, um Weckereignisse zu signalisieren. Im D2-Zustand wird jeder von der Hardware verlorene Kontext gespeichert und wiederhergestellt oder neu initialisiert. Eine typische Vorrichtung verliert den meisten Kontext, wenn sie zu D2 wechselt. Das Wiederherstellen der Vorrichtung aus dem D2-Zustand in den DO-Zustand dauert wenigstens so lange wie das Wiederherstellen der Vorrichtung aus dem D1-Zustand in den DO-Zustand. In einem Beispiel ist ein Grafikadapter, der einen großen Rahmenpuffer aufweist, eine Vorrichtung, die nach einem Wechsel von D2 zu D0 eine große Menge von Hardwarekontext wiederherstellen muss. Für eine solche Vorrichtung könnte die Wiederherstellung aus D2 viel länger dauern als die Wiederherstellung aus D1.
-
Der D3-Zustand ist der energieärmste Niedrigenergiezustand einer Vorrichtung. Alle Vorrichtungen müssen diesen Zustand unterstützen. Seit Windows 8 von Microsoft unterteilt das Betriebssystem D3 in zwei einzelne und voneinander getrennte Unterzustände, D3HOT und D3COLD. Frühere Versionen von Windows definieren den D3-Zustand, aber nicht die Unterzustände D3HOT und D3COLD. Allerdings definieren alle Versionen der PCI-Spezifikation (PCI Bus Power Management Interface) getrennte D3HOT- und D3COLD-Unterzustände, und die Versionen 4 und neuer der ACPI-Spezifikation (Advanced Configuration and Power Interface Specification) definieren die Unterzustände D3HOT und D3COLD.
-
Im D3COLD-Zustand wird der Vorrichtung die Energie vollständig entzogen und möglicherweise auch dem gesamten System. Im D3COLD-Zustand ist ein Vorrichtungstreiber für das Wiederherstellen des Vorrichtungskontextes zuständig. Der Treiber erhält den Vorrichtungskontext und stellt diesen wieder her (z. B. typischerweise anhand der aktuellsten funktionstüchtigen Konfiguration) oder reinitialisiert die Vorrichtung beim Übergang in den D0-Zustand. Im D3COLD-Zustand ist eine Vorrichtung unter Umständen in der Lage, ein Wecksignal auszulösen, um einen im Schlafmodus befindlichen Computer aufzuwecken. Ein Software-erkennender und -verwalteter Niedrigenergiezustand D3COLD im Paket C0/System S0-Zustand erlaubt es dem Subsystem PMA 107, alle USB-Typ-C-IPs auszuschalten und die Energiezufuhr bis zum SoC-Budget wiederherzustellen. D3COLD ist ein Zustand, in dem alle Typ-C-Steuerungen von den zugehörigen Treibern, die in einem Betriebssystem ausgeführt werden, in den durch die PCIe-Spezifikation definierten D3COLD-Zustand versetzt werden, wodurch jeder weitere Zugriff auf die IPs eingestellt wird. In einigen Ausführungsformen informiert das BIOS den PMA 107 über den D3COLD-Zustand der Software, sodass dieser Hardwareaktionen durchführen und die Energiezufuhr zu den Typ-C-Steuerungen (z. B. 105-111) und PHYs 116-119 deaktivieren kann.
-
Einige Ausführungsformen implementieren eine hardwarebasierte Weckdetektion im PMA 107 und stellen eine SoC-Firmware-Unterstützung für die Abwicklung von Hotplug-Ereignissen des festen Display Port (DP)- und HDMI (High Definition Multimedia Interface)-Ports für die PHYs 116-119 bereit, die es dem USB-Typ-C-Subsystem erlauben, in einen ausgeschalteten Zustand (z. B. den D3COLD-Zustand) zu wechseln, während die Festanzeige nicht streamt. Wird ein von der Anzeigesoftware initiiertes Wecksignal für das Festanzeige-Streaming in Reaktion auf eine Hotplug-Detektion empfangen, löst die USB-Typ-C-Firmware des SoC das Verlassen des Niedrigenergiezustand-Flusses aus, um das USB-Typ-C-Subsystem zum Handhaben des Anzeigeverkehrs hochzufahren. Die USB-Typ-C-Firmware des SoC hat die Fähigkeit, eigenständig wieder in den Niedrigenergiezustand zu wechseln, wenn die ein oder mehreren Festanzeigen gerade nicht streamen.
-
Verschiedene Ausführungsformen erlauben es dem USB-Typ-C-Subsystem, eigenständig in den D3COLD-Zustand zu wechseln und diesen zu verlassen, unabhängig von Niedrigenergiezuständen des Gehäuses, was signifikante Energieeinsparungen für das Prozessorsystem zur Folge hat. In einigen Ausführungsformen bleibt der PMA 107 IP in diesem D3COLD-Zustand weiterhin eingeschaltet. Auch wenn die Ausführungsformen unter Bezugnahme auf den Niedrigenergiezustand D3COLD beschrieben werden, stellen die Ausführungsformen ein Schema (Hardware und Software) bereit, das auf jeden beliebigen Niedrigenergiezustand anwendbar ist, der für das USB-Typ-C-Subsystem gewünscht wird.
-
In einigen Ausführungsformen wird ein Hilfsenergieanforderungssignal (hier als auxpwrreq [Auxiliary Power Request] bezeichnet) angelegt, wenn ein Weckereignis für eine Hotplug-Detektion an den festen DP/HDMI-Ports aufgrund einer Anzeigeverbindung an der USB-Typ-C-PHY vorliegt. Das Weckereignis für eine Hotplug-Detektion hat einen Interrupt zur Folge, der einen Anzeigetreiber unterbricht, was zur Folge hat, dass ein auxpwrreq-Schnittstellensignal von der Anzeige-Engine 104 (oder dem Anzeige-IP) an das Typ-C-Subsystem angelegt wird. Dieser Interrupt erfolgt, um einen Hilfskanal in der PHY (z. B. 116-119) für das Übertragen/Empfangen von DP-Protokoll-Hilfsbefehlen mit Überwachung zu aktivieren. In einigen Ausführungsformen wird eine Flankendetektions-Hardwarelogik zu einem vorhandenen auxpwrreq-Statussignal im PMA 107 hinzugefügt. Dies ermöglicht eine Detektion von Hotplug-Detektionsaktivitäten an der Festanzeige/den HDMI-Ports (z. B. 116-119).
-
In einigen Ausführungsformen wird ein Anzeigetreiber (z. B. Software) bereitgestellt, um auxpwrreq während des Anzeigeverbindungsflusses zu aktivieren. Für statische/feste DP- und HDMI-Ports, die durch Umnutzung der Typ-C-PHYs 116-119 erstellt werden, aktiviert der Treiber auxpwrreq während des Verbindungsflusses; eine Deaktivierung erfolgt nicht, bis ein Trennereignis verarbeitet wird. Nach dem Empfangen von auxpwrreq ruft der Treiber ein internes Statusregister in der PHY ab, um sicherzustellen, dass diese vollständig initialisiert ist, bevor der AUX-Verkehr gestartet wird.
-
In einigen Ausführungsformen wird eine auxpwrreq-Assertion-Detektionslogik (z. B. Hardware) zum PMA 107 hinzugefügt, um eine Mikrosteuerung zum Handhaben des Ereignisses auszulösen. Die Firmware, die auf der Mikrosteuerung ausgeführt wird, bringt das USB-C-Subsystem aus dem D3COLD-Zustand in einen Zustand, in dem es die Festanzeigeanforderung handhaben kann und dem verbundenen Monitor erlauben kann aufzuleuchten. Der D3COLD-Beendigungsfluss wird durch die Firmware und Hardware des USB-C-PMA angesteuert, um das USB-C-Subsystem wieder in einen vollständig eingeschalteten Zustand, Zustand D0, zu bringen. In einigen Ausführungsformen, falls das D3COLD-Merkmal durch Software (z. B. BIOS) aktiviert wird, versucht das USB-C-Subsystem opportunistisch, wieder in den D3COLD-Niedrigenergiezustand zu wechseln, während das SoC aktiv ist (z. B. PkgC 0 + DO-Zustand), um den Energieverbrauch zu reduzieren, wenn die festen/statischen Ports nicht verwendet werden.
-
2 veranschaulicht Hardwarelogik 200 zum Identifizieren, wann keine Festport-Anzeige angeschlossen ist und wann eine Festport-verbundene Anzeige inaktiv ist, gemäß einigen Ausführungsformen. Hardwarelogik 200 steht für Logik und Schaltungen in drei unterschiedlichen Energiedomänen: VCCSA, VCCTPC und PMAPVCCIOG. Dies sind nur unterschiedliche Energiedomänen in dem Ein-Chip-System. In einigen Ausführungsformen ist PMAPVCCIOG eine Immer-EIN-Energiedomäne, was bedeutet, dass, während andere Energiedomänen während verschiedener Energiesparmodi ausgeschaltet werden, die Energieversorgung für PMAPVCCIOG immer eingeschaltet bleibt. In einigen Ausführungsformen kann die Energiedomäne VCCTPC ausgeschaltet werden, während sich der Prozessor 101 im Zustand C0 befindet.
-
In einigen Ausführungsformen generiert die Anzeige-Engine 104 ein Hilfsenergieanforderungssignal (auxpwrreq), wenn eine der PHYs 116-119 mit einer Anzeige verbunden ist. Das Hilfsenergieanforderungssignal signalisiert dem USB-Subsystem, dass Energie für die Anzeige benötigt wird und dass sich das Subsystem im aktiven Zustand befinden muss, um diese Anforderung zu bedienen (oder zu unterbrechen). Wie hier erörtert, werden vier PHYs 116-119 veranschaulicht, die jeweils den Signalen auxpwrreq[0]-[3] entsprechen. Für eine andere Anzahl von PHYs wird die Anzahl der entsprechenden auxpwrreq-Signale angepasst. Das Signal auxpwrreq[i] (wobei ‚i‘ eine Zahl ist) wird bei einem Weckereignis für eine Hotplug-Detektion an festen DP/HDMI-Ports aufgrund einer Anzeigeverbindung zu den ein oder mehreren PHYs 116-119 angelegt. Das Weckereignis für eine Hotplug-Detektion hat einen Interrupt (auxpwrreq) zur Folge, der einen Anzeigetreiber unterbricht, was zur Folge hat, dass ein auxpwrreq-Schnittstellensignal von der Anzeige-Engine 104 (oder dem Anzeige-IP) an das Typ-C-Subsystem angelegt wird. Der Interrupt erfolgt, um einen Hilfskanal in der PHY (z. B. 116-119) für das Übertragen/Empfangen von DP-Protokoll-Hilfsbefehlen mit Überwachung zu aktivieren.
-
In einigen Ausführungsformen werden die Signale auxpwrreq[0]-[3] durch ein Energie-OK-Signal (Power good) gesteuert. Das Energieversorgung-OK-Signal stellt sicher, dass eine fälschliche Auslösung von auxpwrreq[0]-[3]-Signalen nicht bedient wird. Falls der VCCSA-Energiepegel (z. B. ein Spannungspegel) über einem Schwellwert liegt (z. B. über 70% des zugehörigen Sollpegels), dann wird das Vccsa_pwrgood (Energie-OK-Signal) angelegt, was die AND-Gatter 201 aktiviert. Fachleute werden erkennen, dass AND-Gatter durch NAND, NOR-Gatter oder Multiplexer ersetzt werden können. Die Ausgabe von AND-Gattern 201 wird von Hardwarelogik des PMA 107 und Multiplexern 114 und 115 empfangen.
-
In einigen Ausführungsformen umfasst die Hardwarelogik des PMA 107 Anstiegsflanken-Detektionslogik 202, Interrupt-Maskenregister 203 ein AND-Gatter 204, Register 205 zum Speichern von Hilfsenergieanforderungsereignissen, ein OR-Gatter 206 und Mikrosteuerung-Interruptlogik 207. In einigen Ausführungsformen überwacht die Anstiegsflanken-Detektionslogik 202 die Ausgabe von AND-Gattern 201, die bestimmt, ob irgendein auxpwrreq-Signal anliegt. In einigen Ausführungsformen umfasst die Anstiegsflanken-Detektionslogik 202 vier Register zum jeweiligen Speichern des überwachten Ergebnisses für jedes auxpwrreq-Signal. Ein Registerwert von „1“ gibt an, dass das Anliegen eines auxpwrreq-Signals (Assertion) detektiert wurde. Allerdings kann der Logikwert für die Assertion invertiert werden und andere Logik kann modifiziert werden, um den invertierten Logikwert zu verarbeiten, damit dieselbe Funktionalität erzielt wird.
-
In einigen Ausführungsformen kann die Interrupt-Maskenlogik 203 verwendet werden, um die Registerausgabe der Flankendetektionslogik 202 zu maskieren. Von daher bietet die Interrupt-Maskenlogik 203 die Flexibilität, um das Aufwecken des SoC bei auxpwrreq-Assertion zu vermeiden, falls dies erwünscht ist. Die Interrupt-Maskenlogik 203 bietet auch die Flexibilität für den PMA 107, um eine Ereignisdetektion basierend auf der Boot-Zeit-OEM (Original Equipment Manufacturer, Erstausrüster)-Konfiguration der Ports - feste DP- gegenüber flexible Typ-C-Ports - zu erlauben oder nicht zu erlauben. Beispielsweise kann, bei flexiblen Typ-C-Ports, der PMA 107 unter Umständen diese Ereignisse nicht von Anzeigeverbindungen empfangen wollen, da der PMA 107 über unterschiedliche Mittel verfügen kann, um direkt vom Plattformsteuerungsknoten (Platform Controller Hub, PCH) über die neuen Verbindungen informiert zu werden. Hier empfangen AND-Gatter 204 Ausgaben von Registern der Interrupt-Maskenlogik 203 und maskieren die Ausgabe des AND-Gatters 204, wenn das Bit für die Eingabe des AND-Gatters den Wert „0“ hat. Fachleute können die AND-Logikgatter 204 in NAND-Gatter, NOR-Gatter oder Multiplexer ändern und die Maskierungslogik entsprechend modifizieren, um die Ausgabe der NAND-Gatter, NOR-Gatter Multiplexer zu maskieren.
-
Die Ausgabe der AND-Gatter 204 wird in den Registern 205 gespeichert. Falls irgendeines der Register 205 eine logische „1“ ist, die den maskierten Wert oder das Anstiegsflanken-Detektionssignal angibt, löst das OR-Gatter 206 die Mikrosteuerung 207 aus, um das Ereignis zu handhaben. In einigen Ausführungsformen bringt die Firmware, die auf der Mikrosteuerung 207 ausgeführt wird, das USB-C-Subsystem aus dem D3COLD-Zustand in einen Zustand, in dem das USB-C-Subsystem die Festanzeigeanforderung handhaben kann und dem verbundenen Monitor erlauben kann aufzuleuchten. Wie hier erörtert, bewirkt ein verbundener Monitor an irgendeinem der PHYs 116-119, dass ein entsprechendes auxpwrreq-Signal anliegt, was letztendlich dazu führt, dass die Mikrosteuerung 207 den D3COLD-Energiezustand verlässt. Der D3COLD-Beendigungsfluss wird von der Firmware und Hardware des USB-C-PMA angesteuert, um das USB-C-Subsystem wieder in einen vollständig eingeschalteten D0-Zustand zu versetzen. In einigen Ausführungsformen, falls das D3COLD-Merkmal durch Software (z. B. BIOS) aktiviert wird, versucht das USB-C-Subsystem opportunistisch, wieder in den D3COLD-Zustand zu wechseln, während das SoC aktiv ist (z. B. PkgC 0 + DO-Zustand), um den Energieverbrauch zu reduzieren, wenn die festen/statischen Ports nicht verwendet werden.
-
3 veranschaulicht einen Energieverwaltungsfluss 300 eines USB-Typ-C-Subsystems gemäß einigen Ausführungsformen. In traditionellen USB-Typ-C-Subsystemen wird, wenn eine Vorrichtung mit einem Typ-C-PHY-Port verbunden ist, der Energiezustand D3COLD nicht erreicht. Infolgedessen besteht auch dann eine Energiebelastung für das Computersystem, wenn keine Anzeige an die PHY angeschlossen ist, da ein Eintreten und Verlassen von D3COLD in einem traditionellen USB-Typ-C-Subsystem nicht verfügbar ist. Verschiedene Ausführungsformen erlauben es dem USB-C-Subsystem, vollständig abgeschaltet zu werden, wodurch sich der Energieverbrauch reduziert, wenn keine Festportanzeige an die USB-Typ-C-PHY angeschlossen ist oder wenn sich eine mit dem Festport verbundene Anzeige im Ruhezustand befindet. Auch wenn die verschiedenen Ausführungsformen unter Bezugnahme auf den D3COLD-Zustand für den Niedrigenergiezustand der Vorrichtung veranschaulicht werden, sind die Ausführungsformen nicht auf diesen Energiezustand beschränkt. Andere Niedrigenergiezustände, die es einem USB-Typ-C-Subsystem erlauben, den Energieverbrauch zu reduzieren, können mit der Hardware und Software verschiedener Ausführungsformen verwendet werden.
-
Hier steht die Y-Achse für die Zeit, und die X-Achse gibt die verschiedenen Komponenten an. Auch wenn die Pfeile, die den Fluss der Energieverwaltung angeben, in einer bestimmten Reihenfolge gezeigt werden, kann diese Reihenfolge geändert werden. Beispielsweise können einige Prozesse parallel durchgeführt werden. Einige der hier beschriebenen Operationen werden von Hardware durchgeführt und einige werden von Software durchgeführt. Die Software kann auf einer Mikrosteuerung 207, einem Prozessor 101 oder irgendeiner geeigneten Logik wie etwa dem Steuerungsknoten 2432 von 4 ausgeführt werden.
-
Es wird erneut Bezug genommen auf 3; wenn ein Benutzer 301 einen Monitor mit den festen DP/HDMI-Ports (z. B. einen der umgenutzten USB-Typ-C-PHYs 116-119) verbindet, dann detektiert der Plattformsteuerungsknoten (Platform Controller Hub, PCH) 302 ein Hotplug-Detektionsereignis und informiert die Anzeige-Engine 104 über das Ereignis. Die Anzeige-Engine 104 generiert dann einen Interrupt für den Vorrichtungstreiber 303, um das neue Verbindungsereignis zu handhaben. Der Anzeigetreiber 303 verarbeitet das Hotplug-Detektionsereignis und aktiviert die Hilfsenergie (über ein auxpwrreq-Signal) für die Typ-C-PHY, mit der der Monitor durch den Benutzer 301 verbunden wurde. Die Anzeige-Engine 104 legt das auxpwrreq-Signalbit (auxpwrreq[i]) an, das der Typ-C-PHY entspricht (z. B. eines von 116-199). Die ein oder mehreren auxpwrreq-Signale werden für die PMA-Hardware 304/107 wie unter Bezugnahme auf 3 beschrieben bereitgestellt. Die ein oder mehreren auxpwrreq-Signale werden für Multiplexer 114/115 und letztendlich für die Typ-C PHY bereitgestellt, die mit dem Monitor verbunden ist. Die Anstiegsflanken-Detektionshardware 202 des PMA 107 detektiert das auxpwrreq- Signalbit (auxpwrreq[i]) und löst den Interrupt zur Verarbeitung durch die PMA-Firmware 305/107 aus. Die Firmware wird, gemäß einigen Ausführungsformen, auf der Mikrosteuerung 207 ausgeführt. Die PMA-Firmware 305/107 verarbeitet den Interrupt durch das Anlegen des auxpwrreq-Signalbits (auxpwrreq[i]), was eine neue Vorrichtungsverbindung zu einer der Typ-C-PHYs 116-119 angibt. Die Firmware 305/107 initiiert das Verlassen mit Wechsel in den D0-Zustand (aktiven Zustand), falls der aktuelle Energiezustand der Niedrigenergiezustand D3COLD ist. Infolgedessen wird ein Wecksignal von der Firmware 305/107 an die Typ-C-PHY (z. B. eine von 116-119), die mit dem Monitor verbunden ist, gesendet. Das Wecksignal veranlasst, dass das auxpwrreq-Signalbit (auxpwrreq[i]) angelegt wird.
-
Folglich gibt der Anzeigetreiber 303 einen Anzeigehilfsbefehl (AUX) aus und fährt mit dem Anzeigeverbindungstraining fort. Die Firmware 305/107 sequenziert das Verlassen von D3COLD, bringt das Subsystem in einen eingeschalteten Zustand, was USB-C-PHY einschließt, und weckt die ein oder mehreren USB-C-Steuerungen auf, um das auxpwrreq zu bedienen. Die Infrastruktur, die es dem USB-C-Subsystem erlaubt, eigenständig in den D3COLD-Zustand zu wechseln und diesen zu verlassen, ermöglicht signifikante Energieeinsparungen, was die Batterielebensdauer und die Prozessorleistung verbessert, während das SoC aktiv ist oder sich im Zustand PkgCO befindet.
-
In einigen Ausführungsformen erfolgt die Interaktion zwischen den verschiedenen USB-Subsystemkomponenten ohne irgendeinen übergeordneten SoC-Energieverwaltungsblock oder eine Softwareinteraktion. Beispielsweise führen lokale Treiber auf der Mikrosteuerung 207 des PMA 107 die Energieverwaltung ohne Kenntnis der Energiesteuerungseinheit (Power Control Unit, PCU) des SoC durch.
-
4 veranschaulicht eine intelligente Vorrichtung oder ein Computersystem oder ein Ein-Chip-System (System-on-Chip, SoC) mit Energieverwaltung für USB-Typ-C-Subsysteme gemäß einigen Ausführungsformen. Es wird darauf hingewiesen, dass jene Elemente von 4, welche die gleichen Bezugszeichen (oder Bezeichnungen) wie die Elemente von anderen Abbildungen aufweisen, in beliebiger ähnlicher Weise wie der beschriebenen betrieben werden oder funktionieren können, aber nicht darauf beschränkt sind.
-
In einigen Ausführungsformen repräsentiert die Vorrichtung 2400 eine entsprechende Rechenvorrichtung, wie etwa einen Tablet-Computer, ein Mobiltelefon oder ein Smartphone, einen Laptop, einen Desktop, eine IOT (Internet-of-Things)-Vorrichtung, einen Server, eine am Körper tragbare Vorrichtung, eine Set-Top-Box, einen drahtlos-fähigen E-Reader oder dergleichen. Es versteht sich, dass bestimmte Komponenten allgemein gezeigt werden und dass nicht alle Komponenten einer derartigen Vorrichtung in der Vorrichtung 2400 gezeigt werden.
-
In einem Beispiel umfasst die Vorrichtung 2400 ein Ein-Chip-System (System-on-Chip, SoC) 2401. Eine beispielhafte Begrenzung des SoC 2401 wird unter Verwendung gestrichelter Linien in 4 veranschaulicht, mit einigen beispielhaften Komponenten, die als im SoC 2401 eingeschlossen dargestellt werden - allerdings kann das SoC 2401 beliebige geeignete Komponenten der Vorrichtung 2400 beinhalten.
-
In einigen Ausführungsformen beinhaltet die Vorrichtung 2400 einen Prozessor 2404. Der Prozessor 2404 kann eine oder mehrere physische Vorrichtungen aufweisen, wie etwa Mikroprozessoren, Anwendungsprozessoren, Mikrosteuerungen, programmierbare Logikvorrichtungen, Verarbeitungskerne oder andere Verarbeitungsmittel. Die vom Prozessor 2404 durchgeführten Verarbeitungsoperationen umfassen die Ausführung einer Betriebsplattform oder eines Betriebssystems, auf der/dem die Anwendungen und/oder die Vorrichtungsfunktionen ausgeführt werden. Die Verarbeitungsschritte beinhalten Operationen in Bezug auf eine Eingabe/Ausgabe (E/A) unter Beteiligung eines menschlichen Benutzers oder anderer Vorrichtungen, Operationen in Bezug auf die Energieverwaltung, Operationen in Bezug auf die Anbindung der Rechenvorrichtung 2400 an eine andere Vorrichtung und/oder dergleichen. Die Verarbeitungsschritte können auch Schritte in Bezug auf Audio-E/A und/oder Anzeige-E/A umfassen.
-
In einigen Ausführungsformen beinhaltet der Prozessor 2404 mehrere Verarbeitungskerne (auch als Kerne bezeichnet) 2408a, 2408b, 2408c. Auch wenn nur drei Kerne 2408a, 2408b, 2408c in 4 dargestellt sind, kann der Prozessor 2404 eine beliebige andere geeignete Anzahl von Verarbeitungskernen beinhalten, z. B. zehn oder sogar Hunderte von Verarbeitungskernen. Die Prozessorkerne 2408a, 2408b, 2408c können auf einem einzelnen Chip mit integrierter Schaltung (Integrated Circuit, IC) implementiert sein. Darüber hinaus kann der Chip einen oder mehrere gemeinsam genutzte und/oder private Cache-Speicher, Busse oder Zwischenverbindungen, Grafiken und/oder Speichersteuerungen oder andere Komponenten beinhalten.
-
In einigen Ausführungsformen beinhaltet der Prozessor 2404 Cache-Speicher 2406. In einem Beispiel können Cache-Abschnitte 2406 speziell für einzelne Kerne 2408 vorgesehen sein (z. B. ein erster Cache-Abschnitt 2406, der speziell für Kern 2408a vorgesehen ist, ein zweiter Cache-Abschnitt 2406, der speziell für Kern 2408b vorgesehen ist, und so weiter). In einem Beispiel können ein oder mehrere Cache-Abschnitte 2406 von zwei oder mehr Kernen 2408 gemeinsam genutzt werden. Der Cache 2406 kann in unterschiedliche Ebenen unterteilt sein, z. B. Cache der Ebene 1 (L1), Cache der Ebene 2 (L2), Cache der Ebene 3 (L3) etc.
-
In einigen Ausführungsformen kann der Prozessorkern 2404 eine Abrufeinheit beinhalten, um Anweisungen (einschließlich Anweisungen mit bedingten Verzweigungen) zur Ausführung durch den Kern 2404 abzurufen. Die Anweisungen können von beliebigen Datenspeichervorrichtungen wie etwa dem Speicher 2430 abgerufen werden. Der Prozessorkern 2404 kann auch eine Decodiereinheit zum Decodieren der abgerufenen Anweisungen beinhalten. Beispielsweise kann die Decodiereinheit die abgerufene Anweisung in mehrere Mikrooperationen decodieren. Der Prozessorkern 2404 kann eine Planungseinheit beinhalten, um verschiedene Operationen durchzuführen, die mit dem Speichern von decodierten Anweisungen verknüpft sind. Beispielsweise kann die Zeitplanungseinheit Daten aus der Decodiereinheit halten, bis die Anweisungen versandbereit sind, z. B. bis alle Quellwerte einer decodierten Anweisung verfügbar sind. In einer Ausführungsform kann die Zeitplanungseinheit decodierte Anweisungen planen und/oder zur Ausführung an eine Ausführungseinheit ausgeben (oder versenden).
-
Die Ausführungseinheit kann die versendeten Anweisungen ausführen, nachdem sie (z. B. durch die Decodiereinheit) decodiert und (z. B. durch die Zeitplanungseinheit) versendet worden sind. In einer Ausführungsform kann die Ausführungseinheit mehr als eine Ausführungseinheit beinhalten (wie etwa eine Bildgebungs-Recheneinheit, eine Grafik-Recheneinheit, eine Universal-Recheneinheit etc.). Die Ausführungseinheit kann auch verschiedene arithmetische Operationen wie etwa Addition, Subtraktion, Multiplikation und/oder Division durchführen und kann eine oder mehrere arithmetische Logikeinheiten (Arithmetic Logic Units, ALUs) beinhalten. In einer Ausführungsform kann der (nicht gezeigte) Coprozessor verschiedene arithmetische Operationen zusammen mit der Ausführungseinheit durchführen.
-
Ferner kann die Ausführungseinheit Anweisungen in anderer Reihenfolge (out-of-order) ausführen. Daher kann der Prozessorkern 2404 in einer Ausführungsform ein Out-of-Order-Prozessorkern sein. Der Prozessorkern 2404 kann auch eine Rückordnungseinheit beinhalten. Die Rückordnungseinheit kann ausgeführte Anweisungen rückordnen, nachdem sie übergeben worden sind. In einer Ausführungsform kann die Rückordnung der ausgeführten Anweisungen dazu führen, dass der Prozessorzustand durch die Ausführung der Anweisungen, physischen Register, die von den Anweisungen verwendet werden, deren Zuteilung gerade aufgehoben wird etc. festgelegt ist. Der Prozessorkern 2404 kann auch eine Buseinheit beinhalten, um eine Kommunikation zwischen Komponenten des Prozessorkerns 2404 und anderen Komponenten über einen oder mehrere Busse zu ermöglichen. Der Prozessorkern 2404 kann auch ein oder mehrere Register beinhalten, um Daten zu speichern, auf die von verschiedenen Komponenten des Kerns 2404 zugegriffen wird (wie etwa Werte im Zusammenhang mit zugewiesenen Anwendungsprioritäten und/oder der Verknüpfung von Subsystemzuständen (Modi)).
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 Anbindungsschaltungen 2431. Beispielsweise beinhalten Anbindungsschaltungen 2431 Hardwarevorrichtungen (z. B. drahtlose und/oder drahtgebundene Steckverbinder und Kommunikationshardware) und/oder Softwarekomponenten (z.B. Treiber, Protokollstapel), z. B. um es der Datenverarbeitungsvorrichtung 2400 zu ermöglichen, mit externen Vorrichtungen zu kommunizieren. Die Vorrichtung 2400 kann getrennt von den externen Vorrichtungen, beispielsweise anderen Rechenvorrichtungen, drahtlosen Zugangspunkten oder Basisstationen etc. vorliegen.
-
In einem Beispiel können die Anbindungsschaltungen 2431 mehrere unterschiedliche Arten von Anbindungen beinhalten. Allgemein ausgedrückt können die Anbindungsschaltungen 2431 zellulare Anbindungsschaltungen, drahtlose Anbindungsschaltungen etc. beinhalten. Zellulare Anbindungsschaltungen von Anbindungsschaltungen 2431 bezieht sich allgemein auf eine zellulare Netzanbindung, die von drahtlosen Trägern bereitgestellt wird, wie etwa über GSM (Globales System für Mobilkommunikation) oder Variationen oder Derivate, CDMA (Code Division Multiple Access) oder Variationen oder Derivate, TDM (Time Division Multiplexing) oder Variationen oder Derivate, ein 3GPP (3rd Generation Partnership Project) UMTS (Universal Mobile Telecommunications Systems)-System oder Variationen oder Derivate, ein 3GPP LTE (Long-Term Evolution)-System oder Variationen oder Derivate, ein 3GPP LTE-Advanced (LTE-A)-System oder Variationen oder Derivate, ein drahtloses 5G (Fifth Generation)-System oder Variationen oder Derivate, ein 5G-Mobilnetz-System oder Variationen oder Derivate, ein 5G NR (New Radio)-System oder Variationen oder Derivate oder andere zellulare Dienststandards. Drahtlose Anbindungsschaltungen (oder eine drahtlose Schnittstelle) der Anbindungsschaltungen 2431 beziehen sich auf eine drahtlose Anbindung, die nicht zellular ist, und kann persönliche Netze (PAN, wie etwa Bluetooth, NFC etc.), lokale Netze (wie etwa WiFi) und/oder Weitverkehrsnetze (wie etwa WiMax) und/oder eine andere drahtlose Kommunikation beinhalten. In einem Beispiel können die Anbindungsschaltungen 2431 eine Netzschnittstelle beinhalten, wie etwa eine drahtgebundene oder drahtlose Schnittstelle, so dass z. B. die Ausführungsform eines Systems in eine drahtlose Vorrichtung, beispielsweise ein Mobiltelefon oder einen persönlichen digitalen Assistenten, integriert sein kann.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 einen Steuerungsknoten 2432, der Hardwarevorrichtungen und/oder Softwarekomponenten in Bezug auf die Interaktion mit einer oder mehreren E/A-Vorrichtungen repräsentiert. Beispielsweise kann der Prozessor 2404, über eine Steuerungsknoten 2432, mit einem oder mehreren von einer Anzeige 2422, einem oder mehreren Peripherievorrichtungen 2424, Datenspeichervorrichtungen 2428, einer oder mehreren externen Vorrichtungen 2429 etc. kommunizieren. Bei dem Steuerungsknoten 2432 kann es sich um einen Chipsatz, einen Plattformsteuerungsknoten (Platform Control Hub, PCH) und/oder dergleichen handeln.
-
Beispielsweise veranschaulicht der Steuerungsknoten 2432 einen oder mehrere Verbindungspunkte für zusätzliche Vorrichtungen, die mit der Vorrichtung 2400 verbunden sind, durch die ein Benutzer beispielsweise mit dem System interagieren kann. Beispielsweise beinhalten Vorrichtungen (z. B. die Vorrichtungen 2429), die an die Vorrichtung 2400 angeschlossen werden können, Mikrofonvorrichtungen, Lautsprecher- oder Stereosysteme, Audiovorrichtungen, Videosysteme oder andere Anzeigevorrichtungen, Tastatur- oder Tastenfeldvorrichtungen oder andere E/A-Vorrichtungen zur Verwendung mit spezifischen Anwendungen wie etwa Kartenlesern oder anderen Vorrichtungen.
-
Wie vorstehend erwähnt, kann der Steuerungsknoten 2432 mit Audiovorrichtungen, einer Anzeige 2422 etc. interagieren. Beispielsweise kann die Eingabe über ein Mikrofon oder eine andere Audiovorrichtung Eingaben oder Befehle für eine oder mehrere Anwendungen oder Funktionen der Vorrichtung 2400 bereitstellen. Des Weiteren kann eine Audioausgabe anstelle einer Anzeigeausgabe oder zusätzlich zu dieser erfolgen. In einem anderen Beispiel fungiert die Anzeige, falls die Anzeige 2422 einen Berührungsschirm beinhaltet, auch als Eingabevorrichtung, die zumindest teilweise über den Steuerungsknoten 2422 verwaltet werden kann. Es kann auch zusätzliche Tasten oder Schalter an der Rechenvorrichtung 2400 geben, um E/A-Funktionen bereitzustellen, die von dem Steuerungsknoten 2432 verwaltet werden. In einer Ausführungsform verwaltet der Steuerungsknoten Vorrichtungen wie Beschleunigungsmesser, Kameras, Lichtsensoren oder andere Umweltsensoren oder andere Hardware, die in der Vorrichtung 2500 enthalten sein kann. Die Eingabe kann als Teil einer direkten Interaktion des Benutzers erfolgen sowie in Form einer Eingabe über die Umwelt an das System zum Beeinflussen seines Betriebs (wie etwa Filtern von Rauschen bzw. Geräuschen, Anpassen von Anzeigen nach Detektion der Helligkeit, Anwenden eines Blitzlichts für eine Kamera oder andere Merkmale).
-
In einigen Ausführungsformen kann der Steuerungsknoten 2432 unter Verwendung eines geeigneten Kommunikationsprotokolls, z. B. PCIe (Peripheral Component Interconnect Express), USB (Universal Serial Bus), Thunderbolt, HDMI (High Definition Multimedia Interface), Firewire etc., mit verschiedenen Vorrichtungen gekoppelt werden.
-
In einigen Ausführungsformen stellt der Steuerungsknoten 2432 eine hardwarebasierte Weckdetektion und SoC-Firmware/Softwareunterstützung, wie unter Bezugnahme auf die 1-3 erörtert, für die Abwicklung von Hotplug-Ereignissen für festen DP (Display Port) und HDMI (High Definition Multimedia Interface)-Ports bereit, die es einem USB (Universal Serial Bus) Typ-C-Subsystem erlauben, in einen ausgeschalteten Zustand (z. B. den D3COLD-Zustand) zu wechseln, während die Festanzeige nicht streamt. Wird ein von der Anzeigesoftware initiiertes Wecksignal für das Festanzeige-Streaming in Reaktion auf eine Hotplug-Detektion empfangen, löst die USB-Typ-C-Firmware des SoC das Verlassen des Niedrigenergiezustand-Flusses aus, um das USB-Typ-C-Subsystem zum Handhaben des Anzeigeverkehrs hochzufahren. Die USB-Typ-C-Firmware des SoC hat die Fähigkeit, eigenständig wieder in den Niedrigenergiezustand (z. B. Zustand D3COLD) zu wechseln, wenn die ein oder mehreren Festanzeigen gerade nicht streamen.
-
In einigen Ausführungsformen repräsentiert die Anzeige 2422 Hardwarekomponenten (z. B. Anzeigevorrichtungen) und Softwarekomponenten (z. B. Treiber), die eine visuelle und/oder taktile Anzeige bereitstellen, über die ein Benutzer mit der Vorrichtung 2400 interagieren kann. Die Anzeige 2422 kann eine Anzeigeschnittstelle, einen Anzeigeschirm und/oder eine Hardwarevorrichtung beinhalten, die verwenden werden, um eine Anzeige für den Benutzer bereitzustellen. In einigen Ausführungsformen beinhaltet die Anzeige 2422 eine Berührungsschirm- (oder eine Berührungsfeld-) Vorrichtung, die für einen Benutzer sowohl Eingaben als auch Ausgaben bereitstellt. In einem Beispiel kann die Anzeige 2422 direkt mit dem Prozessor 2404 kommunizieren. Bei der Anzeige 2422 kann es sich um eines oder mehrere von einer internen Anzeigevorrichtung, wie beispielsweise in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung, oder einer externen Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z. B. DisplayPort etc.) angeschlossen ist, handeln. In einer Ausführungsform kann es sich bei der Anzeige 2422 um eine kopfmontierte Anzeige (Head-mounted Display, HMD) wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung in VR (Virtual Reality)-Anwendungen oder AR (Augmented Reality)-Anwendungen handeln.
-
In einigen Ausführungsformen, und auch wenn dies in der Figur nicht veranschaulicht ist, kann, zusätzlich zu (oder anstelle von) dem Prozessor 2404, eine Vorrichtung 2400 eine Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) beinhalten, umfassend einen oder mehrere Grafikverarbeitungskerne, die einen oder mehrere Aspekte des Anzeigens von Inhalten auf der Anzeige 2422 steuern können.
-
Der Steuerungsknoten 2432 (oder der Plattformsteuerungsknoten) kann Hardwareschnittstellen und -verbinder beinhalten, ebenso wie Softwarekomponenten (z. B. Treiber, Protokollstapel), um Peripherieverbindungen, z. B. zu Peripherievorrichtungen 2424, herzustellen.
-
Es versteht sich, dass die Vorrichtung 2400 sowohl eine Peripherievorrichtung für andere Vorrichtungen sein könnte, als auch Peripherievorrichtungen aufweisen könnte, die mit ihr verbunden sind. Die Vorrichtung 2400 kann einen „Docking“-Anschluss zum Verbinden mit anderen Rechenvorrichtungen zu Zwecken wie etwa dem Verwalten (z. B. zum Herunterladen und/oder Hochladen, Ändern, Synchronisieren) von Inhalten auf die Vorrichtung 2400 aufweisen. Zusätzlich kann ein Docking-Anschluss das Verbinden einer Rechenvorrichtung 2400 mit bestimmten Peripherievorrichtungen gestatten, die der Rechenvorrichtung 2400 das Steuern der Ausgabe von Inhalten, beispielsweise an audiovisuelle oder andere Systeme gestatten.
-
Zusätzlich zu einem proprietären „Docking“-Anschluss oder anderer herstellereigener Verbindungshardware kann die Vorrichtung 2400 Peripherieverbindungen über allgemeine oder auf Standards basierende Anschlüsse herstellen. Häufige Arten können einen USB-Anschluss (Universal Serial Bus) (der eine beliebige aus einer Anzahl von verschiedenen Hardware-Schnittstellen aufweisen kann), einen Anzeige-Port einschließlich MiniDisplayPort (MDP), einen HDMI-Anschluss (High Definition Multimedia Interface), einen Firewire-Anschluss oder andere Arten umfassen.
-
In einigen Ausführungsformen können die Anbindungsschaltungen 2431 mit dem Steuerungsknoten 2432 gekoppelt sein, z. B. zusätzlich zu oder anstelle von dem direkten Gekoppeltsein mit den Prozessor 2404. In einigen Ausführungsformen kann die Anzeige 2422 mit dem Steuerungsknoten 2432 gekoppelt sein, z. B. zusätzlich zu oder anstelle von dem direkten Gekoppeltsein mit den Prozessor 2404.
-
In einigen Ausführungsformen kann die Vorrichtung 2400 Speicher 2430 umfassen, der mit dem Prozessor 2404 über eine Speicherschnittstelle 2434 gekoppelt ist. Der Speicher 2430 beinhaltet Speichervorrichtungen zum Speichern von Informationen in der Vorrichtung 2400.
-
In einigen Ausführungsformen beinhaltet der Speicher 2430 Einrichtungen, um eine stabile Taktung, wie unter Bezugnahme auf verschiedene Ausführungsformen beschrieben, beizubehalten. Der Speicher kann nichtflüchtige Speichervorrichtungen (der Zustand ändert sich nicht, wenn die Energiezufuhr zur Speichervorrichtung unterbrochen wird) und/oder flüchtige Speichervorrichtungen (der Zustand ist unbestimmt, wenn die Energiezufuhr zur Speichervorrichtung unterbrochen wird) aufweisen. Bei dem Speicher 2430 kann es sich um eine dynamische Direktzugriff-Speichervorrichtung (Dynamic Random Access Memory, DRAM), eine statische Direktzugriff-Speichervorrichtung (Static Random Access Memory, SRAM), eine Flash-Speichervorrichtung, eine Phasenwechsel-Speichervorrichtung oder irgendeine andere Speichervorrichtung handeln, die über eine geeignete Leistungsfähigkeit verfügt, um als Prozessspeicher zu dienen. In einer Ausführungsform kann der Speicher 2430 als Systemspeicher für die Vorrichtung 2400 betrieben werden, um Daten und Anweisungen zu speichern, die verwendet werden, wenn die ein oder mehreren Prozessoren 2404 eine Anwendung oder einen Prozess ausführen.
Der Speicher 2430 kann (sowohl langfristig als auch temporär) Anwendungsdaten, Benutzerdaten, Musik, Fotos, Dokumente oder andere Daten sowie Systemdaten speichern, die im Zusammenhang mit der Ausführung der Anwendungen und Funktionen der Vorrichtung 2400 stehen.
-
Elemente verschiedener Ausführungsformen und Beispiele werden auch als maschinenlesbares Medium (z. B. Speicher 2430) zum Speichern der von einem Computer ausführbaren Anweisungen (z. B. Anweisungen zum Implementieren beliebiger anderer hier beschriebener Prozesse) bereitgestellt. Das maschinenlesbare Medium (z.B. der Speicher 2430) kann, ohne hierauf beschränkt zu sein, Flash-Speicher, optische Datenträger, CD-ROMs, DVD-ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Phasenwechselspeicher (Phase Change Memory, PCM) oder andere Arten von maschinenlesbaren Medien beinhalten, die zum Speichern von elektronischen oder von einem Computer ausführbaren Anweisungen geeignet sind. Beispielsweise können Ausführungsformen der Offenbarung als Computerprogramm (z. B. BIOS) heruntergeladen werden, das von einem entfernten Computer (z. B. einem Server) auf einen anfordernden Computer (z. B. einen Client) in Form von Datensignalen über eine Kommunikationsverbindung (z. B. ein Modem oder eine Netzwerkverbindung) übertragen werden kann.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 Temperaturmessschaltungen 2440, z. B. zum Messen der Temperatur verschiedener Komponenten der Vorrichtung 2400. In einem Beispiel können die Temperaturmessungsschaltungen 2440 eingebettet sein in oder gekoppelt sein mit oder angeschlossen sein an verschiedene(n) Komponenten, deren Temperatur gemessen und überwacht werden soll. Beispielsweise können die Temperaturmessschaltungen 2440 die Temperatur von (oder in) einem oder mehreren hiervon messen: Kerne 2408a, 2408b, 2408c, Spannungsregler 2414, Speicher 2430, Hauptplatine eines SoC 2401 und/oder eine beliebige geeignete Komponente der Vorrichtung 2400.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 Energiemessungsschaltungen 2442, z. B. zum Messen der Energie, die von einer oder mehreren Komponenten der Vorrichtung 2400 verbraucht wird. In einem Beispiel können die Energiemessschaltungen 2442, zusätzlich zu oder anstelle von dem Messen der Energie bzw. des Energiezustands, Spannung und/oder Strom messen. In einem Beispiel können die Energieschaltungen 2442 eingebettet sein in oder gekoppelt sein mit oder angeschlossen sein an verschiedene(n) Komponenten, deren Energie(zustand), Spannung und/oder Strom gemessen und überwacht werden sollen. Beispielsweise können die Energiemessschaltungen 2442 die Energie, den Strom und/oder die Spannung messen, die von einem oder mehreren Spannungsreglern 2414 bereitgestellt werden, an das SoC 2401 gelieferte Energie, an die Vorrichtung 2400 gelieferte Energie, Energie, die vom Prozessor 2404 (oder irgendeiner anderen Komponente) der Vorrichtung 2400 verbraucht wird, etc.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 einen oder mehrere Spannungsregler-Schaltungen, die allgemein als Spannungsregler (Voltage Regulator, VR) 2414 bezeichnet werden. Der VR 2414 generiert Signale mit geeigneten Spannungspegeln, die für den Betrieb beliebiger geeigneter Komponenten der Vorrichtung 2400 bereitgestellt werden können. Nur als Beispiel wird der VR 2414 als VR veranschaulicht, der Signale an den Prozessor 2404 der Vorrichtung 2400 liefert. In einigen Ausführungsformen empfängt der VR 2414 ein oder mehrere Spannungsidentifikationssignale (VID-Signale) und generiert das Spannungssignal mit einem geeigneten Pegel, basierend auf den VID-Signalen. Verschiedene Arten von VRs können für den VR 2414 genutzt werden. Beispielsweise kann der VR 2414 einen „Buck“-VR, einen „Boost“-VR, eine Kombination von Buck-VRs und Boost-VRs, LDO (Low Dropout)-Regler, DC-DC-Schaltregler, COT (Constant-on-Time)-Controller-basierte DC-DC-Regler etc. beinhalten. Ein Buck-VR (Abwärtsspannungsregler) wird im Allgemeinen in Energiebereitstellungsanwendungen verwendet, in denen eine Eingangsspannung in eine Ausgangsspannung umgewandelt werden muss, in einem Verhältnis, das kleiner als eins ist. Ein Boost VR (Aufwärtsspannungsregler) wird im Allgemeinen in Energiebereitstellunganwendungen verwendet, in denen eine Eingangsspannung in eine Ausgangsspannung umgewandelt werden muss, in einem Verhältnis, das größer als eins ist. In einigen Ausführungsformen hat jeder Prozessorkern seinen eigenen VR, der von einer PCU 2410a/b und/oder einer PMIC 2412 gesteuert wird. In einigen Ausführungsformen weist jeder Kern ein Netz von verteilten LDOs auf, um eine effiziente Steuerung zur Energieverwaltung bereitzustellen. Die LDOs können digitale, analoge oder eine Kombination von digitalen und analogen LDOs sein. In einigen Ausführungsformen beinhaltet VR 2414 eine Stromverfolgungseinrichtung, um den Strom durch die Energieversorgungsschiene(n) zu messen.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 eine oder mehrere Taktgeneratorschaltungen, die allgemein als Taktgenerator 2416 bezeichnet werden. Ein Taktgenerator 2416 generiert Taktsignale mit entsprechenden Frequenzniveaus, die an beliebige geeignete Komponenten der Vorrichtung 2400 geliefert werden können. Nur als Beispiel wird der Taktgenerator 2416 als Taktgenerator veranschaulicht, der Taktsignale an den Prozessor 2404 der Vorrichtung 2400 liefert. In einigen Ausführungsformen empfängt ein Taktgenerator 2416 ein oder mehrere Frequenzidentifikations (Frequency Identification, FID)-Signale und generiert die Taktsignale mit einer geeigneten Frequenz, basierend auf den FID-Signalen.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 eine Batterie 2418, die Energie für verschiedene Komponenten der Vorrichtung 2400 liefert. Nur als Beispiel wird die Batterie 2418 als Batterie veranschaulicht, die Energie für den Prozessor 2404 liefert. Auch wenn dies in den Abbildungen nicht veranschaulicht wird, kann die Vorrichtung 2400 eine Ladeschaltung umfassen, z. B. um die Batterie aufzuladen, basierend auf einer Wechselstrom (Alternating Current, AC)-Energieversorgung, die von einem AC-Adapter empfangen wird.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 eine Energiesteuerungseinheit (Power Control Unit, PCU) 2410 (auch als Energieverwaltungseinheit (Power Management Unit, PMU), Energiesteuerung etc. bezeichnet). In einem Beispiel können einige Abschnitte der PCU 2410 durch ein oder mehrere Verarbeitungskerne 2408 implementiert sein, und diese Abschnitte der PCU 2410 sind symbolisch unter Verwendung eines gestrichelten Kästchens dargestellt und als PCU 2410a gekennzeichnet. In einem Beispiel können andere Abschnitte der PCU 2410 außerhalb der Verarbeitungskerne 2408 implementiert sein, und diese Abschnitte der PCU 2410 sind unter Verwendung eines gestrichelten Kästchens symbolisch dargestellt und als PCU 2410b gekennzeichnet. Die PCU 2410 kann verschiedene Energieverwaltungsoperationen für die Vorrichtung 2400 implementieren. Die PCU 2410 kann Hardwareschnittstellen, Hardwareschaltungen, Verbinder, Register etc. sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) beinhalten, um verschiedene Energieverwaltungsoperationen für die Vorrichtung 2400 zu implementieren.
-
In einigen Ausführungsformen umfasst die Vorrichtung 2400 eine integrierte Energieverwaltungsschaltung (Power Management Integrated Circuit, PMIC) 2412, z. B. um verschiedene Energieverwaltungsoperationen für die Vorrichtung 2400 zu implementieren. In einigen Ausführungsformen handelt es sich bei der PMIC 2412 um rekonfigurierbare Energieverwaltungs-ICs (Reconfigurable Power Management ICs, RPMICs) und/oder eine IMVP (Intel® Mobile Voltage Positioning). In einem Beispiel liegt die PMIC in einem IC-Chip getrennt vom Prozessor 2404 vor. Dies kann verschiedene Energieverwaltungsoperationen für die Vorrichtung 2400 implementieren. Die PMIC 2412 kann Hardwareschnittstellen, Hardwareschaltungen, Verbinder, Register etc. sowie Softwarekomponenten (z. B. Treiber, Protokollstapel) beinhalten, um verschiedene Energieverwaltungsoperationen für die Vorrichtung 2400 zu implementieren.
-
In einem Beispiel umfasst die Vorrichtung 2400 eines oder beides von PCU 2410 oder PMIC 2412. In einem Beispiel kann ein beliebiges von PCU 2410 oder PMIC 2412 nicht in der Vorrichtung 2400 vorhanden sein; diese Komponenten werden daher durch gestrichelte Linien dargestellt.
-
Verschiedene Energieverwaltungsoperationen der Vorrichtung 2400 können von der PCU 2410, der PMIC 2412 oder von einer Kombination von PCU 2410 und PMIC 2412 durchgeführt werden. Beispielsweise können die PCU 2410 und/oder die PMIC 2412 einen Energiezustand (z. B. P-Zustand) für verschiedene Komponenten der Vorrichtung 2400 auswählen. Beispielsweise können die PCU 2410 und/oder die PMIC 2412 einen Energiezustand (z. B. gemäß ACPI-Spezifikation (Advanced Configuration and Power Interface)) für verschiedene Komponenten der Vorrichtung 2400 auswählen. Nur als Beispiel können die PCU 2410 und/oder die PMIC 2412 verschiedene Komponenten der Vorrichtung 2400 veranlassen, in einen Schlafzustand, in einen aktiven Zustand, in einen geeigneten C-Zustand (z. B. C0-Zustand oder einen anderen geeigneten C-Zustand gemäß ACPI-Spezifikation) etc. zu wechseln. In einem Beispiel können die PCU 2410 und/oder die PMIC 2412 eine Spannungsausgabe durch den VR 2414 (z. B. SCVR) und/oder eine Frequenz einer Taktsignalausgabe durch den Taktgenerator steuern, z. B. durch Ausgeben des VID-Signals bzw. des FID-Signals. In einem Beispiel können die PCU 2410 und/oder die PMIC 2412 einen Batterieenergieerbrauch, das Laden einer Batterie 2418 und Merkmale im Zusammenhang mit dem Energiesparbetrieb steuern.
-
Der Taktgenerator 2416 kann eine Phasenregelschleife (Phase Locked Loop, PLL), eine Frequenzregelschleife (Frequency Locked Loop, FLL) oder eine beliebige geeignete Taktquelle umfassen. In einigen Ausführungsformen verfügt jeder Kern des Prozessors 2404 über eine eigene Taktquelle. Von daher kann jeder Kern mit einer Frequenz betrieben werden, die unabhängig von der Betriebsfrequenz des anderen Kerns ist. In einigen Ausführungsformen führen die PCU 2410 und/oder die PMIC 2412 eine adaptive oder dynamische Frequenzskalierung oder -anpassung durch. Beispielsweise kann die Taktfrequenz eines Prozessorkerns erhöht werden, falls der Kern nicht mit seinem maximalen Energieverbrauch-Schwellwert oder -Grenzwert betrieben wird. In einigen Ausführungsformen bestimmen die PCU 2410 und/oder die PMIC 2412 die Betriebsbedingung jedes Kerns eines Prozessors und passen opportunistisch die Frequenz und/oder die Energieversorgungsspannung des betreffenden Kerns an, ohne dass die Kerntaktungsquelle (z. B. die PLL des betreffenden Kerns) die Rastung verliert, wenn die PCU 2410 und/oder die PMIC 2412 bestimmen, dass der Kern unter einem Zielleistungsniveau betrieben wird. Falls beispielsweise ein Kern eine Strommenge von einer Energieversorgungsschiene zieht, die geringer ist als ein Gesamtstrom, der für den betreffenden Kern oder Prozessor 2404 zugeteilt ist, dann können die PCU 2410 und/oder die PMIC 2412 die gezogene Leistung für den betreffenden Kern oder Prozessor 2404 temporär erhöhen (z. B. durch Erhöhen der Taktfrequenz und/oder des Spannungspegels der Energieversorgung), so dass der Kern oder der Prozessor 2404 auf einem höheren Leistungsniveau arbeiten können. Von daher können die Spannung und/oder die Frequenz für den Prozessor 2404 temporär erhöht werden, ohne die Produktzuverlässigkeit zu gefährden.
-
In einem Beispiel können die PCU 2410 und/oder die PMIC 2412 Energieverwaltungsoperationen durchführen, z. B. wenigstens teilweise basierend auf dem Empfangen von Messungen von den Energiemessschaltungen 2442, den Temperaturmessschaltungen 2440, dem Ladepegel der Batterie 2418 und/oder einer beliebigen anderen geeigneten Information, die zur Energieverwaltung verwendet werden kann. Dazu ist die PMIC 2412 kommunikativ mit einem oder mehreren Sensoren gekoppelt, um verschiedene Werte/Variationen bei einem oder mehreren Faktoren zu erkennen/detektieren, die einen Effekt auf den Energiezustand/das thermische Verhalten des Systems/der Plattform haben. Beispiele für die ein oder mehreren Faktoren beinhalten elektrischen Strom, Spannungs-Droop, Temperatur, Betriebsfrequenz, Betriebsspannung, Energieverbrauch, Zwischenkern-Kommunikationsaktivität etc. Ein oder mehrere dieser Sensoren können sich in physischer Nähe (und/oder thermische(m, r) Kontakt/Kopplung) mit einer oder mehreren Komponenten oder logischen/IP-Blöcken eines Rechensystems befinden. Zusätzlich können die ein oder mehreren Sensoren in wenigstens einer Ausführungsform direkt mit der PCU 2410 und/oder der PMIC 2412 gekoppelt sein, um es der PCU 2410 und/oder PMIC 2412 zu erlauben, die Prozessorkernenergie wenigstens teilweise basierend auf einem bzw. mehreren Werten zu verwalten, der/die von einem oder mehreren der Sensoren erkannt wird/werden.
-
Ebenfalls veranschaulicht wird ein beispielhafter Softwarestapel der Vorrichtung 2400 (auch wenn nicht alle Elemente des Softwarestapels veranschaulicht werden). Nur als Beispiel können die Prozessoren 2404 Anwendungsprogramme 2450, ein Betriebssystem (Operating System, OS) 2452, ein oder mehrere für die Energieverwaltung (Power Management, PM) spezifische Anwendungsprogramme (generisch z. B. als PM-Anwendungen 2458 bezeichnet) und/oder dergleichen ausführen. PM-Anwendungen 2458 können auch von der PCU 2410 und/oder der PMIC 2412 ausgeführt werden. Das OS 2452 kann auch ein oder mehrere PM-Anwendungen 2456a, 2456b, 2456c beinhalten. Das OS 2452 kann auch verschiedene Treiber 2454a, 2454b, 2454c etc. beinhalten, von denen einige spezifisch für Energieverwaltungszwecke sein können. In einigen Ausführungsformen kann die Vorrichtung 2400 ferner ein Basis-Eingabe/Ausgabe-System (Basic Input/Output System, BIOS) 2420 umfassen. Das BIOS 2420 kann (z. B. über einen oder mehrere Treiber 2454) mit dem OS 2452 kommunizieren, mit den Prozessoren 2404 kommunizieren etc.
-
Beispielsweise können ein oder mehrere der PM-Anwendungen 2458, 2456, Treiber 2454, BIOS 2420 etc. verwendet werden, um energieverwaltungsspezifische Aufgaben zu implementieren, z. B. um die Spannung und/oder Frequenz verschiedener Komponenten der Vorrichtung 2400 zu steuern, um den Aufwachzustand, den Schlafzustand und/oder einen beliebigen anderen geeigneten Energiezustand von verschiedenen Komponenten der Vorrichtung 2400 zu steuern, den Batterieenergieverbrauch, das Laden der Batterie 2418, Merkmale im Zusammenhang mit dem Energiesparbetrieb etc. zu steuern.
-
Wenn in dieser Beschreibung „eine Ausführungsform“, „einige Ausführungsformen“ oder „andere Ausführungsformen“ erwähnt werden, ist damit gemeint, dass ein(e) bestimmte(s) Merkmal, Struktur oder Eigenschaft, das/die im Zusammenhang mit den Ausführungsformen beschrieben wird, wenigstens in einigen Ausführungsformen, aber nicht notwendigerweise in allen Ausführungsformen vorhanden ist. Die verschiedenen Stellen mit der Formulierung „eine Ausführungsform“ oder „einigen Ausführungsformen“ beziehen sich nicht notwendigerweise alle auf dieselben Ausführungsformen. Wenn in dieser Beschreibung angegeben ist, dass eine Komponente, ein Merkmal, eine Struktur oder ein Kennzeichen vorhanden sein „kann“, „könnte“ oder „möglicherweise“ vorhanden ist, muss diese Komponente, dieses Merkmal, diese Struktur oder dieses Kennzeichen nicht unbedingt vorhanden sein. Wenn sich die Beschreibung oder ein Anspruch auf „ein“ Element bezieht, bedeutet das nicht, dass nur genau eines der Elemente vorhanden ist. Wenn sich die Beschreibung oder ein Anspruch auf „ein zusätzliches“ Element bezieht, schließt das nicht aus, dass mehr als ein zusätzliches Element vorhanden ist.
-
Ferner können die bestimmten Merkmale, Strukturen, Funktionen oder Eigenschaften auf jede geeignete Weise in einer oder mehreren Ausführungsformen miteinander kombiniert werden. Zum Beispiel kann eine erste Ausführungsform immer dann mit einer zweiten Ausführungsform kombiniert werden, wenn sich die bestimmten Merkmale, Strukturen, Funktionen oder Eigenschaften der beiden Ausführungsformen nicht gegenseitig ausschließen.
-
Auch wenn die Offenbarung in Verbindung mit spezifischen Ausführungsformen davon beschrieben worden ist, werden für Durchschnittsfachleute auf diesem Gebiet der Technik viele Alternativen, Modifikationen und Variationen solcher Ausführungsformen vor dem Hintergrund der vorstehenden Beschreibung ersichtlich sein. Die Ausführungsformen der Offenbarung sollen alle derartigen Alternativen, Modifikationen und Variationen einschließen, damit sie in den breiten Schutzumfang der beigefügten Ansprüche fallen.
-
Außerdem können ausreichend bekannte Energieversorungs-/Erdungsverbindungen mit integrierten Schaltungschips (IC-Chips) und anderen Komponenten, der Einfachheit der Darstellung und Erörterung halber sowie um die Verständlichkeit bestimmter Aspekte der Offenbarung nicht zu beeinträchtigen, in den vorgelegten Figuren gezeigt oder nicht gezeigt werden. Des Weiteren können Anordnungen in Form eines Blockschaltbilds dargestellt sein, um die Erfindung möglichst klar darzustellen, und auch im Hinblick darauf, dass Besonderheiten in Bezug auf die Implementierung derartiger Blockschaltbild-Anordnungen in hohem Maße davon abhängen, auf welcher Plattform die vorliegende Erfindung implementiert werden soll (d. h. derartige Besonderheiten sollten sich einem Fachmann von selbst erschließen). An Stellen, an denen besondere Einzelheiten (z. B. Schaltungen) zum Zwecke der Beschreibung beispielhafter Ausführungsformen der Erfindung angegeben sind, sollte es für Fachleute offensichtlich sein, dass die Erfindung ohne diese besonderen Einzelheiten oder mit einer Abwandlung derselben verwirklicht werden kann. Somit ist die Beschreibung als veranschaulichend und nicht als einschränkend zu verstehen.
-
Verschiedene hier beschriebene Ausführungsformen werden als Beispiele veranschaulicht. Die Merkmale dieser Beispiele können beliebig miteinander kombiniert werden. Diese Beispiele beinhalten:
-
Beispiel 1: Eine Einrichtung, umfassend: eine Anzeige-Engine zum Generieren eines Interrupts für einen Vorrichtungstreiber in Reaktion darauf, dass eine Anzeigevorrichtung mit einem Port gekoppelt wird, wobei der Vorrichtungstreiber eine Energieanforderung für die Anzeigevorrichtung ausgeben soll; und einen Energieverwaltungsagenten zum Detektieren der Energieanforderung und zum Verlassen eines Niedrigenergiezustands, um in einen aktiven Zustand zu wechseln.
-
Beispiel 2: Die Einrichtung aus Beispiel 1, wobei der Port ein USB-Typ-C-Port ist.
-
Beispiel 3: Die Einrichtung aus Beispiel 1, umfassend einen Plattformsteuerungsknoten zum Detektieren eines Hotplug-Ereignisses in Reaktion darauf, dass die Anzeigevorrichtung mit dem Port gekoppelt wird.
-
Beispiel 4: Die Einrichtung aus Beispiel 3, wobei der Plattformsteuerungsknoten das Hotplug-Ereignis an die Anzeige-Engine weiterleiten soll, wobei die Anzeige-Engine den Interrupt in Reaktion auf den Empfang des Hotplug-Ereignisses von dem Plattformsteuerungsknoten generieren soll.
-
Beispiel 5: Die Einrichtung aus Beispiel 1, wobei der Energieverwaltungsagent eine Anstiegsflanken-Detektionslogik zum Detektieren des Anliegens der Energieanforderung umfasst.
-
Beispiel 6: Die Einrichtung aus Beispiel 5, wobei der Energieverwaltungsagent Register zum Maskieren von Ausgaben der Flankendetektionslogik umfasst.
-
Beispiel 7: Die Einrichtung aus Beispiel 5, wobei der Energieverwaltungsagent eine Mikrosteuerung zum Abwickeln einer Ausgabe der Flankendetektionslogik beinhaltet, um ein Wecksignal zu generieren.
-
Beispiel 8: Die Einrichtung aus Beispiel 7, wobei die Mikrosteuerung eine Software ausführt, um das Wecksignal zu generieren.
-
Beispiel 9: Die Einrichtung aus Beispiel 1, wobei der Anzeigetreiber eine Anzeigeverbindung der Anzeigevorrichtung in Reaktion auf das Verlassen des Niedrigenergiezustands trainiert.
-
Beispiel 10: Die Einrichtung aus Beispiel 1, wobei der Niedrigenergiezustand ein D3COLD-Zustand ist und wobei der aktive Zustand einer der Zustände S0 oder D0 ist.
-
Beispiel 11: Ein System, umfassend: einen Prozessor; einen Speicher, der mit einem Prozessor gekoppelt ist; einen Fabric, der mit dem Prozessor und dem Speicher gekoppelt ist; eine Anzeige-Engine zum Generieren eines Interrupts für einen Vorrichtungstreiber in Reaktion darauf, dass eine Anzeigevorrichtung mit einem Port gekoppelt wird, wobei der Vorrichtungstreiber eine Energieanforderung für die Anzeigevorrichtung ausgeben soll; und ein USB-Typ-C-Subsystem, das mit dem Fabric gekoppelt ist, wobei das USB-Typ-C-Subsystem einen Energieverwaltungsagenten zum Detektieren der Energieanforderung und Verlassen eines Niedrigenergiezustands umfasst, um in einen aktiven Zustand zu wechseln.
-
Beispiel 12: Das System aus Beispiel 11, wobei der Port ein USB-Typ-C-Port ist.
-
Beispiel 13: Das System aus Beispiel 11, umfassend einen Plattformsteuerungsknoten zum Detektieren eines Hotplug-Ereignisses in Reaktion darauf, dass die Anzeigevorrichtung mit dem Port gekoppelt wird.
-
Beispiel 14: Das System aus Beispiel 13, wobei der Plattformsteuerungsknoten das Hotplug-Ereignis an die Anzeige-Engine weiterleiten soll, wobei die Anzeige-Engine den Interrupt in Reaktion auf den Empfang des Hotplug-Ereignisses von dem Plattformsteuerungsknoten generieren soll.
-
Beispiel 15: Das System aus Beispiel 11, wobei der Energieverwaltungsagent Folgendes umfasst: eine Anstiegsflanken-Detektionslogik zum Detektieren des Anliegens der Energieanforderung; Register zum Maskieren von Ausgaben der Flankendetektionslogik; und eine Mikrosteuerung zur Abwicklung der Ausgabe der Flankendetektionslogik, um ein Wecksignal zu generieren, wobei die Mikrosteuerung eine Software ausführt, um das Wecksignal zu generieren.
-
Beispiel 16: Das System aus Beispiel 11, wobei der Anzeigetreiber eine Anzeigeverbindung der Anzeigevorrichtung in Reaktion auf das Verlassen des Niedrigenergiezustands trainiert.
-
Beispiel 17: Das System aus Beispiel 11, wobei der Niedrigenergiezustand ein D3COLD-Zustand ist und wobei der aktive Zustand einer der Zustände S0 oder D0 ist.
-
Beispiel 18: Ein maschinenlesbares Datenspeichermedium mit darauf gespeicherten maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, eine Mikrosteuerung veranlassen, ein Verfahren durchzuführen, welches Folgendes umfasst: Empfangen einer Flankendetektion eines Energieanforderungssignals, wobei das Energieanforderungssignal von einem Vorrichtungstreiber generiert wird, in Reaktion darauf, dass eine Anzeigevorrichtung mit einem Port gekoppelt wird; und Verarbeiten des Energieanforderungssignals, indem ein Niedrigenergiezustand verlassen und zu einem aktiven Zustand gewechselt wird.
-
Beispiel 19: Das maschinenlesbare Datenspeichermedium aus Beispiel 18 mit darauf gespeicherten maschinenlesbaren Anweisungen, die, wenn sie ausgeführt werden, die Mikrosteuerung veranlassen, das Verfahren durchzuführen, welches Folgendes umfasst: Generieren eines Wecksignals zum Aufwecken aus dem Niedrigenergiezustand, wobei das Wecksignal ein USB-Typ-C-Subsystem aufweckt.
-
Beispiel 20: Das maschinenlesbare Datenspeichermedium aus Beispiel 18, wobei der Port ein USB-Typ-C-Port ist, wobei der Niedrigenergiezustand ein D3COLD-Zustand ist und wobei der aktive Zustand einer der Zustände S0 oder D0 ist.
-
Es wird eine Zusammenfassung beigefügt, die es dem Leser gestattet, sich über die Art und den Hauptinhalt der technischen Offenbarung zu informieren. Die Zusammenfassung wird in dem Bewusstsein vorgelegt, dass sie nicht verwendet werden wird, um den Schutzumfang oder die Bedeutung der Ansprüche einzuschränken. Die folgenden Ansprüche werden in die vorliegende ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich als gesonderte Ausführungsform steht.