DE112019000662T5 - System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge - Google Patents

System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge Download PDF

Info

Publication number
DE112019000662T5
DE112019000662T5 DE112019000662.2T DE112019000662T DE112019000662T5 DE 112019000662 T5 DE112019000662 T5 DE 112019000662T5 DE 112019000662 T DE112019000662 T DE 112019000662T DE 112019000662 T5 DE112019000662 T5 DE 112019000662T5
Authority
DE
Germany
Prior art keywords
fabric bridge
fabric
data
bridge
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019000662.2T
Other languages
English (en)
Inventor
Lakshminarayana Pappu
Robert Milstrey
Amit Kumar SRIVASTAVA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112019000662T5 publication Critical patent/DE112019000662T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0064Latency reduction in handling transfers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

In einer Ausführungsform weist eine Vorrichtung auf: mindestens eine Verarbeitungsschaltung; mindestens ein Array, das mit der mindestens einer Verarbeitungsschaltung assoziiert ist; eine Leistungssteuerung, um den Leistungsverbrauch der Vorrichtung zu verwalten; und eine Fabric-Brücke, die mit der Leistungssteuerung gekoppelt ist. Die Fabric-Brücke und die Leistungssteuerung können ausgelegt sein, um ein Handschlag-Protokoll zu implementieren, um zu ermöglichen, dass die Fabric-Brücke vor dem Eintritt der Vorrichtung in einen ersten Niedrigleistungszustand Daten von dem mindestens einen Array über einen Seitenband-Kommunikationspfad empfängt und die Daten an einen Systemspeicher, der mit der Vorrichtung gekoppelt ist, über einen primären Kommunikationspfad sendet. Andere Ausführungsformen werden beschrieben und beansprucht.

