-
Technisches Gebiet
-
Ausführungsformen beziehen sich auf Leistungsverwaltung integrierter Schaltungen.
-
Allgemeiner Stand der Technik
-
Fortschritte in Halbleiterbearbeitung und Logikdesign haben eine Erhöhung in der Menge an Logik ermöglicht, die auf integrierten Schaltungsvorrichtungen vorhanden sein kann. Infolgedessen haben sich Computersystemkonfigurationen von einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen einzelner integrierter Schaltungen entwickelt. Zusätzlich, da die Dichte integrierter Schaltungen zugenommen hat, sind auch die Leistungsanforderungen für Rechensysteme (von eingebetteten Systemen bis zu Servern) eskaliert. Überdies haben Software-Ineffizienzen und ihre Anforderungen an Hardware auch eine Erhöhung im Energieverbrauch von Vorrichtungen verursacht. Tatsächlich zeigen manche Studien, dass Rechenvorrichtungen einen beträchtlichen Prozentsatz der gesamten Elektrizitätsversorgung für ein Land wie die Vereinigten Staaten von Amerika verbrauchen. Infolgedessen besteht ein wesentlicher Bedarf an Energieeffizienz und -erhaltung in Verbindung mit integrierten Schaltungen. Dieser Bedarf wird steigen, wenn Server, Desktop Computer, Notebooks, Ultrabooks™, Tablets, Mobiltelefone, Prozessoren, eingebettete Systeme, Komponenten des Internets der Dinge usw. vorherrschender werden (durch Einschluss in den typischen Computer, Autos und Fernsehgeräte bis zu Biotechnologie).
-
Figurenliste
-
- 1 ist ein Blockdiagramm eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
- 2 ist ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
- 3 ist ein Blockdiagramm eines Mehrfachdomänenprozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
- 4 ist ein Blockdiagramm eines Prozessors, der mehrere Kerne aufweist, gemäß einer Ausführungsform der vorliegenden Erfindung.
- 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
- 6 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform.
- 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform.
- 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform.
- 9 ist ein Blockdiagramm eines Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
- 10 ist ein Blockdiagramm eines repräsentativen SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
- 11 ist ein Blockdiagramm eines anderen beispielhaften SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
- 12 ist ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
- 13 ist ein Blockdiagramm eines anderen beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
- 14 ist ein Blockdiagramm eines repräsentativen Rechensystems.
- 15 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
- 16 ist ein Blockdiagramm, das ein IP-Kernentwicklungssystem zeigt, das zur Herstellung einer integrierten Schaltung verwendet wird, um Betriebe gemäß einer Ausführungsform durchzuführen.
- 17A und 17B sind Diagramme, die ein Zwischenspiel zwischen Firmware und Hardware in einem Prozess zur Abwicklung von Latenzmeldung in einer Ausführungsform der vorliegenden Erfindung veranschaulichen.
- 18A-1 und 18A-2 sind Zeitablaufdiagramme, die verschiedene Verfahren zur Abwicklung von Latenzmeldung veranschaulichen.
- 19 ist eine Ausführungsform einer Plattformleistungsverwaltungssteuerung (PMC) in einer Ausführungsform.
-
Ausführliche Beschreibung
-
Latenztoleranzmeldung (LTR, Latency Tolerance Reporting) hilft, auf den oben erwähnten Bedarf an Energieeffizienz und -erhaltung einzugehen, der mit integrierten Schaltungen verknüpft ist. Wie ausführlicher zum Beispiel in PCI Express® Base Specification Revision 2.1 (4. März 2009) behandelt, ermöglicht der LTR-Mechanismus Endpunkten, ihre Dienstlatenzanforderungen einer anderen Entität zu melden (z.B. einer Leistungsverwaltungssteuerung (PMC, Power Management Controller)), sodass Leistungsverwaltungsstrategien für zentrale Plattformressourcen (z.B. Speicher, Taktquelle wie ein Phasenregelkreis (PLL, Phase Lock Loop), Spannungsschiene) implementiert werden können, ohne Dienstanforderungen für die Endpunkte zu beachten. (LTR-Übertragung ist nicht auf PCI Express® oder PCI Express® Endpunkte begrenzt. PCI Express® wird nur als ein Beispiel verwendet. LTR-Technologie kann allgemeiner in verschiedenen Intellectual Property Blöcken oder Kernen innerhalb eines SoC, wie einer PMC verwendet werden).
-
Ein Endpunkt kann zum Beispiel einen Intellectual Property (IP) Kern verwenden. Ein IP-Kern ist ein Block von Logik oder Daten, der zum Beispiel in der Herstellung eines feldprogrammierbaren Gate-Arrays (FPGA) oder anwendungsspezifischer integrierter Schaltung (ASIC, Application-specific Integrated Circuit) für ein Produkt verwendet wird. Als wesentliche Elemente einer Designwiederverwendung sind IP-Kerne Teil des wachsenden Trends in der Industrie der Entwurfsautomatisierung elektronischer Systeme (EDA, Electronic Design Automation) hin zu einer wiederholten Verwendung zuvor entworfener Komponenten (obwohl, wie hier verwendet, keine Wiederverwendung eines Designelements vorliegen muss). Ein IP-Kern kann vollständig tragbar sein, sodass er leicht in eine Verkäufertechnologie oder Designmethodologie eingesetzt werden kann. Universelle asynchrone Empfänger/Sender (UARTs, Universal Asynchronous Receiver/Transmitter), zentrale Verarbeitungseinheiten (CPUs, Central Processing Units), Ethernet-Steuerungen, PLLs und PCI-Schnittstellen sind alles Beispiele für IP-Kerne. IP-Kerne können zum Beispiel harte Kerne, feste Kerne oder weiche Kerne aufweisen. Harte Kerne sind physische Manifestationen des IP-Designs. Wie die harten Kerne tragen auch feste (manchmal als halbhart bezeichnet) Kerne auch Platzierungsdaten, sind aber für verschiedene Anwendungen konfigurierbar. Weiche Kerne bestehen zum Beispiel als eine Netzliste (eine Liste von Logik-Gates und zugehöriger Zwischenverbindungen, die eine integrierte Schaltung bilden), Hardware-Beschreibungssprach- (HDL, Hardware Description Language) Code und dergleichen.
-
Eine LTR-Nachricht kann zum Beispiel eine 16 Bit Nachricht mit Feldern aufweisen, um anzugeben, auf welche Art von Anfragen (z.B. eine Speicherauslesung) sich die LTR bezieht, wie auch die Toleranzgröße (z.B. 1 s bis Millionen von ns), die die Vorrichtung (z.B. IP-Kern) für eine Zielressource (z.B. PLL) hat. (Eine 16 Bit Nachricht ist nur ein Beispiel für veranschaulichende Zwecke und andere Ausführungsformen können 32 Bit LTR-Nachrichten mit unterschiedlichen Anzahlen von Feldern und dergleichen aufweisen). Die Größe kann zum Beispiel 0 ns sein, wenn die Vorrichtung keine Latenz für die Ressource tolerieren kann. Vorrichtungen mit Latenztoleranz können mehrere LTRs an einen Host oder Leistungsverwalter (z.B. PMC) senden, wenn sich Bedingungen für die Vorrichtung ändern. Zum Beispiel kann eine Anforderung nach anhaltender Datenübertragung Latenztoleranz für die Vorrichtung senken, während projizierte Leerlaufperioden Latenztoleranz für die Vorrichtung erhöhen können. Als ein anderes Beispiel kann eine Änderung an einer beliebigen Komponente oder einem Bestandteil einer konglomerierten LTR eine neue LTR erfordern. Manche Spezifikationen sehen explizit vor, dass Vorrichtungen jedes Mal eine aktualisierte LTR-Nachricht übertragen, wenn sich die Dienstanforderungen der Vorrichtung ändern.
-
Kurz gesagt, eine LTR-Nachricht von einer Vorrichtung gibt die tolerierbare Latenz für eine Ressource aus der Perspektive der Vorrichtung wieder. Mit der oben erwähnten Spezifikation ist die Dienstlatenz selbst wie folgt definiert: Wenn die Vorrichtung eine Leseanfrage ausgibt, wird Latenz als Latenz von Übertragung des END-Symbols in einem Anfragepaket bis zum Empfang des STP-Symbols in dem ersten Fertigstellungspaket gemessen. Bei anderen Technologien kann die Latenz anders gemessen werden.
-
Verschiedene Regeln können LTR-Abwicklung festlegen. Wenn zum Beispiel die Latenzanforderung aktualisiert wird, kann es erforderlich sein, dass die aktualisierte Latenzzahl (z.B. von der PMC) nicht später als das größere von: (a) Warten solange wie die zuvor angegebene Latenz, oder (b) Folgen der Bedienung einer anschließenden Anfrage verstanden wird. Wenn beispielsweise die Latenztoleranz verringert wird, können manche Spezifikationen empfehlen, die aktualisierte LTR-Nachricht vor der ersten antizipierten Anfrage (z.B. eine Speicheranfrage) mit der neuen Anfrage zu übertragen, wobei das in der zuvor ausgegebenen LTR-Nachricht Zeitausmaß erlaubt ist. Wenn die Toleranz erhöht wird, können manche Spezifikationen vorsehen, dass die Aktualisierung unmittelbar auf die letzte Anfrage mit dem vorangehenden Latenztoleranzwert folgen soll.
-
Eine exakte LTR-Abwicklung ist aus vielen Gründen wichtig. Zum Beispiel kann eine PMC Verarbeitung von Vorrichtungsanfragen verzögern, vorausgesetzt, sie erfüllt die Dienstanforderungen der Vorrichtung. Wenn zum Beispiel eine IP-Schaltung, die mit Anschluss1 verbunden ist, eine Latenztoleranz von 100 µs meldet und eine IP-Schaltung auf Anschluss2 eine Latenztoleranz von 30 µs meldet, könnte die PMC eine Strategie implementieren, eine anfängliche Anfrage nach einer Ruheperiode von Anschluss1 für 70 µs anzuhalten, bevor die Anfrage mit einer 30 µs Latenz von Anschluss2 bedient wird. Dieses PMC-Verhalten stellt der PMC die Fähigkeit bereit, Anfragen für eine effizientere Bedienung zu bündeln. Als ein anderes Beispiel dafür, warum exakte LTR-Abwicklung wichtig ist, können Taktquellen, Spannungsschienen und Fabrics eindeutige Latenztoleranzwerte haben, die durch IP-Schaltungen gemeldet werden. Und ein System auf einem Chip (SoC) Agent (z.B. PMC) kann seine Stromeinsparungsaktionen auf jene begrenzen, die in weniger als dem kürzesten gemeldeten Latenztoleranzwert annulliert werden können. Wenn beispielsweise ein PLL von ein zu aus in 10 µs übergeht, müssen alle Agenten, die Latenztoleranz in Bezug auf die Verfügbarkeit dieses PLL angeben, eine Latenztoleranz von >= 10 µs gemeldet haben oder die PMC kann dem PLL nicht erlauben, abzuschalten.
-
Die Verarbeitung von LTRs kann auf verschiedene Weisen abgewickelt werden. Zum Beispiel kann Hardware oder Firmware die Aufgabe haben, LTRs zu empfangen und LTRs an verschiedene Komponenten zu veröffentlichen. Die Antragstellerin hat jedoch festgestellt, dass Firmware-Verwaltung von latenzempfindlichen Aufgaben sowohl aufgrund einer inhärenten Langsamkeit (relativ zu einer Hardware-Implementierung derselben Aktionen) als auch aufgrund von Unterbrechungen/Aufgabenwechselanforderungen für die Firmware problematisch sein kann. Die Flexibilität einer Firmware-Lösung stellt jedoch ausreichenden Wert bereit, um Implementierung solcher Aufgaben in Firmware zu gewährleisten.
-
Die Identifizierung und Erklärung des Problems und entsprechender Lösungen sind in Bezug auf 17A, 17B, 18A-1, 18A-2 ausführlicher besprochen. Jedoch werden 1-16 und Leistungsverwaltung zuerst angesprochen, bevor mit einer Besprechung von 17A, 17B, 18A-1, 18A-2 fortgefahren wird.
-
Obwohl die folgenden Ausführungsformen unter Bezugnahme auf Energieerhaltung und Energieeffizienz in spezifischen integrierten Schaltungen, wie in Rechenplattformen oder Prozessoren beschrieben sind, sind andere Ausführungsformen bei anderen Arten von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren von hier beschriebenen Ausführungsformen können bei anderen Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die auch von einer besseren Energieeffizienz und Energieerhaltung profitieren können. Zum Beispiel sind die offenbarten Ausführungsformen nicht auf eine bestimmte Art von Rechensystemen beschränkt. Das heißt, offenbarte Ausführungsformen können in vielen verschiedenen Systemarten verwendet werden, die von Servercomputern (z.B. Tower, Rack, Blade, Mikro-Server und so weiter), Kommunikationssystemen, Datenspeichersystemen, Desktop Computern beliebiger Konfiguration, Laptop, Notebook und Tablet Computern (enthaltend 2:1 Tablets, Phablets und so weiter) reichen, und können auch in anderen Vorrichtungen verwendet werden, wie von Hand gehaltene Vorrichtungen, Systeme auf Chip (SoCs) und eingebettete Anwendungen. Manche Beispiele für von Hand gehaltene Vorrichtungen weisen Mobiltelefone wie Smartphones, Internetprotokollvorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und von Hand gehaltene PCs auf. Eingebettete Anwendungen können typischerweise eine Mikrosteuerung, einen Digitalsignalprozessor (DSP), Netzwerkcomputer (NetPC), Set-Top Boxes, Netzwerk-Hubs, Großraumnetzwerk (WAN, Wide Area Network)-Schalter, am Körper tragbare Vorrichtungen oder jedes andere System aufweisen, das die unten gelehrten Funktionen und Betriebe durchführen kann. Überdies können Ausführungsformen in mobilen Endgeräten mit Standardsprachfunktionalität implementiert sein, wie Mobiltelefone, Smartphones und Phablets, und/oder in nicht mobilen Endgeräten ohne eine drahtlose Standardsprachfunktion-Kommunikationskapazität, wie viele am Körper tragbare Geräte, Tablets, Notebooks, Desktops, Mikro-Server, Server und so weiter. Ferner sind die hier beschriebenen Einrichtungen, Verfahren und Systeme nicht auf physische Rechenvorrichtungen beschränkt, sondern können sich auch auf Software-Optimierungen für Energieerhaltung und -effizienz beziehen. Wie sofort in der folgenden Beschreibung offensichtlich wird, sind die hier beschriebenen Ausführungsformen von Verfahren, Einrichtungen und Systemen (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) für die Zukunft einer ‚grünen Technologie‘ wesentlich, wie für Energieerhaltung und Energieeffizienz in Produkten, die einen großen Teil der US-Wirtschaft umschließen.
-
Unter Bezugnahme nun auf 1 ist ein Blockdiagramm eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 1 dargestellt, kann System 100 verschiedene Komponenten aufweisen, enthaltend einen Prozessor 110, der wie dargestellt ein Mehrfachkernprozessor ist. Prozessor 110 kann an eine Stromversorgung 150 über einen externen Spannungsregler 160 gekoppelt sein, der eine erste Spannungsumwandlung durchführen kann, um dem Prozessor 110 eine primäre regulierte Spannung bereitzustellen.
-
Wie erkennbar ist, kann Prozessor 110 ein Einzel-Die-Prozessor sein, der mehrere Kerne 120a-120n aufweist. Zusätzlich kann jeder Kern mit einem integrierten Spannungsregler (IVR, Integrated Voltage Regulator) 125a-125n verknüpft sein, der die primäre regulierte Spannung empfängt und eine Betriebsspannung erzeugt, die einem oder mehreren Agenten des Prozessors bereitgestellt werden, die mit dem IVR verknüpft sind. Daher kann eine IVR-Implementierung bereitgestellt werden, um eine feinkörnige Steuerung von Spannung und somit Energieversorgung und Leistung jedes einzelnen Kerns zu ermöglichen. Als solches kann jeder Kern bei einer unabhängigen Spannung und Frequenz arbeiten, wodurch große Flexibilität möglich ist, und zahlreiche Gelegenheiten geboten werden, Leistungsverbrauch mit Arbeitsleistung auszugleichen. In manchen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs die Gruppierung von Komponenten in separate Power-Planes, sodass Strom reguliert und durch den IVR nur den Komponenten in der Gruppe zugeführt wird. Während Leistungsverwaltung kann eine gegebene Power-Plane eines IVR heruntergefahren oder ausgeschaltet werden, wenn der Prozessor in einen gewissen Niederenergiezustand gebracht wird, während eine andere Power-Plane eines anderen IVR aktiv oder vollständig mit Strom versorgt bleibt.
-
Unter weiterer Bezugnahme auf 1 können zusätzliche Komponenten in dem Prozessor vorhanden sein, enthaltend eine Eingangs-/Ausgangsschnittstelle 132, eine andere Schnittstelle 134 und eine integrierte Speichersteuerung 136. Wie erkennbar ist, kann jede dieser Komponenten durch einen anderen integrierten Spannungsregler 125x mit Strom versorgt werden. In einer Ausführungsform kann Schnittstelle 132 Betrieb für eine Intel®. Quick Path Interconnect (QPI) Zwischenverbindung ermöglichen, die Punkt-zu-Punkt (PtP)-Verbindungen in einem Cache-kohärenten Protokoll bereitstellen, das mehrere Schichten aufweist, enthaltend eine physische Schicht, eine Verbindungsschicht und eine Protokollschicht. Schnittstelle 134 kann wiederum über ein Peripheral Component Interconnect Express (PCIe™) Protokoll kommunizieren.
-
Ebenso dargestellt ist eine Leistungssteuereinheit (PCU, Power Control Unit) 138, die Hardware, Software und/oder Firmware aufweisen kann, um Leistungsverwaltungsbetriebe in Bezug auf Prozessor 110 durchzuführen. In einer Ausführungsform kann eine PCU eine zweckbestimmte Mikrosteuerung sein, die zweckbestimmte eingebettete Firmware betreibt und dynamische Leistungsverwaltungsentscheidungen basierend auf verschiedenen globalen Eingaben, wie Temperatur, Strom, Leistung und Arten von Arbeitslast, fällt. PCU 138 kann an eine Plattformleistungsverwaltungssteuerung (PMC, Platform Management Controller) gekoppelt sein. Ein Beispiel einer PMC ist die separate integrierte Leistungsverwaltungsschaltung (PMIC, Power Management Integrated Circuit) von 12. Ein anderes Beispiel einer PMC ist die PMC von 19. PCU 138 kann direkt an eine PMC gekoppelt sein, zum Beispiel, einen I2C Bus und/oder einen Spannungssteuerungs- (z.B. SVID) Bus.
-
Wie erkennbar ist, stellt PCU 138 dem externen Spannungsregler 160 Steuerungsinformationen über eine digitale Schnittstelle bereit, um den Spannungsregler zu veranlassen, die richtige regulierte Spannung zu erzeugen. PCU 138 stellt auch den IVRs 125 Steuerungsinformationen über eine andere digitale Schnittstelle bereit, um die erzeugte Betriebsspannung zu steuern (oder um zu veranlassen, dass ein entsprechender IVR in einem Niederleistungsmodus gesperrt wird). In verschiedenen Ausführungsformen kann PCU 138 eine Reihe von Leistungsverwaltungslogikeinheiten aufweisen, um Hardware-basierte Leistungsverwaltung durchzuführen. Eine solche Leistungsverwaltung kann vollständig prozessorgesteuert sein (z.B. durch verschiedene Prozessor-Hardware und die durch Arbeitslast und/oder Leistung, thermische oder andere Prozessoreinschränkungen ausgelöst wird) und/oder die Leistungsverwaltung kann in Reaktion auf externe Quellen durchgeführt werden (wie eine Plattform oder Managementleitungsverwaltungsquelle oder Systemsoftware).
-
Überdies, während 1 eine Implementierung zeigt, in der PCU 138 eine separate Verarbeitungsmaschine ist, (die als eine Mikrosteuerung implementiert sein kann), ist klar, dass in manchen Fällen zusätzlich zu oder anstelle von einer zweckbestimmten Leistungssteuerung jeder Kern einen Leistungssteuerungsagenten aufweisen oder mit diesem verknüpft sein kann, um Leistungsverbrauch unabhängig autonomer zu steuern. In manchen Fällen kann eine hierarchische Leistungsverwaltungsarchitektur bereitgestellt sein, mit PCU 138 in Kommunikation mit entsprechenden Leistungsverwaltungsagenten, die mit jedem von Kernen 120 verknüpft sind.
-
Eine Leistungsverwaltungslogik, die in PCU 138 aufgewiesen ist, kann eine dynamische stromteilende Steuerschaltung sein, die konfiguriert ist, dynamisch unabhängige Maximalstromverbrauchswerte für jeden Kern 120 und/oder zusätzliche Verarbeitungsschaltungen zu bestimmen. Wie hier näher beschrieben wird, kann dieser Steuerschaltkreis einen dynamisch konfigurierbaren Maximalstromverbrauchswert jedem von Kernen 120 bereitstellen, um jedem Kern 120 zu ermöglichen, gemäß seiner Einschränkung zu arbeiten. Als solches, wenn PCU 138 eine Bedingung identifiziert, die ein Drosselereignis auslöst, kann ein Drosselsignal an die Kerne 120 gesendet werden. Jeder Kern 120 kann wiederum seinen Betrieb auf seinen dynamisch identifizierten Maximalstromverbrauchswert begrenzen. Auf diese Weise können verschiedene Kerne in asymmetrischen Arbeitsleistungszuständen arbeiten, insbesondere, wenn ein Drosselereignis identifiziert ist, sodass eine minimale Auswirkung auf benutzerseitige Arbeitslasten eintritt.
-
Während zur besseren Veranschaulichung nicht dargestellt, ist klar, dass zusätzliche Komponenten im Prozessor 110 vorhanden sein können, wie zusätzlicher Steuerschaltkreis und andere Komponenten wie interne Speicher, z.B. eine oder mehrere Stufen einer Cache-Speicherhierarchie und so weiter. Überdies, während in der Implementierung von 1 mit einem integrierten Spannungsregler dargestellt, sind Ausführungsformen nicht darauf beschränkt.
-
Es ist zu beachten, dass die hier beschriebenen Leistungsverwaltungstechniken unabhängig von und komplementär zu einem Betriebssystem (OS, Operating System)-basiertem Leistungsverwaltungs- (OSPM) Mechanismus sein können. Gemäß einer beispielhaften OSPM-Technik kann ein Prozessor bei verschiedenen Arbeitsleistungszuständen oder -stufen arbeiten, sogenannten P-Zuständen, nämlich von P0 bis PN. Im Allgemeinen kann der P1 Arbeitsleistungszustand dem höchsten garantierten Arbeitsleistungszustand entsprechen, der von einem OS angefordert werden kann. Hier beschriebene Ausführungsformen können dynamische Änderungen an der garantierten Frequenz des PI-Arbeitsleistungszustands basierend auf einer Reihe von Eingängen und Prozessorbetriebsparametern ermöglichen. Zusätzlich zu diesem P1-Zustand kann das OS ferner einen höheren Arbeitsleistungszustand, nämlich einen P0-Zustand, anfordern. Dieser P0-Zustand kann somit ein opportunistischer oder Turbomoduszustand sein, in dem, wenn Leistungs- und/oder thermisches Budget verfügbar ist, Prozessor-Hardware den Prozessor oder mindestens Teile davon konfigurieren kann, bei einer höheren als der garantierten Frequenz zu arbeiten. In vielen Implementierungen kann ein Prozessor mehrere sognannte Bin-Frequenzen über der P1 garantierten maximalen Frequenz aufweisen, die eine maximale Spitzenfrequenz des bestimmten Prozessor überschreitet, wie in den Prozessor während Herstellung eingeführt oder anderswie geschrieben ist. Zusätzlich kann gemäß einem OSPM-Mechanismus ein Prozessor bei verschiedenen Leistungszuständen oder -stufen arbeiten. In Bezug auf Leistungszustände kann ein OSPM-Mechanismus unterschiedliche Leistungsverbrauchszustände spezifizieren, allgemein als C-Zustände, C0-, C1- bis Cn-Zustände spezifiziert. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand, und wenn der Kern ruhend ist, kann er in einen niederen Kernleistungszustand versetzt werden, auch als ein Kern Nicht-Null-C-Zustand (z.B. C1-C6-Zustände) bezeichnet, wobei jeder C-Zustand bei einer geringeren Leistungsverbrauchsstufe ist (sodass C6 ein tieferer Niederleistungszustand als C1 ist und so weiter).
-
Es ist klar, dass viele verschiedene Arten von Leistungsverwaltungstechniken einzeln oder in Kombination in verschiedenen Ausführungsformen verwendet werden können. Als repräsentative Beispiele kann eine Leistungssteuerung den Prozessor steuern, durch eine gewisse Form von dynamischer Spannungsfrequenzskalierung (DVFS, Dynamic Voltage Frequency Scaling) leistungsgesteuert zu sein, in der eine Betriebsspannung und/oder Betriebsfrequenz eines Kerns oder mehrerer Kerne oder anderer Prozessorlogik dynamisch gesteuert werden kann, um in gewissen Situationen Leistungsverbrauch zu verringern. In einem Beispiel kann DVFS unter Verwendung der Enhanced Intel SpeedStep™ Technologie durchgeführt werden, die von Intel Corporation, Santa Clara, Kalif., erhältlich ist, um optimale Arbeitsleistung bei einer tiefsten Leistungsverbrauchsstufe bereitzustellen. In einem anderen Beispiel kann DVFS unter Verwendung der Intel TurboBoost™ Technologie durchgeführt werden, um einem oder mehreren Kernen oder anderen Rechenmaschinen basierend auf Bedingungen (z.B. Arbeitslast und Verfügbarkeit) zu ermöglichen, bei einer höheren als der garantierten Betriebsfrequenz zu arbeiten.
-
Eine andere Leistungsverwaltungstechnik, die in bestimmten Beispielen verwendet werden kann, ist dynamisches Austauschen von Arbeitslasten zwischen verschiedenen Rechenmaschinen. Zum Beispiel kann der Prozessor asymmetrische Kerne oder andere Verarbeitungsmaschinen aufweisen, die bei verschiedenen Leistungsverbrauchsstufen arbeiten, sodass in einer leistungseingeschränkten Situation eine oder mehrere Arbeitslasten dynamisch umgeschaltet werden können, um auf einem Kern oder anderen Rechenmaschine niedrigerer Leistung zu laufen. Eine andere beispielhafte Leistungsverwaltungstechnik ist Hardware Duty Cycling (HDC), das bewirken kann, dass Kerne und/oder andere Rechenmaschinen gemäß einem Taktzyklus periodisch freigegeben oder gesperrt werden, sodass einer oder mehrere Kerne während einer inaktiven Periode des Taktzyklus inaktiv gemacht werden können und während einer aktiven Periode des Taktzyklus aktiv gemacht werden können. Obwohl mit diesen bestimmten Beispielen beschrieben, ist klar, dass viele andere Leistungsverwaltungstechniken in bestimmten Ausführungsformen verwendet werden können.
-
Ausführungsformen können in Prozessoren für verschiedene Märkte implementiert sein, aufweisend Serverprozessoren, Desktop Prozessoren, mobile Prozessoren und so weiter. Unter Bezugnahme nun auf 2 ist ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 2 dargestellt. kann Prozessor 200 ein Mehrfachkernprozessor sein, der mehrere Kerne 210a-210n aufweist. In einer Ausführungsform kann jeder solche Kern von einer unabhängigen Leistungsdomäne sein und kann konfiguriert sein, basierend auf Arbeitslast in aktive Zustände und/oder maximale Arbeitsleistungszustände ein- und auszutreten. Die verschiedenen Kerne können über eine Zwischenverbindung 215 an einen Systemagenten 220 gekoppelt sein, der verschiedene Komponenten aufweist. Wie erkennbar ist, kann Systemagent 220 einen gemeinsamen Cache 230 aufweisen, der ein Cache letzter Stufe sein kann. Zusätzlich kann der Systemagent eine integrierte Speichersteuerung 240 aufweisen, um mit einem Systemspeicher zu kommunizieren (in 2 nicht dargestellt), z.B. über einen Speicherbus. Systemagent 220 weist auch verschiedene Schnittstellen 250 und eine Leistungssteuereinheit 255 auf, die Logik aufweisen kann, um die hier beschriebenen Leistungsverwaltungstechniken durchzuführen.
-
Zusätzlich kann durch Schnittstellen 250a-250n eine Verbindung zu verschiedenen Off-Chip-Komponenten wie peripheren Vorrichtungen, Massendatenspeicher und so weiter hergestellt werden. Während mit dieser bestimmten Implementierung in der Ausführungsform von 2 dargestellt, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt.
-
Unter Bezugnahme nun auf 3 ist ein Blockdiagramm eines Mehrfachdomänenprozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. Wie in der Ausführungsform von 3 dargestellt, weist Prozessor 300 mehrere Domänen auf. Insbesondere kann eine Kerndomäne 310 mehrere Kerne 310o-310n aufweisen, eine Grafikdomäne 320 kann eine oder mehrere Grafikmaschinen aufweisen und eine Systemagentendomäne 350 kann ferner vorhanden sein. In manchen Ausführungsformen kann Systemagentendomäne 350 bei einer unabhängigen Frequenz als die Kerndomäne laufen und jederzeit leistungsversorgt bleiben, um Leistungssteuerungsereignisse und Leistungsverwaltung abzuwickeln, sodass Domänen 310 und 320 gesteuert werden können, um dynamisch in einen Hochleistungs- und Niederleistungszustand einzutreten und aus diesem auszutreten. Jede der Domänen 310 und 320 kann bei unterschiedlicher Spannung und/oder Leistung arbeiten. Es ist zu beachten, dass, während nur mit drei Domänen dargestellt, es klar ist, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist und zusätzliche Domänen in anderen Ausführungsformen vorhanden sein können. Zum Beispiel können mehrere Kerndomänen vorhanden sein, die jeweils mindestens einen Kern aufweisen.
-
Im Allgemeinen kann jeder Kern 310 ferner Caches niederer Stufe zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen aufweisen. Die verschiedenen Kerne können wiederum aneinander und an einen gemeinsamen Cache-Speicher gekoppelt sein, der aus mehreren Einheiten eines Cache letzter Stufe (LLC) 3400-340n gebildet ist. In verschiedenen Ausführungsformen können sich die Kerne und die Grafikmaschine, wie auch verschiedene Medienverarbeitungsschaltkreise den LLC 340 teilen. Wie erkennbar ist, koppelt somit eine Ringzwischenverbindung 330 die Kerne aneinander und stellt Zwischenverbindung zwischen den Kernen, Grafikdomäne 320 und Systemagentenschaltkreis 350 bereit. In einer Ausführungsform kann Zwischenverbindung 330 Teil der Kerndomäne sein. In anderen Ausführungsformen jedoch kann die Ringzwischenverbindung ihre eigene Domäne sein.
-
Wie ferner erkennbar ist, kann Systemagentendomäne 350 Anzeigesteuerung 352 aufweisen, die Steuerung von und eine Schnittstelle zu einer zugehörigen Anzeige bereitstellen kann. Wie ferner erkennbar ist, kann Systemagentendomäne 350 eine Leistungssteuereinheit 355 aufweisen, die Logik aufweisen kann, um die hier beschriebenen Leistungsverwaltungstechniken bereitzustellen.
-
Wie ferner in 3 erkennbar ist, kann Prozessor 300 ferner eine integrierte Speichersteuerung (IMC) 370 aufweisen, die eine Schnittstelle zu einem Systemspeicher, wie einen dynamischen Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) bereitstellen kann. Mehrere Schnittstellen 3800-380n können vorhanden sein, um Zwischenverbindung zwischen dem Prozessor und anderen Schaltkreisen zu ermöglichen. Zum Beispiel können in einer Ausführungsform mindestens eine direkte Medienschnittstelle (DMI, Direct Media Interface) Schnittstelle wie auch eine oder mehrere PCIe™ Schnittstellen bereitgestellt sein. Ferner noch, um Kommunikationen zwischen anderen Agenten, wie zusätzlichen Prozessoren oder anderen Schaltkreisen, bereitzustellen können ebenso eine oder mehrere QPI-Schnittstellen bereitgestellt sein. Obwohl bei dieser hohen Stufe in der Ausführungsform von 3 dargestellt, ist klar, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
-
Unter Bezugnahme auf 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne aufweist, veranschaulicht. Prozessor 400 weist einen beliebigen Prozessor oder eine Verarbeitungsvorrichtung, wie einen Mikroprozessor, einen eingebetteten Prozessor, einen Digitalsignalprozessor (DSP), einen Netzwerkprozessor, einen handgehaltenen Prozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System auf einem Chip (SoC) oder eine andere Vorrichtung zur Ausführung von Code auf. Prozessor 400 weist in einer Ausführungsform mindestens zwei Kerne auf - Kerne 401 und 402, die asymmetrische Kerne oder symmetrische Kerne (die veranschaulichte Ausführungsform) aufweisen können. Prozessor 400 kann jedoch eine beliebige Anzahl von Verarbeitungselementen aufweisen, die symmetrisch oder asymmetrisch sein können.
-
In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente weisen auf: eine Thread-Einheit, einen Thread-Schlitz, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen logischen Prozessor, einen Hardware-Thread, einen Kern und/oder ein beliebiges anderes Element, das imstande ist, einen Zustand für einen Prozessor zu halten, wie einen Ausführungszustand oder architektonischen Zustand. Mit anderen Worten, ein Verarbeitungselement bezieht sich in einer Ausführungsform auf jede Hardware, die imstande ist, unabhängig mit Code verknüpft zu sein, wie ein Software Thread, Betriebssystem, eine Anwendung oder ein anderer Code. Ein physischer Prozessor bezieht sich typischerweise auf eine integrierte Schaltung, die gegebenenfalls eine beliebige Anzahl von anderen Verarbeitungselementen, wie Kernen oder Hardware-Threads, aufweist.
-
Ein Kern bezieht sich häufig auf Logik, die auf einer integrierten Schaltung liegt, die imstande ist, einen unabhängigen architektonischen Zustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene architektonische Zustand mit mindestens einigen zweckbestimmten Ausführungsressourcen verknüpft ist. Im Gegensatz zu den Kernen bezieht sich ein Hardware-Thread typischerweise auf eine beliebige Logik, die auf einer integrierten Schaltung liegt, die imstande ist, einen unabhängigen architektonischen Zustand aufrechtzuerhalten, wobei die unabhängig aufrechterhaltenen architektonischen Zustände einen gemeinsamen Zugriff auf Ausführungsressourcen haben. Wie erkennbar ist, wenn gewisse Ressourcen gemeinsam benutzt werden und andere für einen architektonischen Zustand bestimmt sind, überlappt die Linie zwischen der Nomenklatur eines Hardware-Threads und Kerns. Häufig jedoch werden ein Kern und ein Hardware-Thread von einem Betriebssystem als einzelne logische Prozessoren betrachtet, wo das Betriebssystem imstande ist, Betriebe auf jedem logischen Prozessor individuell zu planen.
-
Physischer Prozessor 400, wie in 4 veranschaulicht, weist zwei Kerne, Kerne 401 und 402, auf. Hier werden Kerne 401 und 402 als symmetrische Kerne angesehen, d.h. Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. In einer anderen Ausführungsform weist Kern 401 einen ungeordneten Prozessorkern auf, während Kern 402 einen geordneten Prozessorkern aufweist. Kerne 401 und 402 können jedoch einzeln aus jeder Art von Kern gewählt werden, wie ein nativer Kern, ein Software-verwalteter Kern, ein Kern, der ausgebildet ist, eine native Anweisungssatzarchitektur (ISA, Instruction Set Architecture) auszuführen, ein Kern, der ausgebildet ist, eine translatierte ISA auszuführen, ein co-gestalteter Kern oder ein anderer bekannter Kern. Um die Besprechung weiter zu vertiefen, sind die in Kern 401 veranschaulichten Funktionseinheiten unten näher beschrieben, da die Einheiten in Kern 402 auf gleiche Weise arbeiten.
-
Wie gezeigt, weist Kern 401 zwei Hardware-Threads 401a und 401b auf, die auch als Hardware-Thread-Schlitze 401a und 401b bezeichnet werden können. Daher sehen Software-Entitäten, wie ein Betriebssystem, in einer Ausführungsform möglicherweise Prozessor 400 als vier separate Prozessoren, d.h. vier logische Prozessoren oder Verarbeitungselemente, die imstande sind, vier Software-Threads gleichzeitig auszuführen. Wie oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 401a verknüpft, ein zweiter Thread ist mit Architekturzustandsregistern 401b verknüpft, ein dritter Thread kann mit Architekturzustandsregistern 402a verknüpft sein und ein vierter Thread kann mit Architekturzustandsregistern 402b verknüpft sein. Hier kann jedes der Architekturzustandsregister (401a, 401b, 402a und 402b) als Verarbeitungselemente, Thread-Schlitze oder Thread-Einheiten bezeichnet werden, wie oben beschrieben. Wie veranschaulicht, sind Architekturzustandsregister 401a in Architekturzustandsregistern 401b repliziert, sodass einzelne Architekturzustände/Kontexte für logischen Prozessor 401a und logischen Prozessor 401b gespeichert werden können. In Kern 401 können andere kleinere Ressourcen, wie Anweisungszeiger und Umbenennungslogik in Zuweiser- und Umbenennerblock 430, auch für Threads 401a und 401b repliziert sein. Manche Ressourcen, wie Neuordnungspuffers in Neuordnungs-/Ruhigstellungseinheit 435, ILTB 420, Lade/Speicherpuffer und Warteschlangen können durch Trennung gemeinsam benutzt werden. Andere Ressourcen, wie interne Allzweckregister, Seite-Tabellenbasisregister, Daten-Cache tiefer Stufe und Daten-TLB 415, Ausführungseinheit(en) 440 und Teile von ungeordneter Einheit 435, werden gegebenenfalls vollständig gemeinsam benutzt.
-
Prozessor 400 weist häufig andere Ressourcen auf, die vollständig gemeinsam benutzt, durch Partitionierung gemeinsam benutzt oder durch/für Verarbeitungselemente zweckbestimmt sein können. In 4 ist eine Ausführungsform eines rein beispielhaften Prozessors mit veranschaulichenden logischen Einheiten/Ressourcen eines Prozessors veranschaulicht. Es ist zu beachten, dass ein Prozessor jede dieser Funktionseinheiten aufweisen oder weglassen kann, wie auch beliebige andere bekannte Funktionseinheiten, Logik, oder Firmware, nicht gezeigt, aufweisen kann. Wie veranschaulicht, weist Kern 401 einen vereinfachten, repräsentativen, ungeordneten (OOO, Out-of-Order) Prozessorkern auf. Es kann aber ein geordneter Prozessor in verschiedenen Ausführungsformen benutzt werden. Der OOO-Kern weist einen Verzweigungszielpuffer 420 auf, um Abzweigungen vorherzusagen, die auszuführen/zu nehmen sind, und einen Anweisung-Übersetzungspuffer (I-TLB, Instruction-Translation Buffer) 420, um Adressenübersetzungseinträge für Anweisungen zu speichern.
-
Kern 401 weist ferner Decodiermodul 425, gekoppelt an Abrufeinheit 420 auf, um abgerufene Elemente zu decodieren. Abruflogik weist in einer Ausführungsform einzelne Sequenzierer auf, die mit Thread-Schlitzen 401a bzw. 401b verknüpft sind. Üblicherweise ist Kern 401 mit einer ersten ISA verknüpft, die Anweisungen definiert/vorgibt, die auf Prozessor 400 ausführbar sind. Häufig weisen Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Teil der Anweisung auf (bezeichnet als Opcode), der auf eine Anweisung oder einen Betrieb verweist/diese(n) vorgibt, die/der durchgeführt werden soll. Decodierlogik 425 weist Schaltkreis auf, der diese Anweisungen aus ihren Opcodes erkennt und die und die decodierten Anweisungen in der Pipeline zur Verarbeitung weiterleitet, wie durch die erste ISA definiert. Zum Beispiel weisen Decodierer 425, in einer Ausführungsform Logik auf, die gestaltet und ausgebildet ist, spezifische Anweisungen zu erkennen wie transaktionale Anweisung. Infolge der Erkennung durch Decodierer 425 übernimmt die Architektur oder der Kern 401 spezifische, vordefinierte Aktionen, um Aufgaben durchzuführen, die mit der passenden Anweisung verknüpft sind. Es ist wichtig festzuhalten, dass sämtliche der hier beschriebenen Aufgaben, Blöcke und Verfahren in Reaktion auf einzelne oder mehrere Anweisungen durchgeführt werden können; von welchen manche neue oder alte Anweisungen sein können.
-
In einem Beispiel weist Zuweiser- und Umbenennerblock 430 einen Zuweiser auf, um Ressourcen, wie Registerdateien zum Speichern von Anweisungsverarbeitungsergebnissen zu reservieren. Threads 401a und 401b sind jedoch möglicherweise zu einer ungeordneten Ausführung imstande, wo Zuweiser- und Umbenennerblock 430 auch andere Ressourcen reserviert, wie Neuordnungspuffer, um Anweisungsergebnisse zu verfolgen. Einheit 430 kann auch einen Registerumbenenner aufweisen, um Programm/Anweisungsreferenzregister zu anderen Registern intern des Prozessors 400 umzubenennen. Neuordnungs-/Ruhigstellungseinheit 435 weist Komponenten wie die oben erwähnten Neuordnungspuffer, Ladepuffer und Speicherpuffer auf, um ungeordnete Ausführung und spätere geordnete Ruhigstellung von Anweisungen, die ungeordnet ausgeführt werden, zu unterstützen.
-
Planer- und Ausführungseinheit(en)-Block 440 weist in einer Ausführungsform eine Planereinheit auf, um Anweisungen/Betrieb auf Ausführungseinheiten zu planen. Zum Beispiel wird eine Gleitkommaanweisung an einem Anschluss einer Ausführungseinheit geplant, die eine verfügbare Gleitkommaausführungseinheit hat. Registerdateien, die mit den Ausführungseinheiten verknüpft sind, sind auch enthalten, um Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten weisen eine Gleitkommaausführungseinheit, eine Ganzzahlausführungseinheit, eine Sprungausführungseinheit, eine Lastausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten auf.
-
Daten-Cache tiefer Stufe und Datenübersetzungspuffer (D-TLB) 450 sind an Ausführungseinheit(en) 440 gekoppelt. Der Daten-Cache dient zum Speichern kürzlich verwendeter/bearbeiteter Elemente, wie Datenoperanden, die gegebenenfalls in Speicherkohärenzzuständen gehalten werden. Der D-TLB dient zum Speichern kürzlicher virtueller/linearer zu physischen Adressübersetzungen. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur aufweisen, um physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
-
Hier teilen sich Kerne 401 und 402 Zugang zu höher gestuften oder weiter außenliegenden Cache 410, der kürzlich abgerufene Elemente zwischenspeichern soll. Es ist zu beachten, dass höher gestuft oder weiter außenliegend sich auf Cache-Stufen bezieht, die höher werden oder sich weiter von der (den) Ausführungseinheit(en) entfernen. In einer Ausführungsform ist Cache 410 höherer Stufe ein Daten-Cache letzter Stufe - der letzte Cache in der Speicherhierarchie auf Prozessor 400 - wie ein Daten-Cache zweiter oder dritter Stufe. Ein Cache 410 höherer Stufe ist jedoch nicht darauf beschränkt, da er mit einem Anweisungs-Cache verknüpft sein oder diesen aufweisen kann. Ein Spuren-Cache - eine Art von Anweisungs-Cache - kann stattdessen nach Decodierer 425 gekoppelt sein, um kürzlich decodierte Spuren zu speichern.
-
In der gezeigten Konfiguration weist Prozessor 400 auch Busschnittstellenmodul 405 und eine Leistungssteuerung 460 auf, die Leistungsverwaltung gemäß einer Ausführungsform der vorliegenden Erfindung durchführen können. In diesem Szenario soll Busschnittstelle 405 mit Vorrichtungen außerhalb von Prozessor 400, wie Systemspeicher und anderen Komponenten, kommunizieren.
-
Eine Speichersteuerung 470 kann mit anderen Vorrichtungen verbunden sein, wie einem oder vielen Speichern. In einem Beispiel weist Busschnittstelle 405 eine Ringzwischenverbindung mit einer Speichersteuerung zur Verbindung mit einem Speicher und eine Grafiksteuerung zur Verbindung mit einem Grafikprozessor auf. In einer SoC-Umgebung können noch mehr Vorrichtungen, wie eine Netzwerkschnittstelle, Co-Prozessoren, Speicher, Grafikprozessor und sämtliche anderen bekannten Computervorrichtungen/Schnittstelle auf einem Einzel-Die oder einer integrierten Schaltung integriert sein, um kleinen Formfaktor mit hoher Funktionalität und geringem Leistungsverbrauch bereitzustellen.
-
Unter Bezugnahme nun auf 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 5 dargestellt, kann Prozessorkern 500 ein ungeordneter Mehrstufen-Pipeline-Prozessor sein. Kern 500 kann bei verschiedenen Spannungen basierend auf einer empfangenen Betriebsspannung arbeiten, die von einem integrierten Spannungsregler oder externen Spannungsregler empfangen wird.
-
Wie in 5 erkennbar ist, weist Kern 500 Frontend-Einheiten 510 auf, die zum Abrufen von Anweisungen, die auszuführen sind, und Vorbereiten dieser zur späteren Verwendung in der Prozessor-Pipeline verwendet werden können. Zum Beispiel können Frontend-Einheiten 510 eine Abrufeinheit 501, einen Anweisungs-Cache 503 und einen Anweisungsdecodierer 505 aufweisen. In manchen Implementierungen können Frontend-Einheiten 510 ferner einen Spuren-Cache, gemeinsam mit einem Mikrocode-Datenspeicher wie auch einem Mikrobetriebsdatenspeicher aufweisen. Abrufeinheit 501 kann Makroanweisungen, z.B. aus Speicher oder Anweisungs-Cache 503, abrufen und sie in den Anweisungsdecodierer 505 einspeisen, um sie in Stammfunktionen zu decodieren, d.h. Mikrobetriebe zur Ausführung durch den Prozessor.
-
Zwischen Frontend-Einheiten 510 und Ausführungseinheiten 520 gekoppelt ist eine ungeordnete (OOO) Maschine 515, die zum Empfangen der Mikroanweisungen und deren Vorbereitung zur Ausführung verwendet werden kann. Insbesondere kann die OOO-Maschine 515 verschiedene Puffer zur Neuordnung eines Mikroanweisungsstroms und Zuordnen verschiedener Ressourcen, die zur Ausführung erforderlich sind, wie auch zum Bereitstellen einer Umbenennung logischer Register auf Datenspeicherstellen innerhalb verschiedener Registerdateien wie Registerdatei 530 und erweiterte Registerdatei 535 verwendet werden. Registerdatei 530 kann separate Registerdateien für Ganzzahl- und Gleitkommaoperationen aufweisen. Erweiterte Registerdatei 535 kann Datenspeicherung für Einheiten in Vektorgröße bereitstellen, z.B. 256 oder 512 Bits pro Register. Zu Zwecken der Konfiguration, Steuerung und zusätzlicher Betriebe kann auch ein Satz maschinenspezifischer Register (MSRs, Machine Specific Registers) 538 vorhanden sein und für verschiedene Logik im Kern 500 (und außerhalb des Kerns) zugänglich sein.
-
Verschiedene Ressourcen können in Ausführungseinheiten 520 vorhanden sein, aufweisend zum Beispiel verschiedene Ganzzahl-, Gleitkomma- und Einzelanweisung-Mehrfachdaten (SIMD, Single Instruction Multiple Data) Logikeinheiten, unter andere spezialisierte Hardware. Zum Beispiel können solche Ausführungseinheiten eine oder mehrere arithmetische Logikeinheiten (ALUs, Arithmetic Logic Units) 522 und eine oder mehrere Vektorausführungseinheiten 524 unter anderen solchen Ausführungseinheiten aufweisen.
-
Ergebnisse aus den Ausführungseinheiten können der Ruhigstellungslogik bereitgestellt werden, nämlich einem Neuordnungspuffer (ROB, Reorder Buffer) 540. Insbesondere kann ROB 540 verschiedene Arrays und Logik aufweisen, um Informationen zu empfangen, die mit Anweisungen verknüpft sind, die ausgeführt werden. Diese Informationen werden dann durch ROB 540 untersucht um festzustellen, ob die Anweisungen gültig ruhiggestellt werden können und Ergebnisdaten dem architektonischen Zustand des Prozessors zugeschrieben werden können, oder ob eine oder mehrere Ausnahmen eingetreten sind, die eine richtige Ruhigstellung der Anweisungen verhindern. Natürlich kann ROB 540 andere Betriebe abwickeln, die mit Ruhigstellung verknüpft sind.
-
Wie in 5 dargestellt, ist ROB 540 an einen Cache 550 gekoppelt, der in einer Ausführungsform ein Cache niederer Stufe (z.B. ein L1-Cache) sein kann, obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt ist. Ebenso können Ausführungseinheiten 520 direkt an Cache 550 gekoppelt sein. Von Cache 550 kann Datenkommunikation mit Caches höherer Stufe, Systemspeicher und so weiter erfolgen. Während mit dieser hohen Stufe in der Ausführungsform von 5 dargestellt, ist klar, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Während zum Beispiel die Implementierung von 5 sich auf eine ungeordnete Maschine wie von einer Intel® x86 Anweisungssatzarchitektur (ISA) bezieht, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht eingeschränkt. Das heißt, andere Ausführungsformen können in einem geordneten Prozessor, einem Prozessor mit Berechnung mit reduziertem Befehlssatz (RISC, Reduced Instruction Set Computing) wie einem ARM-basierten Prozessor oder einem Prozessor einer anderen Art von ISA, der Anweisungen und Betriebe einer anderen ISA über eine Emulationsmaschine emulieren kann, und zugehörige Logikschaltkreise implementiert werden.
-
Unter Bezugnahme nun auf 6, ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform dargestellt. In der Ausführungsform von 6 kann Kern 600 ein Kern geringer Leistung einer anderen Mikroarchitektur sein, wie an Intel®. Atom™-basierter Prozessor mit einer relativ begrenzten Pipeline-Tiefe, der gestaltet ist, Leistungsverbrauch zu verringern. Wie erkennbar ist, weist Kern 600 einen Anweisungs-Cache 610 auf, der gekoppelt ist, um einem Anweisungsdecodierer 615 Anweisungen bereitzustellen. Ein Abzweigungsvorhersager 605 kann an Anweisungs-Cache 610 gekoppelt sein. Es ist zu beachten, dass Anweisungs-Cache 610 ferner an eine andere Stufe eines Cache-Speichers, wie einen L2-Cache (zur besseren Veranschaulichung in 6 nicht dargestellt) gekoppelt sein kann. Anweisungsdecodierer 615 stellt wiederum decodierte Anweisungen an eine Ausgabewarteschlange 620 zur Speicherung und Abgabe an eine bestimmte Ausführungs-Pipeline bereit. Ein Mikrocode ROM 618 ist an Anweisungsdecodierer 615 gekoppelt.
-
Eine Gleitkomma-Pipeline 630 weist eine Gleitkommaregisterdatei 632 auf, die mehrere architektonische Register bestimmter Bits, wie mit 128, 256 oder 512 Bits, aufweisen kann. Pipeline 630 weist einen Gleitkommaplaner 634 zur Planung von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline auf. In der dargestellten Ausführungsform weisen solche Ausführungseinheiten eine ALU 635, eine Wechseleinheit 636 und einen Gleitkommaaddierer 638 auf. Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, können wiederum zurück zu Puffern und/oder Registern von Registerdatei 632 bereitgestellt werden. Natürlich ist klar, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten dargestellt, zusätzliche oder verschiedene Gleitkommaausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
-
Es kann auch eine Ganzzahl-Pipeline 640 bereitgestellt sein. In der dargestellten Ausführungsform weist Pipeline 640 eine Ganzzahlregisterdatei 642 auf, die mehrere architektonische Register bestimmter Bits, wie mit 128 oder 256 Bits, aufweisen kann. Pipeline 640 weist einen Ganzzahlplaner 644 zur Planung von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline auf. In der dargestellten Ausführungsform weisen solche Ausführungseinheiten eine ALU 645, eine Verschiebereinheit 646 und eine Sprungausführungseinheit 648 auf. Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, können wiederum zurück zu Puffern und/oder Registern von Registerdatei 642 bereitgestellt werden. Natürlich ist klar, dass obwohl mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt, zusätzliche oder andere Ganzzahlausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
-
Ein Speicherausführungsplaner 650 kann Speicherbetriebe zur Ausführung in einer Adresserzeugungseinheit 652 planen, die auch an einen TLB 654 gekoppelt ist. Wie erkennbar ist, können diese Strukturen an einen Daten-Cache 660 gekoppelt sein, der ein L0- und/oder L1-Daten-Cache sein kann, der wiederum an zusätzliche Stufen einer Cache-Speicherhierarchie gekoppelt ist, die einen L2-Cache-Speicher aufweist.
-
Zur Bereitstellung von Unterstützung für ungeordnete Ausführung kann ein Zuweiser/Umbenenner 670 zusätzlich zu einem Neuordnungspuffer 680 bereitgestellt sein, der konfiguriert ist, Anweisungen, die ungeordnet sind, zur geordneten Ruhigstellung neu zu ordnen. Obwohl mit dieser bestimmten Pipeline-Architektur in der Veranschaulichung von 6 dargestellt, ist klar, dass viele Variationen und Alternativen möglich sind.
-
Es ist zu beachten, dass in einem Prozessor mit asymmetrischen Kernen, wie gemäß den Mikroarchitekturen von 5 und 6, Arbeitslasten dynamisch zwischen den Kerne aus Leistungsverwaltungsgründen getauscht werden können, da diese Kerne, obwohl sie verschiedene Pipeline-Designs und -Tiefen haben, von derselben oder einer verwandten ISA sein können. Ein solcher dynamischer Tausch von Kernen kann in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch ein Kernel) transparent ist.
-
Unter Bezugnahme auf 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform dargestellt. Wie in 7 veranschaulicht, kann ein Kern 700 eine mehrstufige geordnete Pipeline zur Ausführung bei sehr niedrigen Leistungsverbrauchsstufen aufweisen. Ein solcher beispielhafter Prozessor 700 kann eine Mikroarchitektur gemäß einem ARM Cortex A53 Design, erhältlich von ARM Holdings, LTD., Sunnyvale, Kalif., haben. In einer Implementierung kann eine 8-stufige Pipeline bereitgestellt sein, die konfiguriert ist, sowohl 32-Bit als auch 64-Bit Code auszuführen. Kern 700 weist eine Abrufeinheit 710 auf, die konfiguriert ist, Anweisungen abzurufen und sie einer Decodiereinheit 715 bereitzustellen, die die Anweisungen, z.B. Makroanweisungen einer bestimmten ISA wie eine ARMv8 ISA, decodieren kann. Ferner ist festzuhalten, dass eine Warteschlange 730 an die Decodiereinheit 715 koppeln kann, um decodierte Anweisungen zu speichern. Decodierte Anweisungen werden einer Ausgabelogik 725 bereitgestellt, wo die decodierten Anweisungen für eine bestimmte von mehreren Ausführungseinheiten ausgegeben werden können.
-
Unter weiterer Bezugnahme auf 7 kann Ausgabelogik 725 Anweisungen an eine von mehreren Ausführungseinheiten ausgeben. In der dargestellten Ausführungsform weisen diese Ausführungseinheiten eine Ganzzahleinheit 735, ein Multiplikationseinheit 740, eine Gleitkomma-/Vektoreinheit 750, eine Doppelausgabeeinheit 760 und eine Lade-/Speichereinheit 770 auf. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Rückschreibeinheit 780 bereitgestellt werden. Es ist klar, dass, während eine einzige Rückschreibeinheit der einfachen Veranschaulichung wegen dargestellt ist, in manchen Implementierungen separate Rückschreibeinheiten mit jeder der Ausführungseinheiten verknüpft sein können. Überdies ist klar, dass, während jede der Einheiten und Logik, die in 7 dargestellt ist, bei einer hohen Stufe dargestellt ist, eine besondere Implementierung mehr oder andere Strukturen aufweisen kann. Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne mit einer Pipeline wie in 7 entworfen ist, kann in vielen verschiedenen Endprodukten implementiert sein, die von mobilen Vorrichtungen bis zu Serversystemen reichen.
-
Unter Bezugnahme auf 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns gemäß einer noch weiteren Ausführungsform dargestellt. Wie in 8 veranschaulicht, kann ein Kern 800 eine mehrstufige ungeordnete Mehrfachausgabe-Pipeline zur Ausführung bei sehr hohen Arbeitsleistungsniveaus aufweisen (die bei höheren Leistungsverbrauchsstufen als bei Kern 700 von 7 auftreten können). Als ein solches Beispiel kann Prozessor 800 eine Mikroarchitektur gemäß einem ARM Cortex A57 Design haben. In einer Implementierung kann eine 15 (oder mehr)-stufige Pipeline bereitgestellt sein, die konfiguriert ist, sowohl 32-Bit als auch 64-Bit Code auszuführen. Zusätzlich kann die Pipeline einen 3 (oder mehr)-weiten und 3 (oder mehr)-Ausgabebetrieb bereitstellen. Kern 800 weist eine Abrufeinheit 810 auf, die konfiguriert ist, Anweisungen abzurufen und sie einem Decodierer/Umbenenner/Versender 815 bereitzustellen, der die Anweisungen decodieren, z.B. Makro-Anweisungen einer ARMv8 Anweisungssatzarchitektur, Registerverweise innerhalb der Anweisungen umbenennen und die Anweisungen (schließlich) zu einer ausgewählten Ausführungseinheit versenden kann. Decodierte Anweisungen können in einer Warteschlange 825 gespeichert werden. Es ist zu beachten, dass, während eine einzige Warteschlangestruktur der einfachen Veranschaulichung wegen in 8 dargestellt ist, es klar ist, dass separate Warteschlangen für jede der mehreren verschiedenen Arten von Ausführungseinheiten bereitgestellt sein können.
-
Ebenso in 8 dargestellt ist eine Ausgabelogik 830 von der decodierte Anweisungen, die in Warteschlange 825 gespeichert sind, an eine ausgewählte Ausführungseinheit ausgegeben werden können. Ausgabelogik 830 kann auch in einer besonderen Ausführungsform mit einer separaten Ausgabelogik für jede der mehreren verschiedenen Arten von Ausführungseinheiten, an welche Ausgabelogik 830 gekoppelt ist, implementiert sein.
-
Decodierte Anweisungen können an eine bestimmte von mehreren Ausführungseinheiten ausgegeben werden. In der dargestellten Ausführungsform weisen diese Ausführungseinheiten eine oder mehrere Ganzzahleinheiten 835, eine Multiplikationseinheit 840, eine Gleitkomma/Vektoreinheit 850, eine Abzweigungseinheit 860 und eine Lade/Speichereinheit 870 auf. In einer Ausführungsform kann Gleitkomma/Vektoreinheit 850 konfiguriert sein, SIMD oder Vektordaten von 128 oder 256 Bits handzuhaben. Ferner noch kann Gleitkomma/Vektorausführungseinheit 850 IEEE-754 Doppelpräzisionsgleitkommaoperationen ausführen. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Rückschreibeinheit 880 bereitgestellt werden. Es ist zu beachten, dass in manchen Implementierungen separate Rückschreibeinheiten mit jeder der Ausführungseinheiten verknüpft sein können. Überdies ist klar, dass, während jede der Einheiten und Logik, die in 8 dargestellt sind, bei einer hohen Stufe gezeigt wird, eine besondere Implementierung mehr oder andere Strukturen aufweisen kann.
-
Es ist zu beachten, dass in einem Prozessor mit asymmetrischen Kernen, wie gemäß den Mikroarchitekturen von 7 und 8, Arbeitslasten dynamisch aus Leistungsverwaltungsgründen getauscht werden können, da diese Kerne, obwohl sie verschiedene Pipeline-Designs und -Tiefen haben, von derselben oder einer verwandten ISA sein können. Ein solcher dynamischer Kerntausch kann in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch einen Kernel) transparent ist.
-
Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne mit Pipelines entworfen ist, wie in einer oder mehreren von 5-8, kann in vielen verschiedenen Endprodukten implementiert werden, die von Mobilvorrichtungen bis zu Serversystemen reichen. Unter Bezugnahme nun auf 9 ist ein Blockdiagramm eines Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. In der Ausführungsform von 9 kann Prozessor 900 ein SoC sein, das mehrere Domänen aufweist, von welchen jede gesteuert werden kann, um bei einer unabhängigen Betriebsspannung und Betriebsfrequenz zu arbeiten. Als ein spezifisches veranschaulichendes Beispiel kann Prozessor 900 ein Intel® Architecture Core™-basierter Prozessor wie ein i3, i5, i7 oder ein anderer solcher Prozessor sein, der von Intel Corporation erhältlich ist. Es können jedoch andere Niederleistungsprozessoren wie von Advanced Micro Devices, Inc. (AMD) of Sunnyvale, Kalif., erhältlich, ein ARM-basiertes Design von ARM Holdings, Ltd. oder seinem Lizenznehmer oder ein MIPS-basiertes Design von MIPS Technologies, Inc. of Sunnyvale, Kalif. oder deren Lizenznehmer oder Anwender in anderen Ausführungsformen vorhanden sein, wie ein Apple A7 Prozessor, ein Qualcomm Snapdragon Prozessor oder Texas Instruments OMAP Prozessor. ein solches SoC kann in einem Niederleistungssystem wie einem Smartphone, Tablet Computer, Phablet Computer, Ultrabook™ Computer oder einer anderen tragbaren Rechenvorrichtung oder damit verbundenen Vorrichtung verwendet werden.
-
In der Ansicht hoher Stufe, die in 9 dargestellt ist, weist Prozessor 900 mehrere Kerneinheiten 9100-910n auf. Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cache-Speicher und andere Schaltkreise aufweisen. Jede Kerneinheit 910 kann einen oder mehrere Anweisungssätze (z.B. an x86 Anweisungssatz (mit einigen Erweiterungen, die bei neueren Versionen hinzugefügt wurden); einen MIPS-Anweisungssatz; einen ARM-Anweisungssatz (mit optional zusätzlichen Erweiterungen wie NEON)) oder anderen Anweisungssatz oder Kombinationen davon aufweisen. Es ist zu beachten, dass manche der Kerneinheiten heterogene Ressourcen sein können (z.B. mit einem unterschiedlichen Design). Zusätzlich kann jeder solche Kern an einen Cache-Speicher (nicht dargestellt) gekoppelt sein, der in einer Ausführungsform ein Cache-Speicher gemeinsamer Stufe (L2) sein kann. Ein nicht flüchtiger Datenspeicher 930 kann zum Speichern verschiedener Programme und anderer Daten verwendet werden. Zum Beispiel kann dieser Datenspeicher verwendet werden, um mindestens Teile von Mikrocode, Startinformationen wie eine BIOS, andere System Software oder so weiter zu speichern.
-
Jede Kerneinheit 910 kann auch eine Schnittstelle wie eine Busschnittstelleneinheit aufweisen, um Zwischenverbindung zu zusätzlichen Schaltkreisen des Prozessors zu ermöglichen. In einer Ausführungsform ist jede Kerneinheit 910 an ein kohärentes Fabric gekoppelt, das als eine primäre, Cache-kohärente On-Die-Zwischenverbindung dienen kann, die ihrerseits an eine Speichersteuerung 935 gekoppelt ist. Speichersteuerung 935 steuert wiederum Kommunikationen mit einem Speicher wie einem DRAM (zur besseren Veranschaulichung in 9 nicht dargestellt).
-
Zusätzlich zu Kerneinheiten sind zusätzliche Verarbeitungsmaschinen in dem Prozessor vorhanden, die mindestens eine Grafik Einheit 920 aufweisen, die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) aufweisen kann, um Grafikverarbeitung durchzuführen wie auch möglicherweise Allzweckbetriebe auf dem Grafikprozessor (sogenannter GPGPU-Betrieb) durchzuführen. Zusätzlich kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Signalprozessor 925 kann gestaltet sein, eingehende Bilddaten zu verarbeiten, die von einer oder mehreren Aufnahmevorrichtungen empfangen werden, entweder innerhalb des SoC oder off-chip.
-
Andere Beschleuniger können auch vorhanden sein. In der Veranschaulichung von 9 kann ein Videocodierer 950 Codierbetriebe, die Codieren und Decodieren aufweisen, für Videoinformationen durchführen, z.B. Bereitstellen einer Hardware-Beschleunigungsunterstützung für hochauflösenden Videoinhalt. Eine Anzeigesteuerung 955 kann ferner bereitgestellt sein, um Anzeigebetriebe zu beschleunigen, die Unterstützung für interne und externe Anzeigen eines Systems bereitstellen. Zusätzlich kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsbetriebe wie sichere Startbetriebe, verschiedene Kryptographiebetriebe und so weiter durchzuführen.
-
Jede der Einheiten kann ihren Leistungsverbrauch durch einen Leistungsverwalter 940 gesteuert haben, der Steuerlogik aufweisen kann, um die verschiedenen hier beschriebenen Leistungsverwaltungstechniken durchzuführen.
-
In manchen Ausführungsformen kann SoC 900 ferner ein nicht kohärentes Fabric aufweisen, das an das kohärente Fabric gekoppelt ist, an das verschiedene periphere Vorrichtungen gekoppelt sein können. Eine oder mehrere Schnittstellen 960a-960d ermöglichen Kommunikation mit einer oder mehreren Off-Chip-Vorrichtungen. Solche Kommunikationen können über eine Reihe von Kommunikationsprotokollen erfolgen, wie PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI, unter anderen Arten von Kommunikationsprotokollen. Obwohl bei dieser hohen Stufe in der Ausführungsform von 9 dargestellt, ist klar, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
-
Unter Bezugnahme nun auf 10 ist ein Blockdiagramm eines repräsentativen SoC dargestellt. In der dargestellten Ausführungsform kann SoC 1000 ein Multi-Kern-SoC sein, das für einen Niederleistungsbetrieb konfiguriert ist, um zur Eingliederung in ein Smartphone oder eine andere Niederleistungsvorrichtung wie einen Tablet Computer oder eine andere tragbare Rechenvorrichtung optimiert zu sein. Als ein Beispiel kann SoC 1000 unter Verwendung von asymmetrischen oder verschiedenen Arten von Kernen implementiert sein, wie Kombinationen von Kernen höherer Leistung und/oder niederer Leistung, z.B. ungeordnete Kerne und geordnete Kerne. In verschiedenen Ausführungsformen können diese Kerne auf einem Intel® Architecture™ Kerndesign oder einem ARM Architekturdesign basieren. In noch anderen Ausführungsformen kann eine Mischung aus Intel® und ARM Kernen in einem bestimmten SoC implementiert sein.
-
Wie in 10 erkennbar ist, weist SoC 1000 eine erste Kerndomäne 1010 mit mehreren ersten Kernen 10120-10123 auf. In einem Beispiel können diese Kerne Niederleistungskerne wie geordnete Kerne sein. In einer Ausführungsform können diese ersten Kerne als ARM Cortex A53 Kerne implementiert sein. Diese Kerne sind wiederum an einen Cache-Speicher 1015 von Kerndomäne 1010 gekoppelt. Zusätzlich weist SoC 1000 eine zweite Kerndomäne 1020 auf. In der Veranschaulichung von 10 weist eine zweite Kerndomäne 1020 mehrere zweite Kerne 10220-10223 auf. In einem Beispiel können diese Kerne höhere Leistung verbrauchende Kerne als erste Kerne 1012 sein. In einer Ausführungsform können die zweiten Kerne ungeordnete Kerne sein, die als ARM Cortex A57 Kerne implementiert sind. Diese Kerne sind wiederum an einen Cache-Speicher 1025 von Kerndomäne 1020 gekoppelt. Es ist zu beachten, dass, während das in 10 dargestellte Beispiel 4 Kerne in jeder Domäne aufweist, klar ist, dass in anderen Beispielen mehr oder weniger Kerne in einer bestimmen Domäne vorhanden sein können.
-
Mit weiterer Bezugnahme auf 10 ist auch eine Grafikdomäne 1030 bereitgestellt, die eine oder mehrere Grafikverarbeitungseinheiten (GPUs) aufweisen kann, die konfiguriert sind, unabhängig Grafikarbeitslasten durchzuführen, die z.B. durch einen oder mehrere Kerne von Kerndomänen 1010 und 1020 bereitgestellt werden. Als ein Beispiel kann GPU-Domäne 1030 verwendet werden, um Anzeigeunterstützung für eine Reihe von Schirmgrößen bereitzustellen, zusätzlich zur Bereitstellung von Grafik- und Anzeigewiedergabebetrieben.
-
Wie erkennbar ist, sind die verschiedenen Domänen an eine kohärente Zwischenverbindung 1040 gekoppelt, die in einer Ausführungsform ein Cache-kohärentes Zwischenverbindungs-Fabric sein kann, das seinerseits an eine integrierte Speichersteuerung 1050 gekoppelt ist. Die kohärente Zwischenverbindung 1040 kann in manchen Beispielen einen gemeinsamen Cache-Speicher, wie einen L3-Cache, aufweisen. In einer Ausführungsform kann Speichersteuerung 1050 eine direkte Speichersteuerung sein, um mehrere Kommunikationskanäle mit einem Off-Chip-Speicher, wie mehrere Kanäle eines DRAM bereitzustellen (zur besseren Veranschaulichung in 10 nicht dargestellt).
-
In verschiedenen Beispielen kann die Anzahl der Kerndomänen variieren. Zum Beispiel kann für ein Niederleistungs-SoC, das zur Eingliederung in eine mobile Rechenvorrichtung geeignet ist, eine begrenzte Anzahl von Kerndomänen vorhanden sein, wie in 10 dargestellt. Ferner noch kann in solchen Niederleistungs-SoCs die Kerndomäne 1020, die Kerne höherer Leistung aufweist, eine geringere Anzahl solcher Kerne haben. Zum Beispiel können in einer Implementierung zwei Kerne 1022 bereitgestellt sein, um Betrieb bei verringerten Leistungsverbrauchsstufen zu ermöglichen. Zusätzlich können die verschiedenen Kerndomänen auch an eine Unterbrechungssteuerung gekoppelt sein, um dynamisches Tauschen von Arbeitslasten zwischen den verschiedenen Domänen zu ermöglichen.
-
In weiteren Ausführungsformen kann eine größere Anzahl von Kerndomänen wie auch zusätzliche optionale IP Logik vorhanden sein, indem ein SoC auf höhere Arbeitsleistungs-(und Leistungs-) Stufen zur Eingliederung in andere Rechenvorrichtungen, wie Desktops, Server, Rechensysteme hoher Arbeitsleistung. Basisstationen und so weiter skaliert wird. Als ein solches Beispiel können 4 Kerndomänen, die jeweils eine bestimmte Anzahl von ungeordneten Kernen haben, bereitgestellt sein. Ferner noch können zusätzlich zu einer optionalen GPU-Unterstützung (die als ein Beispiel die Form einer GPGPU annehmen kann) ebenso ein oder mehrere Beschleuniger, um optimierte Hardware-Unterstützung für bestimmte Funktionen bereitzustellen (z.B. Web-Serving, Netzwerkverarbeitung, Umschalten oder so weiter), bereitgestellt sein. Zusätzlich kann eine Eingangs-/Ausgangsschnittstelle vorhanden sein, um solche Beschleuniger an Off-Chip-Komponenten zu koppeln.
-
Unter Bezugnahme nun auf 11 ist ein Blockdiagramm eines anderen beispielhaften SoC dargestellt. In der Ausführungsform von 11 kann SoC 1100 verschiedene Schaltkreise aufweisen, um hohe Arbeitsleistung für Multimedia-Anwendungen, Kommunikationen und andere Funktionen zu ermöglichen. Als solches ist SoC 1100 zur Eingliederung in eine Vielfalt tragbarer oder anderer Vorrichtungen, wie Smartphones, Tablet Computer, Smart-TVs und so weiter geeignet. In dem dargestellten Beispiel weist SoC 1100 eine zentrale Prozessoreinheits- (CPU) Domäne 1110 auf. In einer Ausführungsform können mehrere einzelne Prozessorkerne in der CPU-Domäne 1110 vorhanden sein. Als ein Beispiel kann CPU-Domäne 1110 ein Quad-Kernprozessor mit 4 Multithread-Kernen sein. Solche Prozessoren können homogene oder heterogene Prozessoren sein, z.B. eine Mischung aus Niederleistungs- und Hochleistungsprozessorkernen.
-
Eine GPU-Domäne 1120 ist wiederum bereitgestellt, um hochentwickelte Grafikverarbeitung in einer oder mehreren GPUs durchzuführen, um Grafik zu behandeln und APIs zu berechnen. Eine DSP-Einheit 1130 kann einen oder mehrere Niederleistungs-DSPs zur Abwicklung von Niederleistungs-Multimedia-Anwendungen wie Musikwiedergabe, Audio/Video und so weiter, zusätzlich zu komplexen Berechnungen die während Ausführung von Multimedia-Anweisungen auftreten können, bereitstellen. Eine Kommunikationseinheit 1140 kann wiederum verschiedene Komponenten aufweisen, um Konnektivität über verschiedene drahtlose Protokolle bereitzustellen, wie zelluläre Kommunikationen (enthaltend 3G/4G LTE), drahtlose Lokalbereichsprotokolle wie Bluetooth™, IEEE 802.11 und so weiter.
-
Ferner noch kann ein Multimedia-Prozessor 1150 verwendet werden, um Aufnahme und Wiederhabe von hochauflösendem Video- und Audioinhalt bereitzustellen, enthaltend Verarbeitung von Benutzergesten. Eine Sensoreinheit 1160 kann mehrere Sensoren und/oder eine Sensorsteuerung zur Verbindung mit verschiedenen Off-Chip-Sensoren bereitstellen, die in einer gegebenen Plattform vorhanden sind. Ein Bildsignalprozessor 1170 kann mit einem oder mehreren separaten ISPs bereitgestellt sein, um Bildverarbeitung in Bezug auf aufgenommenen Inhalt von einer oder mehreren Kameras einer Plattform bereitzustellen, die Standbild- und Videokameras aufweist.
-
Ein Anzeigeprozessor 1180 kann Unterstützung zur Verbindung mit einer hochauflösenden Anzeige einer bestimmten Pixeldichte bereitstellen, enthaltend die Fähigkeit, drahtlos Inhalt zur Wiedergabe auf einer solchen Anzeige zu kommunizieren. Ferner noch kann eine Lokalisierungseinheit 1190 einen GPS-Empfänger mit Unterstützung für mehrere GPS-Konstellationen aufweisen, um Anwendungen äußerst exakter Positionierungsinformationen bereitzustellen, die unter Verwendung eines solchen GPS-Empfängers erhalten werden. Es ist klar, dass, während mit diesem besonderen Satz von Komponenten in dem Beispiel von 11 dargestellt, viele Variationen und Alternativen möglich sind.
-
Unter Bezugnahme nun auf 12, ist ein Blockdiagramm eines beispielhaften Systems dargestellt, mit dem Ausführungsformen verwendet werden können. Wie erkennbar ist, kann System 1200 ein Smartphone oder eine andere drahtlose Kommunikationseinrichtung sein. Ein Basisbandprozessor 1205 ist konfiguriert, verschiedene Signalverarbeitung in Bezug auf Kommunikationssignale durchzuführen, die von dem System gesendet oder empfangen werden sollen. Basisbandprozessor 1205 ist wiederum an einen Anwendungsprozessor 1210 gekoppelt, der eine Haupt-CPU des Systems sein kann, um ein OS und andere System-Software auszuführen, zusätzlich zu Benutzeranwendungen wie viele allgemein bekannte soziale Medien- und Multimedia.-Apps. Anwendungsprozessor 1210 kann ferner konfiguriert sein, eine Vielzahl anderer Rechenoperationen für die Vorrichtung durchzuführen und die hier beschriebenen Leistungsverwaltungstechniken durchzuführen.
-
Anwendungsprozessor 1210 kann wiederum an eine Anwenderschnittstelle/Anzeige 1220, z.B. eine Berührungsbildschirmanzeige, gekoppelt sein. Zusätzlich kann Anwendungsprozessor 1210 an ein Speichersystem gekoppelt sein, das einen nicht flüchtigen Speicher, nämlich einen Flash-Speicher 1230, und einen Systemspeicher, nämlich einen dynamischen Direktzugriffsspeicher (DRAM) 1235 aufweist. Wie ferner erkennbar ist, ist Anwendungsprozessor 1210 ferner an eine Aufnahmevorrichtung 1240 wie eine oder mehrere Bildaufnahmevorrichtungen gekoppelt, die Video und/oder Standbilder aufnehmen können.
-
Weiter unter Bezugnahme auf 12 ist auch einen universelle integrierte Schaltungskarte (UICC, Universal Integrated Circuit Card) 1240, die ein Teilnehmeridentitätsmodul und möglicherweise einen sicheren Datenspeicher und Kryptoprozessor aufweist, an Anwendungsprozessor 1210 gekoppelt. System 1200 kann ferner einen Sicherheitsprozessor 1250 aufweisen, der an Anwendungsprozessor 1210 gekoppelt sein kann. Mehrere Sensoren 1225 können an Anwendungsprozessor 1210 gekoppelt sein, um Eingabe einer Reihe erfasster Informationen zu ermöglichen, wie Beschleunigungsmesser- und andere Umgebungsinformationen. Eine Audio-Ausgabevorrichtung 1295 kann eine Schnittstelle bereitzustellen, um Ton z.B. in der Form von Sprachkommunikationen, abgespielter oder übertragener Audiodaten und so weiter auszugeben.
-
Wie ferner veranschaulicht, ist eine kontaktlose Nahfeldkommunikations- (NFC) Schnittstelle 1260 bereitgestellt, die in einem NFC Nahfeld über eine NFC-Antenne 1265 kommuniziert. Während separate Antennen in 12 dargestellt sind, ist klar, dass in manchen Implementierungen eine Antenne oder ein unterschiedlicher Satz von Antennen bereitgestellt sein kann, um verschiedene drahtlose Funktionalität zu ermöglichen.
-
Eine PMIC 1215 ist an Anwendungsprozessor 1210 gekoppelt, um Leistungsverwaltung auf Plattformebene durchzuführen. Zu diesem Zweck kann PMIC 1215 Leistungsverwaltungsanfragen an Anwendungsprozessor 1210 ausgeben, um nach Wunsch in gewisse Niederleistungszustände einzutreten. Überdies kann die PMIC 1215, basierend auf Plattformeinschränkungen, auch die Leistungsstufe anderer Komponenten von System 1200 steuern.
-
Damit Kommunikationen gesendet und empfangen werden können, können verschiedene Schaltkreise zwischen Basisbandprozessor 1205 und einer Antenne 1290 gekoppelt sein. Insbesondere können ein Funkfrequenz (RF)-Sender/Empfänger 1270 und ein drahtloser Lokalnetzwerk (WLAN)-Sender/Empfänger 1275 vorhanden sein. Im Allgemeinen kann RF-Sender/Empfänger 1270 zum Empfangen und Senden drahtloser Daten und Anrufe gemäß einem bestimmten drahtlosen Kommunikationsprotokoll wie dem 3G oder 4G drahtlosen Kommunikationsprotokoll verwendet werden, wie gemäß einem Codemultiplexzugriff (CDMA, Code Division Multiple Access), globalen System für Mobilkommunikation (GSM), Long Term Evolution (LTE) oder anderem Protokoll. Zusätzlich kann ein GPS-Sensor 1280 vorhanden sein. Andere drahtlose Kommunikationen wie Empfang oder Sendung von Funksignalen, z.B. AM/FM und anderen Signalen, können auch bereitgestellt sein. Zusätzlich können über WLAN Sender/Empfänger 1275 auch lokale drahtlose Kommunikationen umgesetzt werden.
-
Unter Bezugnahme nun auf 13 ist ein Blockdiagramm eines anderen beispielhaften Systems dargestellt, mit dem Ausführungsformen verwendet werden können. In der Veranschaulichung von 13 kann System 1300 ein mobiles Niederleistungssystem wie ein Tablet Computer, 2:1 Tablet, Phablet oder ein anderes konvertierbares oder alleinstehendes Tablet-System sein. Wie veranschaulicht, ist ein SoC 1310 vorhanden und kann konfiguriert sein, als ein Anwendungsprozessor für die Vorrichtung zu arbeiten und die hier beschriebenen Leistungsverwaltungstechniken durchzuführen.
-
Eine Reihe von Vorrichtungen kann an SoC 1310 gekoppelt sein. In der dargestellten Veranschaulichung weist ein Speicherteilsystem einen Flash-Speicher 1340 und einen DRAM 1345 gekoppelt an SoC 1310 auf. Zusätzlich ist ein Berührungsfeld 1320 an das SoC 1310 gekoppelt, um Anzeigekapazität und Benutzereingabe über Berührung bereitzustellen, aufweisend Bereitstellen einer virtuellen Tastatur auf einer Anzeige von Berührungsfeld 1320. Zur Bereitstellung von verdrahteter Netzwerkkonnektivität ist SoC 1310 an eine Ethernet-Schnittstelle 1330 gekoppelt. Ein Peripheriegeräte-Hub 1325 ist an SoC 1310 gekoppelt, um eine Verbindung mit verschiedenen peripheren Vorrichtungen zu ermöglichen, die an das System 1300 durch einen von verschiedenen Anschlüssen oder andere Verbinder gekoppelt sein können.
-
Zusätzlich zu internen Leistungsverwaltungsschaltkreis und Funktionalität innerhalb SoC 1310 ist eine PMIC 1380 an SoC 1310 gekoppelt, um auf Plattform basierte Leistungsverwaltung bereitzustellen, z.B. basierend darauf, ob das System durch eine Batterie 1390 oder Wechselstromleistung durch einen AC-Adapter 1395 gespeist wird. Zusätzlich zu dieser Leistungsquellen-basierten Leistungsverwaltung kann PMIC 1380 ferner Plattformleistungsverwaltungsaktivitäten basierend auf Umgebungs- und Nutzungsbedingungen durchführen. Ferner noch kann PMIC 1380 Steuer- und Statusinformationen an das SoC 1310 kommunizieren, um verschiedene Leistungsverwaltungsaktionen innerhalb von SoC 1310 zu veranlassen.
-
Unter weiterer Bezugnahme auf 13 ist, um drahtlose Kapazitäten bereitzustellen, eine WLAN-Einheit 1350 an das SoC 1310 gekoppelt und wiederum an eine Antenne 1355. In verschiedenen Implementierungen kann WLAN-Einheit 1350 Kommunikation gemäß einem oder mehreren drahtlosen Protokollen bereitstellen.
-
Wie ferner veranschaulicht, können mehrere Sensoren 1360 an SoC 1310 gekoppelt sein. Diese Sensoren können verschiedene Beschleunigungsmesser, Umgebungs- und andere Sensoren aufweisen, enthaltend Benutzergestensensoren. Schließlich ist ein Audio-Codec 1365 an SoC 1310 gekoppelt, um eine Schnittstelle zu einer Audioausgabevorrichtung 1370 bereitzustellen. Natürlich ist klar, dass, während mit dieser besonderen Implementierung in 13 dargestellt, viele Variationen und Alternativen möglich sind.
-
Unter Bezugnahme nun auf 14 ist ein Blockdiagramm eines repräsentativen Rechensystems wie Notebook, Ultrabook™ oder ein anderes System mit kleinem Formfaktor dargestellt. Ein Prozessor 1410 weist in einer Ausführungsform einen Mikroprozessor, Multi-Kernprozessor, Multithread-Prozessor, einen Ultraniedrigspannungsprozessor, einen eingebetteten Prozessor, oder ein anderes bekanntes Verarbeitungselement auf. In der veranschaulichten Implementierung dient Prozessor 1410 als eine Hauptverarbeitungseinheit und ein zentraler Hub zur Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400. Als ein Beispiel ist Prozessor 1400 als ein SoC implementiert.
-
Prozessor 1410 kommuniziert in einer Ausführungsform mit einem Systemspeicher 1415. Als ein veranschaulichendes Beispiel ist der Systemspeicher 1415 über mehrere Speichervorrichtungen oder Module implementiert, um eine bestimmte Menge an Systemspeicher bereitzustellen.
-
Zur Bereitstellung einer persistierenden Speicherung von Informationen von Daten, Anwendungen, eines oder mehrerer Betriebssysteme und so weiter, kann ein Massendatenspeicher 1420 auch an Prozessor 1410 gekoppelt sein. In verschiedenen Ausführungsformen, um ein dünneres und leichteres Systemdesign zu ermöglichen, wie auch Ansprechverhalten des Systems zu verbessern, kann dieser Massendatenspeicher durch eine SSD implementiert sein oder der Massendatenspeicher kann vorwiegend unter Verwendung eines Festplattenlaufwerks (HDD) mit einer kleineren Menge an SSD-Datenspeicher implementiert sein, um als ein SSD-Cache zu dienen, um nicht flüchtige Speicherung von Kontextzustand und anderen solchen Informationen während Ereignissen mit gesenkter Leistung zu ermöglichen, sodass eine schnelles Erhöhen von Leistung bei erneuter Einleitung von Systemaktivitäten erfolgen kann. Wie ebenso in 14 gezeigt, kann eine Flash-Vorrichtung 1422 an Prozessor 1410, z.B. über eine serielle periphere Schnittstelle (SPI, Serial Peripheral Interface) gekoppelt sein. Diese Flash-Vorrichtung kann einen nicht flüchtigen Datenspeicher von System-Software bereitstellen, aufweisend eine grundlegende Eingangs-/Ausgangs-Software (BIOS, Basic Input/Output Software) wie auch andere Firmware des Systems.
-
Verschiedene Eingangs-/Ausgangs- (I/O) Vorrichtungen können innerhalb von System 1400 vorhanden sein. Insbesondere ist in der Ausführungsform von 14 eine Anzeige 1424 dargestellt, die eine hochauflösende LCD oder ein LED-Panel sein kann, das ferner einen Berührungsbildschirm 1425 bereitstellt. In einer Ausführungsform kann Anzeige 1424 an Prozessor 1410 über eine Anzeigenzwischenverbindung gekoppelt sein, die als eine Grafikzwischenverbindung hoher Arbeitsleistung implementiert sein kann. Berührungsbildschirm 1425 kann an Prozessor 1410 über eine andere Zwischenverbindung gekoppelt sein, die in einer Ausführungsform eine I2C Zwischenverbindung sein kann. Wie ferner in 14 dargestellt, kann zusätzlich zu Berührungsbildschirm 1425 auch eine Benutzereingabe durch Berührung auch über ein Berührungsfeld 1430 erfolgen, das innerhalb des Gehäuses konfiguriert sein kann und das auch an dieselbe I2C Zwischenverbindung wie Berührungsbildschirm 1425 gekoppelt sein kann.
-
Für wahrnehmbare Berechnung und andere Zwecke können verschiedene Sensoren in dem System vorhanden sein und können an Prozessor 1410 auf verschiedene Weisen gekoppelt sein. Gewisse Trägheits- und Umgebungssensoren können durch einen Sensor-Hub 1440 an Prozessor 1410 gekoppelt sein, z.B. über eine I2C Zwischenverbindung. In der in 14 dargestellten Ausführungsform können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (ALS, Ambient Light Sensor) 1442, einen Kompass 1443 und ein Gyroskop 1444 aufweisen. Andere Umgebungssensoren können einen oder mehrere Wärmesensoren 1446 aufweisen, die in manchen Ausführungsformen an Prozessor 1410 über einen Systemmanagementbus (SMBus) Bus gekoppelt sind.
-
Wie ebenso in 14 erkennbar ist, können verschiedene periphere Vorrichtungen an Prozessor 1410 über eine Zwischenverbindung niedriger Pinzahl (LPC, Low Pin Count) gekoppelt sein. In der dargestellten Ausführungsform können verschiedene Komponenten durch eine eingebettete Steuerung 1435 gekoppelt sein. Solche Komponenten können eine Tastatur 1436 (z.B. gekoppelt über eine PS2-Schnittstelle), einen Lüfter 1437 und einen Wärmesensor 1439 aufweisen. In manchen Ausführungsformen kann Berührungsfeld 1430 auch über eine PS2-Schnittstelle an EC 1435 gekoppelt sein. Zusätzlich kann auch ein Sicherheitsprozessor wie ein sicheres Plattformmodul (TPM, Trusted Platform Module) 1438 an Prozessor 1410 über diese LPC-Zwischenverbindung gekoppelt sein.
-
System 1400 kann mit externen Vorrichtungen auf zahlreiche Weisen kommunizieren, enthaltend drahtlos. In der Ausführungsform in 14 dargestellten Ausführungsform sind verschiedene drahtlose Module, von welchen jedes einer Funkeinrichtung entsprechen kann, die für ein bestimmtes drahtloses Kommunikationsprotokoll konfiguriert ist, vorhanden. Eine Art für drahtlose Kommunikation in einer kurzen Reichweite, wie ein Nahfeld, kann eine NFC-Einheit 1445 sein, die in einer Ausführungsform mit Prozessor 1410 über einen SMBus kommunizieren kann. Es ist zu beachten, dass über diese NFC-Einheit 1445 Vorrichtungen in unmittelbarer Nähe zueinander kommunizieren können.
-
Wie ferner in 14 erkennbar ist, können zusätzliche drahtlose Einheiten andere drahtlose Maschinen kurzer Reichweite aufweisen, enthaltend eine WLAN-Einheit 1450 und eine Bluetooth-Einheit 1452. Unter Verwendung von WLAN-Einheit 1450 können Wi-Fi™ Kommunikationen ausgeführt werden, während über Bluetooth Einheit 1452, Bluetooth™ Kommunikationen kurzer Reichweite erfolgen können. Diese Einheiten können mit Prozessor 1410 über eine bestimmte Verbindung kommunizieren.
-
Zusätzlich können drahtlose Weitbereichskommunikationen, z.B. gemäß einem zellulären oder anderen drahtlosen Weitbereichsprotokoll, über eine WWAN-Einheit 1456 erfolgen, die ihrerseits an ein Teilnehmeridentitätsmodul (SIM, Subscriber Identity Module) 1457 gekoppelt sein kann. Zusätzlich zum Ermöglichen eines Empfangs und einer Verwendung von Positionsinformationen kann auch ein GPS-Modul 1455 vorhanden sein. Es ist zu beachten, dass in der Ausführungsform, die in 14 dargestellt ist, WWAN-Einheit 1456 und eine integrierte Aufnahmevorrichtung wie ein Kameramodul 1454 über eine bestimmte Verbindung kommunizieren können.
-
Ein integriertes Kameramodul 1454 kann in den Deckel eingefügt sein. Zur Bereitstellung von Audioeingängen und -ausgängen kann ein Audioprozessor durch einen Digitalsignalprozessor (DSP) 1460 implementiert sein, der an einen Prozessor 1410 über eine hochauflösende Audio- (HDA, High Definition Audio) Verbindung gekoppelt sein kann. Ebenso kann ein DSP 1460 mit einem integrierten Codierer/Decodierer (CODEC) und Verstärker 1462 kommunizieren, der wiederum an Ausgangslautsprecher 1463 gekoppelt sein kann, die in dem Gehäuse implementiert sein können. Ähnlich können Verstärker und CODEC 1462 gekoppelt sein, um Audioeingänge von einem Mikrofon 1465 zu empfangen, das in einer Ausführungsform durch Dual-Array-Mikrofone (wie ein digitales Mikrophon-Array) implementiert sein kann, um Hochqualitätsaudioeingänge bereitzustellen, die sprachaktivierte Steuerung verschiedener Betriebe innerhalb des Systems ermöglichen. Es ist auch zu beachten, dass Audioausgänge von Verstärker/CODEC 1462 an eine Kopfhörerbuchse 1464 bereitgestellt werden können. Obwohl mit diesen besonderen Komponenten in der Ausführungsform von 14 dargestellt, ist klar, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
-
Ausführungsformen können in vielen verschiedenen Systemarten implementiert sein. Unter Bezugnahme nun auf 15 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 15 dargestellt, ist ein Multiprozessorsystem 1500 ein Punkt-zu-Punkt-Zwischenverbindungssystem und weist einen ersten Prozessor 1570 und einen zweiten Prozessor 1580 auf, die über eine Punkt-zu-Punkt-Zwischenverbindung 1550 gekoppelt sind. Wie in 15 dargestellt, kann jeder von Prozessoren 1570 und 1580 ein Mehrfachkernprozessor sein, der erste und zweite Prozessorkerne aufweist (d.h. Prozessoren 1574a und 1574b und Prozessorkerne 1584a und 1584b), obwohl gegebenenfalls viel mehr Kerne in den Prozessoren vorhanden sein können. Zusätzlich kann jeder von Prozessoren 1570 und 1580 auch eine Grafikprozessoreinheit (GPU) 1573, 1583 zum Durchführen von Grafikbetrieben aufweisen. Jeder der Prozessoren kann eine PCU 1575, 1585 zum Durchführen einer Prozessor-basierten Leistungsverwaltung aufweisen.
-
Unter weiterer Bezugnahme auf 15 weist ein erster Prozessor 1570 ferner einen Speichersteuerungs-Hub (MCH, Memory Controller Hub) 1572 und Punkt-zu-Punkt (P-P)-Schnittstellen 1576 und 1578 auf. Ebenso weist zweiter Prozessor 1580 einen MCH 1582 und P-P-Schnittstellen 1586 und 1588 auf. Wie in 15 dargestellt, koppeln MCH 1572 und 1582 die Prozessoren an entsprechende Speicher, nämlich einen Speicher 1532 und einen Speicher 1534, die Teile von Systemspeicher (z.B. DRAM), lokal an den entsprechenden Prozessoren angebracht, sein können. Erster Prozessor 1570 und zweiter Prozessor 1580 können an einen Chipset 1590 über P-P-Zwischenverbindung 1562 bzw. 1564 gekoppelt sein. Wie in 15 dargestellt, weist Chipset 1590 P-P-Schnittstellen 1594 und 1598 auf.
-
Überdies weist Chipset 1590 eine Schnittstelle 1592 auf, um Chipset 1590 mit einer Grafikmaschine hoher Arbeitsleistung 1538, durch eine P-P-Zwischenverbindung 1539 zu koppeln. Chipset 1590 kann wiederum an einen ersten Bus 1516 über eine Schnittstelle 1596 gekoppelt sein. Wie in 15 dargestellt, können verschiedene Eingangs-/Ausgangs- (I/O) Vorrichtungen 1514 an ersten Bus 1516 gekoppelt sein, gemeinsam mit einer Busbrücke 1518, die den ersten Bus 1516 an einen zweiten Bus 1520 koppelt. Verschiedene Vorrichtungen können an zweiten Bus 1520 gekoppelt sein, enthaltend zum Beispiel eine Tastatur/Maus 1522, Kommunikationsvorrichtungen 1526 und eine Datenspeichereinheit 1528, wie in einer Ausführungsform ein Plattenlaufwerk oder eine andere Massendatenspeichervorrichtung, die Code 1530 aufweisen kann. Ferner kann ein Audio I/O 1524 an den zweiten Bus 1520 gekoppelt sein. Ausführungsformen können in andere Arten von Systemen eingegliedert sein, enthaltend mobile Vorrichtungen wie ein zelluläres Smartphone, Tablet Computer, Netbook, Ultrabook™ oder so weiter.
-
16 ist ein Blockdiagramm, das ein IP-Kernentwicklungssystem 1600 veranschaulicht, das zur Herstellung einer integrierten Schaltung verwendet werden kann, um Betriebe gemäß einer Ausführungsform durchzuführen. Das IP-Kernentwicklungssystem 1600 kann verwendet werden, um modulare, wieder verwendbare Designs zu erzeugen, die in ein größeres Design eingegliedert oder zur Konstruktion einer gesamten integrierten Schaltung verwendet werden können (z.B. eine SoC integrierte Schaltung). Eine Designstätte 1630 kann eine Software-Simulation 1610 eines IP-Kerndesigns in eine Programmiersprache hoher Ebene (z.B. C/C++) erzeugen. Die Software-Simulation 1610 kann zum Gestalten, Testen und Verifizieren des Verhaltens des IP-Kerns verwendet werden. Ein Registertransferstufen- (RTL) Design kann dann aus dem Simulationsmodell erzeugt oder synthetisiert werden. Das RTL-Design 1615 ist eine Abstraktion des Verhaltens der integrierten Schaltung, das den Fluss digitaler Signale zwischen Hardware-Registern als Modell darstellt, aufweisend die zugehörige Logik, die unter Verwendung der digitalen Modellsignale durchgeführt wird. Zusätzlich zu einem RTL-Design 1615 können auch Designs niedriger Stufe auf Logikebene oder Transistorebene erzeugt, gestaltet oder synthetisiert werden. Somit können bestimmte Einzelheiten des anfänglichen Designs und der Simulation variieren.
-
Das RTL-Design 1615 oder Äquivalent kann ferner an der Designstätte zu einem Hardware-Modell 1620 synthetisiert werden, das in einer Hardware-Beschreibungssprache (HDL, Hardware Description Language) oder einer anderen Darstellung physischer Designdaten sein kann. Die HDL kann ferner simuliert oder getestet werden, um das IP-Kerndesign zu verifizieren. Das IP-Kerndesign kann zur Lieferung an eine Fertigungsanlage 1665 einer Drittpartei unter Verwendung eines nicht flüchtigen Speichers 1640 (z.B. Festplatte, Flash-Speicher oder ein anderes nicht flüchtiges Datenspeichermedium) gespeichert werden. Alternativ kann das IP-Kerndesign über eine verdrahtete Verbindung 1650 oder drahtlose Verbindung 1660 gesendet werden (z.B. über das Internet). Die Fertigungsanlage 1665 kann dann eine integrierte Schaltung fertigen, die mindestens teilweise auf dem IP-Kerndesign basiert. Die gefertigte integrierte Schaltung kann konfiguriert sein, Betriebe gemäß mindestens einer hier beschriebenen Ausführungsform durchzuführen.
-
Wie zuvor oben vor Besprechung von 1-16 erwähnt, stellte die Antragstellerin fest, dass die Verwendung des LTR-Mechanismus, implementiert mit Firmware, Latenz aufgrund von Firmware-Verarbeitung hinzufügen kann, die zu einer schlechten Arbeitsleistung führt, wenn eine IP-Schaltung oder Vorrichtung länge als wünschenswert auf eine Ressource warten muss. Eine Ausführungsform der Erfindung stellt jedoch die Firmware (die die LTR verarbeitet) mit einer Hardware-„Rücklaufsperre“ bereit, wobei Hardware den grundlegenden Auslöser und Abschluss von Firmware-Aktionen verfolgt. Die Hardware ergreift einfache Korrekturmaßnahmen, die für die Aufgabe spezifisch sind, wenn die Firmware länger als zulässig braucht, um die Aufgabe oder Aufgaben abzuschließen.
-
Ein Beispiel hilft, das Problem, das von der Antragstellerin festgestellt wurde, zu veranschaulichen. Es gibt ein Szenario, wo eine, von der IP-Schaltung zuvor berichtete LTR für einen PLL 100 µs war. Die SoC hat den PLL ausgeschaltet, der 80 µs braucht, um wieder eingeschaltet zu werden (da 80 µs kürzer ist als 100 µs). Dies ist rechtmäßig. Die IP-Schaltung liefert eine neue 20 µs LTR, wobei dem SoC 100 µs (der Wert des alten LTR-Werts) zur Verfügung stehen, um vorherige Leistungsaktionen aufzuheben, bevor die neue LTR beginnt, honoriert zu werden. Mit anderen Worten, der LTR-Mechanismus kann einer Regel folgen, dass eine neue LTR einer Komponente garantiert erst wirksam wird, nachdem der Zeitraum der „alten LTR“ verstrichen ist. Diese Regel besteht unter Berücksichtigung, dass das SoC Maßnahmen ergriffen haben könnten, die erfordern, dass die Zeit der alten LTR abgelaufen ist. In diesem Szenario fordert die IP-Schaltung oder der Kern den PLL unmittelbar dann an, wenn die neue 20 µs LTR wirksam sein sollte (d.h. 100 µs nachdem die neue LTR gesendet wurde). Dem SoC verblieben dann 20 µs (neue LTR), um den PLL verfügbar zu machen (oder 120 µs nach Empfang der neuen LTR). In diesem Szenario war aber die Firmware mit einer nicht zugehörigen Aufgabe beschäftigt, als die neue LTR-Nachricht eintraf, sodass die Firmware Verarbeitung der neuen LTR nicht in 100 µs abschließen konnte - während keine Verzögerung eingetreten wäre, hätte die Firmware Verarbeitung der neuen LTR 15 µs nach Empfangen der neuen LTR abgeschlossen und dann unmittelbar den Prozess zum Aufwecken des PLL gestartet. Mit anderen Worten, ohne Firmware-Verzögerung hätte eine Entscheidung, den PLL zu starten, zum Beispiel 15 µs nach Empfang der neuen LTR begonnen und nicht 100 µs nach der neuen LTR. Mit der Verzögerung von 100 µs jedoch, beginnt ein Aufheben von Leistungsaktionen gleichzeitig damit stattzufinden, dass die IP den PLL anfordert (d.h. 100 µs nach Empfang der LTR), während dies 15 µs nach Empfang der LTR stattfinden hätte sollen (aber ohne die 100 µs Verzögerung), um sicherzustellen, dass der PLL vollständig wieder eingeschaltet ist, bevor die 100 µs „Aufhebung der Zuteilung/alte LTR“ und neuen 20 µs gemeinsam abgelaufen sind. Wie oben erwähnt, braucht der PLL 80 µs zum Einschalten. Und da in diesem Szenario (wo die Firmware 100 µs verzögert war) die Firmware beginnt, den PLL 100 µs nach Empfang der LTR einzuschalten und während eine 20 µs LTR wirksam sein sollte, braucht das Einschalten des PLL: „PLL Einschaltzeit“ - „neue LTR“ = (80 µs - 20 µs) = 60 µs länger als die neue, nun wirksame LTR von 20 µs erlauben kann.
-
Zur näheren Erklärung der Probleme mit Firmware, die LTRs abwickelt, siehe 18A-1 und 18A-2.
-
Die Oberseite von 18A-1 (nicht im Maßstab) behandelt ein Szenario, wo LTR-Verarbeitung von Hardware, wie einem SoC, abgewickelt wird. Das Szenario ist, dass die zuvor gemeldete LTR 1801 (von einer IP-Schaltung an den Leistungsverwaltungsagenten des SoC gesendet) 100 µs war. Infolgedessen hat das SoC eine Ressource (z.B. PLL) ausgeschaltet (1802), die 80 µs braucht, um wieder eingeschaltet zu werden. Die Zeitdauer 1801', um Leistung zu senken/Latenz zu erhöhen, kann minimal sein. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1803 mit einer 50 µs Latenz. Das SoC verarbeitet die LTR über eine Zeit 1804 und ändert dann die Latenz/Leistungsstufe über eine andere Zeitdauer 1805. Dies führt zu einem neuen Latenz/Leistungszustand 1806. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1807 mit einer 10 µs Latenz. Das SoC verarbeitet die LTR über eine Zeit 1808 und ändert dann die Latenz/Leistungsstufe über eine andere Zeitdauer 1809. Dies führt zu einem neuen Latenz/Leistungszustand 1810. Dies ist rechtmäßig.
-
Die Unterseite von 18A-1 (nicht im Maßstab) behandelt ein Szenario, wo LTR-Verarbeitung durch Firmware, anstelle von Hardware, wie einem SoC abgewickelt wird. Das Szenario ist, dass die zuvor gemeldete LTR 1811 (gesendet von einer IP-Schaltung an die Firmware) 100 µs war. Infolgedessen hat die Firmware das SoC angewiesen, eine Ressource (z.B. PLL) auszuschalten (1812), die 80 µs braucht, um wieder einzuschalten. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1813 mit einer 50 µs Latenz. Die Firmware verarbeitet die LTR über eine Zeit 1814 und ändert dann die Latenz/Leistungsstufe über eine andere Zeitdauer 1815. Dies führt zu einem neuen Latenz/Leistungszustand 1816. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1817 mit einer 10 µs Latenz. Das SoC verarbeitet die LTR über eine Zeit 1818. Die Firmware war jedoch bereits mit einer anderen Aufgabe beschäftigt (die nicht mit Verarbeitung LTR 1817 zusammenhängt) und konnte sich nicht der Verarbeitung der LTR für eine gewisse Zeit zuwenden, was zu einer längeren Verarbeitungszeit 1818 führt. In der Zeit, in der die LTR durch die Firmware verarbeitet wird, und eine Änderung der Latenz/Leistungsstufe über eine andere Zeitdauer 1819 beginnt, ist eine Zustandsverletzung eingetreten 1820. Dieser Ausfall von Firmware, die Aufgaben innerhalb der zulässigen Zeit abzuschließen, kann zu einer schlechten Benutzererfahrung führen, die möglicherweise einen Verlust einer Verwendung des Systems und/oder Datenverlust aufgrund von Bedingungen wie Pufferüberläufen oder Unterschreitungen aufweist.
-
Die Zeitdauer, die für die Firmware zur Verarbeitung einer LTR angenommen wird, könnte verlängert werden, um die seltene längste Latenz abzudecken. Aber damit könnten im Wesentlichen die Szenarien begrenzt werden, unter welchen verschiedene Ressourcen, enthaltend PLL A, leistungseinsparenden Betrieben unterzogen werden können. Ebenso ist die Wahrscheinlichkeit auf die oben erwähnte seltene Latenz für die Firmware zu treffen, sehr gering. Folglich würde die Leistung-Penalty in 99% von Fällen angewendet werden, während sie nur in 1% der Zeit wirksam wäre.
-
Anstelle der oben erwähnten übervorsichtigen Strategie zur Sicherstellung, dass Firmware-Verzögerungen nicht in Latenzproblemen resultieren, stellt eine Ausführungsform der Erfindung eine Hardware-„Rücklaufsperre“ bereit, wobei Hardware nur den grundlegenden Auslöser und den Abschluss von Firmware-Aktionen verfolgt, wobei sie einfache Korrekturmaßnahmen ergreift, die für die Aufgabe spezifisch sind, wenn Firmware länger als zulässig braucht, um die Aufgabe oder Aufgaben abzuschließen.
-
In einer Ausführungsform der Erfindung kommuniziert die Firmware an Hardware (z.B. Leistungssteuerung) eine nominelle Verarbeitungslatenz. Die Hardware startet einen Zähler, wenn die neue LTR empfangen wird. Wenn die Firmware die neue LTR nicht innerhalb der nominellen Verarbeitungszeit verarbeitet hat (wieder ein sehr seltener Fall), bringt die Hardware weiterhin das SoC auf eine hohen Leistungs-, niederen Latenzzustand als ein Mittel zur Sicherstellung, dass LTRs nicht verletzt werden. Daher kann in dem oben erwähnten Szenario die nominelle Firmware-Verarbeitungszeit 15 µs (anstatt 100 µs) sein. Somit bewegt die Hardware 15 µs nach Eintreffen der neuen Nachricht das SoC in einen Niederlatenzzustand, aufweisend ein Einschalten des PLL A (der 80 µs für einen Neustart braucht). Somit wäre die Summe von 15 µs der Latenzen (z.B. 10 µs für die Firmware zur Verarbeitung der LTR und 5 µs Fabric-Sendungsmehraufwand) und 80 µs PLL Startzeit (80 µs) 95 µs, was weniger als die zuvor gemeldete 100 µs LTR ist. Im normalen Fall ist Firmware imstande, die LTR innerhalb der nominellen Zeit (15 µs im oben erwähnten Szenario) zu verarbeiten, sodass das SoC nicht künstlich in den Niederlatenzzustand gebracht wird.
-
18A-2 (nicht im Maßstab) behandelt eine Ausführungsform der Erfindung, wo LTR-Verarbeitung durch Firmware und Hardware, wie ein SoC, abgewickelt wird. Das Szenario ist, dass die zuvor gemeldete LTR 1821 (gesendet von einer IP-Schaltung an den Leistungsverwaltungsagenten des SoC und Firmware) 100 µs war. Infolgedessen haben das SoC und die Firmware eine Ressource (z.B. PLL) ausgeschaltet (1822), die 80 µs braucht, um wieder einzuschalten. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1823 mit einer 50 µs Latenz. Die Firmware verarbeitet die LTR über eine Zeit 1824 und ändert dann die Latenz/Leistungsstufe über eine andere Zeitdauer 1825. Um als „Rücklaufsperre“ zu arbeiten, wird ein Zeitgeber gestartet 1831, wenn die Firmware beginnt, die LTR zu verarbeiten, und endet erst, wenn die Firmware fertig ist, wenn die Firmware Verarbeitung der neuen LTR beendet hat und eine Änderung in den Ressourcenzustand 1825 begonnen hat. Dies führt zu einem neuen Latenz/Leistungszustand 1826. Dies ist rechtmäßig. Die IP-Schaltung sendet dann eine neue LTR 1827 mit einer 10 µs Latenz. Die Firmware verarbeitet die LTR über eine Zeit 1828. Ein Zeitgeber wird gestartet 1833, wenn die Firmware beginnt, die LTR zu verarbeiten, und zu einem vorbestimmten Schwellenzeitpunkt endet 1834. Nach Ablauf interveniert die Hardware und beginnt, den Ressourcenzustand 1829 zu ändern. Dies führt zu einem neuen Latenz/Leistungszustand 1830 und vermeidet eine Verletzung, die eingetreten wäre 1835, wäre die Firmware ohne die Hardware-Rücklaufsperre betrieben worden.
-
17A und 17B veranschaulichen ein Verfahren 1700 zur Abwicklung von LTRs unter Verwendung von sowohl Firmware als auch Hardware. Ausführungsformen der Erfindung werden angesichts von 17A und 17B besprochen.
-
Eine Ausführungsform weist auf: ein System, das Hardware-Logik und Firmware, die an die Hardware-Logik gekoppelt ist, aufweist. Hardware (HW)-Logik weist Logik auf, die mindestens teilweise in Hardware implementiert ist, wie HW-Leistungszustandsverwalter 1701, HW-Auszeit-Logik 1703, HW-Ereignisdetektor-Logik 1704 und/oder HW-Unterbrechung-Logik 1705. Eine solche Logik kann über ein oder mehrere Module verteilt sein. Solche Logik kann in Hardware aufgewiesen sein, wie eine Hardware-Komponente von PMC 1900 von 19. PCU 138 (1) kann mit PMC 1900 (19) kommunizieren. Zum Beispiel kann die PCU Spannungsinformationen an die PMC bereitstellen. Die PMC kann über eine Spannungsschiene, einen Bus und dergleichen an den Prozessor gekoppelt sein. Bezüglich 19 weist PMC 1900 in einer Ausführungsform HW-Ereignisdetektor-Logik 1704 (Nachrichtendecodieren) auf. Logik 1704 kommuniziert mit HW-Auszeit-Logik 1703 (Zeitgeber) und HW-Unterbrechung-Logik 1705 (Unterbrechungslogik). Firmware 1702 kann in Speicher aufgewiesen sein, der an eine Mikrosteuerung von PMC 1900 gekoppelt ist. Die Mikrosteuerung kann mit HW Leistungszustandsverwalter 1701 (Ressourcenverwalter) kommunizieren, der eine Zielauswähleinrichtung, die den optimalsten Zustand in Bezug auf Leistung und Arbeitsleistung für jede Ressource bestimmt, und Niederlatenzauslöser, der Ressourcen in ihren niedrigsten Latenzzustand bewegt, wenn notwendig, um sicherzustellen, dass LTR erfüllt ist, aufweisen kann.
-
Die Hardware-Logik soll eine erste LTR entsprechend einem IP-Kern empfangen und die Hardware-Logik soll eine zweite LTR entsprechend dem IP-Kern empfangen (1715). Element 1715 veranschaulicht, wie Hardware-Logik konfiguriert sein kann, um Niederlatenz-Firmware abgewickelte Ereignisse zu erfassen, wie eine LTR. In dem Beispiel von 17A hat die zweite LTR eine niedrigere Latenztoleranz als die erste LTR.
-
Der IP-Kern kann zum Beispiel mindestens eines von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einen Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon aufweisen. Während in verschiedenen Ausführungsformen der IP-Kern, auf den sich die LTR bezieht, sämtliche der unmittelbar zuvor erwähnten Elemente aufweisen kann, kann in noch anderen Ausführungsformen der IP-Kern ein IP-Kern sein, dessen LTR-Abwicklung durch die PMC seitens des IP-Kerns verwaltet wird. Während, wenn die Elemente in dem IP-Kern vorhanden sind, es möglich/wahrscheinlich sein kann, dass der IP-Kern die Latenzen kennt und die Ressourcen selbst basierend auf ihren LTRs verwaltet.
-
Beweis der ersten LTR kann bei Element 1711 zu finden sein. Element 1711 kann jedoch auch einen Vorgabelatenzwert angeben, den ein IP-Kern für eine Ressource hat. Dieser Wert kann dann durch LTRs verändert werden. Bezüglich Element 1711, kann diesem Element 1712 folgen, wodurch Firmware einen nominellen Latenzwert, den die Firmware für die Verarbeitung von LTRs hat, an die Hardware-Logik sendet. Die X- und Z-Werte können dann in Zusammenarbeit mit einem Y-Wert in Element 1713 vorgeschlagen werden. Der Y-Wert kann Startzeit sein, wie die 80 µs Startzeit für den PLL, der oben in dem (den) Beispiel(en) erwähnt ist. Daher kann für eine Situation, wo X = 100 µs, Z = 10 µs und Y = 80 µs, in einen Leistungszustand eingetreten werden, da X - Z (100 µs - 10 µs) größer als Y ist. Leistungszustände können zum Beispiel Zustände wie die oben erwähnten P- (Prozessor) und C-(Kern) Leistungszustände aufweisen.
-
Bezüglich Firmware ist, wie hier verwendet, Firmware eine Klasse von Computer-Software, die die Steuerung niedriger Stufe für eine Hardware einer Vorrichtung bereitstellt. Firmware kann zum Beispiel eine standardisierte Betriebsumgebung für die Software der Vorrichtung bereitstellen (was mehr Hardware-Unabhängigkeit erlaubt) oder, für weniger komplexe Vorrichtungen, als das vollständige Betriebssystem der Vorrichtung dienen, das sämtliche Steuerungs-. Überwachungs- und Datenmanipulationsfunktionen durchführt. Typische Beispiele für Vorrichtungen, die Firmware beinhalten, sind eingebettete Systeme, Verbrauchergeräte, Computer, Computerperipheriegeräte und andere. Firmware kann in nicht flüchtigen Speichervorrichtungen wie ROM, EPROM oder Flash-Speicher gehalten werden. Ändern der Firmware einer Vorrichtung wurde in der Vergangenheit selten oder niemals während ihrer Lebensdauer durchgeführt, ist aber nun eine üblichere Prozedur. Manche Firmware-Speichervorrichtungen sind permanent installiert und können nach Herstellung nicht geändert werden. Allgemeine Gründe für eine Aktualisierung von Firmware wiesen Beheben von Fehlern oder Hinzufügen von Merkmalen zu der Vorrichtung auf. Dies kann erfordern, dass ROM integrierte Schaltungen physisch ersetzt werden oder Flash-Speicher durch eine spezielle Prozedur neu programmiert werden. Firmware wie das ROM BIOS eines Personal Computers können nur elementare Grundfunktionen einer Vorrichtung aufweisen und können nur Dienste an Software höherer Ebene bereitstellen. Firmware wie das Programm eines eingebetteten Systems kann das einzige Programm sein, das auf dem System läuft und alle seiner Funktionen bereitstellt.
-
In Antwort auf Empfangen der zweiten LTR soll die Hardware-Logik eine vorab zeitlich festgelegte Sitzung beginnen (1717) mit einer Startzeit und einer Beendigungszeit. Die Start- und Beendigungszeiten können in Element 1714 festgelegt worden sein. In Element 1714 kann die Länge der Sitzung auf X - Z basieren. In anderen Ausführungsformen jedoch kann die Länge der Sitzung unter Verwendung anderer Kriterien bestimmt werden. In Element 1716 kann die Hardware-Logik eine Unterbrechung in Reaktion auf Erfassen der LTR in Element 1715 ausgeben. In manchen Ausführungsformen, wenn diese Unterbrechung nicht durch die Firmware am Ende der zeitlich festgelegten Sitzung aufgehoben wird, erhöht die Hardware den Leistungszustand der Ressource, auf die die LTR abzielt. Somit soll die Hardware-Logik Eintreffen der zweiten LTR erfassen und in Reaktion auf Erfassen des Eintreffens der zweiten LTR soll die Hardware-Logik eine Unterbrechung kommunizieren (Element 1716) und die vorab zeitlich festgelegte Sitzung starten (Element 1717).
-
Die Hardware-Logik soll bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat. Dieses Erkennen kann auf mehrere Weisen bestätigt werden. Zum Beispiel, wenn die Firmware Verarbeitung der LTR in Element 1718 abschließt, kann die Firmware die Zeit stoppen und zurückstellen (Element 1719) und die Unterbrechung löschen (Element 1721). Ferner kann die Firmware die Hardware-Logik mit einem neuen X-Wert aktualisieren (Element 1720), wobei der Latenzwert (X) mit der zweiten LTR verknüpft ist. Jedes von Elementen 1719, 1720, 1721 kann der Hardware-Logik Beweis bereitstellen, dass die Firmware Verarbeitung der LTR erledigt hat. Mit anderen Worten, Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, weist auf, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat (Element 1721). Die Unterbrechung von Element 1716 wird in Reaktion darauf erzeugt, dass die Hardware-Logik die zweite LTR empfängt.
-
In Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, soll die Hardware-Logik einen Leistungszustand entsprechend einer Ressource senken (Element 1722). Die Entscheidung zum Senken des Leistungszustands kann dieselben Berechnung aufweisen, die mit Element 1713 behandelt wurde, wenn auch mit einem aktualisierten X-Wert aus der neu verarbeiteten LTR. Daher soll in Reaktion auf einen aktualisierten Latenzwert (z.B. X von Element 1722), der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Leistungszustand entsprechend der Ressource senken. Ferner soll die Hardware-Logik, in Reaktion auf einen zusätzlichen Latenzwert (z.B. Z von Element 1722), der von der Firmware an die Hardware-Logik kommuniziert wird, den Leistungszustand entsprechend der Ressource senken. Ferner soll die Hardware-Logik in Reaktion auf einen Latenzwert (z.B. Y von Element 1722), der mit dem IP-Kern verknüpft ist, den Leistungszustand entsprechend dem IP-Kern senken. (Während das oben stehende Beispiel ein spezifisches Tatsachenmuster betrifft, können andere Ausführungsformen, die nicht so einschränkt sind, (anstatt einen Leistungszustand in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, zu senken) einen Leistungszustand lediglich neu auswerten, wobei der Leistungszustand in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, gegebenenfalls erhöht oder gesenkt wird).
-
In einer Ausführungsform der Erfindung weist die Ressource mindestens eines von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon auf.
-
Während 17A die Firmware behandelt, die eine LTR erfolgreich verarbeitet hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist, behandelt 17B die Firmware, die eine LTR nicht erfolgreich verarbeitet hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist. Elemente 1731, 1732, 1733 sind analog zu Elementen 1711, 1712, 1713 und werden der Kürze wegen nicht wieder behandelt. In dem folgenden Beispiel sind jedoch Elemente 1731, 1732, 1733 ausgelassen und es wird angenommen, dass in 17B Element 1734 auf Element 1722 von 17A folgt, wobei Element 1734 den X-Wert von Element 1720 und den Y-Wert von Element 1713 verwendet.
-
In 17B soll die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfangen (Element 1735), wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat. Auch hier kann die Hardware-Logik konfiguriert sein, das Eintreffen der LTR bei Element 1735 zu detektieren und eine Unterbrechung auszugeben (Element 1736), ähnlich Element 1716. In Reaktion auf Empfangen der dritten LTR, soll die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung (1737) mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnen. In Element 1738 soll die Hardware-Logik bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat. In Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, soll die Hardware-Logik den Leistungszustand entsprechend der Ressource erhöhen (Element 1739). Der Zustand kann der niedrigste verfügbare Latenzzustand sein. Daher soll in Bezug auf Element 1738 in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird (Element 1738), die Hardware-Logik den Leistungszustand entsprechend der Ressource erhöhen (und die Nachricht wird nicht von der Firmware kommuniziert).
-
Obwohl die Hardware-Logik „Rücklaufsperre“-Funktionen in Element 1739 durchführt, kann die Firmware fortfahren, die LTR bis zum Abschluss der Verarbeitung zu verarbeiten (Element 1740). Die Firmware kann den Zeitgeber noch stoppen und zurücksetzen (Element 1741), die Unterbrechung von Element 1736 löschen (Element 1743) und den X-Wert aktualisieren (Element 1744). Der Aktualisierungs-X-Wert kann dann verwendet werden, um möglicherweise Leistungszustände zu verändern. Zum Beispiel soll in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet (Element 1742), die Hardware-Logik den Leistungszustand entsprechend dem IP-Kern senken (Element 1744). Wie hier verwendet, kann Anheben eines Leistungszustands austauschbar mit Senken eines Latenzzustands verwendet werden. Daher soll die Firmware Verarbeitung der dritten LTR abschließen, (Element 1740) obwohl die Hardware-Logik bereits den Leistungszustand entsprechend dem IP-Kern erhöht hat (Element 1739); und in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, soll die Firmware der Hardware-Logik einen Latenzwert melden (Element 1742), wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Wie oben festgehalten wurde, beruht die zusätzliche vorab zeitlich festgelegte Sitzung (Element 1737) auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist (wie das X in Element 1734), oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist. Mit anderen Worten, X in dem oben stehenden Beispiel für Element 1734 kann von der LTR von Element 1715 sein, aber dies ist in anderen Ausführungsformen nicht unbedingt der Fall. Bezüglich des in Element 1715 weitergeleiteten X kommuniziert die Firmware (Element 1720) schließlich den Latenzwert zu der Hardware-Logik. Ferner basiert die zusätzliche vorab zeitlich festgelegte Sitzung (Element 1737) auf einem Latenzwert, der mit dem IP-Kern verknüpft ist, wie dem Y-Wert von Element 1734.
-
In einer Ausführungsform der Erfindung soll die Hardware-Logik eine zusätzliche LTR empfangen, die einem zusätzlichen IP-Kern (oder demselben IP-Kern in anderen Ausführungsformen) entspricht. In Reaktion auf Empfangen der zusätzlichen LTR soll die Hardware-Logik eine andere vorab zeitlich festgelegte Sitzung mit einer anderen Startzeit und einer anderen Beendigungszeit beginnen, wobei die vorab zeitlich festgelegte Sitzung und die andere vorab zeitlich festgelegte Sitzung einander überlappen. Mit anderen Worten, die Firmware kann imstande sein, mehrere LTRs von mehreren IP-Kerne gleichzeitig zu verarbeiten. Daher können Ausführungsformen eine Abwicklung von mehr als einer Anfrage erlauben (z.B. zwei konkurrierende Lese- oder Schreibanfragen), anstelle von herkömmlichen Systemen, die sich auf nur eine einzige Anfrage höchster Priorität unter Ausschluss anderer Anfragen konzentrieren. Dies lässt Aufgabe mit geringerer Priorität unbedient. Mit anderen Worten, in manchen herkömmlichen Systemen können andere LTRs, die versuchen, ihre Latenz zu senken, erst bedient werden, wenn andere LTRs bedient sind. Dies kann zu einer Zustandsverletzung ähnlich jener führen, die in 18B aufgetreten ist.
-
Ausführungsformen bieten Vorteile gegenüber anderen LTR-Verwaltungsschemata. Zum Beispiel kann ein solches Schema aufweisen, eine LTR der höchsten Priorität zu unterbrechen und Konflikt mit anderen Aufgaben zu vermeiden. Aber es gibt andere Aufgaben/Unterbrechungen die gleich wichtig oder wichtiger als die LTR sind. Folglich würde nur eine LTR zur höchsten Priorität zu machen möglicherweise jene anderen Aufgaben aushungern lassen (die gleichermaßen wichtig oder wichtiger als die LTR sind), und daher ist dies keine ideale Lösung.
-
In einer Ausführungsform hat die dritte LTR (Element 1735) eine höhere Latenztoleranz als die zweite LTR (Element 1715). Ferner empfängt die Hardware-Logik die zweite LTR zwischen Empfangen der ersten und dritten LTR und die Hardware-Logik soll keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfangen. Daher veranschaulicht 17B eine Situation, wo die dritte LTR tatsächlich höher als die zweite LTR ist, aber dennoch die Leistungsstufe aufgrund der Auszeit erhöht ist (Element 1739).
-
Somit führt in einer Ausführungsform der Erfindung eine Hardware-Zustandsmaschine eine anfängliche Decodierung an einer eingehenden Anfrage (z.B. eine neue LTR) durch, startet einen Zeitgeber und löst eine Unterbrechung an der Firmware nach Erfassen einer von der Firmware abgewickelten, latenzempfindlichen Aufgabe aus. Wenn der Zeitgeber abläuft, bevor die Firmware den Unterbrechungsstatus löscht, ergreift die Hardware Korrekturmaßnahme, indem sie das SoC auf einen niederen Latenz- (und relativ hohen Leistungsverbrauchs-) Zustand bringt. Dieser Zustand, während er leistungsineffizient ist, stellt sicher, dass keine Verletzung von Latenzanforderungen eintritt. Eine solche Ausführungsform erlaubt Implementierung in Firmware, die Post-Silicon (z.B. nachdem ein SoC an Kunden versandt wurde) änderbar/abstimmbar ist, während Probleme mit Funktionsausfällen vermieden werden, die aus Firmware-Latenzen resultieren könnten, die nicht allgemein unter den erforderliche Schwellenwerten sind. Die Auswirkung von Firmware, die die Korrekturmaßnahme auslöst, ist eine Leistungserhöhung anstelle eines Funktionsausfalls oder einer Hardware-Rücksetzung, die durch einen Wächterzeitgeber ausgelöst wird.
-
Die folgenden Beispiele beziehen sich auf weitere Ausführungsformen.
-
Beispiel 1. Ein System, aufweisend: Hardware-Logik; und Firmware zur Kopplung an die Hardware-Logik; wobei: die Hardware-Logik eine erste Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern empfangen soll; die Hardware-Logik eine zweite LTR entsprechend dem IP-Kern empfangen soll, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR, die Hardware-Logik eine vorab zeitlich festgelegte Sitzung mit einer Startzeit und einer Beendigungszeit beginnen soll; die Hardware-Logik bestimmen soll, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, die Hardware-Logik einen Leistungszustand entsprechend einer Ressource senken soll; die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfangen soll, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnen soll; die Hardware-Logik bestimmen soll, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, die Hardware-Logik den Leistungszustand entsprechend der Ressource erhöhen soll.
-
Beispiel 2. Das System von Beispiel 1, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3. Das System von Beispiel 2, wobei: die zusätzliche vorab zeitlich festgelegte Sitzung auf dem Latenzwert basiert, der mit der zweiten LTR verknüpft ist; die Firmware den Latenzwert an die Hardware-Logik kommunizieren soll.
-
Beispiel 4. Das System von Beispiel 1, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 5. Das System von Beispiel 4, wobei: in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Leistungszustand entsprechend der Ressource senken soll.
-
Beispiel 6. Das System von Beispiel 5, wobei: in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Leistungszustand entsprechend der Ressource senken soll.
-
Beispiel 7. Das System von Beispiel 6, wobei: in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Leistungszustand entsprechend dem IP-Kern senken soll.
-
Beispiel 8. Das System von Beispiel 1, wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 9. Das System von Beispiel 8, wobei die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite LTR empfängt.
-
Beispiel 10. Das System von Beispiel 8, wobei: die Firmware einen Latenzwert an die Hardware-Logik melden soll; wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 11. Das System von Beispiel 1, wobei: in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, die Hardware-Logik den Leistungszustand entsprechend der Ressource erhöhen soll; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 12. Das System von Beispiel 1, wobei: die Hardware-Logik Eintreffen der zweiten LTR erfassen soll; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommunizieren und die vorab zeitlich festgelegte Sitzung starten soll.
-
Beispiel 13. Das System von Beispiel 12, wobei: in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware beginnen soll, die zweite LTR zu verarbeiten.
-
Beispiel 14. Das System von Beispiel 1, wobei: der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon; die Ressource mindestens eines aufweist von einem PLL, einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon.
-
Beispiel 15. Das System von Beispiel 1, aufweisend eine Leistungsverwaltungssteuerung (PMC), die in der Hardware-Logik enthalten ist, wobei: Senken des Leistungszustands aufweist, dass die PMC den Leistungszustand senkt.
-
Beispiel 16. Das System von Beispiel 1, wobei: die Firmware Verarbeitung der dritten LTR abschließen soll, obwohl die Hardware-Logik bereits den Leistungszustand entsprechend dem IP-Kern erhöht hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware der Hardware-Logik einen Latenzwert melden soll, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 17. Das System von Beispiel 16, wobei: in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, die Hardware-Logik den Leistungszustand entsprechend dem IP-Kern senken soll.
-
Beispiel 18. Das System von Beispiel 1, wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfangen soll; die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfangen soll.
-
Beispiel 1a. Ein System, aufweisend: Hardware-Logik; und Firmware zur Kopplung an die Hardware-Logik; wobei: die Hardware-Logik eine erste Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern empfangen soll; die Hardware-Logik eine zweite LTR entsprechend dem IP-Kern empfangen soll, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR, die Hardware-Logik eine vorab zeitlich festgelegte Sitzung mit einer Startzeit und einer Beendigungszeit beginnen soll; die Hardware-Logik bestimmen soll, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, die Hardware-Logik einen Latenzzustand entsprechend einer Ressource erhöhen soll; die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfangen soll, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnen soll; die Hardware-Logik bestimmen soll, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, die Hardware-Logik den Latenzzustand entsprechend der Ressource senken soll.
-
In einer Ausführungsform kann Software verwendet werden, um dieselben Funktionen wie die Firmware in einem von Beispielen 1a bis 25a durchzuführen.
-
Beispiel 2a. Das System von Beispiel 1a, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3a. Das System von Beispiel 2a, wobei: die zusätzliche vorab zeitlich festgelegte Sitzung auf dem Latenzwert basiert, der mit der zweiten LTR verknüpft ist; die Firmware den Latenzwert an die Hardware-Logik kommunizieren soll.
-
Beispiel 4a. Das System von Beispiel 1a, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 5a. Das System von Beispiel 4a, wobei: in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll.
-
Beispiel 5a''. Das System nach einem von Beispielen 1a-4a, wobei: in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll.
-
Beispiel 6a. Das System von Beispiel 5a, wobei: in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll.
-
Beispiel 6a. Das System nach einem von Beispielen 1a-Sa, wobei: in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll.
-
Beispiel 7a. Das System von Beispiel 6a, wobei: in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöhen soll.
-
Beispiel 7a''. Das System nach einem von Beispielen 1a-6a, wobei: in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöhen soll.
-
Beispiel 8a. Das System von Beispiel 1a, wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 8a''. Das System nach einem von Beispielen 1a-7a, wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 9a. Das System von Beispiel 8a, wobei die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite LTR empfängt.
-
Beispiel 10a. Das System von Beispiel 8a, wobei: die Firmware einen Latenzwert an die Hardware-Logik melden soll; wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 11a. Das System von Beispiel 1a, wobei: in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource senken soll; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 11a''. Das System nach einem von Beispielen 1a-10a, wobei: in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource senken soll; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 12a. Das System von Beispiel 1a, wobei: die Hardware-Logik Eintreffen der zweiten LTR erfassen soll; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommunizieren und die vorab zeitlich festgelegte Sitzung starten soll.
-
Beispiel 12a''. Das System nach einem von Beispielen 1a-11a, wobei: die Hardware-Logik Eintreffen der zweiten LTR erfassen soll; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommunizieren und die vorab zeitlich festgelegte Sitzung starten soll.
-
Beispiel 13a. Das System von Beispiel 12a, wobei: in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware beginnen soll, die zweite LTR zu verarbeiten.
-
Beispiel 13a''. Das System nach einem von Beispielen 1a-12a, wobei: in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware beginnen soll, die zweite LTR zu verarbeiten.
-
Beispiel 14a. Das System von Beispiel 1a, wobei: der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon; die Ressource mindestens eines aufweist von einem PLL, einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon.
-
Beispiel 14a''. Das System nach einem von Beispielen 1a-13a, wobei: der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon; die Ressource mindestens eines aufweist von einem PLL, einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon.
-
Beispiel 15a. Das System von Beispiel 1a, aufweisend eine Leistungsverwaltungssteuerung (PMC), die in der Hardware-Logik enthalten ist, wobei: Erhöhen des Latenzzustands aufweist, dass die PMC den Latenzzustand erhöht.
-
Beispiel 15a''. Das System nach einem von Beispielen 1a-14a, aufweisend eine Leistungsverwaltungssteuerung (PMC), die in der Hardware-Logik enthalten ist, wobei: Erhöhen des Latenzzustands aufweist, dass die PMC den Latenzzustand erhöht.
-
Beispiel 16a. Das System von Beispiel 1a, wobei: die Firmware Verarbeitung der dritten LTR abschließen soll, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware der Hardware-Logik einen Latenzwert melden soll, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 16a''. Das System nach einem von Beispielen 8a-9a, 11a-15a, wobei: die Firmware Verarbeitung der dritten LTR abschließen soll, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware der Hardware-Logik einen Latenzwert melden soll, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 17a. Das System von Beispiel 16a, wobei: in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöhen soll.
-
Beispiel 18a. Das System von Beispiel 1a, wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfangen soll; die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfangen soll.
-
Beispiel 18a''. Das System nach einem von Beispielen 1a-12a, wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfangen soll; die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfangen soll.
-
Beispiel 19a. Ein System, aufweisend: Hardware-Logik, die an Firmware gekoppelt ist, wobei die Hardware-Logik: erste und zweite Kommunikationen entsprechend einem Intellectual Property (IP)-Kern empfangen soll und eine zeitlich festgelegte Sitzung in Reaktion auf Empfang der zweiten Kommunikation beginnen soll; bestimmen soll, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist, und einen Latenzzustand entsprechend einer Ressource in Reaktion auf Bestimmen, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist, erhöhen soll; eine dritte Kommunikation entsprechend dem IP-Kern empfangen soll und eine zusätzliche zeitlich festgelegte Sitzung in Reaktion auf Empfang der dritten Kommunikation beginnen soll; bestimmen soll, dass die Firmware die Verarbeitung der dritten Kommunikation vor Ablauf der zusätzlichen zeitlich festgelegten Sitzung nicht abgeschlossen hat, und den Latenzzustand entsprechend der Ressource in Reaktion auf Bestimmen, dass die Firmware die Verarbeitung der dritten Kommunikation vor Ablauf der zusätzlichen zeitlich festgelegten Sitzung nicht abgeschlossen hat, senken soll; wobei die erste, zweite und dritte Kommunikation die erste, zweite bzw. dritte Latenztoleranz in Bezug auf die Ressource befördern sollen.
-
Beispiel 20a. Das System von Beispiel 19a, wobei: die zusätzliche zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten Kommunikation verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen Kommunikation verknüpft ist, basiert; die zusätzliche zeitlich festgelegte Sitzung auf dem Latenzwert, der mit der zweiten Kommunikation verknüpft ist, basiert; die Firmware den Latenzwert an die Hardware-Logik kommunizieren soll.
-
Beispiel 21a. Das System von Beispiel 19a, wobei: die zusätzliche zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist; in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll; in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöhen soll; in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöhen soll.
-
Beispiel 22a. Das System von Beispiel 19a, wobei: Bestimmen, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung verarbeitet hat; die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite Kommunikation empfängt; die Firmware einen Latenzwert an die Hardware-Logik melden soll; der Latenzwert mit der zweiten Kommunikation verknüpft ist.
-
Beispiel 23a. Das System von Beispiel 19a, wobei: in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource senken soll; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 24a. Das System von Beispiel 19a, wobei: die Hardware-Logik das Eintreffen der zweiten Kommunikation erfassen soll; in Reaktion auf Erfassen des Eintreffens der zweiten Kommunikation, die Hardware-Logik eine Unterbrechung kommunizieren soll und die zeitlich festgelegte Sitzung starten soll; in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware Verarbeitung der zweiten Kommunikation beginnen soll.
-
Beispiel 25a. Das System von Beispiel 19a, wobei: die Firmware Verarbeitung der dritten Kommunikation abschließen soll, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten Kommunikation abgeschlossen hat, die Firmware der Hardware-Logik einen Latenzwert melden soll, wobei der Latenzwert mit der dritten Kommunikation verknüpft ist; in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöhen soll.
-
Beispiel 1b. Mindestens ein maschinenlesbares Medium, auf dem Daten gespeichert sind, die, wenn von mindestens einer Maschine verwendet, die mindestens eine Maschine veranlassen, Betriebe durchzuführen, umfassend: Empfangen einer ersten Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern; Empfangen einer zweiten LTR entsprechend dem IP-Kern, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR, Beginnen einer vorab zeitlich festgelegten Sitzung mit einer Startzeit und einer Beendigungszeit; Bestimmen, dass Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, Senken eines Leistungszustands entsprechend dem IP-Kern; Empfangen einer dritten LTR entsprechend dem IP-Kern, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, Beginnen einer zusätzlichen vorab zeitlich festgelegten Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit; Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, Erhöhen des Leistungszustands entsprechend dem IP-Kern.
-
Beispiel 2b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3b. Das mindestens eine maschinenlesbare Medium von Beispiel 2b, wobei: die zusätzliche vorab zeitlich festgelegte Sitzung auf dem Latenzwert basiert, der mit der zweiten LTR verknüpft ist; der Latenzwert von der Firmware zu Hardware-Logik kommuniziert wird, die in einem System-auf-einem-Chip implementiert ist.
-
Beispiel 4b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 5b. Das mindestens eine maschinenlesbare Medium von Beispiel 4b, die Betriebe aufweisend: in Reaktion auf einen aktualisierten Latenzwert von der Firmware, Senken des Leistungszustands entsprechend dem IP-Kern.
-
Beispiel 6b. Das mindestens eine maschinenlesbare Medium von Beispiel 5b, die Betriebe aufweisend: in Reaktion auf einen zusätzlichen Latenzwert von der Firmware, Senken des Leistungszustands entsprechend dem IP-Kern.
-
Beispiel 7b. Das mindestens eine maschinenlesbare Medium von Beispiel 6b, die Betriebe aufweisend: in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, Senken des Leistungszustands entsprechend dem IP-Kern.
-
Beispiel 8b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, Bestimmen aufweist, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 9b. Das mindestens eine maschinenlesbare Medium von Beispiel 8b, wobei die Unterbrechung in Reaktion darauf erzeugt wird, dass die zweite LTR empfangen wird.
-
Beispiel 10b. Das mindestens eine maschinenlesbare Medium von Beispiel 8b, die Betriebe aufweisend, dass die Firmware einen Latenzwert an Hardware-Logik meldet, die in einem System-auf-einem-Chip implementiert ist, wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 11b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, die Betriebe aufweisend: in Reaktion auf eine Nachricht, die von Hardware-Logik kommuniziert wird, die in einem System-auf-einem-Chip implementiert ist, Erhöhen des Leistungszustands entsprechend dem IP-Kern; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 12b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, die Betriebe aufweisend: Erfassen durch Hardware-Logik, die in einem System-auf-einem-Chip implementiert ist, des Eintreffens der zweiten LTR; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, Kommunizieren durch die Hardware-Logik einer Unterbrechung und Starten der vorab zeitlich festgelegten Sitzung.
-
Beispiel 13b. Das mindestens eine maschinenlesbare Medium von Beispiel 12b, die Betriebe aufweisend: in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, Beginnen der Verarbeitung der zweiten LTR durch die Firmware.
-
Beispiel 14b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, wobei der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einer Taktquelle, einer Spannungsschiene, einem Fabric oder einem Kommunikationsbus.
-
Beispiel 15b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, wobei Senken des Leistungszustands aufweist, dass eine Leistungsverwaltungssteuerung (PMC) den Leistungszustand senkt.
-
Beispiel 16b. Das mindestens eine maschinenlesbare Medium von Beispiel 1b, die Betriebe aufweisend: in Reaktion auf Erhöhen des Leistungszustands entsprechend dem IP-Kern, Bestimmen, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, die in einem System-auf-einem-Chip implementiert ist, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 17b. Das mindestens eine maschinenlesbare Medium von Beispiel 16, die Betriebe aufweisend: in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, Senken des Leistungszustands entsprechend dem IP-Kern.
-
Beispiel 1b'. Mindestens ein maschinenlesbares Medium, auf dem Daten gespeichert sind, die, wenn von mindestens einer Maschine verwendet, die mindestens eine Maschine veranlassen, Betriebe durchzuführen, umfassend: Empfangen einer ersten Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern; Empfangen einer zweiten LTR entsprechend dem IP-Kern, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR, Beginnen einer vorab zeitlich festgelegten Sitzung mit einer Startzeit und einer Beendigungszeit; Bestimmen, dass Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, Erhöhen eines Latenzzustands entsprechend dem IP-Kern; Empfangen einer dritten LTR entsprechend dem IP-Kern, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, Beginnen einer zusätzlichen vorab zeitlich festgelegten Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit; Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, Senken des Latenzzustands entsprechend dem IP-Kern.
-
Beispiel 2b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3b'. Das mindestens eine maschinenlesbare Medium von Beispiel 2b', wobei: die zusätzliche vorab zeitlich festgelegte Sitzung auf dem Latenzwert basiert, der mit der zweiten LTR verknüpft ist; der Latenzwert von der Firmware zu Hardware-Logik kommuniziert wird, die in einem System-auf-einem-Chip implementiert ist.
-
Beispiel 4b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 5b'. Das mindestens eine maschinenlesbare Medium von Beispiel 4b', die Betriebe aufweisend: in Reaktion auf einen aktualisierten Latenzwert von der Firmware, Erhöhen des Latenzzustands entsprechend dem IP-Kern.
-
Beispiel 6b'. Das mindestens eine maschinenlesbare Medium von Beispiel 5b', die Betriebe aufweisend: in Reaktion auf einen zusätzlichen Latenzwert von der Firmware, Erhöhen des Latenzzustands entsprechend dem IP-Kern.
-
Beispiel 7b'. Das mindestens eine maschinenlesbare Medium von Beispiel 6b', die Betriebe aufweisend: in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, Erhöhen des Latenzzustands entsprechend dem IP-Kern.
-
Beispiel 8b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, Bestimmen aufweist, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 9b'. Das mindestens eine maschinenlesbare Medium von Beispiel 8b', wobei die Unterbrechung in Reaktion darauf erzeugt wird, dass die zweite LTR empfangen wird.
-
Beispiel 10b'. Das mindestens eine maschinenlesbare Medium von Beispiel 8b', die Betriebe aufweisend, dass die Firmware einen Latenzwert an Hardware-Logik meldet, die in einem System-auf-einem-Chip implementiert ist, wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 1lb'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', die Betriebe aufweisend: in Reaktion auf eine Nachricht, die von Hardware-Logik kommuniziert wird, die in einem System-auf-einem-Chip implementiert ist, Senken des Latenzzustands entsprechend dem IP-Kern; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 12b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', die Betriebe aufweisend: Erfassen durch Hardware-Logik, die in einem System-auf-einem-Chip implementiert ist, des Eintreffens der zweiten LTR; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, Kommunizieren durch die Hardware-Logik einer Unterbrechung und Starten der vorab zeitlich festgelegten Sitzung.
-
Beispiel 13b'. Das mindestens eine maschinenlesbare Medium von Beispiel 12b', die Betriebe aufweisend: in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, Beginnen der Verarbeitung der zweiten LTR durch die Firmware.
-
Beispiel 14b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', wobei der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einer Taktquelle, einer Spannungsschiene, einem Fabric oder einem Kommunikationsbus.
-
Beispiel 15b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', wobei Erhöhen des Latenzzustands eine Leistungsverwaltungssteuerung (PMC) aufweist, die den Latenzzustand erhöht.
-
Beispiel 16b'. Das mindestens eine maschinenlesbare Medium von Beispiel 1b', die Betriebe aufweisend: in Reaktion auf Senken des Latenzzustands entsprechend dem IP-Kern, Bestimmen, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, die in einem System-auf-einem-Chip implementiert ist, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 17b'. Das mindestens eine maschinenlesbare Medium von Beispiel 16', die Betriebe aufweisend: in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, Erhöhen des Latenzzustands entsprechend dem IP-Kern.
-
Beispiel 1c: Das System gemäß einem der Beispiele 1a-25a aufweisend einen Prozessor, einen Speicher und ein Kommunikationsmodul, das an den Prozessor gekoppelt ist, um mit einem Rechenknoten außerhalb des Systems zu kommunizieren
-
Beispiel 1a'. Ein Verfahren, aufweisend: Hardware-Logik, die eine erste Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern empfängt; wobei die Hardware-Logik eine zweite LTR entsprechend dem IP-Kern empfängt, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist, in Reaktion auf Empfang der zweiten LTR die Hardware-Logik eine vorab zeitlich festgelegte Sitzung mit einer Startzeit und einer Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, die Hardware-Logik einen Latenzzustand entsprechend einer Ressource erhöht; die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfängt, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt.
-
Beispiel 2a'. Das Verfahren von Beispiel 1a', wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3a'. Das Verfahren von Beispiel 2a', wobei: die zusätzliche vorab zeitlich festgelegte Sitzung auf dem Latenzwert basiert, der mit der zweiten LTR verknüpft ist; wobei die Firmware den Latenzwert an die Hardware-Logik kommuniziert.
-
Beispiel 4a'. Das Verfahren von Beispiel 1a', wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 5a'. Das Verfahren von Beispiel 4a', aufweisend in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 6a'. Das Verfahren von Beispiel 5a', aufweisend in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 7a'. Das Verfahren von Beispiel 6a', aufweisend in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 8a'. Das Verfahren von Beispiel 1a', wobei Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat.
-
Beispiel 9a'. Das Verfahren von Beispiel 8a', wobei die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite LTR empfängt.
-
Beispiel 10a'. Das Verfahren von Beispiel 8a', aufweisend, dass die Firmware einen Latenzwert an die Hardware-Logik meldet; wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 11a'. Das Verfahren von Beispiel 1a', aufweisend in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 12a'. Das Verfahren von Beispiel 1a' aufweisend, dass die Hardware-Logik das Eintreffen der zweiten LTR erfasst; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommuniziert und die vorab zeitlich festgelegte Sitzung startet.
-
Beispiel 13a'. Das Verfahren von Beispiel 12a', aufweisend in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware Verarbeitung der zweiten LTR beginnt.
-
Beispiel 14a'. Das Verfahren von Beispiel 1a', wobei: der IP-Kern mindestens eines aufweist von einem Phasenregelkreis (PLL), einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon; die Ressource mindestens eines aufweist von einem PLL, einem Speicher, einem Empfänger, einem Sender, einem Sender/Empfänger, einer Taktquelle, einer Spannungsschiene, einer Power-Plane, einem Fabric, einem Prozessor, einer Steuerung, einem Prozessorkern, einem Spannungsregler, einem Sensor, einem Lüfter, einem Kommunikationsbus, einem Spannungsregler, einer Prozessordomäne, einem Verarbeitungselement, einer Verarbeitungseinheit, einem Hardware-Thread, einem Codierer oder Kombinationen davon.
-
Beispiel 15a'. Das Verfahren von Beispiel 1a', wobei Erhöhen des Latenzzustands aufweist, dass eine PMC den Latenzzustand erhöht.
-
Beispiel 16a'. Das Verfahren von Beispiel 1a', aufweisend, dass die Firmware Verarbeitung der dritten LTR abschließt, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 17a'. Das Verfahren von Beispiel 16a', aufweisend in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, dass die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 18a'. Das Verfahren von Beispiel 1a', wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; wobei das Verfahren aufweist, dass die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfängt; wobei die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfängt.
-
Beispiel 19a'. Ein Verfahren, aufweisend: Empfangen, durch Hardware-Logik, einer ersten und zweiten Kommunikation entsprechend einem Intellectual Property (IP)-Kern und Beginnen einer zeitlich festgelegten Sitzung in Reaktion auf Empfang der zweiten Kommunikation; Bestimmen, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist, und Erhöhen eines Latenzzustands entsprechend einer Ressource in Reaktion auf Bestimmen, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, bevor die zeitlich festgelegte Sitzung abgelaufen ist; Empfangen einer dritten Kommunikation entsprechend dem IP-Kern und Beginnen einer zusätzlichen zeitlich festgelegten Sitzung in Reaktion auf Empfang der dritten Kommunikation; Bestimmen, dass die Firmware die Verarbeitung der dritten Kommunikation vor Ablauf der zusätzlichen zeitlich festgelegten Sitzung nicht abgeschlossen hat, und Senken des Latenzzustands entsprechend der Ressource in Reaktion auf Bestimmen, dass die Firmware die Verarbeitung der dritten Kommunikation vor Ablauf der zusätzlichen zeitlich festgelegten Sitzung nicht abgeschlossen hat; wobei die erste, zweite und dritte Kommunikation die erste, zweite bzw. dritte Latenztoleranz in Bezug auf die Ressource befördern sollen.
-
Beispiel 20a'. Das Verfahren von Beispiel 19a', wobei: die zusätzliche zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten Kommunikation verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen Kommunikation verknüpft ist, basiert; die zusätzliche zeitlich festgelegte Sitzung auf dem Latenzwert, der mit der zweiten Kommunikation verknüpft ist, basiert; wobei die Firmware den Latenzwert an die Hardware-Logik kommuniziert.
-
Beispiel 21a'. Das Verfahren von Beispiel 19a', wobei: die zusätzliche zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist; das Verfahren, aufweisend in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht; in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht; in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 22a'. Das Verfahren von Beispiel 19a', wobei: Bestimmen, dass die Firmware die Verarbeitung der zweiten Kommunikation abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung verarbeitet hat; die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite Kommunikation empfängt; die Firmware einen Latenzwert an die Hardware-Logik meldet; der Latenzwert mit der zweiten Kommunikation verknüpft ist.
-
Beispiel 23a'. Das Verfahren von Beispiel 19a', aufweisend in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 24a'. Das Verfahren von Beispiel 19a' aufweisend, dass die Hardware-Logik das Eintreffen der zweiten Kommunikation erfasst; in Reaktion auf Erfassen des Eintreffens der zweiten Kommunikation, die Hardware-Logik eine Unterbrechung kommuniziert und die zeitlich festgelegte Sitzung startet; in Reaktion darauf, dass die Hardware-Logik die Unterbrechung kommuniziert, die Firmware Verarbeitung der zweiten Kommunikation beginnt.
-
Beispiel 25a'. Das Verfahren von Beispiel 19a', aufweisend, dass die Firmware Verarbeitung der dritten Kommunikation abschließt, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten Kommunikation abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, wobei der Latenzwert mit der dritten Kommunikation verknüpft ist; in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 26a'. Mindestens ein maschinenlesbares Medium, aufweisend mehrere Anweisungen, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, ein Verfahren gemäß einem der Beispiele 1a' bis 25a' auszuführen.
-
Beispiel 27a'. Eine Kommunikationsvorrichtung, die angeordnet ist, ein Verfahren gemäß einem der Beispiele 1a' bis 25a' auszuführen.
-
Beispiel 28a'. Einrichtung, aufweisend Mittel zum Durchführen eines der Beispiele 1a' bis 25a'.
-
Beispiel 1d. Ein Verfahren, aufweisend: Hardware-Logik, die eine erste Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern empfängt; wobei die Hardware-Logik eine zweite LTR entsprechend dem IP-Kern empfängt, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR die Hardware-Logik eine vorab zeitlich festgelegte Sitzung mit einer Startzeit und einer Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, die Hardware-Logik einen Latenzzustand entsprechend einer Ressource erhöht; die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfängt, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt.
-
Beispiel 2d. Das Verfahren von Beispiel 1d, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3d. Das Verfahren von Beispiel 1d, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 4d. Das Verfahren von Beispiel 3d aufweisend, in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 5d. Das Verfahren gemäß einem der Beispiele 3d-4d, aufweisend in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 6d. Das Verfahren gemäß einem der Beispiele 3d-5d, aufweisend in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, dass die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 7d. Das Verfahren gemäß einem der Beispiele 1d-6d, wobei: Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat; die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite LTR empfängt.
-
Beispiel 8d. Das Verfahren von Beispiel 7d, aufweisend, dass die Firmware einen Latenzwert an die Hardware-Logik meldet; wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 9d. Das Verfahren gemäß einem der Beispiele id-8d, aufweisend in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 10d. Das Verfahren gemäß einem der Beispiele 1d-9d, aufweisend: Erfassen durch die Hardware-Logik des Eintreffens der zweiten LTR; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommuniziert und die vorab zeitlich festgelegte Sitzung startet.
-
Beispiel 11d. Das Verfahren gemäß einem der Beispiele 3d-10d aufweisend: Abschließen durch die Firmware einer Verarbeitung der dritten LTR, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 12d. Das Verfahren gemäß einem der Beispiele 1d-11d, aufweisend, in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, dass die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 13d. Das Verfahren von Beispiel 1d, wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; wobei das Verfahren aufweist, dass (a) die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfängt; und (b) wobei die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfängt.
-
Beispiel 14d. Mindestens ein maschinenlesbares Medium, das mehrere Anweisungen aufweist, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, ein Verfahren gemäß einem der Beispiele 1d bis 13d auszuführen.
-
Beispiel 15d. Eine Einrichtung, aufweisend Mittel zum Durchführen eines der Beispiele 1d bis 13d.
-
Beispiel 1e. Ein Verfahren, aufweisend: Hardware-Logik, die eine erste Latenztoleranzmeldung (LTR) entsprechend einem Intellectual Property (IP)-Kern empfängt; wobei die Hardware-Logik eine zweite LTR entsprechend dem IP-Kern empfängt, wobei die zweite LTR eine niedrigere Latenztoleranz als die erste LTR aufweist; in Reaktion auf Empfang der zweiten LTR die Hardware-Logik eine vorab zeitlich festgelegte Sitzung mit einer Startzeit und einer Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der zweiten LTR vor Eintritt der Beendigungszeit abgeschlossen hat, die Hardware-Logik einen Latenzzustand entsprechend einer Ressource erhöht; die Hardware-Logik eine dritte LTR entsprechend dem IP-Kern empfängt, wobei die dritte LTR eine niedrigere Latenztoleranz als die erste LTR hat; in Reaktion auf Empfangen der dritten LTR, die Hardware-Logik eine zusätzliche vorab zeitlich festgelegte Sitzung mit einer zusätzlichen Startzeit und einer zusätzlichen Beendigungszeit beginnt; die Hardware-Logik bestimmt, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat; in Reaktion auf Bestimmen, dass die Firmware Verarbeitung der dritten LTR vor Eintritt der zusätzlichen Beendigungszeit nicht abgeschlossen hat, die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt.
-
Beispiel 2e. Das Verfahren von Beispiel 1e, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf mindestens einem von einem Latenzwert, der mit der zweiten LTR verknüpft ist, oder einem Latenzwert, der mit einer zusätzlichen LTR verknüpft ist, basiert.
-
Beispiel 3e. Das Verfahren von Beispiel 1e, wobei die zusätzliche vorab zeitlich festgelegte Sitzung auf einem Latenzwert basiert, der mit dem IP-Kern verknüpft ist.
-
Beispiel 4e. Das Verfahren von Beispiel 3e aufweisend, in Reaktion auf einen aktualisierten Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 5e. Das Verfahren gemäß einem der Beispiele 3e-4e, aufweisend in Reaktion auf einen zusätzlichen Latenzwert, der von der Firmware an die Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource erhöht.
-
Beispiel 6e. Das Verfahren von Beispiel 5e, aufweisend in Reaktion auf einen Latenzwert, der mit dem IP-Kern verknüpft ist, dass die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 7e. Das Verfahren gemäß einem der Beispiele 1e-4e, wobei: Bestimmen, dass die Firmware Verarbeitung der zweiten LTR abgeschlossen hat, aufweist, dass die Hardware-Logik bestimmt, dass die Firmware eine Unterbrechung gelöscht hat; die Unterbrechung in Reaktion darauf erzeugt wird, dass die Hardware-Logik die zweite LTR empfängt.
-
Beispiel 8e. Das Verfahren von Beispiel 7e, aufweisend, dass die Firmware einen Latenzwert an die Hardware-Logik meldet; wobei der Latenzwert mit der zweiten LTR verknüpft ist.
-
Beispiel 9e. Das Verfahren gemäß einem der Beispiele 1e-4e, aufweisend in Reaktion auf eine Nachricht, die von der Hardware-Logik kommuniziert wird, dass die Hardware-Logik den Latenzzustand entsprechend der Ressource senkt; wobei die Nachricht nicht von der Firmware kommuniziert wird.
-
Beispiel 10e. Das Verfahren gemäß einem der Beispiele le-4e aufweisend: Erfassen durch die Hardware-Logik des Eintreffens der zweiten LTR; in Reaktion auf Erfassen des Eintreffens der zweiten LTR, die Hardware-Logik eine Unterbrechung kommuniziert und die vorab zeitlich festgelegte Sitzung startet.
-
Beispiel 11e. Das Verfahren gemäß einem der Beispiele 1e-4e aufweisend: Abschließen durch die Firmware einer Verarbeitung der dritten LTR, obwohl die Hardware-Logik bereits den Latenzzustand entsprechend dem IP-Kern gesenkt hat; in Reaktion darauf, dass die Firmware Verarbeitung der dritten LTR abgeschlossen hat, die Firmware einen Latenzwert an Hardware-Logik meldet, wobei der Latenzwert mit der dritten LTR verknüpft ist.
-
Beispiel 12e. Das Verfahren von Beispiel 11e, aufweisend, in Reaktion darauf, dass die Firmware der Hardware-Logik den Latenzwert meldet, dass die Hardware-Logik den Latenzzustand entsprechend dem IP-Kern erhöht.
-
Beispiel 13e. Das Verfahren von Beispiel 1e, wobei: die dritte LTR eine höhere Latenztoleranz hat als die zweite LTR; wobei das Verfahren aufweist, (a) dass die Hardware-Logik die zweite LTR zwischen Empfang der ersten und dritten LTR empfängt; und (b) wobei die Hardware-Logik keine andere LTR zwischen der ersten und dritten LTR außer der zweiten LTR empfängt.
-
Beispiel 14e. Mindestens ein maschinenlesbares Medium, das mehrere Anweisungen aufweist, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, ein Verfahren gemäß einem der Beispiele 1e bis 13e auszuführen.
-
Beispiel 15e. Eine Einrichtung, aufweisend Mittel zum Durchführen eines der Beispiele 1e bis 13e.
-
Es ist klar, dass verschiedene Kombinationen der oben angeführten Beispiele möglich sind.
-
Es ist zu beachten, dass die Begriffe „Schaltung“ und „Schaltkreis“ hier untereinander austauschbar verwendet werden. Wie hier verwendet, werden diese Begriffe und der Begriff „Logik“ verwendet, sich auf einen analogen Schaltkreis, digitalen Schaltkreis, hartverdrahteten Schaltkreis, programmierbaren Schaltkreis, Prozessorschaltkreis, Mikrosteuerungsschaltkreis, Hardware-Logikschaltkreis, Zustandsmaschinenschaltkreis und/oder jede andere Art von physischer Hardwarekomponente, alleine oder in beliebiger Kombination, zu beziehen. Ausführungsformen können in vielen verschiedenen Arten von Systemen verwendet werden. Zum Beispiel kann in einer Ausführungsform eine Kommunikationsvorrichtung angeordnet sein, die verschiedenen hier beschriebenen Verfahren und Techniken durchzuführen. Natürlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt und stattdessen können andere Ausführungsformen auf andere Arten von Einrichtung zur Verarbeitung von Anweisungen, oder ein oder mehrere maschinenlesbare Medien, die Anweisungen aufweisen, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Vorrichtung veranlassen, eine(s) oder mehrere der hier beschriebenen Verfahren und Techniken auszuführen, gerichtet sein.
-
Ausführungsformen können in Code implementiert sein und können auf einem nicht flüchtigen Datenspeichermedium gespeichert sein, auf dem Anweisungen gespeichert sind, die zum Programmieren eines Systems verwendet werden können, um die Anweisungen durchzuführen. Ausführungsformen können auch in Daten implementiert sein und können auf einem nicht flüchtigen Datenspeichermedium gespeichert sein, das, wenn es von mindestens einer Maschine verwendet wird, die mindestens eine Maschine veranlasst, mindestens eine integrierte Schaltung zu fertigen, um einen oder mehrere Betriebe durchzuführen. Noch weitere Ausführungsformen können in einem computerlesbaren Datenspeichermedium implementiert sein, das Informationen aufweist, die, wenn in einem SoC oder anderen Prozessor hergestellt, das SoC oder den anderen Prozessor konfigurieren soll, einen oder mehrere Betriebe durchzuführen. Das Datenspeichermedium kann jede Art von Platte aufweisen, aufweisend Disketten, Bildplatten, Solid-State-Laufwerke (SSDs), Compact Disk Nur-Lese-Speicher (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magneto-optische Platten. Halbleitervorrichtungen wie Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs) wie dynamische Direktzugriffsspeicher (DRAMs), statische Direktzugriffsspeicher (SRAMs), löschbare programmierbare Nur-Lese-Speicher (EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), magnetische oder optische Karten oder jede andere Art von Medien, die zum Speichern elektronischer Anweisungen geeignet sind, ohne aber darauf beschränkt zu sein.
-
Während die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute zahlreiche Modifizierungen und Variationen dieser erkennen. Es ist beabsichtigt, dass die beiliegenden Ansprüche alle solche Modifizierungen und Variationen als im wahren Wesen und Umfang dieser vorliegenden Erfindung liegend abdecken.