Description

  • Technisches Gebiet
  • Ausführungsformen betreffen eine Energieverwaltung eines Systems und insbesondere Energieverwaltung einer integrierten Schaltung.
  • Hintergrund
  • Fortschritte in Halbleiterverarbeitung und Logikdesign erlaubten eine Zunahme des Logikanteils, der auf integrierten Schaltungsvorrichtungen vorhanden sein kann. Folglich haben sich Computersystemkonfigurationen von einer einzelnen oder mehreren integrierten Schaltungen in einem System bis zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen auf einzelnen integrierten Schaltungen entwickelt. Außerdem sind mit zunehmender Dichte integrierter Schaltungen auch die Energieanforderungen für Computersysteme (von eingebetteten Systemen zu Servern) sprunghaft gestiegen.
  • Eine Möglichkeit zur Reduzierung des Stromverbrauchs in einer integrierten Schaltung besteht darin, einen Teil oder die gesamte integrierte Schaltung in einen bestimmten von mehreren verfügbaren Niedrigleistungszuständen zu versetzen. Es liegt jedoch eine Latenz- und Leistungsfähigkeitsbeeinträchtigung vor, die mit einem Ein- und Austritt aus einem Niedrigleistungszustand verbunden ist, was nachteilige Auswirkungen aufweisen kann. Zum Beispiel können in der integrierten Schaltung vorhandene Informationen während des Niedrigleistungszustands verloren gehen, so dass ein unerwünschter Overhead entsteht, wenn die integrierte Schaltung den Niedrigleistungszustand verlässt.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Ablaufdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
    • 4 ist ein Transaktionsablauf für Speicherungsoperationen gemäß einer Ausführungsform.
    • 5 ist ein Transaktionsablauf für Wiederherstellungsoperationen gemäß einer Ausführungsform.
    • 6 ist ein Blockdiagramm eines Beispielsystems, mit dem Ausführungsformen verwendet werden können.
    • 7 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 8 ist ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • In verschiedenen Ausführungsformen wird eine integrierte Schaltung, wie z.B. ein Mehrkernprozessor oder ein anderes System-on-Chip (SoC), mit Komponenten bereitgestellt, die gemäß einem Handschlagprotokoll interagieren, um ein effizientes Speichern und Wiederherstellen von im Wesentlichen dem gesamten Kontext der integrierten Schaltung in tiefen Niedrigleistungszuständen zu ermöglichen. Mithilfe dieses Handschlag-Protokolls, das zur Kommunikation zwischen einer Leistungsteuerung der integrierten Schaltung und einer Brückenschaltung der integrierten Schaltung über ein Seitenband-Kommunikationsnetz verwendet wird, wird ein effizienter Datenübertragungsmechanismus eingerichtet. Danach können große Datenmengen über die Brückenschaltung und über ein primäres Kommunikationsnetz der integrierten Schaltung an einen assoziierten Systemspeicher kommuniziert werden, wie z.B. einen außerhalb der integrierten Schaltung befindlichen Systemspeicher. Mithilfe dieser Anordnung können viel größere Datenmengen und andere Informationen, die in der integrierten Schaltung vorhanden sind, vor dem Eintritt in den Niedrigleistungszustand im Systemspeicher gespeichert werden. Und im Gegenzug können diese Informationen beim Verlassen des Niedrigleistungszustands effizient in der integrierten Schaltung wiederhergestellt werden. Solche Techniken können sich eine größere Latenzfähigkeit zunutze machen, die für den tiefen Niedrigleistungszustand verfügbar ist, wenn ein Betriebssystem oder eine andere Planungseinheit Umgebungsbedingungen oder andere Auslöser identifiziert, die auf die Verfügbarkeit höherer Latenztoleranzen hinweisen, welche das Auftreten dieser wesentlichen Kontextzustandsspeicherungs- und -wiederherstellungsoperationen ermöglichen.
  • Unter Bezugnahme auf 1 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Insbesondere weist, wie in 1 dargestellt, ein Rechensystem 100 mindestens eine integrierte Schaltung 105 und einen Systemspeicher 135 auf. Selbstverständlich können in Abhängigkeit vom konkreten Rechensystem viele weitere Komponenten vorhanden sein. Ein solches System kann von einer kleinen tragbaren Vorrichtung, wie z.B. einem Smartphone, einem Laptop-Computer, einem Tablet-Computer und so weiter, bis zu einem größeren System, wie z.B. einem Personal Computer, einem Server-Computer und so weiter, reichen.
  • In einer Ausführungsform kann die IC 105 als ein Mehrkernprozessor oder ein anderes System-on-Chip (SoC) implementiert werden. In einem relevanten Aspekt weist die IC 105 eine Architekturanordnung auf, um zu ermöglichen, dass effiziente Speicherungs- und Wiederherstellungsoperationen zwischen der IC 105 und dem Systemspeicher 135 stattfinden. Das heißt, für besonders relativ tiefe Niedrigleistungszustände können wesentliche Teile der innerhalb der IC 105 vorhandenen Informationen zur Speicherung im Systemspeicher 135 gesendet werden. Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, können zu speichernde und wiederherzustellende Informationen zwischengespeicherte Informationen aufweisen, wie sie in Cache-Arrays vorhanden sind, welche z.B. mit Vertretern für geistiges Eigentum (IP) assoziiert sind, Sicherheitsinformationen, wie z.B. Schlüssel oder andere kryptografische Informationen, Fuse-Informationen, Kontextinformationen und so weiter. Durch Speicherung größerer Informationsmengen werden geringere Latenzen und eine bessere Leistungsfähigkeit beim Verlassen eines gegebenen Niedrigleistungszustands realisiert. Es ist ferner zu beachten, dass in herkömmlichen Systemen lediglich eine sehr begrenzte Informationsmenge vor dem Eintritt in einen gegebenen Niedrigleistungszustand gespeichert wird. Von daher gehen in herkömmlichen Systemen beim Verlassen des Niedrigleistungszustands viele Kontextinformationen, einschließlich zwischengespeicherter Informationen, Sicherheitsschlüssel, Fuse-Informationen und so weiter (von denen alle in Ausführungsformen gespeichert werden können) verloren, was zu längeren Latenzen beim Verlassen und einer schlechteren Leistungsfähigkeit beim Verlassen führt.
  • Um Speicherungs- und Wiederherstellungsoperationen durchzuführen, kann die IC 105 eine Energieverwaltungseinheit (PMU) 160 aufweisen, die Hardware, Software und/oder Firmware aufweisen kann, um Energieverwaltungsoperationen in Bezug auf die IC 105 durchzuführen. In verschiedenen Ausführungsformen kann die PMU 160 eine Vielfalt von Energieverwaltungs-Logikeinheiten aufweisen, um eine Hardware-basierte Energieverwaltung durchzuführen. Eine solche Energieverwaltung kann vollständig prozessorgesteuert sein (z.B. durch verschiedene Prozessorhardware, und die durch Arbeitslast und/oder Energie-, Wärme- oder andere Prozessorbeschränkungen ausgelöst werden kann), und/oder die Energieverwaltung kann als Antwort auf externe Quellen (wie z.B. eine Plattform- oder Management-Energieverwaltungsquelle oder Systemsoftware) durchgeführt werden.
  • Hier beschriebene integrierte Schaltungen können Energieverwaltungstechniken nutzen, die unabhängig von einem auf Betriebssystemen (OS) basierenden Energieverwaltungsmechanismus (OSPM-Mechanismus) sein und diesen ergänzen können. Gemäß einem Beispiel für eine OSPM-Technik kann ein Prozessor in verschiedenen Leistungsfähigkeitszuständen oder -niveaus, sogenannten P-Zuständen, arbeiten, nämlich von P0 bis PN. Im Allgemeinen kann der P1-Leistungsfähigkeitszustand dem höchsten garantierten Leistungsfähigkeitsstatus entsprechen, der durch ein Betriebssystem angefordert werden kann. Zusätzlich zu diesem Pl-Zustand kann das OS ferner einen höheren Leistungsfähigkeitszustand anfordern, nämlich einen P0-Zustand. Dieser P0-Zustand kann daher ein opportunistischer oder Turbomodus-Zustand sein, in dem Prozessorhardware den Prozessor oder zumindest Teile davon derart konfigurieren kann, dass er mit einer höheren als der garantierten Frequenz arbeitet, wenn Energie und/oder Wärmebudget verfügbar sind. In vielen Implementierungen kann ein Prozessor mehrere sogenannte Bin-Frequenzen oberhalb der garantierten P1-Maximalfrequenz aufweisen, die eine maximale Spitzenfrequenz des jeweiligen Prozessors überschreiten, wie sie während der Herstellung in den Prozessor eingeschmolzen oder auf eine andere Weise geschrieben wird. Außerdem kann gemäß einem OSPM-Mechanismus ein Prozess bei verschiedenen Leistungszuständen oder - niveaus arbeiten. In Bezug auf Leistungszustände kann ein OSPM-Mechanismus verschiedene Leistungsaufnahmezustände spezifizieren, die im Allgemeinen als C-Zustände, C0-, C1- bis Cn-Zustände, bezeichnet werden. Wenn ein Kern oder eine andere Verarbeitungseinheit aktiv ist, läuft sie in einem C0-Zustand, und wenn sie sich im Leerlauf befindet, kann sie in einen Niedrigleistungszustand versetzt werden, der auch als von null verschiedener C-Zustand bezeichnet wird (z.B. C1-C10-Zustände), wobei sich jeder C-Zustand auf einem niedrigeren Leistungsaufnahmeniveau befindet (so dass C10 ein tieferer Niedrigleistungszustand als C1 ist und so weiter).
  • Es versteht sich, dass viele verschiedene Typen von Energieverwaltungstechniken einzeln oder in Kombination in verschiedenen Ausführungsformen verwendet werden können. Als repräsentative Beispiele kann eine Leistungssteuerung die integrierte Schaltung derart steuern, dass ihre Leistung durch irgendeine Form von dynamischer Spannungsfrequenzskalierung (DVFS) verwaltet wird, bei der eine Betriebsspannung und/oder Betriebsfrequenz eines oder mehrerer Kerne oder einer anderen Logik dynamisch gesteuert werden kann, um in bestimmten Situationen den Stromverbrauch zu reduzieren. In einem Beispiel kann die DVFS unter Verwendung der erweiterten Intel SpeedStep™-Technologie durchgeführt werden, die von der Intel Corporation, Santa Clara, CA, erhältlich ist, um eine optimale Leistungsfähigkeit bei einem niedrigsten Stromverbrauchsniveau bereitzustellen. In einem anderen Beispiel kann die DVFS unter Verwendung der Intel TurboBoost™-Technologie durchgeführt werden, um es einem oder mehreren Kernen oder anderen Rechen-Engines zu ermöglichen, basierend auf Bedingungen (z.B. Arbeitslast und Verfügbarkeit) mit einer höheren als der garantierten Betriebsfrequenz zu arbeiten.
  • Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, können Ausführungsformen verwendet werden, um Informationen von der IC 105 vor dem Eintritt in bestimmte tiefe Niedrigleistungszustände, wie z.B. einen C10-Zustand, im Speicher 135 zu speichern. In einem C10-Zustand ist beinahe die gesamte Stromversorgung von der IC 105 entfernt, einschließlich für Speicher des Wiederherstellungskontexts auf dem Chip, und somit geht der gesamte Kontext verloren. In diesem Modus wird die gesamte Stromversorgung in Fuse-Blöcken, Speicherungs-/Wiederherstellungsspeichern und Spannungsreglern ausgeschaltet, wodurch Strom gespart und ein niedriger Leistungspegel des Gesamt-Package ermöglicht wird. In einigen Fällen kann dieser C10 oder ein anderer Tiefschlafzustand betreten werden, wenn ein gegebenes System, in dem die IC 105 aufgenommen ist, in bestimmte Niedrigleistungszustände des Systems eintreten soll, wie z.B. einen S0i3-Niedrigleistungszustand des Systems.
  • Wie hierin weiter beschrieben wird, implementieren Ausführungsformen ein Handschlag-Protokoll zwischen der PMU 160 und einer Fabric-Brücke 140 über ein Seitenband-Kommunikationssystem. Die Fabric-Brücke 140 ist derart ausgelegt, dass sie mit der PMU 160 und dem Speichercontroller 125 (und einem DIMM 135) interagiert. Bei diesem Handschlag-Protokoll kann die Fabric-Brücke 140 für einen sicheren Betrieb zu speichernde Daten über ein primäres Kommunikationssystem zur Speicherung im Systemspeicher 135 senden. Und in umgekehrter Richtung können für Wiederherstellungsoperationen solche Daten, erneut gemäß dem Handschlag-Protokoll, durch die Fabric-Brücke 140 über das primäre Kommunikationssystem gelesen und anschließend über das Seitenband-Kommunikationssystem an ihr Ziel gesendet werden.
  • Es ist zu beachten, dass verschiedene Befehle im Handschlag-Protokoll verwendet werden können, um Steuerinformation von der PMU an die Fabric-Brücke bereitzustellen. Als Beispiele können solche Befehle unter anderem verschiedene Lese-, Schreib-, Abfrage- und Einfügebefehle aufweisen. In einer konkreten Ausführungsform kann eine Handschlag-Protokolltransaktion ein Nulloperationsbefehl (No Operation Command, NOP) sein, der durch die PMU 160 an die Fabric-Brücke 140 gesendet wird, wenn keine Transaktion im Gang ist, um anzuzeigen, dass sich die PMU 160 im Leerlauf befindet. Ein von der PMU gesendeter WRITEDATA- (Datenschreiben-) und/oder READDATA-Befehl (Datenlesen) kann, über den Seitenband-Kommunikationspfad, Informationen bereitstellen, die aufweisen: die Schreibadresse; Daten; Zielkennung; Sicherheitsattribute des Initiators (SAI); Art der Transaktion; Transaktionsformat; Snoop-Attribute; Byte aktiviert; und Wurzelraumfelder. Ein GO- oder Einfügebefehl veranlasst, dass die Fabric-Brücke eine gegebene Transaktion an die primäre Fabric ausgibt. Ein Abfragebefehl kann für eine nicht gebuchte Transaktion (während der Wiederherstellung) verwendet werden, um abzufragen, um zu bestimmen, ob Daten in der Fabric-Brücke für den Abschluss der Transaktion vorhanden sind. Da die Latenz der Antwort von Chip zu Chip und von Produkt zu Produkt variiert, ist möglicherweise keine konstante Verzögerung vorhanden.
  • Wie in 1 dargestellt, ist die PMU 160 mit der Fabric-Brücke 140 über einen Seitenband-Router 150o gekoppelt, um einen Seitenband-Kommunikationspfad zwischen der PMU 160 und der Fabric-Brücke 140 bereitzustellen. Die PMU 160 ist wiederum über zusätzliche Seitenbandrouter 1501 bis 1503 mit relevanten Arrays 1701-1703 gekoppelt, die zu speichernde und wiederherzustellende Informationen speichern können. Arrays 170 können Zwischenspeicher sein, die mit bestimmten IP-Agenten assoziiert sind, oder sie können andere Speicher, wie z.B. Register, Fuse-Speicher, Sicherheitsspeicher, oder so weiter sein, die Informationen speichern, die wunschgemäß in einem Niedrigleistungszustandsereignis gespeichert und wiederhergestellt werden sollen.
  • Obwohl eine hier beschriebene Ausführungsform ein Handschlag-Protokoll durchführt, in dem die PMU 160 eine Master-Vorrichtung darstellt und die Fabric-Brücke 140 als ein Slave wirkt, sind Ausführungsformen nicht derart beschränkt. Das heißt, in anderen Fällen kann die Fabric Brücke 140 selbst als eine Master-Vorrichtung wirken, um Speicherungs- und Wiederherstellungsoperationen in Bezug auf eine Array-basierte Information über eine Kopplung der Fabric-Brücke 140 mit solchen Arrays durchzuführen. Zu Veranschaulichungszwecken koppelt ein Seitenbandrouter 1504 die Fabric-Brücke 140 mit einem Array 1701 , um einen Seitenband-Kommunikationspfad zwischen der Fabric-Brücke 140 und dem Array 1701 bereitzustellen. Es versteht sich, dass eine ähnliche Seitenband-Verbindung zwischen der Fabric-Brücke 140 und anderen Arrays hergestellt werden kann. Es versteht sich ebenfalls, dass die Seitenbandrouter 150 zur Erleichterung der Darstellung mit begrenzten Verbindungen dargestellt sind. In Ausführungsformen kann eine gegebene IC zusätzliche (d.h. mehr als zwei) Agenten aufweisen, die mit einem gegebenen Seitenbandrouter gekoppelt sind.
  • Um effiziente Handschlag-Operationen zu ermöglichen, kann die Fabric-Brücke 140 einen Puffer 145 aufweisen, der in einer Ausführungsform als ein FIFO-Puffer (First In First Out) 145 oder ein anderer Warteschlangenmechanismus implementiert werden kann, um Operationen des direkten Speicherzugriffstyps (des DMA-Typs) durchzuführen. Es ist zu beachten, dass der FIFO-Puffer 145 innerhalb der Fabric-Brücke 140 Latenzreduzierungen verbessern kann, indem die Leerlaufzeit der PMU 160 reduziert und Datenrate weiter verbessert wird. Wie ferner dargestellt, weist die Fabric-Brücke 140 außerdem mindestens ein Abfrageregister 142 (oder ein anderes Statusregister) auf, dessen Einzelheiten weiter unten beschrieben werden. Es ist zu beachten, dass in Ausführungsformen eine Fabric-Brücke als eine benutzerdefinierte Vorrichtung und nicht als Industriestandardvorrichtung, wie z.B. eine PCIe-Vorrichtung, implementiert werden kann, wodurch eine aufwändige Hardware-/Softwarekonfiguration vermieden wird. Nichtsdestotrotz können Ausführungsformen auch auf Industriestandardschnittstellen angewendet werden, wie z.B. eine PCIe-Vorrichtung, eine AMBA/AXI-Brücke und andere verfügbare Systemschnittstellen.
  • Es ist zu beachten, dass die Fabric-Brücke 140 und die Energieverwaltungseinheit 160 in einer oder mehreren immer auf Domänen der IC 105 implementiert werden können. Von daher können diese Domänen mit Leistungs- (z.B. einer gegebenen Betriebsspannung) und Taktsignalen versorgt werden, um es diesen zwei Komponenten zu ermöglichen, dass sie die letzten Komponenten sind, die in einen Niedrigleistungszustand übergehen, und die ersten Komponenten sind, die nach einem solchen Niedrigleistungszustand eingeschaltet werden. Insbesondere kann die IC 150 derart ausgelegt werden, dass die PM 160 die letzte Komponente ist, die in einen Niedrigleistungszustand übergeht, und die erste Komponente ist, die einen Niedrigleistungszustand verlässt. Die Fabric-Brücke 140 stellt die vorletzte Komponente dar, die in einen Niedrigleistungszustand übergeht, und die zweite Komponente, die einen Niedrigleistungszustand verlässt.
  • Unter weiterer Bezugnahme auf 1 ist die Fabric-Brücke 140 mit einer primären skalierbaren Fabric (PSF) 110 gekoppelt. In einer Ausführungsform kann die PSF 110 als eine integrierte skalierbare On-Chip-Fabric (IOSF) implementiert werden, die gemäß einer gegebenen Spezifikation eines Halbleiterherstellers entworfen werden kann, um ein standardmäßiges Verbindungsprotokoll auf dem Chip zum Anbringen von Komponenten, wie z.B. IP-Blöcke (geistiges Eigentum), innerhalb eines Chips bereitzustellen. Die Fabric 110 ist wiederum über einen Eingabe-/Ausgabeport (I/O-Port) 120 mit einem Speichercontroller 125 gekoppelt, der ein integrierter Speichercontroller sein kann, um Kommunikationen mit einem Speicher 135 zu steuern. Der Speichercontroller 125 ist wiederum mit einer Speicherschnittstelle gekoppelt, die z.B. als eine Schnittstelle 130 mit einer doppelten Datenrate (DDR-Schnittstelle) implementiert ist. Die IC 105 ist über eine gegebene Speicherverbindung mit dem Systemspeicher 135 gekoppelt. Der Systemspeicher 135 kann als ein dynamischer Direktzugriffsspeicher (DRAM) implementiert werden, z.B. als doppelreihige Speichermodule (Dual Inline Memory Modules, DIMMs) implementiert.
  • Obwohl 1 eine Ausführungsform zeigt, in der alle Komponenten bis auf den Speicher 135 in einer einzelnen integrierten Schaltung implementiert sind (und in Ausführungsformen, in denen alle auf einem einzelnen Halbleiterchip implementiert sein können), sind Ausführungsformen nicht derart begrenzt. Zum Beispiel kann in anderen Fällen eine integrierte Schaltung die Form eines Multi-Chip-Moduls annehmen. In noch anderen Fällen können mehrere diskrete Komponenten innerhalb einer Rechenplattform miteinander gekoppelt sein, die hier beschriebene Ausführungsformen aufnimmt. Zum Beispiel können hier beschriebene Ausführungsformen des Handschlag-Protokolls auf Client-Peripherie-Controller-Hub (PCH), Mikroserver und andere Produkte anwendbar sein. Und ähnliche Techniken können zwischen SoCs und den Brücken oder Plattformenergiekomponenten auf einer Plattformebene verwendet werden. Von daher können Ausführungsformen in einer Vielzahl von Anwendungen für jedes SoC sowie energiesparende Multi-Die-Anwendungen auf Plattformsystemebene verwendet werden. Ferner versteht es sich, dass obwohl lediglich begrenzte Mengen von Komponenten in der IC-Implementierung von 1 dargestellt sind, eine gegebene IC selbstverständlich zusätzliche Schaltungen aufweist. Zum Beispiel ist es unter Bezugnahme auf 1 zu beachten, dass jedes der Arrays 170 mit einem gegebenen IP-Agenten assoziiert sein kann, wie z.B. einem Verarbeitungskern, einem Beschleuniger, einer spezialisierten Verarbeitungsschaltung oder so weiter. Und in manchen Fällen können die Arrays 170 selbst innerhalb solcher Agenten aufgenommen sein. Zum Beispiel kann das Array 1701 ein Zwischenspeicher eines ersten Prozessorkerns der IC 105 sein.
  • Unter Bezugnahme auf 2 ist ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Insbesondere zeigt 2 ein Verfahren 200 zum Durchführen einer Speicherungsoperation unter Verwendung eines Handschlags zwischen einer Fabric-Brücke und einer Energieverwaltungseinheit, wie hier beschrieben. Von daher kann das Verfahren 200 durch eine Hardware-Schaltung, eine Firmware, eine Software und/oder Kombinationen davon durchgeführt werden. Im Allgemeinen wird das Verfahren 200 verwendet, um ein Handschlag zwischen der PMU und der Fabric-Brücke zu initiieren, und anschließend ein interaktives Speichern gegebener Daten, die in der Fabric-Brücke empfangen werden, über einen Seitenband-Mechanismus und dann von der Fabric-Brücke zum Speicher über eine primäre Fabric zu ermöglichen. Eine solche Operation kann durch eine PMU als Antwort auf eine Identifizierung einer Verfügbarkeit des Eintritts in einen gegebenen Niedrigleistungszustand initiiert werden. In einem Beispiel kann ein Betriebssystem (OS) oder ein anderer Supervisor eine Möglichkeit für einen Eintritt in einen tiefen Niedrigleistungszustand auf der Grundlage eines Systemkontextes identifizieren. Zum Beispiel kann das OS ein Auslöserereignis identifizieren, das den Eintritt in den tiefen Niedrigleistungszustand geeignet macht, wie z.B. ein Szenario mit ausgeschalteter Anzeige oder geschlossenem Bildschirm, in dem das Betriebssystem eine lange Leerlauflatenz vorhersagt und die Anforderungen an die Wachzustandslatenz gelockert hat. Zu diesem Zweck kann das OS eine Nachricht an die PMU senden, um die Latenzinformation zu aktualisieren. In einer konkreten Ausführungsform kann das OS einen Latenztoleranzwert senden, um die PMU dazu zu veranlassen, die Latenzinformation in einem Konfigurationsregister zu aktualisieren.
  • Als ein konkretes Beispiel kann angenommen werden, dass das OS eine Nachricht an die PMU sendet, um anzuzeigen, dass zurzeit eine gegebene Latenztoleranz (z.B. 30 Millisekunden (ms)) zum Aufwachen besteht. Mit dieser Information kann die PMU ein Latenztoleranzfeld eines Konfigurationsregisters aktualisieren. Auf der Grundlage dieser Aktualisierung kann die PMU wiederum einen Eintritt der IC in einen tiefen Niedrigleistungszustand auslösen. Die PMU kann (z.B. über ihre interne Firmware) die Kenntnis des gesamten zu speichernden Kontextes besitzen. Die Fabric-Brücke, die einen primären Agenten darstellt, errichtet einen Pfad über einen Speichercontroller zum Systemspeicher. Die PMU ermöglicht über einen Handschlag-Mechanismus zwischen sich und der Fabric-Brücke einen Transfer aller Daten (die durch die PMU zum Speichern identifiziert wurden), die an den Speicher gesendet werden sollen. Nachdem diese Speicherungsoperation abgeschlossen wurde, konfiguriert die PMU die Fabric-Brücke dahingehend, in einen gegebenen Schlafmodus überzugehen.
  • Wie dargestellt, beginnt das Verfahren 200 durch Empfangen eines Speicherungsbefehls in der Fabric-Brücke von der PMU (Block 210). Ein solcher Befehl kann über den Seitenbandrouter empfangen werden. Insbesondere kann dieser Speicherungsbefehl in Form einer Konfigurationsnachricht implementiert werden, die verschiedene Konfigurationsinformationen aufweist, und eines Befehls, der eine Startadresse aufweist, um eine Position einer Anfangsadresse im Systemspeicher zu identifizieren, an der ein Datenblock gespeichert werden soll. Als Nächstes geht die Steuerung zu Block 220 über, in dem die Fabric-Brücke auf der Grundlage dieses Speicherungsbefehls konfiguriert werden kann. Zum Beispiel kann die Fabric-Brücke mit dieser Information, die die Adresseninformation und so weiter aufweist, konfiguriert werden. Als Nächstes geht die Steuerung zu Block 230 über, in dem Schreibdaten in der Fabric-Brücke empfangen und in einem Puffer gespeichert werden. Insbesondere kann die PMU einen Schreibdaten-Befehl mit einer gegebenen Dateneinheit, z.B. 32 Bits von Daten, ausgeben. Ein solcher Befehl kann von der PMU empfangen werden. Beim Empfang dieser Daten kann die Fabric-Brücke die Daten in einem gegebenen ihrer mehreren Puffer, z.B. in einer FIFO-Reihenfolge, speichern.
  • Als Nächstes geht die Steuerung zu Block 240 über, in dem ein GO-Befehl in der Fabric-Brücke von der PMU empfangen wird. Insbesondere ist dieser GO-Befehl ein Einfügebefehl, der den Handschlag-Befehl von der PMU darstellt, um die Fabric-Brücke dazu zu veranlassen, die Daten entlang eines primären Kommunikationspfades in den Speicher einzufügen. Von daher geht die Steuerung zu Block 250 über, in dem die Fabric-Brücke die Daten über die primäre Fabric an den Speicher sendet. Zum Beispiel kommuniziert unter Bezugnahme auf 1 die Fabric-Brücke 140 dieses Datensegment über die primäre skalierbare Fabric (PSF) 110, den I/O-Port 120 und durch den Speichercontroller 125 und die Schnittstelle 130, um seine Speicherung innerhalb des Systemspeichers 135 zu ermöglichen.
  • Unter weiterer Bezugnahme auf 2 wird als Nächstes am Diamanten 260 bestimmt, ob zusätzliche Daten vorhanden sind, die gespeichert werden sollen. Diese Bestimmung kann zumindest teilweise auf dem Empfang zusätzlicher Seitenband-Kommunikationen mit der PMU basieren. Wenn zusätzliche Daten gespeichert werden sollen, geht die Steuerung zu Block 270 über, in dem die Adresse (z.B. gemäß einer Autoinkrementierungsoperation) inkrementiert werden kann und eine Befehlsbildung ebenfalls durchgeführt werden kann. Danach geht die Steuerung zu Block 230 über, um zusätzliche Schreibdaten zu empfangen. Obwohl in der Ausführungsform von 2 auf dieser hohen Ebene dargestellt, versteht es sich, dass viele Abwandlungen und Alternativen möglich sind.
  • Unter Bezugnahme auf 3 ist ein Ablaufdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. Insbesondere zeigt 3 ein Verfahren 300 zum Durchführen einer Wiederherstellungsoperation unter Verwendung eines Handschlags zwischen einer Fabric-Brücke und einer Energieverwaltungseinheit, wie hier beschrieben. Von daher kann das Verfahren 300 durch eine Hardware-Schaltung, eine Firmware, eine Software und/oder Kombinationen davon durchgeführt werden. Im Allgemeinen wird das Verfahren 300 verwendet, um einen Handschlag zwischen der PMU und der Fabric-Brücke zu initiieren, und anschließend ein interaktives Wiederherstellen gegebener Daten vom Speicher über eine primäre Fabric und dann von der Fabric-Brücke an die PMU über einen Seitenband-Mechanismus zu ermöglichen. Es ist zu beachten, dass die Austrittssequenz aus einem tiefen Niedrigleistungszustand ähnlich jener eines Kaltstarts eines Prozessors ist. Die PMU versorgt die Fabric-Brücke und einen anderen minimalen Satz von Komponenten, die an einer Wiederherstellungsoperation beteiligt sind, einschließlich des Speichercontrollers und der Speicherschnittstelle, mit Strom. Ein Handschlag zwischen der PMU und der Fabric-Brücke kann verwendet werden, um alle Daten aus dem Speicher wiederherzustellen.
  • Wie dargestellt, beginnt das Verfahren 300 durch Empfangen eines Wiederherstellungsbefehls in der Fabric-Brücke von der PMU (Block 310). Ein solcher Befehl kann über den Seitenbandrouter als eine Konfigurationsnachricht empfangen werden, die verschiedene Konfigurationsinformationen aufweist, und ein Befehl, der eine Startadresse aufweist, um eine Position einer Anfangsadresse im Systemspeicher zu identifizieren, an der ein Datenblock wiederhergestellt werden soll. Als Nächstes geht die Steuerung zu Block 320 über, in dem die Fabric-Brücke auf der Grundlage dieses Wiederherstellungsbefehls konfiguriert werden kann. Zum Beispiel kann die Fabric-Brücke mit dieser Information, die die Adressinformation und so weiter aufweist, konfiguriert werden. Als Nächstes geht die Steuerung zu Block 330 über, in dem ein GO-Befehl in der Fabric-Brücke von der PMU empfangen wird. Dieser GO-Befehl veranlasst die Fabric-Brücke dazu, einen Datenlesebefehl an den Speicher über die primäre Fabric zu senden (Block 340). Danach werden diese Lesedaten in der Fabric-Brücke empfangen und in einem Puffer gespeichert (Block 350).
  • Unter weiterer Bezugnahme auf 3 geht die Steuerung zu Block 355 über, in dem eine Abfrageanforderung von der PMU empfangen wird. Diese Abfrageanforderung sucht Informationen bezüglich eines Status einer unerledigten Leseoperation, nämlich, ob eine Lesevervollständigung empfangen wurde. Für diese Abfrageanforderung kann auf ein Abruf- oder Statusregister der Fabric-Brücke verwiesen werden, um einen Status einer oder mehrerer Leseanforderungen zu bestimmen. Es versteht sich außerdem, dass, obwohl eine Abfrageanforderung bei Block 355 auf eine lineare Weise nach Block 350 dargestellt ist, eine solche Abfrageanforderung asynchron in Bezug auf tatsächliche Leseanforderungen und -vervollständigungen vom Speicher empfangen (und gehandhabt) werden können.
  • Im Ablauf des Verfahrens 300 geht die Steuerung zu Block 360 über, in dem eine Abfrageantwort an die PMU gesendet wird. Insbesondere kann diese Abfrageantwort Informationen bereitstellen, die z.B. aus dem Status- oder Abfrageregister erlangt werden, die z.B. eine (oder keine) Anwesenheit von Daten in einem oder mehreren Vervollständigungsregistern (z.B. dem FIFO-Puffer) anzeigen, welche aus dem Systemspeicher als Antwort auf vorherige Lesebefehle erlangt wurden.
  • Unter der Annahme, dass eine Abfrageantwort eine Anwesenheit von angeforderten Daten anzeigt, kann die PMU eine Leseanforderung senden. Wie in 3 zu sehen, geht als Nächstes daher die Steuerung zu Block 370 über, in dem diese Leseanforderung von der PMU empfangen wird. Als Antwort auf diese Leseanforderung kann die Fabric-Brücke bei Block 380 Vervollständigungsdaten an die PMU senden. Weitere Operationen, einschließlich einer Aktualisierung des Abfrage- oder Statusregisters zum Löschen der gültigen Anzeige, können ebenfalls stattfinden.
  • Unter weiterer Bezugnahme auf 3 wird als Nächstes am Diamanten 390 bestimmt, ob zusätzliche Daten vorhanden sind, die wiederhergestellt werden sollen. Diese Bestimmung kann zumindest teilweise auf dem Empfang zusätzlicher Seitenband-Kommunikationen mit der PMU, wie z.B. einer Anforderung eines anderen GO-Befehls, basieren. Gegebenenfalls geht die Steuerung zu Block 395 über, in dem die Adresse inkrementiert (z.B. gemäß einer Autoinkrementierungsoperation) werden kann und eine Befehlsbildung ebenfalls durchgeführt werden kann. Danach geht die Steuerung zurück zu Block 340, um einen weiteren Datenlesebefehl an den Speicher zu senden. Obwohl in der Ausführungsform von 3 auf dieser hohen Ebene dargestellt, versteht es sich, dass viele Abwandlungen und Alternativen möglich sind.
  • Unter Bezugnahme auf 4 ist ein Transaktionsablauf für Speicherungsoperationen gemäß einer Ausführungsform dargestellt. Insbesondere ist, wie in 4 dargestellt, ein Transaktionsablauf 400 für Handschlag-Operationen zwischen einer PMU 410 und einer Fabric-Brücke 420 gezeigt. Als Antwort auf diese Handschlag-Operationen kann die Fabric-Brücke 420 wiederum Daten in einen Speicher 430 speichern. In der Darstellung von 4 weist der Transaktionsablauf 400 Transaktionen auf, die zwischen der PMU 410 und der Fabric-Brücke 420 gesendet werden. Insbesondere sind diese Transaktionen im Allgemeinen als Seitenband-Transaktionen 440 dargestellt. Außerdem sind Transaktionen, die von der Fabric-Brücke 420 an den Speicher 430 gesendet werden, im Allgemeinen als Transaktionen 450 der primären skalierbaren Fabric (PSF-Transaktionen) dargestellt.
  • Wie in 4 gezeigt, gibt die PMU 410 eine Konfigurationsnachricht (Konfigurationsanforderung) an die Fabric-Brücke 420 aus. Danach gibt die PMU 410 einen Befehl (Psf_Cmd_fld) aus, der mehrere Flits aufweisen kann, der eine Startadresse im Speicher 430 für die Sicherungsoperation und andere Befehlsinformationen für die Sicherungsoperation anzeigt, von denen alle in einem oder mehreren Befehlsregistern der Fabric-Brücke 420 gespeichert werden können. In einer Ausführungsform können diese Befehlsnachrichten in Form eines oder mehrerer PSF-Befehle sein, nämlich mehreren Flits, von denen jeder mehrere Bits aufweist, um Informationen bereitzustellen, um ein oder mehrere Befehlsregister, wie z.B. ein Befehlsattributregister der Fabric-Brücke 420, zu befüllen. Eine solche Information weist in einer Ausführungsform Befehlstypinformationen, Identifizierungsinformationen, z.B. bezüglich einer Quelle und eines Ziels, Adressierungsinformationen (die einer gegebenen Adresse innerhalb eines außerhalb des Chips befindlichen Speichers entsprechen können) und andere Informationen, die mit dem Befehl assoziiert sind, einschließlich verschiedener Header-Informationen, Formatierungsinformationen und so weiter, auf. Obwohl das in 4 dargestellte konkrete Beispiel einen Befehl mit 6 Flits aufweist, versteht es sich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Für die vorliegenden Zwecke ist von Bedeutung, dass diese Befehls-Flits zumindest die Startadresse innerhalb des Zielspeichers aufweisen, um zu ermöglichen, dass die Speicherungsoperation stattfindet.
  • Außerdem wird in der in 4 dargestellten Ausführungsform eine Autoinkrementierungsimplementierung verwendet. Obwohl mehrere Datenblöcke im Speicher während des Transaktionsablaufs 400 gespeichert werden können (und potentiell eine sehr große Anzahl von Blöcken, z.B. Hunderte von Blöcken, wobei die Größe jedes Blocks möglicherweise mehrere KB beträgt), wird von daher lediglich eine einzelne Adresse von der PMU 410 an die Fabric-Brücke 420 kommuniziert. Und außerdem werden die verschiedenen Befehlsinformationen lediglich ein einziges Mal gesendet. In einer Ausführungsform hat die PMU 410 das Wissen über alle Datenblöcke, die gespeichert werden sollen, und eine Abbildung eines gesicherten Blockspeicherungsplatzes im Speicher (z.B. ein oder mehrere abgesonderten Bereiche im DRAM-Raum). Bei jeder Speicherungs-/Wiederherstellungsoperation können eine Startadresse, wo die Daten gespeichert und von wo sie wiederhergestellt werden sollen, und eine entsprechende Größe an die Fabric-Brücke 420, z.B. als Datenzeiger, bereitgestellt werden. In manchen Fällen ist die Fabric-Brücke 430 mit diesem Wissen ausgestattet, ohne dass eine Programmierung von der PMU 410 notwendig ist.
  • Um eine Autoinkrementierungsoperation zu ermöglichen, können die von der PMU 410 gesendeten Befehlsnachrichten einen Autoinkrementierungsindikator aufweisen, der einen festgelegten Status aufweisen kann, um anzuzeigen, dass die Autoinkrementierungsoperation aktiviert werden soll. Und als Antwort auf den Empfang dieses Indikators als Teil des Befehls kann die Fabric-Brücke 420 einen festgelegten Autoinkrementierungsindikator in einem gegebenen Feld ihres einen oder ihrer mehreren Befehlsregister speichern. Das heißt, bei einer automatischen Inkrementierung, wie hier durchgeführt, kann ein aus einer einzelnen Datenkommunikation und einem anschließenden GO-Befehl gebildetes Handschlag-Protokoll stattfinden, um große Informationsmengen vor Eintritt in einen gegebenen Niedrigleistungszustand effizient an den Speicher zu senden.
  • Unter weiterer Bezugnahme auf 4 gibt nach der Kommunikation dieser PSF-Befehlsinformation die PMU 410 einen ersten Schreibdatenbefehl (Datat0) mit entsprechenden Daten, die geschrieben werden sollen (z.B. 32 Bits), aus. Die Fabric-Brücke 420 speichert diese Daten in einem vorläufigen Speicher, wie z.B. einem FIFO-Puffer. Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, wird zur Durchführung einer Handschlag-Operation während eines Speicherungsablaufs, wie in 4, dieser Schreibdatenbefehl in der Fabric-Brücke 420 empfangen und in einem einzelnen Schreibregister gespeichert, das zu Zwecken dieser Schreibbefehle von der PMU 410 reserviert ist.
  • In jedem Fall sendet die PMU 410 nach der Kommunikation des Datenbefehls als Nächstes einen GO-Befehl. Dieser GO-Befehl veranlasst die Fabric-Brücke 420 dazu, diese Daten über eine an den Speicher 420 gesendete Primärfabric-Transaktion einzufügen. Insbesondere kann die Fabric-Brücke 420 ausgelegt sein, eine Schreibspeichertransaktion an die Startadresse, die im Befehlsregister gespeichert ist, zu senden. Es versteht sich, dass zusätzliche Informationen innerhalb der Schreibspeichertransaktion aufgenommen werden können. Zum Beispiel können verschiedene Identifizierungsinformationen, die Quell- und Zielidentifizierungen aufweisen, neben anderen Informationen vorhanden sein. In einer konkreten Ausführungsform kann eine Schreibspeichertransaktion auch Sicherheitsinformationen aufweisen, wie z.B. Sicherheitsattributinformation (SAI) der PMU 410, um die Schreibtransaktion als eine vertrauenswürdige Transaktion zu identifizieren, die über den primären Kommunikationspfad fortgesetzt wird. Fakultativ kann nach dem Senden dieser Schreibspeichertransaktion die Fabric-Brücke 420 eine Vervollständigung zurück an die PMU 410 ausgeben.
  • Wie ferner dargestellt, können, solange zusätzliche Daten zum Speichern vorhanden sind, diese Daten und GO-Befehle seriell von der PMU 410 an die Fabric-Brücke 420 gesendet werden. Insbesondere kann der Overhead der Befehlskommunikation durch Durchführen einer automatischen Inkrementierung der Adressinformation vermieden werden. Das heißt, nach jeder Schreibtransaktion, die über die primäre Fabric an den Speicher 430 gerichtet ist, führt die Fabric-Brücke 420 eine Autoinkrementierung durch, um die Adresse in ihrem Befehlsregister zu aktualisieren. Als ein solches Beispiel aktualisiert, unter der Annahme, dass einkommende Datenblöcke 32 Bits aufweisen, jede Autoinkrementierungsoperation die in einem Adressfeld des Befehlsregisters gespeicherte Adresse um einen Betrag von vier Byte. Es ist zu beachten, dass zusätzlich zur Autoinkrementierung der Startadresse eine Schreibtransaktion automatisch formatiert werden kann. Nämlich kann ein Befehlsformat für die Speicherschreibtransaktion automatisch innerhalb der Fabric-Brücke 420 generiert werden, der die vorstehend beschriebene Informationen aufweist, einschließlich der Zieladresse, des Quell- und Zielidentifikators, Sicherheitsinformationen und so weiter. Von daher kann eine Autoinkrementierungs- und Befehlsbildungsoperation zwischen jedem solchen Paket stattfinden. Diese Kommunikationen (Daten und GO-Befehl von der PMU 410 und Schreibspeichertransaktion von der Fabric-Brücke 420) können seriell für jedes Datensegment, z.B. 32 Bits, stattfinden. Obwohl sich die in 4 dargestellte Ausführungsform auf einen Autoinkrementierungs-Betriebsmodus für die Effizienz und eine reduzierte Latenz bezieht, ist es zu beachten, dass es möglich ist, in einem regulären Modus zu arbeiten, in dem Adressinformationen nicht inkrementiert werden. In solchen Fällen wird vor der Kommunikation eines Datenbefehls und eines entsprechenden GO-Befehls eine Befehlsinformation wie im Transaktionsablauf 400 gesendet. Obwohl in der Ausführungsform von 4 auf dieser hohen Ebene dargestellt, versteht es sich, dass viele Abwandlungen und Alternativen möglich sind.
  • Unter Bezugnahme auf 5 ist ein Transaktionsablauf für Wiederherstellungsoperationen gemäß einer Ausführungsform dargestellt. Insbesondere ist, wie in 5 dargestellt, ein Transaktionsablauf 500 für Handschlag-Operationen zwischen einer PMU 510 und einer Fabric-Brücke 520 gezeigt. Als Antwort auf diese Handschlag-Operationen kann die Fabric-Brücke 520 wiederum Daten aus einem Speicher 530 lesen. In der Darstellung von 5 weist der Transaktionsablauf 500 Transaktionen auf, die zwischen der PMU 510 und der Fabric-Brücke 520 gesendet werden. Insbesondere sind diese Transaktionen im Allgemeinen als Seitenband-Transaktionen 540 dargestellt. Außerdem sind Transaktionen, die von der Fabric-Brücke 520 an den Speicher 530 gesendet werden, im Allgemeinen als Transaktionen 550 der primären skalierbaren Fabric (PSF-Transaktionen) gezeigt.
  • Wie in 5 dargestellt, gibt die PMU 510 eine Konfigurationsnachricht (Konfigurationsanforderung) an die Fabric-Brücke 520 aus. Danach gibt die PMU 510 einen Befehl (Psf_Cmd_fld) aus, der mehrere Flits aufweisen kann, der eine Startadresse im Speicher 530 für die Wiederherstellungsoperation und andere Befehlsinformationen für die Wiederherstellungsoperation anzeigt, von denen alle in einem oder mehreren Befehlsregistern der Fabric-Brücke 520 gespeichert sein können. Wie bei der vorstehenden Diskussion weist eine solche Information in einer Ausführungsform Befehlstypinformationen, Identifizierungsinformationen, z.B. bezüglich einer Quelle und eines Ziels, Adressierungsinformationen (die einer gegebenen Adresse innerhalb eines außerhalb des Chips befindlichen Speichers entsprechen können) und andere Informationen auf, die mit dem Befehl assoziiert sind, einschließlich verschiedener Header-Informationen, Formatierungsinformationen und so weiter. Für die vorliegenden Zwecke ist von Bedeutung, dass diese Befehls-Flits zumindest die Startadresse innerhalb des Quellspeichers aufweisen, um zu ermöglichen, dass die Wiederherstellungsoperation stattfindet.
  • Außerdem wird in der in 5 dargestellten Ausführungsform eine Autoinkrementierungsimplementierung verwendet. Obwohl mehrere Datenblöcke aus dem Speicher während des Transaktionsablaufs 500 gelesen werden können, wird von daher lediglich eine einzelne Adresse von der PMU 510 an die Fabric-Brücke 520 einher mit einem einzelnen Senden verschiedener Befehlsinformationen kommuniziert. Die von der PMU 510 gesendeten Befehlsnachrichten können einen Autoinkrementierungsindikator aufweisen, der einen festgelegten Status aufweisen kann, um anzuzeigen, dass die Autoinkrementierungsoperation aktiviert werden soll. Und als Antwort auf den Empfang dieses Indikators als Teil des Befehls kann die Fabric-Brücke 520 einen festgelegten Autoinkrementierungsindikator in einem gegebenen Feld ihres einen oder ihrer mehreren Befehlsregister speichern.
  • Unter weiterer Bezugnahme auf 5 gibt nach der Kommunikation dieser PSF-Befehlsinformation die PMU 510 einen ersten GO-Befehl aus, der die Fabric-Brücke 520 dazu veranlasst, eine Speicherleseanforderung an den Speicher 530 zu senden, der wiederum eine Lesevervollständigung mit den angeforderten Daten sendet.
  • Es ist zu beachten, dass Abfrageoperationen zwischen der PMU 510 und der Fabric-Brücke 520 stattfinden können, nämlich eine Abfrageanforderung von der PMU 510, um eine Abfrageantwort von der Fabric-Brücke 520 zu veranlassen. Solche Anforderungen und Antworten können iterativ stattfinden, bis die angeforderten Daten innerhalb der Fabric-Brücke 520 gespeichert sind.
  • Zu diesem Zeitpunkt sendet die PMU 510 als Antwort auf eine gültige Anzeige bezüglich der Anwesenheit von Daten innerhalb der Fabric-Brücke 520 eine Datenleseanforderung, die eine von der Fabric-Brücke 520 an die PMU 510 gesendete Datenvervollständigung auslöst. Dieser Ablauf mit dem GO-Befehl, der Leseanforderung an den Speicher, der resultierenden Datenrückgabe und Abfrage, bis Daten empfangen werden, kann iterativ, wie unter Steuerung der PMU 510, fortfahren. Wie bei der vorstehenden Diskussion kann dieser iterative Prozess mithilfe der automatischen Adressinkrementierung und Befehlsbildung stattfinden. Obwohl in der Ausführungsform von 5 auf dieser hohen Ebene dargestellt, versteht es sich, dass viele Abwandlungen und Alternativen möglich sind.
  • Unter Verwendung einer Ausführungsform, wie hier beschrieben, wird eine Architektur realisiert, in der eine PMU innerhalb eines Seitenband-Netzes gehalten wird. Bei dieser Anordnung können die Kosten und der Aufwand (einschließlich individueller Anpassung) für die Bereitstellung einer primären Schnittstelle für eine PMU vermieden werden. Außerdem können bei einem Handschlag-Protokoll, wie hier beschrieben, eine Fabric-Brücke und PMU in Synchronisation sein. Durch ein FIFO können Pufferinteraktionswartezeiten zwischen einer PMU und einer Fabric-Brücke reduziert werden. Das heißt, dieser Puffermechanismus kann eine gesamte Bandbreite für Austritts- und Eintrittsoperationen in tiefe Niedrigleistungszustände verbessern, da Fabric-Geschwindigkeiten (primäre und sekundäre) und Durchsatz an den Speicher variieren.
  • Ausführungsformen, wie hier beschrieben, können in einer Vielzahl von Systemtypen implementiert werden, die von kleinen tragbaren Vorrichtungen bis zu größeren, rechenintensiveren komplexen Vorrichtungen reichen. Unter Bezugnahme auf 6 ist ein Blockdiagramm eines Beispielsystems dargestellt, mit dem Ausführungsformen verwendet werden können. In der Darstellung von 6 kann ein System 600 ein mobiles System, wie z.B. ein Tablet-Computer, 2:1-Tablet, Phablet, ein fahrzeuginternes System oder ein anderes System sein. Wie dargestellt, ist ein SoC 610 vorhanden und kann derart konfiguriert werden, dass es als ein Anwendungsprozessor für die Vorrichtung arbeitet. Das SoC 610 kann eine Energieverwaltungseinheit und eine Fabric-Brücke aufweisen, die ein Handschlag-Protokoll implementieren, um zu ermöglichen, dass wesentliche Mengen des Kontextzustands in tiefen Niedrigleistungszuständen gespeichert und wiederhergestellt werden, wie hierin beschrieben.
  • Eine Vielfalt von Vorrichtungen kann mit dem SoC 610 gekoppelt sein. Wie in der Darstellung gezeigt, weist ein Speichersubsystem einen Flash-Speicher 640 und ein DRAM 645 auf, die mit dem SoC 610 gekoppelt sind. In Ausführungsformen kann das DRAM 645 einen oder mehrere abgesonderte Speicherbereiche zum Speichern dieses Kontextzustands während besonders tiefen Niedrigleistungszuständen aufweisen. Es ist zu beachten, dass in dieser Hinsicht das DRAM 645 zumindest in einen Selbstauffrischungszustand während dieser Niedrigleistungsgelegenheiten versetzt werden kann, um den Kontext zu behalten. Außerdem ist ein Touchpanel 620 mit dem SoC 610 gekoppelt, um eine Anzeigemöglichkeit und Benutzereingabe über Berührung bereitzustellen, einschließlich des Vorsehens einer virtuellen Tastatur auf einer Anzeige des Touchpanels 620. Um verdrahtete Netzwerkkonnektivität bereitzustellen, ist das SoC 610 mit einer Ethernet-Schnittstelle 630 gekoppelt. Ein peripherer Hub 625 ist mit dem SoC 610 gekoppelt, um eine Verbindung mit verschiedenen peripheren Vorrichtungen zu ermöglichen, welche mit dem System 600 über beliebige von verschiedenen Ports oder anderen Verbindern gekoppelt sein können.
  • Zusätzlich zu einer internen Energieverwaltungsschaltung und Funktionalität innerhalb des SoC 610 ist eine PMIC 680 mit dem SoC 610 gekoppelt, um eine plattformbasierte Energieverwaltung bereitzustellen, die z.B. darauf basiert, ob das System durch eine Batterie 690 oder Wechselstrom über einen Wechselstromadapter (AC-Adapter) 695 versorgt wird. Zusätzlich zu dieser Leistungsquellen-basierten Energieverwaltung kann die PMIC 680 ferner Plattform-Energieverwaltungsaktivitäten auf der Grundlage von Umgebungs- und Benutzerbedingungen durchführen. Noch ferner kann die PMIC 680 Steuer- und Statusinformationen an das SoC 610 kommunizieren, um verschiedene Energieverwaltungsmaßnahmen innerhalb des SoC 610 zu veranlassen.
  • Unter weiterer Bezugnahme auf 6 ist eine WLAN-Einheit 650 mit dem SoC 610 und seinerseits mit einer Antenne 655 gekoppelt, um drahtlose Fähigkeiten bereitzustellen. In verschiedenen Implementierungen kann die WLAN-Einheit 650 eine Kommunikation gemäß einem oder mehreren drahtlosen Protokollen bereitstellen. Wie ferner dargestellt, können mehrere Sensoren 660 mit dem SoC 610 gekoppelt sein. Diese Sensoren können verschiedene Beschleunigungsmesser-, Umgebungs- und andere Sensoren umfassen, einschließlich Benutzergestensensoren. Zum Schluss ist ein Audiocodec 665 mit dem SoC 610 gekoppelt, um eine Schnittstelle an eine Audioausgabevorrichtung 670 bereitzustellen. Obwohl mit dieser konkreten Implementierung in 6 dargestellt, versteht es sich selbstverständlich, dass viele Abwandlungen und Alternativen möglich sind.
  • Unter Bezugnahme auf 7 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 7 dargestellt, ist das Multiprozessorsystem 700 ein Punkt-zu-Punkt-Verbindungssystem und weist einen ersten Prozessor 770 und einen zweiten Prozessor 780 auf, die über eine Punkt-zu-Punkt-Verbindung 750 gekoppelt sind. Wie in 7 dargestellt, kann jeder der Prozessoren 770 und 780 ein Mehrkernprozessor sein, der einen ersten und einen zweiten Prozessorkern (d.h. Prozessorkerne 774a und 774b und Prozessorkerne 784a und 784b) aufweist, obwohl potenziell viele weitere Kerne in den Prozessoren vorhanden sein können. Die Prozessoren 770, 780 können ferner entsprechende PMUs 775, 785 und entsprechende Fabric-Brücken 779, 789 aufweisen, die Handschlag-Protokolle, wie hier beschrieben, durchführen können, um zu ermöglichen, dass Speicherungs- und Wiederherstellungsoperationen stattfinden.
  • Unter weiterer Bezugnahme auf 7 weist der erste Prozessor 770 ferner einen Speichercontrollerhub (MCH) 772 und Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 776 und 778 auf. Gleichermaßen weist der zweite Prozessor 780 einen MCH 782 und P-P-Schnittstellen 786 und 788 auf. Wie in 7 dargestellt, koppeln MCHs 772 und 782 die Prozessoren mit den entsprechenden Speichern, nämlich einem Speicher 732 und einem Speicher 734, die lokal den entsprechenden Prozessoren zugeordnete Abschnitte von Systemspeicher (z.B. DRAM) sein können. Die Speicher 732, 734 können jeweils abgesonderte Bereiche zum Speichern des Kontextzustands bei Niedrigleistungsereignissen aufweisen, wie hier beschrieben. Der erste Prozessor 770 und der zweite Prozessor 780 können mit einem Chipsatz 790 jeweils über P-P-Verbindungen 762 bzw. 764 gekoppelt werden. Wie in 7 gezeigt, weist der Chipsatz 790 P-P-Schnittstellen 794 und 798 auf.
  • Außerdem weist der Chipsatz 790 eine Schnittstelle 792 auf, um den Chipsatz 790 mit einer Hochleistungs-Grafik-Engine 738 über eine P-P-Verbindung 739 zu koppeln. Der Chipsatz 790 kann wiederum mit einem ersten Bus 716 über eine Schnittstelle 796 gekoppelt sein. Wie in 7 dargestellt, können verschiedene Eingabe-/Ausgabevorrichtungen (I/O-Vorrichtungen) 714 mit dem ersten Bus 716 samt einer Busbrücke 718, die ersten Bus 716 mit einem zweiten Bus 720 koppelt, gekoppelt sein. Verschiedene Vorrichtungen, die zum Beispiel eine Tastatur/Maus 722, Kommunikationsvorrichtungen 726 und eine Datenspeichereinheit 728, wie z.B. ein Plattenlaufwerk- oder anderes Massenspeichergerät, das einen Code 730 aufweisen kann, können in einer Ausführungsform mit dem zweiten Bus 720 gekoppelt sein. Ferner kann eine Audio-I/O 724 mit dem zweiten Bus 720 gekoppelt sein. Ausführungsformen können in anderen Typen von Systemen aufgenommen werden, die mobile Vorrichtungen, wie z.B. intelligente Mobiltelefone, Tablet-Computer, Netbook, Ultrabook™ oder so weiter aufweisen.
  • Unter Bezugnahme auf 8 ist ein Blockdiagramm eines Systems gemäß einer anderen Ausführungsform der vorliegenden Erfindung dargestellt. In der Ausführungsform von 8 ist ein System 800 ein autonomes Fahrrechensystem. Von daher kann das System 800 innerhalb eines Fahrzeugs implementiert werden, das ein gewisses Maß an autonomem Fahren vorsieht. Es versteht sich, dass bei verschiedenen Stufen autonomer Fahrkontrolle verschiedene Niveaus an Auslastung innerhalb des Systems 800 ausgeführt werden können, um einen Teil oder die Gesamtheit der Fahraufgaben autonom durchzuführen.
  • Wie dargestellt, umfasst das System 800 einen Prozessor 810, der ein allgemeiner Mehrkernprozessor oder ein anderes SoC sein kann. Der Prozessor 810 kann eine PMU und eine Fabric-Brücke aufweisen, um ein Handschlag-Protokoll, wie hier beschrieben, zum Verwenden bei Speicherungs- und Wiederherstellungsoperationen in tiefen Niedrigleistungszustandsereignissen durchzuführen. In verschiedenen Implementierungen können mehrere solche Prozessoren implementiert werden, um Arbeitslasten eines autonomen Fahrens in diesen Prozessoren flexibel zuzuweisen. Der Prozessor 810 empfängt Leistung, die durch eine integrierte Energieverwaltungsschaltung (PMIC) 840 gesteuert wird.
  • Das System 800 kann ferner ein oder mehrere Field Programmable Gate Arrays (PFGAs) 815 oder andere programmierbare Beschleuniger aufweisen, auf die bestimmte Arbeitslasten des autonomen Fahrens abgeladen werden können. Der Prozessor 810 ist ferner mit einem nichtflüchtigen Speicher 825 gekoppelt, der in einer Ausführungsform als ein Flash-Speicher implementiert sein kann. Um eine Kommunikation mit anderen Komponenten innerhalb eines Fahrzeugs bereitzustellen, ist der Prozessor 810 ferner mit einer Switch-Fabric 820 gekoppelt, die in einer Ausführungsform als eine Ethernet-Switch-Fabric implementiert sein kann, die wiederum mit anderen Komponenten innerhalb eines Fahrzeugs gekoppelt sein kann, welche Anzeigekomponenten, Fahrzeug-Infotainment-Systeme und so weiter aufweisen. Noch ferner ist der Prozessor 810 (und die Switch-Fabric 820) mit einem Mikrocontroller 850 gekoppelt.
  • Um die Interaktion mit anderen Systemen zu ermöglichen, einschließlich anderen Fahrzeugen, Fahrbahnsystemen, drahtlosen Aktualisierungsquellen, Infotainment-Inhaltsquellen, Sensordatenkommunikationen usw., können außerdem der Prozessor 810 und die MCU 850 mit einer oder mehreren integrierten Hochfrequenzschaltungen (RFICs) 860 gekoppelt werden. In Ausführungsformen kann die RFIC 860 ausgelegt sein, um 5G-basierte Spezifikationen für die Kommunikation von Fahrzeug- und anderen Daten über eine Vielzahl von drahtlosen Netzwerken zu unterstützen. Zu diesem Zweck kann die RFIC 860 mit einer oder mehreren Antennen 870" bis 870" eines Fahrzeugs gekoppelt sein.
  • Wie ferner in 8 dargestellt, kann das System 800 mehrere Sensoren 830" bis 830" aufweisen, die Sensorinformationen über einen Sensorhub 835 an den Prozessor 810 bereitstellen. Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht in Ausführungsformen nicht beschränkt ist, können solche Sensoren neben anderen Sensortypen Lidar-, Ultraschall-, Radar- und optische Sensoren aufweisen. Solche Sensoren können große Mengen an Sensordaten erlangen, während sich das Fahrzeug in Betrieb befindet. Der Sensorhub 835 kann ausgelegt sein, um mindestens einen Teil dieser Daten abzusichern, um Informationen hinsichtlich der Umgebung des Fahrzeugs zum Bereitstellen an den Prozessor 810 zu liefern. Der Prozessor 810 und/oder das FPGA 815 können wiederum diese gesicherten Sensorinformationen in Verbindung mit dem Durchführen von Arbeitslasten des autonomen Fahrens verwenden. Obwohl in der Ausführungsform von 8 auf dieser hohen Ebene dargestellt, versteht es sich, dass viele Abwandlungen und Alternativen möglich sind.
  • Die folgenden Beispiele beziehen sich auf weitere Ausführungsformen.
  • In einem Beispiel weist eine Vorrichtung auf: mindestens eine Verarbeitungsschaltung; mindestens ein Array, das mit der mindestens einen Verarbeitungsschaltung assoziiert ist; eine Leistungssteuerung, um den Leistungsverbrauch der Vorrichtung zu verwalten; und eine Fabric-Brücke, die mit der Leistungssteuerung gekoppelt ist. Die Fabric-Brücke und die Leistungssteuerung können ausgelegt sein, um ein Handschlag-Protokoll zu implementieren, um zu ermöglichen, dass die Fabric-Brücke vor dem Eintritt der Vorrichtung in einen ersten Niedrigleistungszustand Daten von dem mindestens einen Array über einen Seitenband-Kommunikationspfad empfängt und die Daten an einen Systemspeicher, der mit der Vorrichtung gekoppelt ist, über einen primären Kommunikationspfad sendet.
  • In einem Beispiel weist der Seitenband-Kommunikationspfad einen ersten Seitenbandrouter auf, um die Leistungssteuerung und die Fabric-Brücke zu koppeln.
  • In einem Beispiel weist der primäre Kommunikationspfad eine primäre Fabric auf, um die Fabric-Brücke mit dem Systemspeicher über einen Speichercontroller zu koppeln.
  • In einem Beispiel weist die Leistungssteuerung einen Master auf, um das Handschlag-Protokoll vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand zu initiieren, wobei im ersten Niedrigleistungszustand die Vorrichtung den Kontext nicht behält.
  • In einem Beispiel ist die Leistungssteuerung zum Folgenden ausgelegt: Senden einer Konfigurationsanforderung an die Fabric-Brücke, um die Fabric-Brücke auf einen Eintritt in den ersten Niedrigleistungszustand vorzubereiten; Senden von mindestens einem Befehl an die Fabric-Brücke, der eine Adressinformation aufweist, um die Fabric-Brücke anzuweisen, einen ersten Datenblock an den Systemspeicher zu senden; Senden des ersten Datenblocks von dem mindestens einen Array an die Fabric-Brücke; und Senden eines Einfügebefehls an die Fabric-Brücke, um zu veranlassen, dass die Fabric-Brücke den ersten Datenblock über den primären Kommunikationspfad an eine erste Position im Systemspeicher, die der Adressinformation entspricht, sendet.
  • In einem Beispiel ist die Leistungssteuerung als Antwort auf einen Austritt der Vorrichtung aus dem ersten Niedrigleistungszustand zum Folgenden ausgelegt: Senden einer zweiten Konfigurationsanforderung an die Fabric-Brücke, um die Fabric-Brücke zum Austritt aus dem ersten Niedrigleistungszustand zu konfigurieren; Senden von mindestens einem zweiten Befehl an die Fabric-Brücke, der eine zweite Adressinformation aufweist, um die Fabric-Brücke dazu zu veranlassen, einen zweiten Datenblock aus einer zweiten Position im Systemspeicher, die der zweiten Adressinformation entspricht, zu lesen; Senden einer Abfrageanforderung an die Fabric-Brücke, um zu bestimmen, ob die Fabric-Brücke den zweiten Datenblock erlangt hat; Empfangen einer Abfrageanforderung von der Fabric-Brücke; und als Antwort auf eine Bereitschaftsanzeige der Abfrageantwort, die anzeigt, dass die Fabric-Brücke den zweiten Datenblock erlangt hat, Senden einer Leseanforderung an die Fabric-Brücke, um den zweiten Datenblock von der Fabric-Brücke zu empfangen und zu veranlassen, dass der zweite Datenblock in dem mindestens einen Array gespeichert wird.
  • In einem Beispiel weist die Fabric-Brücke auf: mindestens einen Puffer, um den ersten Datenblock vor Empfang des Einfügebefehls zu speichern; und mindestens ein Abfrageregister, um Informationen hinsichtlich eines Status unerledigter Leseoperationen vom Systemspeicher zu speichern.
  • In einem Beispiel weist die Vorrichtung ferner auf: eine erste Leistungsdomäne, die die Leistungssteuerung aufweist, und eine zweite Leistungsdomäne, die die Fabric-Brücke aufweist, wobei die erste Leistungsdomäne eine letzte Leistungsdomäne ist, die vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand abgeschaltet wird, und die zweite Leistungsdomäne eine vorletzte Leistungsdomäne ist, die vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand abgeschaltet wird.
  • In einem Beispiel initiiert die Leistungssteuerung den Eintritt in den ersten Niedrigleistungszustand als Antwort auf eine Anzeige einer Leerlaufperiode, die einen Latenztoleranzwert übersteigt, wobei der Latenztoleranzwert in einem Konfigurationsregister gespeichert ist.
  • In einem Beispiel ist die Fabric-Brücke zum Folgenden ausgelegt: Empfangen, von der Leistungssteuerung, einer Startadresse im Systemspeicher, an der ein Datenblock gespeichert werden soll, eines ersten Abschnitts des Datenblocks und eines ersten Einfügebefehls; und Senden des ersten Abschnitts des Datenblocks an den Systemspeicher zum Speichern an der Startadresse.
  • In einem Beispiel ist die Fabric-Brücke zum Folgenden ausgelegt: Empfangen, von der Leistungssteuerung, eines zweiten Abschnitts des Datenblocks und eines zweiten Einfügebefehls; Inkrementieren der Startadresse auf eine zweite Adresse im Systemspeicher, an der der zweite Abschnitt des Datenblocks gespeichert werden soll; und Senden des zweiten Abschnitts des Datenblocks an den Systemspeicher zum Speichern an der zweiten Adresse.
  • In einem anderen Beispiel umfasst ein Verfahren: Empfangen, in einer Fabric-Brücke einer integrierten Schaltung, eines Speicherungsbefehls von einer Leistungssteuerung der integrierten Schaltung über einen Seitenband-Kommunikationspfad, wobei der Speicherungsbefehl eine Startadresse und einen Autoinkrementierungsindikator aufweist; Empfangen, in der Fabric-Brücke, eines ersten Datenblocks und Speichern des ersten Datenblocks in mindestens einem Puffer der Fabric-Brücke, und Senden des ersten Datenblocks über einen primären Kommunikationspfad an einen Systemspeicher zum Speichern an der Startadresse als Antwort auf einen ersten Einfügebefehl von der Leistungssteuerung; Empfangen, in der Fabric-Brücke, eines zweiten Datenblocks und Speichern des zweiten Datenblocks in dem mindestens einen Puffer der Fabric-Brücke; Inkrementieren der Startadresse auf eine weitere Adresse; und Senden des zweiten Datenblocks über den primären Kommunikationspfad an den Systemspeicher zum Speichern an der weiteren Adresse als Antwort auf einen zweiten Einfügebefehl von der Leistungssteuerung.
  • In einem Beispiel umfasst das Verfahren ferner: Bestimmen, dass eine Leerlaufperiode für die integrierte Schaltung einen Latenztoleranzwert, der in einem Konfigurationsregister gespeichert ist, übersteigt; und als Antwort darauf, Senden des Speicherungsbefehls von der Leistungssteuerung an die Fabric-Brücke.
  • In einem Beispiel umfasst das Verfahren ferner: nachdem mehrere Datenblöcke von der Fabric-Brücke an den Systemspeicher gesendet wurden, Veranlassen, dass eine erste Leistungsdomäne, die die Fabric-Brücke aufweist, in einen Niedrigleistungszustand eintritt; und danach Veranlassen, dass eine zweite Leistungsdomäne, die die Leistungssteuerung aufweist, in den Niedrigleistungszustand eintritt.
  • In einem Beispiel umfasst das Verfahren ferner: nach einer Anwesenheit der integrierten Schaltung im Niedrigleistungszustand für mindestens eine erste Zeitdauer, Veranlassen, dass die zweite Leistungsdomäne den Niedrigleistungszustand verlässt; und danach Veranlassen, dass die erste Leistungsdomäne, die die Fabric-Brücke aufweist, den ersten Niedrigleistungszustand verlässt.
  • In einem Beispiel umfasst das Verfahren ferner: Empfangen, in der Fabric-Brücke, eines Wiederherstellungsbefehls von der Leistungssteuerung über den Seitenband-Kommunikationspfad, wobei der Wiederherstellungsbefehl die Startadresse und den Autoinkrementierungsindikator aufweist; und Empfangen, in der Fabric-Brücke, eines Einfügebefehls, und als Antwort darauf, Senden eines Datenlesebefehls an den Systemspeicher über den primären Kommunikationspfad, wobei der Datenlesebefehl den ersten Datenblock, der an der Startadresse gespeichert ist, anfordert.
  • In einem Beispiel umfasst das Verfahren ferner: Empfangen, in der Fabric-Brücke, des ersten Datenblocks über den primären Kommunikationspfad und Speichern des ersten Datenblocks in einem Puffer der Fabric-Brücke; und Einstellen eines Bereitschaftsindikators in einem Statusregister der Fabric-Brücke, um eine Anwesenheit des ersten Datenblocks im Puffer anzuzeigen.
  • In einem Beispiel umfasst das Verfahren ferner: Empfangen, in der Fabric-Brücke, einer Abfrageanforderung von der Leistungssteuerung; als Antwort auf die Abfrageanforderung, Senden einer Abfrageantwort, um anzuzeigen, dass der erste Datenblock im Puffer gespeichert ist, als Antwort auf das Einstellen des Bereitschaftsindikators im Statusregister; anschließendes Empfangen, in der Fabric-Brücke, einer Leseanforderung von der Leistungssteuerung; und als Antwort auf die Leseanforderung, Senden des ersten Datenblocks an die Leistungssteuerung über den Seitenband-Kommunikationspfad.
  • In einem anderen Beispiel soll ein computerlesbares Medium, das Befehle aufweist, das Verfahren nach einem der vorstehenden Beispiele durchführen.
  • In einem anderen Beispiel soll ein computerlesbares Medium, das Daten aufweist, durch mindestens eine Maschine verwendet werden, um mindestens eine integrierte Schaltung herzustellen, um das Verfahren nach einem der vorstehenden Beispiele durchzuführen.
  • In einem anderen Beispiel weist eine Vorrichtung ein Mittel zum Durchführen des Verfahrens nach einem der vorstehenden Beispiele auf.
  • In einem anderen Beispiel weist ein System ein SoC auf, welches aufweist: mindestens einen Kern; einen Fuse-Speicher zum Speichern von Fuse-Einstellungen für das SoC; einen Sicherheitsspeicher zum Speichern einer Schlüsselinformation; eine Leistungssteuerung, die als Antwort auf eine Leerlaufzeit des SoC, die einen Latenztoleranzwert übersteigt, veranlasst, dass das SoC in einen ersten Niedrigleistungszustand eintritt; und eine Fabric-Brücke, die mit der Leistungssteuerung gekoppelt ist, wobei die Leistungssteuerung vor dem Eintritt des SoC in den ersten Niedrigleistungszustand eine Speicherungsoperation initiiert, in der ein Kontextzustand des SoC in einem Systemspeicher gespeichert werden soll, wobei der Kontextzustand die Fuse-Einstellungen und die Schlüsselinformation aufweist, wobei die Leistungssteuerung einen Speicherungsbefehl an die Fabric-Brücke sendet, um die Fabric-Brücke mit einer ersten Adresse im Systemspeicher zu programmieren, an der ein erster Abschnitt des Kontextzustands gespeichert werden soll; und danach die Fabric-Brücke von der Leistungssteuerung den Kontextzustand empfängt, der mehrere Datenblöcke aufweist, und jeden von den mehreren Datenblöcken an den Systemspeicher mit einer in der Fabric-Brücke generierten Adresse sendet. Das System kann ferner den mit dem SoC gekoppelten Systemspeicher aufweisen.
  • In einem Beispiel ist die Leistungssteuerung zum Folgenden ausgelegt: Initiieren einer Wiederherstellungsoperation, in der der Kontextzustand aus dem Systemspeicher wiederhergestellt werden soll; und Senden, an die Fabric-Brücke, eines Wiederherstellungsbefehls, um die Fabric-Brücke mit der ersten Adresse im Systemspeicher zu programmieren, und mehrerer erster Befehle, wobei die Fabric-Brücke die mehreren Datenblöcke als Antwort auf mehrere Leseanforderungen erlangt, von denen jede eine in der Fabric-Brücke generierte Adresse aufweist, und die mehreren Datenblöcke an die Leistungssteuerung sendet.
  • Es versteht sich, dass verschiedene Kombinationen der vorstehenden Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltung“ und „Schaltungen“ hier austauschbar verwendet werden. Wie hier verwendet, werden diese Begriffe und der Begriff „Logik“ verwendet, um allein oder in beliebiger Kombination auf analoge Schaltungen, digitale Schaltungen, fest verdrahtete Schaltungen, programmierbare Schaltungen, Prozessorschaltungen, Mikrocontrollerschaltungen, Hardwarelogikschaltungen, Zustandsmaschinenschaltungen und/oder eine beliebige andere Art von physischer Hardwarekomponente Bezug zu nehmen. Ausführungsformen können in vielen verschiedenen Typen von Systemen verwendet werden. Zum Beispiel kann in einer Ausführungsform eine Kommunikationsvorrichtung ausgelegt sein, um die verschiedenen Verfahren und Techniken, die hier beschrieben werden, durchzuführen. Selbstverständlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt, und stattdessen können andere Ausführungsformen auf andere Typen von Vorrichtung zum Verarbeiten von Befehlen, oder eine oder mehrere maschinenlesbare Medien gerichtet sein, die Befehle aufweisen, welche als Antwort auf eine Ausführung auf einer Rechenvorrichtung veranlassen, dass die Vorrichtung eines/eine oder mehrere der Verfahren und Techniken, die hierin beschrieben werden, ausführt.
  • Ausführungsformen können in einem Code implementiert sein und können auf einem nichtflüchtigen Speichermedium gespeichert werden, das darauf gespeicherte Befehle aufweist, welche verwendet werden können, um ein System zum Ausführen der Befehle zu programmieren. Ausführungsformen können außerdem in Daten implementiert werden und können auf einem nichtflüchtigen Speichermedium gespeichert werden, das, wenn es durch mindestens eine Maschine verwendet wird, die mindestens eine Maschine dazu veranlasst, mindestens eine integrierte Schaltung herzustellen, die eine oder mehrere Operationen durchführt. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium implementiert werden, das Informationen aufweist, die bei einer Herstellung in einem SoC oder einem anderen Prozessor das SoC oder den anderen Prozessor derart konfigurieren sollen, eine oder mehrere Operationen auszuführen. Das Speichermedium kann aufweisen, ist aber nicht beschränkt auf: jede Art von Disk, die aufweist: Disketten (Floppy Disks), optische Platten, Festkörperspeicher (Solid State Drive, SDD), Compact Disk Read-Only Memories (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetooptische Platten, Halbleiter-Geräte, wie z.B. Festwertspeicher (Read Only Memory, ROM), Direktzugriffsspeicher (Random Access Memory, RAM), wie z.B. dynamische Direktzugriffsspeicher (DRAMs) und statische Direktzugriffsspeicher (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flash-Speicher, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetische oder optische Karten oder jede andere Art Speichermedium, das sich zum Speichern von elektronischen Befehlen eignet.
  • Obwohl die vorliegende Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, wird ein Fachmann zahlreiche Modifikationen und Abwandlungen davon erkennen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen und Abwandlungen abdecken, die in dem wahren Erfindungsgedanken und Umfang dieser vorliegenden Erfindung liegen.

Claims (25)

  1. Vorrichtung, aufweisend: mindestens eine Verarbeitungsschaltung, mindestens ein Array, das mit der mindestens einen Verarbeitungsschaltung assoziiert ist, eine Leistungssteuerung, um einen Leistungsverbrauch der Vorrichtung zu verwalten, und eine Fabric-Brücke, die mit der Leistungssteuerung gekoppelt ist, wobei die Fabric-Brücke und die Leistungssteuerung ein Handschlag-Protokoll implementieren, um zu ermöglichen, dass die Fabric-Brücke vor einem Eintritt der Vorrichtung in einen ersten Niedrigleistungszustand Daten von dem mindestens einen Array über einen Seitenband-Kommunikationspfad empfängt und die Daten an einen Systemspeicher, der mit der Vorrichtung gekoppelt ist, über einen primären Kommunikationspfad sendet.
  2. Vorrichtung nach Anspruch 1, wobei der Seitenband-Kommunikationspfad einen ersten Seitenbandrouter aufweist, um die Leistungssteuerung und die Fabric-Brücke zu koppeln.
  3. Vorrichtung nach Anspruch 1, wobei der primäre Kommunikationspfad eine primäre Fabric aufweist, um die Fabric-Brücke mit dem Systemspeicher über einen Speichercontroller zu koppeln.
  4. Vorrichtung nach Anspruch 1, wobei die Leistungssteuerung einen Master aufweist, um das Handschlag-Protokoll vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand zu initiieren, wobei im ersten Niedrigleistungszustand die Vorrichtung den Kontext nicht behält.
  5. Vorrichtung nach Anspruch 1, wobei die Leistungssteuerung zum Folgenden ausgelegt ist: Senden einer Konfigurationsanforderung an die Fabric-Brücke, um die Fabric-Brücke auf einen Eintritt in den ersten Niedrigleistungszustand vorzubereiten, Senden von mindestens einem Befehl an die Fabric-Brücke, der eine Adressinformation aufweist, um die Fabric-Brücke anzuweisen, einen ersten Datenblock an den Systemspeicher zu senden, Senden des ersten Datenblocks von dem mindestens einen Array an die Fabric-Brücke, und Senden eines Einfügebefehls an die Fabric-Brücke, um die Fabric-Brücke dazu zu veranlassen, den ersten Datenblock über den primären Kommunikationspfad an eine erste Position im Systemspeicher, die der Adressinformation entspricht, zu senden.
  6. Vorrichtung nach Anspruch 5, wobei als Antwort auf einen Austritt der Vorrichtung aus dem ersten Niedrigleistungszustand, die Leistungssteuerung zum Folgenden ausgelegt ist: Senden einer zweiten Konfigurationsanforderung an die Fabric-Brücke, um die Fabric-Brücke zum Austritt aus dem ersten Niedrigleistungszustand zu konfigurieren, Senden von mindestens einem zweiten Befehl an die Fabric-Brücke, der eine zweite Adressinformation aufweist, um die Fabric-Brücke dazu zu veranlassen, einen zweiten Datenblock aus einer zweiten Position im Systemspeicher, die der zweiten Adressinformation entspricht, zu lesen, Senden einer Abfrageanforderung an die Fabric-Brücke, um zu bestimmen, ob die Fabric-Brücke den zweiten Datenblock erlangt hat, Empfangen einer Abfrageantwort von der Fabric-Brücke, und als Antwort auf eine Bereitschaftsanzeige der Abfrageantwort, die anzeigt, dass die Fabric-Brücke den zweiten Datenblock erlangt hat, Senden einer Leseanforderung an die Fabric-Brücke, um den zweiten Datenblock von der Fabric-Brücke zu empfangen und zu veranlassen, dass der zweite Datenblock in dem mindestens einen Array gespeichert wird.
  7. Vorrichtung nach Anspruch 5, wobei die Fabric-Brücke aufweist: mindestens einen Puffer, um den ersten Datenblock vor einem Empfang des Einfügebefehls zu speichern, und mindestens ein Abfrageregister, um Informationen hinsichtlich eines Status unerledigter Leseoperationen aus dem Systemspeicher zu speichern.
  8. Vorrichtung nach Anspruch 1, ferner aufweisend: eine erste Leistungsdomäne, die die Leistungssteuerung aufweist, und eine zweite Leistungsdomäne, die die Fabric-Brücke aufweist, wobei die erste Leistungsdomäne eine letzte Leistungsdomäne ist, die vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand abgeschaltet wird, und die zweite Leistungsdomäne eine vorletzte Leistungsdomäne ist, die vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand abgeschaltet wird.
  9. Vorrichtung nach Anspruch 1, wobei die Leistungssteuerung den Eintritt in den ersten Niedrigleistungszustand als Antwort auf eine Anzeige einer Leerlaufperiode, die einen Latenztoleranzwert übersteigt, initiiert, wobei der Latenztoleranzwert in einem Konfigurationsregister gespeichert ist.
  10. Vorrichtung nach Anspruch 1, wobei die Fabric-Brücke zum Folgenden ausgelegt ist: Empfangen, von der Leistungssteuerung, einer Startadresse im Systemspeicher, an der ein Datenblock gespeichert werden soll, eines ersten Abschnitts des Datenblocks und eines ersten Einfügebefehls, und Senden des ersten Abschnitts des Datenblocks an den Systemspeicher zum Speichern an der Startadresse.
  11. Vorrichtung nach Anspruch 10, wobei die Fabric-Brücke zum Folgenden ausgelegt ist: Empfangen, von der Leistungssteuerung, eines zweiten Abschnitts des Datenblocks und eines zweiten Einfügebefehls, Inkrementieren der Startadresse auf eine zweite Adresse im Systemspeicher, an der der zweite Abschnitt des Datenblocks gespeichert werden soll, und Senden des zweiten Abschnitts des Datenblocks an den Systemspeicher zum Speichern an der zweiten Adresse.
  12. Verfahren, umfassend: Empfangen, in einer Fabric-Brücke einer integrierten Schaltung, eines Speicherungsbefehls von einer Leistungssteuerung der integrierten Schaltung über einen Seitenband-Kommunikationspfad, wobei der Speicherungsbefehl eine Startadresse und einen Autoinkrementierungsindikator aufweist, Empfangen, in der Fabric-Brücke, eines ersten Datenblocks und Speichern des ersten Datenblocks in mindestens einem Puffer der Fabric-Brücke, und Senden des ersten Datenblocks über einen primären Kommunikationspfad an einen Systemspeicher zum Speichern an der Startadresse als Antwort auf einen ersten Einfügebefehl von der Leistungssteuerung, Empfangen, in der Fabric-Brücke, eines zweiten Datenblocks und Speichern des zweiten Datenblocks in dem mindestens einen Puffer der Fabric-Brücke, Inkrementieren der Startadresse auf eine weitere Adresse, und Senden des zweiten Datenblocks über den primären Kommunikationspfad an den Systemspeicher zum Speichern an der weiteren Adresse als Antwort auf einen zweiten Einfügebefehl von der Leistungssteuerung.
  13. Verfahren nach Anspruch 12, ferner umfassend: Bestimmen, dass eine Leerlaufperiode für die integrierte Schaltung einen Latenztoleranzwert, der in einem Konfigurationsregister gespeichert ist, übersteigt, und als Antwort darauf, Senden des Speicherungsbefehls von der Leistungssteuerung an die Fabric-Brücke.
  14. Verfahren nach Anspruch 12, ferner umfassend: nachdem mehrere Datenblöcke von der Fabric-Brücke an den Systemspeicher gesendet wurden, Veranlassen, dass eine erste Leistungsdomäne, die die Fabric-Brücke aufweist, in einen Niedrigleistungszustand eintritt, und anschließendes Veranlassen, dass eine zweite Leistungsdomäne, die die Leistungssteuerung aufweist, in den Niedrigleistungszustand eintritt.
  15. Verfahren nach Anspruch 14, ferner umfassend: nach einer Anwesenheit der integrierten Schaltung im Niedrigleistungszustand für mindestens eine erste Zeitdauer, Veranlassen, dass die zweite Leistungsdomäne den Niedrigleistungszustand verlässt, und anschließendes Veranlassen, dass die erste Leistungsdomäne, die die Fabric-Brücke aufweist, den Niedrigleistungszustand verlässt.
  16. Verfahren nach Anspruch 15, ferner umfassend: Empfangen, in der Fabric-Brücke, eines Wiederherstellungsbefehls von der Leistungssteuerung über den Seitenband-Kommunikationspfad, wobei der Wiederherstellungsbefehl die Startadresse und den Autoinkrementierungsindikator aufweist, und Empfangen, in der Fabric-Brücke, eines Einfügebefehls und als Antwort darauf, Senden eines Datenlesebefehls an den Systemspeicher über den primären Kommunikationspfad, wobei der Datenlesebefehl den ersten Datenblock, der an der Startadresse gespeichert ist, anfordert.
  17. Verfahren nach Anspruch 16, ferner umfassend: Empfangen, in der Fabric-Brücke, des ersten Datenblocks über den primären Kommunikationspfad und Speichern des ersten Datenblocks in einem Puffer der Fabric-Brücke, und Einstellen eines Bereitschaftsindikators in einem Statusregister der Fabric-Brücke, um eine Anwesenheit des ersten Datenblocks im Puffer anzuzeigen.
  18. Verfahren nach Anspruch 17, ferner umfassend: Empfangen, in der Fabric-Brücke, einer Abfrageanforderung von der Leistungssteuerung, als Antwort auf die Abfrageanforderung, Senden einer Abfrageantwort, um anzuzeigen, dass der erste Datenblock im Puffer gespeichert ist, als Antwort auf den eingestellten Bereitschaftsindikator im Statusregister, anschließendes Empfangen, in der Fabric-Brücke, einer Leseanforderung von der Leistungssteuerung, und als Antwort auf die Leseanforderung, Senden des ersten Datenblocks an die Leistungssteuerung über den Seitenband-Kommunikationspfad.
  19. Mindestens ein computerlesbares Speichermedium, das einen Code aufweist, der bei einer Ausführung eine Maschine dazu veranlasst, das Verfahren nach einem der Ansprüche 12 bis 18 durchzuführen.
  20. System, aufweisend: ein System-on-Chip (SoC), aufweisend: mindestens einen Kern, einen Fuse-Speicher zum Speichern von Fuse-Einstellungen für das SoC, einen Sicherheitsspeicher zum Speichern einer Schlüsselinformation, eine Leistungssteuerung, die als Antwort auf eine Leerlaufzeit des SoC, die einen Latenztoleranzwert übersteigt, veranlasst, dass das SoC in einen ersten Niedrigleistungszustand eintritt, und eine Fabric-Brücke, die mit der Leistungssteuerung gekoppelt ist, wobei die Leistungssteuerung vor dem Eintritt des SoC in den ersten Niedrigleistungszustand eine Speicherungsoperation initiiert, in der ein Kontextzustand des SoC in einem Systemspeicher gespeichert werden soll, wobei der Kontextzustand die Fuse-Einstellungen und die Schlüsselinformation aufweist, wobei die Leistungssteuerung einen Speicherungsbefehl an die Fabric-Brücke sendet, um die Fabric-Brücke mit einer ersten Adresse im Systemspeicher zu programmieren, an der ein erster Abschnitt des Kontextzustands gespeichert werden soll, und danach die Fabric-Brücke von der Leistungssteuerung den Kontextzustand empfängt, der mehrere Datenblöcke aufweist, und jeden von den mehreren Datenblöcken an den Systemspeicher mit einer in der Fabric-Brücke generierten Adresse sendet, und den Systemspeicher, der mit dem SoC gekoppelt ist.
  21. System nach Anspruch 20, wobei die Leistungssteuerung zum Folgenden ausgelegt ist: Initiieren einer Wiederherstellungsoperation, in der der Kontextzustand aus dem Systemspeicher wiederhergestellt werden soll, und Senden, an die Fabric-Brücke, eines Wiederherstellungsbefehls, um die Fabric-Brücke mit der ersten Adresse im Systemspeicher zu programmieren, und mehrerer erster Befehle, wobei die Fabric-Brücke die mehreren Datenblöcke als Antwort auf mehrere Leseanforderungen erlangen soll, von denen jeder eine in der Fabric-Brücke generierte Adresse aufweist, und die mehreren Datenblöcke an die Leistungssteuerung sendet.
  22. Vorrichtung, aufweisend: mindestens eine Verarbeitungseinrichtung, mindestens ein Array, das mit der mindestens einer Verarbeitungseinrichtung assoziiert ist, eine Leistungssteuereinrichtung, um einen Leistungsverbrauch der Vorrichtung zu verwalten, und eine Fabric-Brückeneinrichtung, die mit der Leistungssteuereinrichtung gekoppelt ist, wobei die Fabric-Brückeneinrichtung und die Leistungssteuereinrichtung zur Implementierung eines Handschlag-Protokolls sind, um zu ermöglichen, dass die Fabric-Brückeneinrichtung vor dem Eintritt der Vorrichtung in einen ersten Niedrigleistungszustand Daten von dem mindestens einen Array über einen Seitenband-Kommunikationspfad empfängt und die Daten an einen Systemspeicher, der mit der Vorrichtung gekoppelt ist, über einen primären Kommunikationspfad sendet.
  23. Vorrichtung nach Anspruch 22, wobei: der Seitenband-Kommunikationspfad eine erste Seitenbandroutereinrichtung aufweist, um die Leistungssteuereinrichtung und die Fabric-Brückeneinrichtung zu koppeln, und der primäre Kommunikationspfad eine primäre Fabric aufweist, um die Fabric-Brückeneinrichtung mit dem Systemspeicher über eine Speichercontrollereinrichtung zu koppeln.
  24. Vorrichtung nach Anspruch 22, wobei die Leistungssteuereinrichtung einen Master aufweist, um das Handschlag-Protokoll vor dem Eintritt der Vorrichtung in den ersten Niedrigleistungszustand zu initiieren, wobei im ersten Niedrigleistungszustand die Vorrichtung den Kontext nicht behält.
  25. Vorrichtung nach Anspruch 22, wobei die Leistungssteuereinrichtung zum Folgenden ausgelegt ist: Senden einer Konfigurationsanforderung an die Fabric-Brückeneinrichtung, um die Fabric-Brückeneinrichtung auf einen Eintritt in den ersten Niedrigleistungszustand vorzubereiten, Senden von mindestens einem Befehl an die Fabric-Brückeneinrichtung, der eine Adressinformation aufweist, um die Fabric-Brückeneinrichtung anzuweisen, einen ersten Datenblock an den Systemspeicher zu senden, Senden des ersten Datenblocks von dem mindestens einen Array an die Fabric-Brückeneinrichtung, und Senden eines Einfügebefehls an die Fabric-Brückeneinrichtung, um die Fabric-Brückeneinrichtung dazu zu veranlassen, den ersten Datenblock über den primären Kommunikationspfad an eine erste Position im Systemspeicher, die der Adressinformation entspricht, zu senden.
DE112019000662.2T 2018-03-27 2019-02-28 System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge Pending DE112019000662T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/936,595 2018-03-27
US15/936,595 US10739836B2 (en) 2018-03-27 2018-03-27 System, apparatus and method for handshaking protocol for low power state transitions
PCT/US2019/019932 WO2019190682A1 (en) 2018-03-27 2019-02-28 System, apparatus and method for handshaking protocol for low power state transitions

Publications (1)

Publication Number Publication Date
DE112019000662T5 true DE112019000662T5 (de) 2020-10-15

Family

ID=65229412

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000662.2T Pending DE112019000662T5 (de) 2018-03-27 2019-02-28 System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge

Country Status (4)

Country Link
US (1) US10739836B2 (de)
CN (1) CN111512266A (de)
DE (1) DE112019000662T5 (de)
WO (1) WO2019190682A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190303777A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
EP4216062A1 (de) 2018-03-30 2023-07-26 Google LLC Vermittlung von teilen von transaktionen über virtuelle kanäle im zusammenhang mit einer verbindung
US11561603B2 (en) * 2018-12-20 2023-01-24 Micron Technology, Inc. Memory device low power mode
US11086384B2 (en) * 2019-11-19 2021-08-10 Intel Corporation System, apparatus and method for latency monitoring and response
CN114296420A (zh) * 2021-04-30 2022-04-08 华为数字能源技术有限公司 一种用于车辆的控制系统和车辆
US11467655B1 (en) 2021-06-07 2022-10-11 Apple Inc. Multi-die power synchronization
CN113326171B (zh) * 2021-06-30 2023-10-13 展讯通信(天津)有限公司 内存数据处理方法、装置和电子设备
CN114442788A (zh) * 2022-04-08 2022-05-06 北京智芯半导体科技有限公司 芯片的低功耗系统、低功耗管理方法、控制装置及存储介质
US11520499B1 (en) * 2022-05-18 2022-12-06 Ambiq Micro, Inc. On-demand activation of memory path during sleep or active modes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424632B2 (en) 2004-02-13 2008-09-09 Microsoft Corporation Systems and methods that facilitate state machine power and wake state management
US20130290758A1 (en) 2010-01-11 2013-10-31 Qualcomm Incorporated Sleep mode latency scaling and dynamic run time adjustment
JP2012173814A (ja) 2011-02-17 2012-09-10 Canon Inc 情報処理装置及び情報処理装置を制御する制御方法
US8868941B2 (en) * 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8549205B1 (en) 2012-05-22 2013-10-01 Intel Corporation Providing a consolidated sideband communication channel between devices
US9043628B2 (en) 2012-08-24 2015-05-26 Advanced Micro Devices, Inc. Power management of multiple compute units sharing a cache
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US20160224090A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Performing context save and restore operations in a processor
US9891282B2 (en) 2015-12-24 2018-02-13 Intel Corporation Chip fabric interconnect quality on silicon

Also Published As

Publication number Publication date
US20190041959A1 (en) 2019-02-07
WO2019190682A1 (en) 2019-10-03
CN111512266A (zh) 2020-08-07
US10739836B2 (en) 2020-08-11

Similar Documents

Publication Publication Date Title
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102009030544B4 (de) Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE112007001215B4 (de) Vorhersage der Leistungsnutzung von Rechenplattformspeicher
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE102010054337B4 (de) Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112017003301T5 (de) Interprozessor-Energiezustandswechsel
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE112017001020T5 (de) Unterstützung einer vielzahl von speichertypen in einem speichersteckplatz
DE102015118705A1 (de) Technologien für leistungsbasierte Außer-der-Reihe-Task-Planung für Datenzentren
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102019127444A1 (de) System, Einrichtung und Verfahren zur Verkehrsformung von Datenkommunikation über ein Interconnect
DE102019105881A1 (de) Technologien zur bereitstellung von effizienter detektion leerlaufender abfrageschleifen
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE112020007201T5 (de) Speicherzuordnung für verteilte Verarbeitungsvorrichtungen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors