DE102023101325A1 - Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung - Google Patents

Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung Download PDF

Info

Publication number
DE102023101325A1
DE102023101325A1 DE102023101325.4A DE102023101325A DE102023101325A1 DE 102023101325 A1 DE102023101325 A1 DE 102023101325A1 DE 102023101325 A DE102023101325 A DE 102023101325A DE 102023101325 A1 DE102023101325 A1 DE 102023101325A1
Authority
DE
Germany
Prior art keywords
power control
microcontroller
power
mode
control data
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
DE102023101325.4A
Other languages
English (en)
Inventor
Surya Kiran Venkata Rama Musunuri
Eswar Goda
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102023101325A1 publication Critical patent/DE102023101325A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J3/00Circuit arrangements for ac mains or ac distribution networks
    • H02J3/003Load forecast, e.g. methods or systems for forecasting future load demand
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/21Pc I-O input output
    • G05B2219/21013Microcontroller and power output switches integrated on same chip
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Ein Mikrocontroller (10), der von einem integrierten Leistungsverwaltungsschaltkreis (500) versorgt wird, weist eine Mehrzahl von Kernen (100) auf. Ein erster Kern (100) des Mikrocontrollers (10) kann konfiguriert sein zum Implementieren einer Systemleistungstransienten-Verwaltungskomponente (200). Ein oder mehrere andere oder zweite Kerne (100) des Mikrocontrollers (10) können konfiguriert sein zum Implementieren einer oder mehrerer Anwendungen (400). Die durch den ersten Kern (100) implementierte Systemleistungstransienten-Verwaltungskomponente (200) kann konfiguriert sein zum dynamischen Identifizieren eines erwarteten transienten Lastereignisses, das in dem Mikrocontroller (10) auftreten soll, zum Ermitteln von Leistungssteuerdaten, um eine Reaktion auf das identifizierte erwartete transiente Lastereignis zu optimieren, wobei die Leistungssteuerdaten einen Leistungssteuermodus und zugehörige Parameter aufweisen, und die Leistungssteuerdaten an den integrierten Leistungsverwaltungsschaltkreis (500) zu liefern.

Description

  • Verschiedene Ausführungsformen beziehen sich allgemein auf System-on-Chips (SoCs) oder Mikrocontroller und deren Leistungsverwaltung.
  • Eine Leistungsaufnahme von eingebetteten Vorrichtungen ist ein wichtiges Kriterium für ein Verlängern einer Batterielebensdauer und ein Verringern der Umweltauswirkungen eines Systems. Eine Leistungsschätzung auf Systemebene wird zu einem komplexen Problem - ganz gleich, ob es sich um eine IoT-Anwendung mit vielen eingebetteten Vorrichtungen, um Automobilanwendungen wie die Motorsteuerung und den Antriebsstrang oder um industrielle Anwendungen mit Sensoren handelt. Beispielsweise enthalten Mikrocontroller im Automobilbereich Beschleuniger, die je nach Konfiguration (und Datenpipeline) solcher IPs eine sehr hohe Variabilität der dynamischen Leistungsaufnahme aufweisen.
  • Derzeit werden in modernen SOCs energiebewusste Designs und Technologien verwendet, die auf Eingaben zur genauen Leistungsaufnahme aus Prä-Silizium-Zeiten basieren. Diese Techniken müssen auf Silizium-/Hardwareebene eingesetzt werden, um Systemleistung effizienter zu verwalten. Ein Schätzen der dynamischen Leistungsaufnahme während der Laufzeit ermöglicht ein Nutzen von schnelleren und besseren Leistungssteuermaßnahmen in einem vorgegebenen System.
  • Darüber hinaus kann ein Schätzen der Leistungsaufnahme für ein komplettes System, z. B. eine Mikrocontrollereinheit (MCU) oder ein SoC, eine Summierung aller Einzelkomponenten aufweisen, wobei ein Echtzeitbetriebssystem/eine Software auf komplexer Hardware läuft, was zu einer globalen Optimierung des Stromverbrauchs/der Leistungsaufnahme führt.
  • Ein Optimieren der Leistungsaufnahme für ständig eingeschaltete/verbundene Vorrichtungen führt zu allgemeinen Leistungseinsparungen des Systems. Mit der Zunahme der Edge-Computing-Anforderungen enthalten die in diesen Vorrichtungen verwendeten Mikrocontroller (uCs) und Mikroprozessoren (uPs) mehrere Beschleuniger, Konnektivitäts-IPs (Intellectual Properties) oder IP-Blöcke. Typische Anwendungsfälle erfordern eine Aktivierung dieser IPs nur für eine bestimmte Dauer. Daher sind dynamische Leistungssteuermaßnahmen entscheidend für die Optimierung der Leistungsaufnahme in diesen Systemen. Da diese IPs jedoch eine große Bandbreite an Leistung aufnehmen, sind ausgefeiltere Leistungsverwaltungstechniken erforderlich.
  • In den Zeichnungen beziehen sich gleiche Bezugszeichen im Allgemeinen auf die gleichen Teile in den verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu; stattdessen wird der Schwerpunkt im Allgemeinen auf eine Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
    • 1A-1B jeweils ein Diagramm aufweisen, das eine beispielhafte Mikrocontrollereinheit gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 2 ein Blockdiagramm einer Systemleistungstransienten-Verwaltungskomponente gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung ist.
    • 3 ein Beispiel für den Policy-Manager einer Systemleistungstransienten-Verwaltungskomponente gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 4-5 jeweils eine Tabelle mit Beschränkungsdaten zeigen.
    • 6 Tabellen aufweist, in denen Steuermaßnahmen und Parameter gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung dargestellt sind.
    • 7A ein beispielhaftes Aktivitätsdiagramm für einen Mikrocontroller gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 7B ein Diagramm einer geschätzten dynamischen Leistungsaufnahme und eine entsprechende Tabelle mit Aktivitäten zeigt, die von einem Mikrocontroller gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zu implementieren sind.
    • 7C ein Diagramm der geschätzten dynamischen Leistungsaufnahme mit Software-Ankern zeigt.
    • 8A ein beispielhaftes Aktivitätsdiagramm für einen Mikrocontroller gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 8B ein Diagramm einer geschätzten dynamischen Leistungsaufnahme und eine entsprechende Tabelle mit Aktivitäten, die von einem Mikrocontroller gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zu implementieren sind, zeigt.
    • 8C ein Diagramm einer geschätzten dynamischen Leistungsaufnahme mit Softwareankern gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 9 ein beispielhaftes neuronales Netz zur Schätzung der Hardwareleistung (HPE) gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 10-11 beispielhafte Multiplikations- und Additionsschaltungen (MADD) gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigen.
    • 12 eine beispielhafte Darstellung eines Hardware-Leistungsschätzers gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 13 ein beispielhaftes Flussdiagramm und eine Umgebung für einen Post-Silizium-Trainingsprozess zum Ermitteln der Gewichte oder des gewichteten Wertesatzes für den Hardware-Leistungsschätzer gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
    • 14 ein beispielhaftes Flussdiagramm und eine Umgebung für einen Trainingsprozess vor dem Silizium zum Ermitteln der Gewichte oder des gewichteten Wertesatzes für den Hardware-Leistungsschätzer gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung zeigt.
  • Die folgende detaillierte Beschreibung bezieht sich auf die beigefügten Zeichnungen, die zur Veranschaulichung spezifische Details und Ausführungsformen der Erfindung zeigen.
  • Das Wort „beispielhaft“ wird hier im Sinne von „als Beispiel, Instanz oder Illustration dienend“ verwendet. Jede hier als „beispielhaft“ beschriebene Ausführungsform oder Gestaltung ist nicht unbedingt als bevorzugt oder vorteilhaft gegenüber anderen Ausführungsformen oder Gestaltungen auszulegen.
  • Die Wörter „Mehrzahl“ und „mehrfach“ in der Beschreibung oder den Ansprüchen beziehen sich ausdrücklich auf eine Menge größer als eins. Die Begriffe „Gruppe (von)“, „Satz (von)“, „Sammlung (von)“, „Serie (von)“, „Sequenz (von)“, „Gruppierung (von)“ usw. und dergleichen in der Beschreibung oder in den Ansprüchen beziehen sich auf eine Menge, die gleich oder größer als eins ist, d. h. eine oder mehrere. Jeder Begriff, der in der Pluralform ausgedrückt ist und nicht ausdrücklich „Mehrzahl“ oder „mehrere“ bedeutet, bezieht sich ebenfalls auf eine Menge, die gleich oder größer als eins ist. Die Begriffe „richtige Teilmenge“, „reduzierte Teilmenge“ und „kleinere Teilmenge“ beziehen sich auf eine Teilmenge einer Menge, die nicht gleich der Menge ist, d. h. eine Teilmenge einer Menge, die weniger Elemente enthält als die Menge.
  • Die Ausdrücke „mindestens eins“ und „eins oder mehr“ können so verstanden werden, dass sie eine numerische Menge aufweisen, die größer oder gleich eins ist (z. B. eins, zwei, drei, vier, [ ... ], usw.).
  • Sofern nicht anders angegeben, bedeutet die Verwendung der ordinalen Adjektive „erster“, „zweiter“, „dritter“ usw. zur Beschreibung eines gemeinsamen Objekts lediglich, dass verschiedene Instanzen gleichartiger Objekte gemeint sind, und soll nicht implizieren, dass die so beschriebenen Objekte in einer bestimmten Reihenfolge stehen müssen, sei es zeitlich, räumlich, in der Rangfolge oder in irgendeiner anderen Weise.
  • Der hier verwendete Begriff „Daten“ kann Informationen in jeder geeigneten analogen oder digitalen Form aufweisen, z. B. in Form einer Datei, eines Teils einer Datei, eines Satzes von Dateien, eines Signals oder Stroms, eines Teils eines Signals oder Stroms, eines Satzes von Signalen oder Strömen und dergleichen. Darüber hinaus kann der Begriff „Daten“ auch verwendet werden, um einen Verweis auf Informationen, z. B. in Form eines Zeigers, zu bezeichnen. Der Begriff „Daten“ ist jedoch nicht auf die vorgenannten Beispiele beschränkt, sondern kann verschiedene Formen annehmen und jede beliebige Information im Sinne des Standes der Technik darstellen.
  • Der Begriff „Prozessor“ oder „Steuereinheit“, wie er hier verwendet wird, kann als jede Art von Einheit verstanden werden, die die Verarbeitung von Daten, Signalen usw. ermöglicht. Die Daten, Signale usw. können gemäß einer oder mehrerer spezifischer Funktionen verarbeitet werden, die vom Prozessor oder Controller ausgeführt werden.
  • Ein Prozessor oder ein Steuergerät kann somit eine analoge Schaltung, eine digitale Schaltung, eine Mixed-Signal-Schaltung, eine Logikschaltung, einen Prozessor, einen Mikroprozessor, eine Zentraleinheit (CPU), eine neuromorphe Computereinheit (NCU), eine Grafikverarbeitungseinheit (GPU), einen digitaler Signalprozessor (DSP), ein Field Programmable Gate Array (FPGA), eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. oder eine beliebige Kombination davon aufweisen. Jede andere Art der Implementierung der jeweiligen Funktionen, die im Folgenden näher beschrieben wird, kann ebenfalls als Prozessor, Controller oder Logikschaltung verstanden werden. Es versteht sich, dass zwei (oder mehr) der hierin beschriebenen Prozessoren, Steuerungen oder Logikschaltungen als eine einzige Einheit mit äquivalenter Funktionalität oder Ähnlichem realisiert sein können, und dass umgekehrt ein einzelner hierin beschriebener Prozessor, eine einzelne Steuerung oder Logikschaltung als zwei (oder mehr) separate Einheiten mit äquivalenter Funktionalität oder Ähnlichem realisiert sein kann.
  • Unter einem „Schaltkreis“ ist hier jede Art von logikimplementierender Einheit zu verstehen, die eine spezielle Hardware oder einen Software ausführenden Prozessor aufweisen kann. Eine Schaltung kann also eine analoge Schaltung, eine digitale Schaltung, eine Mixed-Signal-Schaltung, eine Logikschaltung, ein Prozessor, ein Mikroprozessor, ein Signalprozessor, eine Zentraleinheit („CPU“), eine Grafikverarbeitungseinheit („GPU“), eine neuromorphe Computereinheit (NCU), ein digitaler Signalprozessor („DSP“), ein Field Programmable Gate Array („FPGA“), eine integrierte Schaltung, eine anwendungsspezifische integrierte Schaltung („ASIC“) usw. oder eine beliebige Kombination davon sein. Jede andere Art der Implementierung der jeweiligen Funktionen, die weiter unten näher beschrieben wird, kann ebenfalls als „Schaltung“ verstanden werden. Es versteht sich, dass zwei (oder mehr) der hierin beschriebenen Schaltungen als eine einzige Schaltung mit im Wesentlichen gleicher Funktionalität realisiert sein können. Umgekehrt kann jede einzelne hier beschriebene Schaltung als zwei (oder mehr) separate Schaltungen mit im Wesentlichen äquivalenter Funktionalität realisiert sein. Darüber hinaus können sich Hinweise auf eine „Schaltung“ auf zwei oder mehr Schaltungen beziehen, die zusammen eine einzige Schaltung bilden.
  • Die hier verwendeten Begriffe „Modul“, „Komponente“, „System“, „Schaltung“, „Element“, „Schnittstelle“, „Scheibe“, „Schaltung“ usw. beziehen sich auf einen Satz von einer oder mehreren elektronischen Komponenten, eine computerbezogene Einheit, Hardware, Software (z. B. in Ausführung) und/oder Firmware. Ein Schaltkreis oder ein ähnlicher Begriff kann beispielsweise ein Prozessor, ein auf einem Prozessor laufender Prozess, ein Controller, ein Objekt, ein ausführbares Programm, eine Speichervorrichtung und/oder ein Computer mit einer verarbeitenden Vorrichtung sein. Zur Veranschaulichung: Eine Anwendung, die auf einem Server läuft, und der Server können auch eine Schaltung sein. Ein oder mehrere Schaltkreise können sich innerhalb desselben Schaltkreises befinden, und Schaltkreise können auf einem Computer lokalisiert und/oder auf zwei oder mehr Computer verteilt sein. Ein Satz von Elementen oder ein Satz von anderen Schaltkreisen kann hier beschrieben werden, wobei der Begriff „Satz“ als „ein oder mehrere“ interpretiert werden kann.
  • Wie hier verwendet, kann ein „Signal“ übertragen oder durch eine Signalkette geleitet werden, in der das Signal verarbeitet wird, um Eigenschaften wie Phase, Amplitude, Frequenz usw. zu ändern. Das Signal kann als dasselbe Signal bezeichnet werden, auch wenn solche Eigenschaften angepasst werden. Im Allgemeinen kann ein Signal als dasselbe Signal bezeichnet werden, solange es dieselbe Information kodiert.
  • Wie hierin verwendet, kann ein Signal, das einen Wert oder eine andere Information „anzeigt“, ein digitales oder analoges Signal sein, das den Wert oder die andere Information in einer Weise kodiert oder anderweitig übermittelt, die von einer Komponente, die das Signal empfängt, dekodiert werden kann und/oder eine entsprechende Aktion auslöst. Das Signal kann in einem computerlesbaren Speichermedium gespeichert oder gepuffert werden, bevor es von der empfangenden Komponente empfangen wird. Die empfangende Komponente kann das Signal aus dem Speichermedium abrufen. Darüber hinaus kann ein „Wert“, der für eine Menge, einen Zustand oder einen Parameter „indikativ“ ist, physisch als digitales Signal, analoges Signal oder gespeicherte Bits, die den Wert kodieren oder anderweitig übermitteln, verkörpert sein.
  • Wenn ein Element als „verbunden“ oder „gekoppelt“ mit einem anderen Element bezeichnet wird, kann es physisch mit dem anderen Element verbunden oder gekoppelt sein, so dass Strom und/oder elektromagnetische Strahlung (z. B. ein Signal) entlang eines von den Elementen gebildeten leitenden Pfades fließen kann. Zwischen dem Element und dem anderen Element können leitende, induktive oder kapazitive Zwischenelemente vorhanden sein, wenn die Elemente als miteinander gekoppelt oder verbunden beschrieben werden. Wenn die Elemente miteinander gekoppelt oder verbunden sind, kann ein Element in der Lage sein, einen Spannungs- oder Stromfluss oder die Ausbreitung einer elektromagnetischen Welle in dem anderen Element zu induzieren, ohne dass ein physischer Kontakt oder dazwischen liegende Komponenten vorhanden sind. Wenn eine Spannung, ein Strom oder ein Signal an ein Element „angelegt“ wird, kann die Spannung, der Strom oder das Signal über eine physische Verbindung oder über eine kapazitive, elektromagnetische oder induktive Kopplung, die keine physische Verbindung beinhaltet, an das Element geleitet werden.
  • Der Begriff „Speicher“ wird hier als ein beständiges, computerlesbares Medium verstanden, in dem Daten oder Informationen zum Abruf gespeichert werden können. Die hierin enthaltenen Verweise auf „Speicher“ können daher so verstanden werden, dass sie sich auf flüchtige oder nichtflüchtige Speicher beziehen, die einen Speicher mit wahlfreiem Zugriff (RAM), einen Festwertspeicher (ROM), einen Flash-Speicher, einen Festkörperspeicher, ein Magnetband, ein Festplattenlaufwerk, ein optisches Laufwerk usw. oder eine beliebige Kombination davon aufweisen. Darüber hinaus werden auch Register, Schieberegister, Prozessorregister, Datenpuffer usw. unter den Begriff „Speicher“ subsumiert. Eine einzelne Komponente, die als „Speicher“ oder „ein Speicher“ bezeichnet wird, kann aus mehr als einem unterschiedlichen Speichertyp bestehen und sich somit auf eine Gesamtkomponente beziehen, die einen oder mehrere Speichertypen aufweist. Jede einzelne Speicherkomponente kann in mehrere kollektiv gleichwertige Speicherkomponenten aufgeteilt sein und umgekehrt. Darüber hinaus kann der Speicher zwar getrennt von einer oder mehreren anderen Komponenten dargestellt sein (wie in den Zeichnungen), er kann aber auch mit anderen Komponenten integriert sein, z. B. auf einem gemeinsamen integrierten Chip oder einem Controller mit eingebettetem Speicher.
  • Der Begriff „Software“ bezieht sich auf alle Arten von ausführbaren Befehlen, einschließlich Firmware.
  • Sofern nicht ausdrücklich anders angegeben, können sich die hierin verwendeten Begriffe wie „Verarbeiten“, „Berechnen“, „Ermitteln“, „Ermitteln“, „Vorstellen“, „Anzeigen“ oder ähnliche auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers/Prozessors/etc.) beziehen, die als physikalische (z. B. elektronische, magnetische oder optische) Größen repräsentierte Daten in einem oder mehreren Speichern (z. B. flüchtiger Speicher, nichtflüchtiger Speicher oder eine Kombination davon), Registern oder anderen Maschinenkomponenten, die Daten empfangen, speichern, übertragen oder anzeigen, manipuliert oder transformiert.
  • Beispielhafte Ausführungsformen der vorliegenden Offenbarung können durch einen oder mehrere Computer (oder rechnergestützte Vorrichtungen) verwirklicht werden, die auf einem Speichermedium (z. B. einem beständigen, computerlesbaren Speichermedium) aufgezeichnete, computerausführbare Anweisungen auslesen und ausführen, um die Funktionen einer oder mehrerer der hier beschriebenen Ausführungsform(en) der Offenbarung auszuführen. Der (die) Computer kann (können) eine oder mehrere Zentraleinheit(en) (CPU), eine Mikroprozessoreinheit (MPU) oder andere Schaltkreise aufweisen und kann (können) ein Netzwerk von separaten Computern oder separaten Computerprozessoren aufweisen. Die computerausführbaren Anweisungen können dem Computer beispielsweise über ein Netzwerk oder ein nichtflüchtiges computerlesbares Speichermedium zur Verfügung gestellt werden. Das Speichermedium kann beispielsweise eine oder mehrere Festplatten, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen Speicher verteilter Rechensysteme, ein optisches Laufwerk (wie eine Compact Disc (CD), eine Digital Versatile Disc (DVD) oder eine Blu-ray Disc (BD)), eine Flash-Speicher-Vorrichtung, eine Speicherkarte und dergleichen aufweisen. Zur Veranschaulichung spezifische Details und Ausführungsformen, in denen die Erfindung praktiziert werden kann.
  • Sofern nicht anders angegeben, bedeutet die Verwendung der ordinalen Adjektive „erster“, „zweiter“, „dritter“ usw. zur Beschreibung eines gemeinsamen Objekts lediglich, dass verschiedene Instanzen gleichartiger Objekte gemeint sind, und soll nicht implizieren, dass die so beschriebenen Objekte in einer bestimmten Reihenfolge stehen müssen, sei es zeitlich, räumlich, in der Rangfolge oder auf andere Weise.
  • 1A weist ein Diagramm auf, das einen Mikrocontroller oder eine Mikrocontrollereinheit (MCU) 10 gemäß einer oder mehreren beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt. Die MCU oder der Mikrocontroller 10 weist einen oder mehrere Kerne 100, Systemleistungstransienten-Verwaltungskomponente 200, einen Geistiges-Eigentum-Block 300 und eine oder mehrere andere Anwendungen 400 auf. Weitere Komponenten können enthalten sein, sind aber nicht dargestellt. Es kann davon ausgegangen werden, dass zwischen den Komponenten des Mikrocontrollers 10 Verbindungen bestehen, die jedoch in 1A nicht dargestellt sind.
  • Die MCU 10 kann einen integrierten Leistungsverwaltungsschaltkreis (PMIC) 500 aufweisen oder mit diesem gekoppelt sein. Das heißt, in einigen Fällen kann der PMIC 500 intern sein und sich innerhalb der MCU 10 befinden. In anderen Fällen, einschließlich des Beispiels in 1, kann der PMIC 500 extern zur MCU 10 sein. Im externen Fall können sowohl die MCU 10 als auch das PMIC 500 als Teil eines SoC implementiert sein.
  • 1B zeigt ein Beispiel für eine Verbindung zwischen dem PMIC 500 und der MCU 10. Im Beispiel von 1B implementiert der PMIC 500 einen Abwärtswandler mit einer Vorwärtskopplungssteuerschleife. Verschiedene Varianten oder Implementierungen des Regelkreises sind möglich und können für einen bestimmten Typ von Leistungsregler (LDO, Abwärtswandler usw.), der mit dem PMIC 500 verwendet wird, realisiert werden.
  • Außerdem können verschiedene Arten von Kommunikationsschnittstellen wie Serial Peripheral Interface (SPI), I2C usw. verwendet werden, um die Leistungssteuerdaten (Steuerstatus (cs), Frequenzparameter, Spannungsparameter) zwischen der MCU 10 und dem PMIC 500 zu übertragen. Im Allgemeinen ermittelt oder verfeinert die MCU die vom PMIC 500 zu verwendenden oder zu implementierenden Parameter.
  • Unter Bezugnahme auf 1A kann es sich bei dem einen oder den mehreren Kernen 100 um Prozessorkerne oder Zentraleinheiten (CPU) handeln. Der eine oder die mehreren Kerne 100 können eine oder mehrere Operationen durchführen, indem sie Programmanweisungen oder Software ausführen. Beispielsweise können die Anwendungen 400 in Form von Anweisungen gebildet werden, die von dem einen oder den mehreren Kernen auszuführen sind. Hierin beschriebene Anweisungen oder Software können auf einem (dauerhaften) computerlesbaren Speichermedium im Mikrocontroller 10 oder SoC gespeichert sein oder sich dort befinden, oder sie sind auf andere Weise für die Kerne 100 zugänglich.
  • Ein Geistiges-Eigentum-Block (IP-Block 300) kann sich auf ein wiederverwendbares Logik-, Schaltkreis-, Software- oder Chip-Layout-Element beziehen. Ein IP-Block oder IP kann mehrere Funktionen unterstützen, die in einigen Fällen von einer oder mehreren Vorrichtungen, die der IP-Block aufweist, implementiert werden und/oder die zumindest teilweise von einem oder mehreren Prozessorkernen implementiert werden können.
  • 2 ist ein Blockdiagramm, das eine detailliertere Ansicht einer Systemleistungstransienten-Verwaltungskomponente oder „SPTM“ 200 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung zeigt. Die SPTM 200 kann unter Verwendung eingebetteter Software realisiert oder implementiert sein, die auf einem Verarbeitungskern 100 (z. B. einem oder mehreren „ersten“ Kernen) eines Mikrocontrollers 10 läuft. Der SPTM 200 kann einen oder mehrere Prozesse oder Techniken implementieren und spezifische Hardware zusammen mit Software verwenden, um die Gesamtleistung des Systems zu verbessern. Die anderen oder „zweiten“ Kerne können andere Anwendungen oder Anwendungsaufgaben ausführen oder implementieren und auf IPs (z. B. Beschleuniger, Peripheriegeräte usw.) zugreifen oder mit diesen eine Schnittstelle bilden.
  • Sofern nicht anders angegeben, kann zu Erläuterungszwecken angenommen werden, dass der erste Kern oder „Kern 0“ konfiguriert sein kann, eine Spannung (v), Frequenz (ƒ) und Steuerzustände (cs) der entsprechenden Leistungsdomänen der MCU 10 zu steuern. Die Spannung und die Frequenz können der Versorgungsspannung und der Frequenz entsprechen, die für eine bestimmte Domäne bereitgestellt werden, während der Steuerzustand dem Steuerschema/Leistungsmodus und den Parametern der Rückkopplungsschleife entsprechen kann, die im Leistungsregler für diese bestimmte Leistungsdomäne verwendet werden. Ein Leistungsbereich kann sich auf eine bestimmte Untergruppe von einem oder mehreren bestimmten IPs beziehen.
  • Wie in 2 dargestellt, kann der SPTM 200 einen Dynamische-Transienten-Steuerung-Block (DTC) 220a, einen Dynamische-Spannungs-Steuerung-Block (DVC) 220b und einen Dynamische-Frequenz-Steuerung-Block (DFC) 220c aufweisen. DVCs und DFCs können wie in der Technik bekannt implementiert sein. Der DTC-Block 220 ist eingerichtet, Anwendungsinformationen zu nutzen, um die Leistung der MCU 10 zu optimieren.
  • Der SPTM 200 weist einen Aggregator 330 auf, der so konfiguriert ist, dass er eine konsolidierte Ausgabe aus den drei Maßnahmen (z. B. DVC, DFC und DTC) erzeugt. Ein Fehlerbehandler 350 ist enthalten, um relevante Ereignisse, Alarme oder andere Artefakte im System abzufragen und entsprechende Maßnahmen zu ergreifen oder einzuleiten.
  • Der SPTM 200 weist einen Policy-Manager 210 auf, der eine Einheit oder Komponente ist, die eingerichtet ist, über verschiedene Parameter zu entscheiden oder diese zu ermitteln. Insbesondere ist der Policy-Manager 210 eingerichtet, Parameter zu ermitteln zum Festlegen von Leistungssteuerdaten oder Leistungssteuermaßnahmen, die vom PMIC 500 für das Leistungsmanagement verwendet oder implementiert werden. Der Policy-Manager 210 kann mehrere verschiedene Eingaben 370 zum Ermitteln der Parameter für SPTM 200 betreiben oder nutzen.
  • 3 zeigt ein Beispiel für den Policy-Manager 210 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. Der Policy-Manager 210 weist mehrere funktionale Komponenten oder Blöcke auf, nämlich einen Szenario-Identifizierungsblock 310, einen Priorisierungsblock 320, einen IP-Subsystem-Aktivität-Block 330, einen Leistungsmodell-Block und einen Spannungs-Frequenz-Transientenkarte-Block 350.
  • Die Szenario-Identifizierung 310, die auf Anforderungen der Anwendungen 400 basiert, kann verschiedene wahrscheinliche mögliche Szenarien, die von der MCU 10 auszuführen sind, zu Beginn oder im Voraus identifizieren oder ermitteln. Anwendungsinformationen können von der Szenario-Identifizierung 310 verwendet werden, um die ein oder mehreren wahrscheinlichen Szenarien zu identifizieren. Beispielsweise können die Eingaben 370 Szenario-Schlüssel sein oder Szenario-Identifizierungsinformationen können erfasst und in bestimmten Registern gespeichert werden, z. B. in Hardware-Registern (HW-Registern), auf die dann zugegriffen wird und die von der Szenario-Identifizierung 310 verwendet werden, um ein weiteres Szenario zu identifizieren. Die Szenario-Identifizierung 310 kann die ermittelten Szenarien (Szenariodaten) an die IP-Aktivitätskomponente 330 weiterleiten oder senden.
  • Die Priorisierung (Komponente) 320 des Policy-Managers 210 kann so konfiguriert sein, dass sie auf die Prioritäten der von der MCU 10 auszuführenden Aufgaben oder Aktivitäten zugreift und/oder diese festlegt. Die Informationen können in einigen Hardware (HW)-Registern enthalten sein oder erfasst werden. Die Priorisierung 320 kann die relevanten Prioritätsinformationen oder Prioritätsdaten identifizieren und an die IP-Aktivitätskomponente 330 weiterleiten. Wenn es also einen angegebenen Vorrang oder eine Priorisierung zwischen Szenarien oder deren Aktivitäten gibt, können diese Informationen dem IP-Aktivitätsblock 330 zur Verfügung gestellt und von diesem als Eingabe verwendet werden.
  • Die identifizierten Szenarien können mit bestimmten (vordefinierten) Aktivitäten, z. B. IP-Aktivitäten, assoziiert oder verknüpft sein. Die IP-Aktivität kann so konfiguriert sein, dass sie die IP-Aktivitäten ermittelt, die für die Szenarien durch die Szenario-Identifizierung 3210 implementiert oder realisiert werden sollen. Die IP-Aktivitäten können als Daten in Konfigurationsregistern (CFG) gespeichert oder erfasst werden. So können die ermittelten Szenarien durch den IP-Aktivitätsblock 330 zu einer Reihe oder einem Satz von IP-Aktivitäten erweitert werden. Weitere Prioritätsdaten können von der IP-Aktivität 330 verwendet werden, um den Aktivitäten Prioritäten oder Vorrangstellungen zuzuweisen.
  • Der IP-Aktivitätsblock 330 kann auch Timing- oder Timing-Beschränkungsdaten als Input erhalten. Das heißt, in der MCU 10 können Timing-Beschränkungsdaten für die IP-Aktivitäten vorhanden und gespeichert sein. Die Timing-Beschränkungsdaten können Mindest- oder Höchstzeiträume für jede Aktivität angeben. Darüber hinaus können die Timing-Beschränkungsdaten, die dem IP-Aktivitätsblock 330 zur Verfügung gestellt werden, in Abhängigkeit von identifizierten Szenarien und Prioritätsdaten aktualisiert werden. Der IP-Aktivitätsblock kann beispielsweise auf Timing-Register zugreifen, die auf dem ausgewählten Szenario basieren. Die Timing-Register können Software-Anker definieren, d. h. Speicherplätze, die vor dem Auftreten der bevorstehenden jeweiligen IP-Aktivitäten existieren und diese anzeigen.
  • Die erhaltenen Aktivitäten oder identifizierten Szenarien können zusammen mit den entsprechenden Prioritätsinformationen und Zeit-Beschränkungsdaten als Eingabe in eine Leistungsmodellkomponente 340 verwendet werden. Das Leistungsmodell 340 kann so konfiguriert werden, dass es ein mathematisches Leistungsmodell anwendet, um die Leistungsaufnahme für jede der IP-Aktivitäten des ermittelten einen oder der mehreren Szenarien zu schätzen. Einige Beispiele für Leistungsmodelle werden hier gezeigt oder beschrieben.
  • Das Leistungsaufnahmemodell 340 kann so konfiguriert sein, dass es bestimmte Eingaben oder Koeffizienten von Registern der MCU empfängt oder erhält, die auf ihren Eingaben basieren, um die geschätzte Leistungsaufnahme für jede Aktivität zu berechnen. Als Ergebnis kann ein dynamisches Stromverbrauchsprofil für das eine oder mehrere bestimmte Szenarien berechnet werden.
  • Außerdem kann die vom Leistungsmodell 340 ermittelte Leistungsschätzung (dynamische Leistungsaufnahme) dynamisch aktualisiert oder geändert werden, um Änderungen der Eingaben zu berücksichtigen. Beispielsweise kann das Leistungsmodell 340 die in der Leistungsmodellberechnung verwendeten Koeffizienten aktualisieren, wenn das eine oder mehrere Szenarien zur Laufzeit ausgeführt werden. In einem Beispiel können Spannung (z. B. gemessen durch einen lokalen Spannungsmonitor) und Leistungsaufnahme erfasst werden.
  • Der berechnete Stromverbrauch oder die berechneten dynamischen Stromprofilinformationen können anschließend verwendet werden, um Leistungssteuerdaten zu ermitteln, z. B. Spannung, Frequenz und Steuerzustände, um die allgemeinen (Spannungs-, Frequenz- und transienten Leistungsmerkmale) zu erfüllen. Das dynamische Stromprofil kann mit Beschränkungen verwendet werden, die in entsprechenden Registern ausgedrückt oder angegeben sind.
  • Im Beispiel aus 2 kann die Spannungs-Frequenz-Transientenkarte (VFTM) 350 zum Ermitteln der Leistungssteuerdaten unter Verwendung der dynamischen Stromprofilinformationen verwendet werden. Bei der VFTM 350 kann es sich um eine Datenstruktur handeln, z. B. eine Nachschlagetabelle (LUT), die so konfiguriert ist, dass sie als Eingabe die dynamischen Stromprofilinformationen verwendet, um Steuerleistungsdaten auszugeben oder bereitzustellen, die an den PMIC 500 zu übermitteln sind. Zusätzliche Eingaben, die von der VFTM 350 verwendet werden, können in einem oder mehreren Registern spezifizierte Beschränkungsdaten aufweisen. In einem Fall kann die VFTM 350 als Eingabe Latenzzeitreaktion(en) (LTR) für entsprechende Spannungs-, Frequenz- und Steuerzustandsänderungsvorgänge erhalten. Die LTR-Daten können in LTR-Register(n) erfasst oder gespeichert werden. Sobald beispielsweise das Berechnen oder Ermitteln von Leistungssteuerdaten Änderungen des implementierten Steuerungszustands aufweist oder zu diesen führt, benötigt die Rückkopplungsschleife des Leistungswandlers aus dem PMIC 500 Zeit, um die Schleifenantwort zu konvergieren, und diese Information wird in LTR erfasst. Eine Nutzung dieser Daten kann es dem VTM 350 ermöglichen, optimalere oder bessere Parameter oder Leistungssteuerdaten zu erzeugen, die zu implementieren sind. Die MCU 10 kann eine Reihe von Registern aufweisen, die im Speicherbereich der MCU 10 zum Speichern der Spannungs-, Frequenz-, LTR- und Regelungszustandsbeschränkungen zugewiesen sind. Diese Register können nach jedem kalten Einschalten der MCU 10 aktualisiert werden (z. B. normalerweise während oder nachdem eine Ausführung der Firmware vervollständigt ist).
  • Zum Ermitteln gewisser Parameter für die Leistungssteuerdaten können auch andere Beschränkungsdaten verwendet werden. 4 zeigt eine Tabelle 400, die Beschränkungsdaten darstellt und die Mindestspannung und Mindestfrequenz zeigt, die für bestimmte IPs, Subsysteme für jede Leistungsdomäne (PDs) unterstützt werden. Die erste Leistungsdomäne, PD1, umfasst beispielsweise die IP1, IP4 und IP3 mit den entsprechenden Daten in Bezug auf die Mindestspannung (v) und Mindestfrequenz (ƒ).
  • In ähnlicher Weise zeigt 5 eine Tabelle 500, die Latenzdaten darstellt und die minimale Latenz von Gate- (LTR) und Ungate-Takten (CLKS), z. B. innerhalb einer bestimmten Power Domain (PD) und Gate, Ungate einer Power Domain, erfasst.
  • Der Policy-Manager 210 und der SPTM 200 sind so konfiguriert, dass sie die Leistung des Systems oder der MCU 10 bei Lasttransienten optimieren, z. B. mittels Bereitstellens von Leistungssteuerdaten oder Leistungsverwaltungsparametern für den PMIC 500, um die Schleifenparameter von Spannungsreglern auf dem PMIC 500 nach Bedarf einzustellen.
  • Tabelle 600a ist eine beispielhafte Nachschlagstruktur, die für den VFTM 350 verwendet werden kann. Die Tabelle 600a zeigt verschiedene mögliche Steuermaßnahmen oder Leistungsmodi, die mit einem PMIC verwendet werden können, der mit einem Abwärtswandler konfiguriert oder implementiert ist. Die Tabelle 600a gibt die Reaktionen oder die Parameter an, die mit dem PMIC 500 auf der Grundlage der ermittelten erwarteten transienten Lasten für ein bestimmtes Steuerschema zu implementieren sind.
  • Die oberste Zeile der Tabelle 600a enthält verschiedene Bereiche erwarteter transienter Lasten, die wie hier beschrieben ermittelt werden können. Im Beispiel der Tabelle 600a sind die erwarteten transienten Lastbereiche in 0-0,1 Ampere (A), 0,1-0,5 A, 0,5-2 A und 2-5 A gruppiert. Mögliche Steuermaßnahmen, die z. B. für einen Abwärtswandler implementiert sein können, weisen einen Strommodus, einen Vorwärtskopplungsmodus, einen Hysterese-Modus und einen Spannungsmodus auf.
  • Das Leistungsmodell 340 legt ein dynamisches Stromverbrauchsprofil fest. Anhand des Stromverbrauchsprofils, das die zu erwartenden Lasttransienten angibt, und auf der Grundlage der Stromsteuerungsmaßnahme werden mit Hilfe des VTM 350 (z. B. unter Verwendung der Tabelle 600a) die geeigneten Leistungssteuerdaten ermittelt. Das Ermitteln kann den Leistungsmodus oder das zu implementierende Regelschema und die entsprechenden Schleifenparameter (lpcm1, lpff1 usw.) für ein optimales Einschwingverhalten ergeben oder angeben. Bei den Regelkreisparametern kann es sich um einen Regelkreisparameter für die Strommodellregelung (z. B. lpcm) oder einen Regelkreisparameter für die Vorwärtskopplungssteuerung (z. B. lpff) handeln.
  • Tabelle 600b ist eine weitere beispielhafte Nachschlagstruktur, die für den VFTM 350 verwendet werden kann. Die Tabelle 600b zeigt verschiedene mögliche Steuermaßnahmen oder Leistungsmodi, die mit einem PMIC verwendet werden können, der mit einem Low-Dropout-Regler (LDO) konfiguriert ist. Tabelle 600b zeigt die Reaktionen bzw. die mit dem PMIC 500 zu implementierenden Parameter auf der Grundlage der ermittelten erwarteten transienten Lasten für ein bestimmtes Steuerschema.
  • Wie hierin beschrieben, können die Schleifenparameter zusammen mit dem Regelschema oder dem Leistungsmodus einen Regelzustand (cs) bilden oder als solcher betrachtet werden. Steuerzustandsdaten können in Form eines Registerwerts gespeichert oder erfasst werden, wie in Tabelle 600c in 6 dargestellt. Diese Tabelle 600c zeigt ein Beispiel für einen Steuerzustand für einen Vorwärtskopplungs-Leistungsmodus oder ein Steuerschema für einen Abwärtswandler. Das Regelschema weist Schleifenparameter auf, darunter Gain, Beta, Reff und Ceff. (Gain bezieht sich auf die Vorwärtspfadverstärkung, Beta auf die Rückkopplungspfadverstärkung, Reff* Ceff auf den Rückkopplungspfadpol). Andere Regelungsmaßnahmen können andere geeignete Schleifenparameter aufweisen, die von der Rückkopplungsschleife zwischen der MCU 10 und dem PMIC 500 abhängen.
  • Die Leistungssteuerdaten, welche die vom VFTM 350 ermittelten Steuerzustandsdaten aufweisen und darüber hinaus die vom DVC und vom DFC ermittelten Spannungs- und Frequenzdaten aufweisen können. Die Leistungssteuerdaten können von der MCU 10 aggregiert und an den PMIC 500 übermittelt werden. Unter Verwendung der erhaltenen Leistungssteuerdaten werden die von der PMIC 500 bereitgestellte Leistungsregelung und die implementierte Regelschleifenkonfiguration dynamisch aktualisiert, um die Leistungsaufnahme zu optimieren, indem effektiv auf transiente Lastereignisse/-sprünge reagiert wird und deren Auswirkungen gemildert werden, um die Leistungsaufnahme und die Leistung der Vorrichtung zu verbessern.
  • Herkömmliche dynamische Spannungs- und Frequenzregelungssysteme, die zur Systemoptimierung eingesetzt werden, verwenden ein Leistungsmodell, aber nur Spannungs- und Frequenz (VF)-Kartenmodule. Als solches kann das Ziel darin bestehen, die Leistungsaufnahme in einem ersten Leistungsbereich, PD1, zu minimieren. Dann kann die VF-Karte die zu optimierende Leistung leicht berechnen: p   v   ƒ 1111 + p   v   ƒ 1222 + p   v   ƒ 1333
    Figure DE102023101325A1_0001
    wobei die Leistungskoeffizienten, p11, als Teil der Koeffizientenregister für Spannung (v) und Frequenz (f) erfasst werden. Wenn das Ziel darin besteht, den Spannungsabfall aufgrund des Triggerns von IP1 zu berechnen, der Teil von PD1 ist, dann kann der Spannungsabfall wie folgt berechnet werden v d r o o p = r   p   v   ƒ 111111
    Figure DE102023101325A1_0002
    wobei der Koeffizient r11 ebenfalls im Register erfasst wird. Daher kann die Spannung in diesem Bereich um diesen Betrag, vdroop, erhöht werden, um den Spannungsabfall zu mindern.
  • Bei den hier beschriebenen beispielhaften SPTMs sind Änderungen der Spannung oder Frequenz nicht erforderlich, um auf transiente Lastereignisse oder -sprünge zu reagieren. Stattdessen können die Parameter der Leistungsregler-Regelschleife (Schleifenparameter) und das Regelungsschema oder der Leistungsmodus eines PMIC dynamisch geändert werden, um eine Anpassung und Optimierung für einen ermittelten transienten Lastsprung oder eine ermittelte Laständerung vorzunehmen.
  • 7A zeigt ein beispielhaftes Aktivitätsdiagramm 700a für die MCU 10 gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Das Aktivitätsdiagramm 700a zeigt Aktivitäten oder Anwendungsaufgaben, die auf einigen Kernen 100 der MCU 10 zu implementieren sind. Insbesondere zeigt das Aktivitätsdiagramm 700a die Aktivitäten für Kern 0, Kern 1 und Kern 2. Wie im Aktivitätsdiagramm 700a dargestellt, implementiert oder führt Kern 0 Anwendungen oder Aufgaben aus, die den Policy-Manager 210 in einer oder mehreren Zeitinstanzen aufweisen. In diesem Beispiel implementiert Kern 1 die Anwendungsaufgaben oder Anwendungsroutinen IP3, während Kern 2 die Anwendungsaufgaben oder Anwendungsroutinen von IP4 implementiert. (hier und in anderen Zusammenhängen beziehen sich die Akronyme ISR (Interrupt-Service) Routine, SRX, IDx, BMx, MEMTR usw. auf Softwaremodule oder Serviceroutinen, die auf einem Kern laufen).
  • Der SPTM 200 der MCU 10, wie hier beschrieben, kann konfiguriert sein, die Leistungsaufnahme der Vorrichtung mittels Optimierens der Reaktion auf Lasttransienten zu reduzieren. In einem Beispiel kann der SPTM 200 keine Erhöhung der Spannung erfordern, um einen Spannungsabfall während Lasttransienten abzumildern. Stattdessen kann der SPTM konfiguriert sein, dynamisch eine Änderung des Leistungsmodus und der zugehörigen Steuerungs-/Regelungsparameter zu bewirken.
  • 7B zeigt ein Diagramm 700b, das eine geschätzte dynamische Leistungsaufnahme iest 710 zeigt, der mit einer Tabelle ausgerichtet ist, die die Aktivitäten zeigt, die von verschiedenen Komponenten der MCU 10 zu implementieren oder auszuführen sind. Wie hierin beschrieben, kann der SPTM 200 Aktivitäten identifizieren, von denen erwartet wird, dass sie in der MCU 10 auftreten. Die Tabelle zeigt die identifizierten Aktivitäten, die für jede der aktiven oder relevanten Komponenten im Laufe der Zeit durchgeführt werden sollen. Das Diagramm zeigt die entsprechende geschätzte Leistungsaufnahme über die Zeit. Zu einem ersten Zeitpunkt oder in einem ersten Zeitraum führt beispielsweise IP3 eine Aufgabe oder Aktivität aus, die durch die Konfiguration 0 (CFG0) identifiziert wurde, IP4 führt eine Aufgabe oder Aktivität aus, die durch die Konfiguration 1 (CFG1) identifiziert wurde, Kern 1 führt ... aus, und so weiter.
  • Wie hierin beschrieben, kann SPTM 200 die Informationen oder Daten der identifizierten Aktivitäten auf das Leistungsmodell 340 anwenden (unter Verwendung aller relevanten Beschränkungen), um ein erwartetes dynamisches Leistungsprofil zu ermitteln. Das geschätzte dynamische Stromverbrauchsprofil zeigt erwartete transiente Sprünge oder Lasttransienten an, die einen Spannungsabfall aufweisen.
  • Nach einem Verwenden des Leistungsmodells 340 zum Ermitteln des dynamischen Leistungsprofils berechnet der Policy-Manager des SPTM 200 unter Verwendung des VFTM 350 Daten zur Leistungsverwaltung. Auch hier kann das SPTM 200 einen Leistungsregelungsmodus und die zugehörigen Parameter ermitteln (Regelkreis). Die von der DTC und DTFC ermittelten Spannungs- und Frequenzparameter können von der MCU 10 als Teil der Leistungssteuerdaten an den PMIC 500 übermittelt werden, um die Auswirkungen des erwarteten Spannungsabfalls zu minimieren. Mit diesem SPTM-Schema für das dynamische Leistungsmanagement wäre das Ziel, die Leistungsaufnahme zu minimieren mittels Vermeidens jeglicher Änderung der Versorgungsspannung zum Abmildern von Spannungseinbrüchen.
  • Das SPTM 200 verwendet spezifische Szenario-Informationen über Lastsprünge mittels Identifizierens von Ankern (z.B. Software-Ankern, dargestellt als Punkte A, B, C in 7C) zu Beginn oder im Voraus, um die Leistungssteuerdaten und Steuerungszustände sicherzustellen, die an die PMIC 500 übermittelt werden können. Mit den dynamischen Leistungssteuerdaten kann die PMIC 500 angemessen auf die Lastsprünge reagieren und die Leistungsaufnahme optimieren. Software-Anker können Stellen oder Positionen in den Anwendungsaufgaben oder im Anwendungscode sein, die vor einem transienten Lastereignis oder transienten Sprung ausgeführt werden müssen. Wie gezeigt, kann der SPTM 200 Software-Ankerpunkte auf der Grundlage der Ausführung oder Implementierung mehrerer Komponenten ermitteln, z. B. mehrerer Aktivitäten oder Anwendungsaufgaben, die zu unterschiedlichen Zeitpunkten stattfinden. Die Software-Ankerpunkte entsprechen der Zeit von Aktivitäten oder Aufgaben und können für die Zeitplanung verwendet werden, wenn die dynamisch ermittelten Leistungssteuerdaten implementiert werden sollen, um erwartete Lasttransienten abzumildern.
  • 8A zeigt ein Aktivitätsdiagramm 800a für die MCU 10 gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Das Aktivitätsdiagramm 800a zeigt einen weiteren Satz von Aktivitäten oder Anwendungsaufgaben, die z. B. auf den Kernen 100 der MCU 10 zu implementieren sind. In diesem Fall zeigt das Aktivitätsdiagramm 800a Aktivitäten für Kern 0, Kern 1 und Kern 2. Wie in anderen Beispielen kann Kern 0 den Policy-Manager 210 des SPTM 200 implementieren, wie in den vorliegenden Ausführungsformen beschrieben. Kern 1 implementiert Anwendungsaufgaben oder -routinen für IP1, während Kern 2 Anwendungsaufgaben oder -routinen für IP2 implementiert. (SIEHE ABSATZ 73 BEZÜGLICH DER AKRONYME - DIE FIGUREN MÜSSEN GEÄNDERT WERDEN)
  • 8B zeigt ein Diagramm 800b, das eine Leistungsaufnahme iest (t) 810 über die Zeit t zeigt, der mit einer Tabelle ausgerichtet ist, die die Aktivitäten zeigt, die über die Zeit t von verschiedenen Komponenten der MCU 10 erzeugt oder durchgeführt werden.
  • Wie hier beschrieben, kann der SPTM 200 konfiguriert sein, im Voraus IP-Aktivitäten zu identifizieren, die voraussichtlich in der MCU 10 durchgeführt werden oder auftreten. Das heißt, die Tabelle in 800b zeigt die Aktivitäten, die voraussichtlich im Laufe der Zeit durchgeführt werden, und die Grafik zeigt die entsprechende geschätzte Leistungsaufnahme.
  • In diesem Beispiel führt IP 1 zu einem ersten Zeitpunkt oder in einem ersten Zeitraum eine durch die Konfiguration 2 (CFG2) identifizierte Aufgabe oder Tätigkeit aus, IP2 führt eine durch die Konfiguration 1 (CFG1) identifizierte Aufgabe oder Tätigkeit aus, Kern 1 führt BM1 aus usw.
  • Der SPTM 200 kann die Informationen oder Daten bezüglich der identifizierten Aktivitäten (die aus Registern der MCU 10 gewonnen wurden) auf das Leistungsmodell 340 sowie auf alle relevanten Beschränkungen anwenden, um ein erwartetes dynamisches Leistungsprofil zu ermitteln. Das dynamische Leistungsprofil kann eine erwartete Leistungsaufnahme angeben. Wie dargestellt, zeigt die geschätzte Leistungsaufnahme iest (t) aus dem Leistungsprofil erwartete transiente Sprünge oder Lasttransienten an, die einen Spannungsabfall aufweisen.
  • 8C zeigt ein Diagramm, das Darstellungen der dynamischen Stromschätzung 810, der Spannungsparameter oder des Spannungsgangs 820 (z. B. ermittelt durch den DVC) und der Frequenzparameter oder des Frequenzgangs 830 (z. B. ermittelt durch den DFC) aufweist.
  • Die MCU 10 identifiziert über den SPTM 200 Anker anhand der Informationen zum spezifischen Szenario (z. B. IP-Aktivität). In diesem Beispiel befinden sich die identifizierten Softwareanker an den Zeit- oder Ereignispositionen A, B und C. Wie gezeigt, werden die Softwareanker kurz vor erwarteten Lasttransienten gesetzt, was an den Sprüngen im Leistungsaufnahmediagramm 810 zu erkennen ist.
  • Da das Wissen oder die Daten der Software-Ankerpunkte (A, B, C) vor transienten Lastsprüngen definiert oder identifiziert werden, können diese Informationen verwendet oder an die PMIC 500 übermittelt werden, so dass die PMIC angemessen auf die Lastsprünge reagieren und die Leistungsaufnahme unter Verwendung der von der MCU 10 bereitgestellten Stromsteuerungsdaten optimieren kann. Auch hier kann der SPTM 200 Software-Ankerpunkte auf der Grundlage der Ausführung oder Implementierung mehrerer Komponenten ermitteln, z. B. mehrerer Aktivitäten oder Anwendungsaufgaben, die zu unterschiedlichen Zeitpunkten stattfinden.
  • Die Software-Anker helfen bei der Sequenzierung der Spannungs- und Frequenzänderungen zusammen mit der Kommunikation des Steuerzustands an den PMIC. Der Steuerzustand, die Spannung und die Frequenz werden am Ende des Szenarios auf nominale (oder vordefinierte) Werte zurückgesetzt. Für einen bestimmten Mikrocontroller kann es einen bekannten nominellen Steuerzustand, eine bekannte nominelle Spannung (V) und eine bekannte nominelle Frequenz (F) geben.
  • Gemäß den hierin enthaltenen Ausführungsformen wird SPTM verwendet, wenn sich ein System oder Mikrocontroller in einer Phase hoher Aktivität befindet. Sobald das System oder der Mikrocontroller wieder auf Nennaktivität zurückgeht, können die Steuerzustände V und F bis zur nächsten Hochaktivitätsphase auf Nennwerte zurückgesetzt werden.
  • In einigen Fällen kann der Policy-Manager 210 oder SPTM 200 häufig aktualisiert werden, z. B. alle 10 bis 50 Mikrosekunden.
  • In verschiedenen Ausführungsformen kann die MCU 10 eine Abfolge von Operationen oder Aufgaben durchführen, bevor Anwendungsaufgaben oder IP-Aktivitäten für ein bestimmtes Szenario aktiviert oder ausgelöst werden. Die MCU 10 kann konfiguriert sein, mittels der Kenntnis der Abfolge von Operationen sicherzustellen, dass die Softwareanker vor der Ausführung der IP-Aktivitäten oder Anwendungsaufgaben, die die transienten Lastereignisse oder Sprünge verursachen, auftreten.
  • In verschiedenen hier beschriebenen Ausführungsformen ist ein Mikrocontroller konfiguriert, den Leistungsmodus oder das Steuerschema und die Regelkreisparameter in einem PMIC dynamisch auf der Grundlage der erwarteten Lasttransientenanforderungen zu ändern oder zu aktualisieren. Dazu ist es erforderlich, dass ein Policy-Manager im Mikrocontroller im Vorfeld Lasttransienten abschätzt und die berechneten Steuerzustände (cs) zusammen mit Spannung/Frequenz (falls erforderlich) an einen PMIC übermittelt. Sobald ein bestimmtes Szenario zur Laufzeit erkannt wird, kann der Policy-Manager ein geeignetes Verfahren zur Steuerung der Leistungsaufnahme der Vorrichtung oder des Systems wählen. Dieser Ansatz kann dazu führen, dass der Mikrocontroller die Leistungsaufnahme oder die durchschnittliche Leistungsaufnahme vorteilhaft reduziert.
  • Neben einer Leistungsverwaltung ist auch eine Leistungsaufnahme eingebetteter Vorrichtungen selbst ein wichtiges Kriterium für eine Verlängerung einer Batterielebensdauer und eine Verringerung der Umweltauswirkungen eines Systems. Da dieser Aspekt bei der Systementwicklung immer stärker in den Vordergrund rückt, wird die Leistungsschätzung auf Systemebene zu einem komplexen Problem - egal, ob es sich um eine IoT-Anwendung mit vielen eingebetteten Vorrichtungen, Automobilanwendungen wie das Motorsteuerungsmodul und das Antriebsstrangmodul oder um industrielle Anwendungen mit Sensoren handelt. So enthalten beispielsweise Mikrocontroller in Kraftfahrzeugen Beschleuniger, die je nach Konfiguration (und Datenpipeline) solcher IPs eine sehr hohe Variabilität der dynamischen Leistungsaufnahme aufweisen.
  • Zum Integrieren eines System-on-Chip (SoC) ist eine Verlagerung hin zu leistungssparenden Methoden festzustellen. Leistungsbewusste Designs und Technologien mit Eingaben, die auf der genauen Leistungsaufnahme von vor dem Silizium basieren, werden in modernen SOCs ausgiebig genutzt. Diese Techniken müssen auch auf Silizium-/Hardwareebene eingesetzt werden, um die Systemleistung effizienter zu verwalten. Die Schätzung der dynamischen Leistungsaufnahme während der Laufzeit ermöglicht den Einsatz schnellerer und besserer Leistungssteuermaßnahmen (wie DVC, DVFS usw.) in einem vorgegebenen System. Darüber hinaus führt die Schätzung der Leistungsaufnahme für ein komplettes System, d. h. die Summe aller einzelnen SoCs/ASICs, mit Echtzeit-Betriebssystemen/Software, die auf komplexer Hardware laufen, zu einer globalen Optimierung des Strom-/der Leistungsaufnahme.
  • Im Allgemeinen erfordert ein Abschätzen der durchschnittlichen Leistungsaufnahme von Mikrocontrollern und anwendungsspezifischen integrierten Schaltungen (ASICs) für bestimmte Anwendungsfälle Simulationen auf Gatterebene, Registertransferebene (RTL) oder zeitbasierte Aktivitätssimulationen. Simulationszeitbeschränkungen und eine Komplexität einer Umwandlung von Anwendercodes in Vektoren verhindern eine schnelle Schätzung der durchschnittlichen Leistungsaufnahme für die iterative Leistungsoptimierung komplexer Anwendungsfälle. Darüber hinaus kann es aufgrund von Implementierungsbeschränkungen unpraktisch sein, dieselben Techniken zur Realisierung hardwarebasierter Leistungsschätzer zu verwenden. Daher verwenden moderne SoCs und MCUs Power-Management-IPs, die verschiedene IP-Logik-Zustände aggregieren, um zu einem Gesamtsystem-Leistungsversorgungszustand zu gelangen (Tiefschlaf, Ruhezustand, Leerlauf, Standby, usw.). Diese Zustände werden dann von einem Power-Management-Controller verwendet, um die Gesamtleistung zu optimieren.
  • In verschiedenen Ausführungsformen wird hier ein hardwarebasierter Leistungsschätzer (HPE) dargestellt und beschrieben, der die Leistungsaufnahme des SoC innerhalb weniger Taktzyklen schätzen kann und dadurch ein schnelleres dynamisches Strommanagement ermöglicht. Verschiedene Ausführungsformen zeigen einen HPE, der sowohl in der Prä- als auch in der Post-Silizium-Phase unter Verwendung einfacher Multiplikations- und Additionsschaltungen verwendet werden kann, die eine schnelle Schätzung der dynamischen Leistungsaufnahme in Echtzeit ermöglichen. Die Leistungsschätzung kann auf einem Profil jedes Peripheriegeräts basieren, das durch den tatsächlichen Anwendungsfall (oder die Software) aktiviert wird. Darüber hinaus beruht dies auf einer Verwendung einer Prä-Silizium-Analyse für die Leistungsschätzung und einem Ermöglichen einer Optimierung der Spannungsreglerschaltungen basierend auf den erwarteten Stromsprüngen in der Post-Silizium-Phase.
  • In der Post-Silizium-Phase kann, sobald die Konfiguration der verschiedenen IPs in einem SoC/MCU bekannt ist, die dynamische Leistung basierend auf früheren Messungen für die IP mit angemessener Genauigkeit geschätzt werden. Beispielsweise kann der Stromverbrauch einer IP mittels Messens der Differenz zwischen dem Strom, der beim Durchlaufen eines SoC-Level-Musters mit aktivierter IP gemessen wird, und dem Strom, der beim Durchlaufen des gleichen Musters mit deaktivierter IP gemessen wird, berechnet werden. Sobald die IP-Ströme bekannt sind, kann die SoC-Leistungsaufnahme mittels Implementierens einer Multiplikations- und Additionsschaltung für jede IP geschätzt werden. Darüber hinaus kann die Granularität der Multiplizier-Addier-Schaltung (MADD) erhöht werden, um die Auswirkungen der verschiedenen Konfigurationen der IP zu erfassen. Es ist zu beachten, dass eine Erhöhung der Granularität der MADD-Schaltung die Genauigkeit der geschätzten Leistungsaufnahme erhöht, gleichzeitig aber auch die Hardware (Siliziumfläche) vergrößert.
  • In der Prä-Silizium-Phase kann die Schätzung der dynamischen Leistungsaufnahme mit der RTL-basierten Implementierung der Multiplikations- und Additionsschaltungen durchgeführt werden. Da die Echtzeitschätzung in der Prä-Silizium-Phase keine Beschränkung darstellt, kann die Leistungsschätzung für einen bestimmten Anwendungscode mit einem guten Genauigkeitsgrad durchgeführt werden.
  • Verschiedene Ausführungsformen beziehen sich auf ein Trainieren eines Leistungsschätzers basierend auf der Konfiguration der einzelnen IPs, Subsysteme, SoCs oder des Gesamtsystems. Lernalgorithmen, multivariate LMS-Kurvenanpassung (für bestimmte Teilsysteme oder IPs) und neuronale Netze (für andere IPs und das gesamte System-on-Chip (SoC)) werden verwendet, um die Koeffizienten für diesen Schätzer (HPE) zu ermitteln. Die Modelle für die Lernalgorithmen (Las) können beispielsweise mit Strommessungen aus einer Prä-Silizium-Phase (mit Simulatoren wie PrimePower®) oder einer Post-Silizium-Phase (mit Stromversorgungen) trainiert werden. Die Modelle können dann mit einem unabhängigen Satz von Anwendungscode/Software validiert werden. Darüber hinaus kann die HPE-Implementierung skaliert werden, um eine höhere Anzahl von IP-Instanzen zwischen derivativen Produkten (oder unterschiedlichen Architekturen) aufzunehmen. Darüber hinaus weist HPE sowohl Leckage- als auch dynamische Komponenten einer Silizium-Leistungsaufnahme auf und berücksichtigt somit PVTF-Schwankungen.
  • Im Allgemeinen weist die Leistungsaufnahme digitaler logischer Vorrichtungen Leckströme und dynamische Komponenten auf. Die Leckleistung ist im Allgemeinen eine Funktion der Parameter des Herstellungsprozesses (Schwellenspannung, Mobilität usw.) und der Spannung. Die dynamische Leistung hängt jedoch von der Schaltaktivität der Logikgatter innerhalb der integrierten Logikschaltung ab. Der Verbrauch der dynamischen Leistung kann wie folgt beschrieben werden P d y n = V 2 i ƒ i α i C i
    Figure DE102023101325A1_0003
    Wobei:
    • α die Aktivität eines bestimmten Knotens/Netzes der logischen Schaltung bezeichnet,
    • C die effektive Kapazität und f oder feff für die effektive Frequenz bezeichnet.
  • Bei modernen Siliziumdesigns werden in der Regel mehrere ähnliche Zellen, so genannte Standardzellen, für das gesamte Logikdesign verwendet. So werden beispielsweise viele Zustandsautomaten mit einer bestimmten Art von Flip-Flops realisiert, die jeweils aus Standard-Logikgattern mit einer bestimmten Schwellenspannung bestehen. Jede dieser Standardzellen kann beispielsweise für die Berechnung der dynamischen Leistung abstrahiert werden. In diesem Fall kann die gesamte dynamische Leistung wie folgt geschrieben werden P d y n = V 2 p ƒ e f f , p N p C e f f , p
    Figure DE102023101325A1_0004
    Wobei
    • N die Gesamtzahl der Zellen eines bestimmten Typs (normale Schwellenspannung, hohe Schwellenspannung, NOR-Gatter usw.) bezeichnet.
  • Die beiden obigen Gleichungen zum Berechnen der dynamischen Leistung können zusammen für verschiedene Teile der digitalen Logik verwendet werden. So kann beispielsweise Gleichung (1) zum Schätzen der Leistungsaufnahme von IPs und Teilsystemen mit hoher Betriebsfrequenz verwendet werden, während Gleichung (2) für andere Logik verwendet werden kann. Dementsprechend kann die dynamische Gesamtleistung wie folgt berechnet werden: P d y n = V 2 i ƒ i α i C i + V 2 p ƒ e f f , p N p C e f f , P
    Figure DE102023101325A1_0005
  • Moderne Mikrocontroller bzw. Mikroprozessoren können mehrere Millionen Logikgatter aufweisen. Ein Berechnen der dynamischen Leistung für diese Millionen von logischen Knoten/Netzen erhöht die Komplexität der Berechnungen. Wenn eine begrenzte Anzahl von Anwendungsfällen (und damit die Chipkonfiguration) bekannt ist, kann die konfigurationsbasierte dynamische Leistung für einen bestimmten Logik-Cluster mit der aggregierten gatterbasierten dynamischen Leistung für einen anderen Logik-Satz/Cluster korreliert werden. Folglich kann die gesamte dynamische Leistung wie folgt ausgedrückt werden P d y n = V 2 p [ ƒ e f f , p N p C e f f , p + i ƒ i , p α i , p C i , p ] + V 2 i [ ƒ i α i C i + p ƒ e f f , p , i N p , i C e f f , p , i ]
    Figure DE102023101325A1_0006
  • Ein rekursives Anwenden dieses Verfahrens würde den Rechenaufwand für ein Berechnen der dynamischen Leistung erheblich verringern. Diese verschachtelten Gleichungen können dann generisch dargestellt werden als v n = r Y r q X q , r k A k W k , q , r
    Figure DE102023101325A1_0007
  • Gleichung (5) zeigt, dass die Berechnung der dynamischen Leistung als eine Reihe von Multiplikations- und Additionsoperationen dargestellt werden kann. Dementsprechend kann die dynamische Leistung als ein Netz von Operationen dargestellt werden, wobei jeder Knoten eine MADD-Schaltung ist. Die Eingaben Ak können entweder die Aktivitäten α oder die Anzahl der Zellen Ni sein. Der Gewichtungssatz (W, X, Y) würde dann effektiv die übrigen Terme wie Kapazität, Spannung in Gleichung (4) repräsentieren. Aktivitäten bestimmter Knoten und die Anzahl der logischen Gatter in einem vordefinierten Zellentyp werden als Eingänge in dieses Netz eingespeist.
  • 9 zeigt eine beispielhafte Darstellung eines neuronalen Netzwerks 900, das eine Hardware-Implementierung von Gleichung 5 sein kann, das einen Hardware-Leistungsschätzer (HPE) darstellt.
  • Das neuronale Netz 900 von HPE weist eine Eingabe oder Eingabeschicht 910 auf, die eine Eingabe in Form der Anzahl der Aktivitäten und/oder aktiven Zellen der MCU erhält, für die die Leistung geschätzt werden soll. Diese Informationen können aus dem Anwendungscode oder den Registern der MCU gewonnen werden.
  • Die Ausgabeschicht 950 liefert Daten oder Werte, welche die aktuelle Leistungsaufnahme darstellen. Die Eingangsschicht 910 ist über eine oder mehrere Level oder Zwischenschichten 930 mit der Ausgabeschicht 950 verbunden. Wie dargestellt, können die Schichten durch gewichtete Verbindungen miteinander verbunden werden, wobei die Symbole Wk, Xl und Yj verwendet werden.
  • In verschiedenen Ausführungsformen sind verschiedene Ansätze für den physischen Aufbau des neuronalen HPE-Netzes 900 möglich. In einem Beispiel, einem hierarchischen Ansatz, könnten die Zwischenschichtknoten des Levels 1 durch MADD-Schaltungen realisiert oder implementiert sein. Die MADD-Schaltungen können so konfiguriert oder definiert sein, dass ihre Ausgaben dynamischen Leistungszahlen entsprechen. Darüber hinaus könnten auch Level-2-Knoten mit MADD-Schaltungen realisiert oder implementiert sein, und ihre Ausgaben könnten ein Teilsystem oder einen bestimmten dynamischen IUPI-Leistungsverbrauch darstellen.
  • Die dynamische Leistung (z. B. im Labor gemessen) kann in Milliampere (mA) angegeben werden. In Simulationswerkzeugen können die dynamischen Leistungszahlen als Aktivitätszahlen gemessen werden (z. B. auf einer Skala von 0 bis 1). Bei MADD-Schaltungen können die dynamischen Leistungszahlen als digitale Werte dargestellt werden. Zum Beispiel für eine 2-Bit-MADD-Schaltung: 00 entspricht 0 bis 10 mA, 01 entspricht 10 bis 20 mA, 10 entspricht 20 bis 30 mA, 11 entspricht 30 bis 40 mA.
  • In einem anderen Beispiel könnte das HPE mit einem flachen Netzwerkansatz realisiert sein. In einem solchen Fall könnten die Level-1- oder Level-2-Knoten mit MADD-Schaltkreisen realisiert sein, aber diese Knoten repräsentieren keinen spezifischen Cluster oder eine Unterkomponente. Stattdessen könnten die Werte oder Ausgaben dieser Knoten oder Neuronen von Level-1 oder Level-2 verwendet werden, um die Genauigkeit der Schätzung zu erhöhen.
  • Zurück zu den Gleichungen (4) und (5): Eine einfache lineare Gleichung würde für jeden Knoten gut funktionieren. Daher kann die folgende Funktion für das Training des Modells für HPE verwendet werden: y = m a x ( 0 , x )
    Figure DE102023101325A1_0008
  • Für eine einfache lineare Regression kann gezeigt werden, dass der minimale Satz von Trainingsdaten, der erforderlich ist, um zu einem potenziellen Gewichtssatz (W, X, Y) zu gelangen, wie folgt lautet ( n + m ) 5 / 3 + ( n + m ) + ( n + m ) 1 / 3 .
    Figure DE102023101325A1_0009
  • Ein Durchführen eines Trainings, um zu einem geeigneten gewichteten Satz zu gelangen, könnte jedoch unter Verwendung einer Verlustfunktion zur Maximierung der Genauigkeit erfolgen. So könnte beispielsweise eine Verlustfunktion verwendet werden, die den kleinsten mittleren quadratischen Fehler (LMS) der Leistungsschätzung für einen Satz von Blattzellen darstellt. Da es sich bei Gleichung (5) um ein multivariates nichtlineares Polynom handelt, ist der Trainingsdatensatz in der Regel 5-10 Mal größer als die erforderliche Anzahl, und ein modifizierter Gradientenabstiegsalgorithmus wird zum Optimieren der Gewichte verwendet.
  • Es ist anzumerken, dass nicht alle Anwendungscodes, die in diesem Trainingssatz verwendet werden, funktional sein müssen (in Bezug auf die Funktionalität). Während einer Prä-Silizium-Analyse könnte ein vektorgetriebener Ansatz verwendet werden, um eine höhere Abdeckung der internen Knoten zu erreichen. Daher wird eine Reihe von Mustern (oder Codes) verwendet, um die Aktivität der Logik durch Simulation oder Emulation zu schätzen. Eine schnelle Signaldatenbank (FSDB) erfasst alle Knoten-/Signalaktivitäten und dient als Eingabe für Industriestandard-Tools zur Leistungsschätzung (z. B. PrimePower™ von Synopsys®, Voltus™ von Cadence® usw.). Wie später erläutert, kann die von diesen Tools ermittelte Leistungsaufnahme (Imeas) mit der geschätzten Leistungsaufnahme Iest eines realisierten oder implementierten HPE verglichen werden. Ein Lernalgorithmus kann zur Minimierung der LMS-Verlustfunktion verwendet werden, um optimierte Gewichte für das HPE zu erhalten.
  • Wie bereits beschrieben, können für das neuronale Netz von HPE einfache Multiplikations- und Additionsschaltungen (MADD-Schaltungen) verwendet werden, um den Strom für IPs einer MCU zu schätzen. Angenommen, jede Stufe wird durch die Gleichung X*K1 + C1 dargestellt, dann kann das dreistufige Netzwerk durch die Gleichung dargestellt werden: ( ( X * k 1 + c 1 ) * k 2 + c 2 ) * k 3 + c 3 = X * k 1 * k 2 * k 3 + C 1 * k 2 * k 3 + C 2 * k 3 + C 3
    Figure DE102023101325A1_0010
  • In Gleichung (7) steht X für die Anzahl der Instanzen eines IP und kl für den durchschnittlichen Strom, der vom IP verbraucht wird, während C1 den Leckagebeitrag des IP darstellt.
  • Dementsprechend können in einer oder mehreren beispielhaften Ausführungsformen der vorliegenden Offenbarung MADD-Schaltungen konfiguriert sein, die dynamische Leistungsaufnahme von Komponenten (z. B. IPs) eines Mikrocontrollers oder eines ganzen Mikrocontrollers, wie der MCU 10 von 1, darzustellen.
  • 10 zeigt ein Beispiel für eine MADD-Schaltung 1000 gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Die MADD-Schaltung 1000 kann als einstufig betrachtet werden. Daher weist die MADD-Schaltung 1000 eine Eingangs- oder Eingabeschicht 1010 auf, die mit einem Ausgang oder einer Ausgabeschicht 1050 über eine einzelne Stufe oder Zwischenebene 1030 gekoppelt ist.
  • In diesem Beispiel kann die Eingangs- oder Eingabeschicht 1010 zwei (unterschiedliche) Eingänge oder Eingangsvektoren aufweisen, nämlich a (a[0...3]) und b (b[0...3]). Der Eingangsvektor a kann einen Eingang darstellen, der z. B. Aktivitäten und/oder die Anzahl der aktiven Zellen oder Schaltkreise angibt. In einem Beispiel kann jede Zelle oder Schaltung einer Gruppe von Logikgattern zum Implementieren eines Zustandsautomaten, einer Protokolllogik usw. entsprechen.
  • Der Eingangsvektor b kann der trainierte und optimierte gewichtete Satz von Werten sein. Die Eingaben können aus dem Anwendungscode oder den Registern der MCU stammen oder dort gespeichert sein.
  • Die MADD-Schaltung 1000 kann die Multiplikation von 2x4-Bit-Zahlen in einem einzigen Taktzyklus durchführen. Die einzelne Stufe 1030 der MADD-Schaltung 1000 weist Multiplizierer 1040 und Addierer 1045 auf, die miteinander verbunden sind, um die Ausgabe für den Knoten zu ermitteln. Der Ausgang oder die Ausgabeschicht 1050 kann Werte aufweisen, welche die dynamische Leistungsaufnahme oder den dynamischen Strom für eine bestimmte einzelne Komponente oder IP einer MCU angeben. Die Ausgabe für die MADD-Schaltung 1000 kann in einem Taktzyklus erzeugt werden.
  • 11 zeigt eine weitere MADD-Schaltung 1100 gemäß mindestens einer beispielhaften Ausführungsform der vorliegenden Offenbarung. Auch hier kann die MADD-Schaltung 1100 für ein hierin beschriebenes HPEs verwendet werden.
  • Die MADD-Schaltung 1100 weist einen Eingang oder eine Eingabeschicht 1110 und einen Ausgang oder eine Ausgabeschicht 1050 auf. In diesem Fall kann die Eingangsschicht 1110 zwei (unterschiedliche) Eingänge oder Eingangsvektoren aufweisen, nämlich a (a[0...3]) und b (b[0...3]). Der Eingangsvektor a kann eine Eingabe darstellen, die z. B. Aktivitäten und/oder die Anzahl der aktiven Zellen angibt. Der Eingangs- oder Eingabevektor b kann die trainierte gewichtete Menge von Werten sein.
  • Da die MADD-Schaltung 1100 über zwei Stufen verfügt, ist auch ein Additionseingang, Eingang oder Eingangsvektor c vorhanden, der für die zweite Stufe 1130b bereitgestellt werden muss. Jede Stufe der MADD-Schaltung 1100 kann ähnlich konfiguriert sein und Komponenten aufweisen, z. B. Multiplizierer und Addierer, wie die einzelne Stufe 1030 von 10. Der Eingang c (c[0...3]) kann auch einen gewichteten Satz von Werten aufweisen, die für die zweite Stufe 1130b der MADD-Schaltung 1100 bereitgestellt und verwendet werden. Das heißt, die ersten und zweiten Eingänge oder Eingang a und Eingang b werden für die erste Stufe 1130a verwendet, der erste Ausgang oder der Ausgang der ersten Stufe 1120 kann als Eingang für die zweite Stufe 113 0b verwendet werden.
  • Dementsprechend werden der erste Ausgang 1120 und der Eingang c in der zweiten Stufe verwendet, um einen Ausgang 1150 für die MADD-Schaltung 1100 und den entsprechenden durch die MADD-Schaltung 1100 dargestellten Knoten zu erzeugen.
  • Die Ausgabe 1150 kann der dynamischen Leistungsaufnahme für mindestens eine Komponente oder IP des Mikrocontrollers (z. B. MCU 10) oder eines SoC entsprechen. Wie gezeigt, kann die MADD-Schaltung 1100 so arbeiten, dass sie die Ausgabe 1150 in zwei Taktzyklen erzeugt.
  • Kurz gesagt, die MADD-Schaltung 1100 repliziert die MADD-Schaltung 1000, um eine Multiplikation mit 3 Eingängen zu realisieren, die in 2 Taktzyklen erzeugt oder erreicht werden kann. In Erweiterung dieses Konzepts könnte eine mehrstufige MADD-Schaltung realisiert werden, um eine Multiplikation mit 4 Eingängen zu verarbeiten, die in 3 Taktzyklen erreicht werden kann.
  • 12 zeigt eine beispielhafte Darstellung eines HPE 1200, das zum Schätzen der Leistungsaufnahme einer MCU oder eines SoC konfiguriert ist. Das HPE 1200 ist ein neuronales Hardware-Netzwerk, das so konfiguriert ist, dass es die momentane oder dynamische Leistungsaufnahme für Komponenten, insbesondere IPs einer MCU oder eines SoCs, schätzt. Das HPE 1200 kann beispielsweise in einer MCU implementiert werden, die die hier beschriebenen beispielhaften MCUs aufweist.
  • Als solches kann das HPE 1200 ein neuronales Hardware-Netzwerk sein, das Knoten in Form der hier beschriebenen MADD-Schaltungen aufweist (z.B. MADD-Schaltungen 1100 und 1200). So können die Knoten oder MADD-Schaltungen in ein- oder mehrstufiger Form implementiert werden.
  • In der HPE 1200 von 12 entspricht jeder Knoten oder MADD-Schaltkreis einer bestimmten Komponente oder IP, z. B. einer MCU oder eines SoC. Das HPE 1200 weist nämlich die Knoten 1210A-1210N auf, die dem Ermitteln der Leistungsaufnahme für die IPs IP1-1PN einer MCU entsprechen und dafür konfiguriert sind.
  • Eine Endknoten- oder MADD-Schaltung 1220 kann konfiguriert sein zum Ermitteln eines dynamischen Gesamtleistungsaufnahme für das SoC oder die MCU. Wie gezeigt, kann die geschätzte Leistungsaufnahme oder die Leistungsaufnahme für die IPs (IP1-IPN) zur gleichen oder im Wesentlichen gleichen Zeit, gleichzeitig oder parallel durchgeführt werden.
  • Solange die Hardware die Anzahl von Gattern unterstützt, die für eine höhere Anzahl von MADD-Stufen für alle IPs erforderlich sind, kann die Stromabschätzung für das gesamte SoC in der Größenordnung von wenigen Taktzyklen durchgeführt werden. So kann ein ganzes Netzwerk oder HPE implementiert werden, um die Leistungsaufnahme einer MCU oder eines SoC in weniger als 6 Taktzyklen abzuschätzen, da die Stromabschätzung von verschiedenen MADD-Schaltungen für alle IPs oder Komponenten gleichzeitig oder parallel durchgeführt werden kann.
  • Darüber hinaus können die hier beschriebenen HPEs, z. B. unter Verwendung von mehrstufigen MADD-Knoten, die Leistung mit feinerer Granularität schätzen (mittels Erfassens einer größeren Anzahl von Eingaben). Beispielsweise kann ein HPE so realisiert sein, dass beim Schätzen der Leistungsaufnahme für eine bestimmte IP bis zu drei Level oder Stufen von MADD-Knoten verwendet werden können. Außerdem kann der HPE so konfiguriert oder realisiert sein, dass die Leistungsaufnahme jedes IP gleichzeitig oder parallel geschätzt werden kann. Somit kann die HPE für einen SoC oder eine MCU als eine Reihe von HPEs auf IP-Ebene betrachtet werden, wobei jede dieser HPEs auf IP-Ebene mit einem MADD-Schaltkreis/Knoten realisiert sein kann.
  • Eine Erhöhung der Anzahl der Level kann jedoch zu einer Erhöhung der Schätzungslatenz führen. Diese Latenzerhöhung kann jedoch durch eine entsprechende Erhöhung der Genauigkeit der geschätzten Leistung kompensiert werden.
  • 13 zeigt ein beispielhaftes Flussdiagramm und eine Umgebung 1300, die ein beispielhaftes Post-Silizium-Trainingsverfahren zum Ermitteln der Gewichte oder des gewichteten Wertesatzes darstellen, die für die hier beschriebenen HPEs oder Teile davon zu verwenden sind.
  • Für das Post-Silizium-Training ist ein HPE 1310 bereits als Teil des Siliziums oder der MCU 1310 implementiert. So kann der HPE 1310 die Leistungsaufnahme einer IP oder einer Anwendung einer MCU, z. B. einer beliebigen IP, die in diesem Beispiel als IPX 1320 bezeichnet wird, abschätzen.
  • Die MCU oder das SoC 1310 kann mit Eingaben versorgt werden, z. B. mit Code oder Eingabemustern 1305, die den Betrieb oder die Funktion des mindestens einen IPx 1320 bewirken. Die entsprechenden vom IPx 1320 erzeugten Parameter, z. B. die Anzahl der aktiven Zellen, können erfasst und als Eingabe für den HPE 1330 verwendet werden. So kann das HPE 1330 eine Ausgabe, z. B. eine geschätzte Leistungsaufnahme, erzeugen. Dieser kann z. B. in Form eines geschätzten Stroms Iest, 1335, gebildet werden. Die HPE 1330 kann bereits mit Anfangswerten für die gewichtete Menge 1345 (Wi, Xj , Yl) konfiguriert oder eingestellt worden sein, die in Registern der MCU gespeichert sein können. Auch hier kann das HPE 1310 eine Schätzung der Leistungsaufnahme mit sehr geringer Latenzzeit liefern. Relativ schnelle oder schnellere Transienten oder Änderungen der Leistungsaufnahme können dynamisch geschätzt werden.
  • 13 zeigt die geschätzte Leistung 1335 im Vergleich zur tatsächlichen Leistungsaufnahme 1340, der mit einer Stromversorgung 1340 gemessen wird. Die Stromversorgung 1340 kann die zu prüfende Vorrichtung (DUT), z. B. den SoC oder die MCU 1310, mit Strom versorgen.
  • Die Differenz zwischen der gemessenen Leistung 1340 und der geschätzten Leistung 1335 aus dem HPE 1330 kann als Eingabe für einen Lernalgorithmus (LA) 1350 verwendet werden. Der Lernalgorithmus kann in Form von Anweisungen implementiert sein (z. B. auf einem nichttransitiven computerlesbaren Medium gespeichert) und von einem oder mehreren Prozessoren ausgeführt werden, z. B. auf einer separaten Vorrichtung. Die LA 1350 verwendet die aktuellen Gewichte 1345 und die Unterschiede in den Leistungsmessungen zwischen dem direkt gemessenen und der geschätzten Leistungsaufnahme, um optimierte Gewichte 1345 zu ermitteln, die vom HPE 1330 verwendet werden sollen. Insbesondere kann die LA 1350 konfiguriert sein, einen optimierten Satz von Gewichten 1345 zu ermitteln. Zum Ermitteln der optimierten Gewichte 1345 können alle geeigneten (maschinellen) Lernalgorithmen oder -techniken verwendet werden. In einem Beispiel kann die LA 1350 eine Verlustfunktion des kleinsten quadratischen Mittels (LMS) verwenden und zu optimierten Gewichten für das HPE 1330 gelangen.
  • 14 zeigt ein beispielhaftes Flussdiagramm und eine Umgebung 1400, die einen beispielhaften Prä-Silizium-Trainingsprozess zum Ermitteln von Gewichten oder gewichteten Wertesätzen für die hier beschriebenen HPEs darstellen. Für einen Prä-Silizium-Trainingsprozess werden ein SoC/MCU 1410 und seine Komponenten, z. B. IPx 1420 und HPE 1430, nicht physisch realisiert und implementiert. Stattdessen kann die SoC/MCU 1410 als abstrakte Datenform für Simulationsdaten dargestellt werden, z. B. Daten, die für RTL-Simulationen oder ähnliche Arten von Simulationen verwendet werden.
  • Während der Simulationen können verschiedene Eingaben, z. B. Codes oder Muster, in die simulierte SoC/MCU 1410 eingegeben werden und so das Ausführen einer oder mehrerer Operationen oder Aufgaben des IPx 1410 bewirken. Wie beim Post-Silizium-Training kann das simulierte HPE 1410 eine geschätzten Leistungsaufnahme ausgeben. Das heißt, die vom IPx 1420 erzeugten Parameter, z. B. die Anzahl der aktiven Zellen, können erfasst und als Eingabe für den HPE 1430 verwendet werden. Auch hier kann die Leistungsaufnahme z. B. in Form eines geschätzten Stroms lest, 1435, gebildet werden. In ähnlicher Weise kann das HPE 1430 mit Anfangswerten für die gewichtete Menge 1345 (Wi, Xj, Yl), die für das HPE 1330 verwendet wird, simuliert werden, die für eine spätere Simulation durch die vom LA 1450 ermittelten Gewichte aktualisiert werden können.
  • Auch hier kann die geschätzte Leistungsaufnahme 1335 mit der Leistungsaufnahme 1340 verglichen werden, der vom simulierten Leistungsschätzer 1440 erzeugt wird, der auch eine simulierte Stromversorgung für die SoC/MCU 1410 sein kann.
  • Wie in der Post-Silizium-Phase kann die Differenz zwischen der simulierten gemessenen Leistung 1440 und der simulierten geschätzten Leistung 1435 aus dem HPE 1330 von einem Lernalgorithmus (LA) 1450 verwendet werden, um einen optimalen Gewichtungswert zu finden.
  • Auch hier kann die LA 1450 in Form von Befehlen implementiert werden (z. B. auf einem dauerhaften computerlesbaren Medium gespeichert) und von einem oder mehreren Prozessoren ausgeführt werden, z. B. auf einer separaten Vorrichtung. Der LA 1450 empfängt die Unterschiede in den Leistungsmessungen sowie den aktuellen Satz von Gewichten 1445. Unter Verwendung solcher Eingaben kann die LA 1350 konfiguriert sein zum Ermitteln eines optimierten Gewichtssatzes 1345. Die LA 1350 kann eine Verlustfunktion des kleinsten quadratischen Mittels (LMS) verwenden und zu optimierten Gewichten für das HPE 1330 gelangen. Die LA kann wiederholt oder iterativ auf mehrere Simulationen angewandt werden, um den besten oder optimierten Satz von Gewichten zu aktualisieren oder zu finden, der den geringsten Fehler in der Leistungsaufnahme erzeugt, der von der simulierten HPE 1430, die die Leistungsaufnahme misst, erzeugt wird. Da das HPE nicht physisch realisiert ist, kann das HPE 1430 selbst wiederholt optimiert oder seine Konstruktion oder Konfiguration entsprechend aktualisiert werden, um ein geeignetes Ergebnis zu ermitteln.
  • Die in der vorliegenden Offenbarung beschriebenen HPEs können zusammen mit anderen Software- und Debugging-Tools zum Vorhersagen einer Leistungsaufnahme für einen bestimmten Anwendungscode verwendet werden und so dazu beitragen, den Anwendungscode auf effiziente Weise zu optimieren. Auf diese Weise stehen den Design- und Architekturteams frühzeitig Informationen für die Planung der Siliziumparameter zur Verfügung.
  • Die folgenden Beispiele beziehen sich auf zusätzliche Aspekte dieser Offenbarung:
    • Beispiel 1 ist ein Mikrocontroller, der von einem integrierten Leistungsverwaltungsschaltkreis (PMIC) mit Strom versorgt wird, wobei der Mikrocontroller Folgendes aufweist: eine Mehrzahl von Kernen, einschließlich eines ersten Kerns, der konfiguriert ist zum Implementieren einer Systemleistungstransienten-Verwaltungskomponente, eines oder mehrerer zweiter Kerne, die konfiguriert sind zum Implementieren einer oder mehrerer Anwendungen; wobei die durch den ersten Kern implementierte Systemleistungstransienten-Verwaltungskomponente konfiguriert ist zum: dynamischen Identifizieren eines erwarteten transienten Lastereignisses, das in dem Mikrocontroller auftreten soll, Ermitteln von Leistungssteuerdaten, um eine Reaktion auf das identifizierte erwartete transiente Lastereignis zu optimieren, wobei die Leistungssteuerdaten einen Leistungsteuermodus und zugehörige Parameter aufweisen, und Liefern der Leistungssteuerdaten an den integrierten Leistungsverwaltungsschaltkreis (PMIC).
    • Beispiel 2 ist der Gegenstand von Beispiel 1, wobei der PMIC so konfiguriert sein kann, dass der Betrieb des PMIC entsprechend den bereitgestellten Leistungssteuerdaten dynamisch geändert wird.
    • Beispiel 3 ist der Gegenstand von Beispiel 1 oder 2, wobei die Systemleistungstransienten-Verwaltungskomponente ferner so konfiguriert sein kann, dass sie einen Leistungssteuermodus aus mindestens zwei der folgenden Modi auswählt: einem Strommodus, einem Vorwärtskopplungsmodus, einem Hysterese-Modus, einem Spannungsmodus.
    • Beispiel 4 ist der Gegenstand eines der Beispiele 1 bis 3, wobei die zugehörigen Parameter Schleifenparameter für den Leistungsregelungsmodus aufweisen können.
    • Beispiel 5 ist der Gegenstand eines der Beispiele 1 bis 4, wobei die zugehörigen Parameter Spannungs- und Frequenzparameter für den PMIC aufweisen können.
    • Beispiel 6 ist der Gegenstand eines der Beispiele 1 bis 5, wobei das identifizierte erwartete transiente Lastereignis einen transienten Abfall aufweisen kann.
    • Beispiel 7 ist der Gegenstand eines der Beispiele 1 bis 6, wobei das identifizierte erwartete transiente Lastereignis einen Stromstoß aufweisen kann.
    • Beispiel 8 ist der Gegenstand eines der Beispiele 1 bis 7, wobei das Ermitteln der Leistungssteuerdaten zum Optimieren des transienten Lastverhaltens Folgendes aufweisen kann: Identifizieren eines Szenarios aus einer Mehrzahl von vordefinierten Szenarien, die dem identifizierten transienten Lastereignis entsprechen, Ermitteln einer oder mehrerer Aktivitäten, von denen erwartet wird, dass sie auf der Grundlage des bestimmten Szenarios auftreten, Ermitteln eines dynamischen Stromverbrauchsprofils, das das Ermitteln einer geschätzten Leistungsaufnahme für jede Aktivität auf der Grundlage der einen oder mehreren ermittelten Aktivitäten aufweist, Erhalten von Laufzeitdaten für die eine oder mehreren Anwendungen und Aktualisieren des dynamischen Stromverbrauchsprofils auf der Grundlage von Laufzeitdaten, Ermitteln der Leistungssteuerdaten auf der Grundlage des aktualisierten dynamischen Stromverbrauchsprofils.
    • Beispiel 9 ist der Gegenstand von Beispiel 8, wobei die Mehrzahl von vordefinierten Szenarien in einer Mehrzahl von Hardwareregistern des Mikrocontrollers gespeichert sein kann, wobei jedes der Mehrzahl von vordefinierten Szenarien eine oder mehrere Aktivitäten angibt, die von der einen oder mehreren Anwendungen ausgeführt werden können.
    • Beispiel 10 ist der Gegenstand eines beliebigen Beispiels 8, wobei das Ermitteln des dynamischen Stromverbrauchsprofils ein Anwenden eines Leistungsmodells auf die eine oder mehrere ermittelte Aktivitäten aufweisen kann.
    • Beispiel 11 ist der Gegenstand von Beispiel 10, wobei das Ermitteln der Leistungssteuerdaten ein Anwenden einer Nachschlagetabelle auf das aktualisierte dynamische Stromverbrauchsprofil aufweisen kann.
    • Beispiel 12 ist der Gegenstand eines beliebigen Beispiels 8, wobei das Ermitteln der Leistungssteuerdaten ein Auswählen eines Leistungssteuermodus aus einer Mehrzahl von vordefinierten Leistungssteuermodi aufweisen kann, wobei die Mehrzahl von vordefinierten Leistungssteuermodi mindestens zwei der folgenden Modi aufweist: einen Strommodus, einen Vorwärtskopplungsmodus, einen Hysterese-Modus, einen Spannungsmodus.
    • Beispiel 13 ist der Gegenstand eines beliebigen Beispiels 12, wobei das Ermitteln der Leistungssteuerdaten ferner ein Auswählen mindestens eines Satzes zugehöriger Parameter für den ausgewählten Leistungssteuermodus aufweisen kann, wobei der mindestens eine Satz zugehöriger Parameter aus den folgenden ausgewählt wird: einer Gruppe von Spannungs-, Frequenz- und Schleifenparametern.
    • Beispiel 14 ist der Gegenstand eines beliebigen Beispiels 11, wobei die ermittelten Leistungssteuerdaten einen Leistungssteuermodus aufweisen können, der derselbe ist wie ein aktueller oder vorheriger Leistungssteuermodus, und ferner mindestens einen Satz zugehöriger Parameter aufweisen, die sich von einem Satz zugehöriger Parameter für den aktuellen oder vorhergehenden Leistungssteuermodus unterscheiden.
    • Beispiel 1A ist ein Verfahren zur Leistungsverwaltung für einen Mikrocontroller, wobei das Verfahren aufweisen kann: Implementieren einer Systemleistungstransienten-Verwaltungskomponente durch einen ersten Kern des Mikrocontrollers; Implementieren einer oder mehrerer Anwendungen durch einen oder mehrere zweite Kerne des Mikrocontrollers; wobei das Implementieren der Systemleistungstransienten-Verwaltungskomponente durch den ersten Kern aufweist, dass die Systemleistungstransienten-Verwaltungskomponente:
      • ein erwartetes transientes Lastereignisses, das in dem Mikrocontroller auftreten soll, dynamisch identifiziert, Leistungssteuerdaten, um eine Reaktion auf das identifizierte erwartete Lasttransientenereignis zu optimieren, ermittelt, wobei die Leistungssteuerdaten einen Leistungssteuermodus und zugehörige Parameter aufweisen, und die Leistungssteuerdaten für einen integrierten Leistungsverwaltungsschaltkreis (PMIC) bereitstellt.
    • Beispiel 2A ist der Gegenstand von Beispiel 1, der ferner ein dynamisches Ändern des Betriebs der PMIC durch die PMIC entsprechend den bereitgestellten Leistungssteuerdaten aufweisen kann.
    • Beispiel 3A ist der Gegenstand von Beispiel 1A oder 2A, wobei die Systemleistungstransienten-Verwaltungskomponente ferner einen Leistungssteuermodus aus mindestens zwei der folgenden auswählen kann: einem Strommodus, einem Vorwärtskopplungsmodus, einem Hysterese-Modus, einem Spannungsmodus.
    • Beispiel 4A ist der Gegenstand eines der Beispiele 1A bis 3A, wobei die zugehörigen Parameter Schleifenparameter für den Leistungsregelungsmodus aufweisen können.
    • Beispiel 5A ist der Gegenstand eines der Beispiele 1A bis 4A, wobei die zugehörigen Parameter Spannungs- und Frequenzparameter für den PMIC aufweisen können.
    • Beispiel 6A ist der Gegenstand eines der Beispiele 1A bis 5A, wobei das identifizierte erwartete transiente Lastereignis einen transienten Abfall aufweisen kann.
    • Beispiel 7A ist der Gegenstand eines der Beispiele 1A bis 6A, wobei das identifizierte erwartete transiente Lastereignis einen Stromstoß aufweisen kann.
    • Beispiel 8A ist der Gegenstand eines der Beispiele 1A bis 7A, wobei das Ermitteln von Leistungssteuerdaten zum Optimieren der transienten Lastreaktion aufweisen kann: Identifizieren eines Szenarios aus einer Mehrzahl von vordefinierten Szenarien, die dem identifizierten transienten Lastereignis entsprechen, Ermitteln, basierend auf dem ermittelten Szenario, einer oder mehrerer Aktivitäten, von denen erwartet wird, dass sie basierend auf dem ermittelten Szenario auftreten, Ermitteln eines dynamischen Stromverbrauchsprofils, aufweisend das Ermitteln, basierend auf der einen oder den mehreren ermittelten Aktivitäten, einer geschätzten Leistungsaufnahme für jede Aktivität; Erhalten von Laufzeitdaten für die eine oder die mehreren Anwendungen und Aktualisieren des dynamischen Stromverbrauchsprofils basierend auf Laufzeitdaten; und Ermitteln der Leistungssteuerdaten basierend auf dem aktualisierten dynamischen Stromverbrauchsprofil.
    • Beispiel 9A ist der Gegenstand von Beispiel 8A, wobei die Mehrzahl von vordefinierten Szenarien in einer Mehrzahl von Hardwareregistern des Mikrocontrollers gespeichert werden kann, und wobei jedes der Mehrzahl von vordefinierten Szenarien eine oder mehrere Aktivitäten angeben kann, die von der einen oder den mehreren Anwendungen ausgeführt werden können.
    • Beispiel 10A ist der Gegenstand von Beispiel 8A, wobei das Ermitteln des dynamischen Stromverbrauchsprofils ein Anwenden eines Leistungsmodells auf die eine oder mehrere ermittelte Aktivitäten aufweisen kann.
    • Beispiel 11A ist der Gegenstand von Beispiel 10A, wobei das Ermitteln der Leistungssteuerdaten ein Anwenden einer Nachschlagetabelle auf das aktualisierte dynamische Stromverbrauchsprofil aufweisen kann.
    • Beispiel 12A ist der Gegenstand von Beispiel 8A, wobei das Ermitteln der Leistungssteuerdaten das Auswählen eines Leistungssteuermodus aus einer Mehrzahl von vordefinierten Leistungssteuermodi aufweisen kann, wobei die Mehrzahl von vordefinierten Leistungssteuermodi mindestens zwei der folgenden aufweist: einen Strommodus, einen Vorwärtskopplungsmodus, einen Hysterese-Modus, einen Spannungsmodus.
    • Beispiel 13A ist der Gegenstand von Beispiel 12A, wobei das Ermitteln der Leistungssteuerdaten ferner ein Auswählen mindestens eines Satzes zugehöriger Parameter für den ausgewählten Leistungssteuermodus aufweisen kann, wobei der mindestens eine Satz zugehöriger Parameter aus den folgenden ausgewählt werden kann: einer Gruppe von Spannungs-, Frequenz- und Schleifenparametern.
    • Beispiel 14A ist der Gegenstand von Beispiel 11A, wobei das Ermitteln der Leistungssteuerdaten ein Auswählen des Leistungssteuermodus aufweisen kann, der derselbe ist wie ein aktueller oder vorheriger Leistungssteuermodus , und ferner ein Auswählen des mindestens einen Satzes zugehöriger Parameter aufweisen kann, die sich von einem Satz zugehöriger Parameter für den aktuellen oder vorhergehenden Leistungssteuermodus unterscheiden.
    • Beispiel 1B ist eine Hardware-Leistungsschätzer-Schaltung zum Schätzen der Leistung einer elektronischen Vorrichtung, die eine Mehrzahl von (geistigen Eigentums-) IP-Blöcken bereitstellt, wobei der Hardware-Leistungsschätzer aufweist: ein künstliches neuronales Hardware-Netzwerk, das eine Mehrzahl von miteinander verbundenen Knoten aufweist, die in einer oder mehreren Stufen angeordnet sind, wobei jede einzelne Stufe aufweist:
      • eine erste Eingabeschicht, die Werte aufweist, die Aktivitäten der elektronischen Vorrichtung und/oder aktive Zellen der elektronischen Vorrichtung anzeigen, eine zweite Eingabeschicht, die einen gewichteten Satz von Werten aufweist, eine Ausgabeschicht, die für die einzelne Knotenstufe berechnete Werte aufweist, mindestens eine Zwischenschicht, die sich zwischen der Eingabeschicht und der Ausgabeschicht befindet, wobei jeder Knoten der mindestens einen Zwischenschicht eine Multiplizier- und Addierschaltung (MADD) aufweist, die so konfiguriert ist, dass sie einen Wert für den jeweiligen Knoten unter Verwendung von Werten berechnet, die von der ersten und der zweiten Eingabeschicht empfangen werden.
    • Beispiel 2B ist der Gegenstand von Beispiel 1B, wobei das künstliche neuronale Hardware-Netzwerk eine oder mehrere einzelne Stufen aufweisen kann und die Ausgabeschicht jeder einzelnen Stufe Werte aufweisen kann, die eine Leistungsschätzung für eine oder mehrere der Mehrzahl von IP-Blöcken angeben.
    • Beispiel 3B ist der Gegenstand der Beispiele 1B oder 2B, wobei das künstliche neuronale Hardwarenetz eine oder mehrere Mehrfachstufen aufweisen kann, wobei jede Mehrfachknotenstufe eine Mehrzahl von in Reihe angeordneten Einzelstufen aufweist, so dass die Ausgabeschicht einer nicht-letzten Stufe der Mehrfachstufe als erste Eingangsschicht für eine folgende Einzelstufe der Mehrfachstufe dient, und wobei die Ausgabeschicht einer letzten Einzelstufe Werte aufweisen kann, die eine Leistungsschätzung für einen oder mehrere der Mehrzahl von IP-Blöcken der elektronischen Vorrichtung angeben.
    • Beispiel 4B ist der Gegenstand eines der Beispiele 1B bis 3B, wobei das künstliche neuronale Hardware-Netzwerk eine Mehrzahl von Stufen aufweisen kann, die so konfiguriert sind zum parallelen und gleichzeitigen Arbeiten.
    • Beispiel 5B ist der Gegenstand eines der Beispiele 1B bis 4B, wobei der gewichtete Satz von Werten einem oder mehreren elektrischen Parametern der elektronischen Vorrichtung entsprechen kann.
    • Beispiel 6B ist der Gegenstand von Beispiel 5B, wobei der eine oder die mehreren elektrischen Parameter eine oder mehrere Frequenzen und/oder eine oder mehrere Kapazitäten aufweisen können.
    • Beispiel 7B ist der Gegenstand eines der Beispiele 1B bis 6B, wobei der gewichtete Satz von Werten Werte sind, die anhand eines Trainingsverfahrens ermittelt werden können.
    • Beispiel 8B ist der Gegenstand von Beispiel 7B, wobei der Trainingsprozess einen Prozess aufweisen kann, der vor der Herstellung der elektronischen Vorrichtung durchgeführt wird, wobei der Prozess ein Bereitstellen einer simulierten Eingabe von einer simulierten elektronischen Hardware-Vorrichtung an den Hardware-Leistungsschätzer, ein Ermitteln einer simulierten Leistungsmessung und ein Anwenden eines Lernalgorithmus auf die Differenz zwischen der Leistungsschätzung vom Hardware-Leistungsschätzer und der simulierten Leistungsmessung aufweist, um einen optimierten gewichteten Satz abzuleiten.
    • Beispiel 9B ist der Gegenstand von Beispiel 7B, wobei der Trainingsprozess einen Prozess aufweisen kann, der im Anschluss an die Herstellung der elektronischen Vorrichtung durchgeführt wird, wobei der Prozess ein Bereitstellen einer Eingabe von einer hergestellten elektronischen Hardware-Vorrichtung an den Hardware-Leistungsschätzer, ein Messen der Leistung unter Verwendung einer mit der hergestellten elektronischen Hardware-Vorrichtung gekoppelten Stromversorgung und ein Anwenden eines Lernalgorithmus auf eine Differenz zwischen der Leistungsschätzung vom Hardware-Leistungsschätzer und der gemessenen Leistung von der Stromversorgung aufweist, um einen optimierten gewichteten Satz abzuleiten.
    • Beispiel 10B ist der Gegenstand eines der Beispiele 1B bis 9B, wobei die erste und zweite Eingabeschicht eine Mehrzahl von Registern aufweisen kann, welche die Werte der ersten und zweiten Eingabeschicht speichern.
    • Beispiel 11B ist der Gegenstand eines der Beispiele 1B bis 10B, wobei die Ausgabeschicht eine Mehrzahl von Registern enthalten kann, welche die Werte der Ausgabeschicht speichern.
    • Beispiel 12B ist der Gegenstand eines der Beispiele 1B bis 11B, wobei das künstliche neuronale Netz konfiguriert sein kann zum Liefern einer Leistungsschätzung in Echtzeit.
    • Beispiel 13B ist der Gegenstand eines der Beispiele 1B bis 12B, wobei jede Stufe des neuronalen Netzes konfiguriert sein kann zum Arbeiten in einem Taktzyklus. Beispiel 1C ist ein Mikrocontroller, der eine Mehrzahl von IP-Blöcken (geistiges Eigentum) enthält, von denen jeder konfiguriert ist zum Ausführen einer oder mehrerer Funktionen; eine Hardware-Leistungsschätzungsschaltung zum Schätzen der Leistung des Mikrocontrollers, wobei die Hardware-Leistungsschätzung aufweist: ein künstliches neuronales Hardware-Netzwerk, das eine Mehrzahl von miteinander verbundenen Knoten enthält, die in einer oder mehreren Stufen angeordnet sind, wobei jede einzelne Stufe aufweist:
      • eine erste Eingabeschicht, die Werte aufweist, die Aktivitäten der elektronischen Vorrichtung und/oder aktive Zellen der elektronischen Vorrichtung anzeigen, eine zweite Eingabeschicht, die einen gewichteten Satz von Werten aufweist, eine Ausgabeschicht, die für die einzelne Knotenstufe berechnete Werte aufweist, mindestens eine Zwischenschicht, die sich zwischen der Eingabeschicht und der Ausgabeschicht befindet, wobei jeder Knoten der mindestens einen Zwischenschicht eine Multiplizier- und Addierschaltung (MADD) aufweist, die konfiguriert ist zum Berechnen eines Werts für den jeweiligen Knoten unter Verwendung von Werten, die von der ersten und der zweiten Eingabeschicht empfangen werden.
  • Es sei darauf hingewiesen, dass eines oder mehrere der Merkmale jedes der obigen Beispiele in geeigneter Weise mit jedem der anderen Beispiele oder mit den hierin offengelegten Ausführungsformen kombiniert werden können.
  • Die vorstehende Beschreibung wurde nur beispielhaft bereitgestellt, und Fachpersonen werden verstehen, dass Änderungen vorgenommen werden können, ohne vom breiteren Geist oder Umfang der Erfindung, wie er in den Ansprüchen dargelegt ist, abzuweichen. Die Beschreibung und die Zeichnungen sind daher eher in einem illustrativen als in einem einschränkenden Sinne zu verstehen.
  • Der Umfang der Offenbarung wird somit durch die beigefügten Ansprüche angegeben, und alle Änderungen, die unter die Bedeutung und den Äquivalenzbereich der Ansprüche fallen, sollen daher einbezogen werden.
  • Es wird davon ausgegangen, dass die Implementierungen der hierin beschriebenen Verfahren demonstrativen Charakter haben und daher in einer entsprechenden Vorrichtung implementiert sein können. Ebenso wird davon ausgegangen, dass Implementierungen von hierin beschriebenen Vorrichtungen als ein entsprechendes Verfahren implementiert werden können. Es versteht sich daher, dass eine Vorrichtung, die einem hierin beschriebenen Verfahren entspricht, eine oder mehrere Komponenten aufweisen kann, die so konfiguriert sind, dass sie jeden Aspekt des entsprechenden Verfahrens ausführen.
  • Alle in der obigen Beschreibung definierten Akronyme gelten auch für alle hierin enthaltenen Ansprüche.

Claims (20)

  1. Ein Mikrocontroller (10), der von einem integrierten Leistungsverwaltungsschaltkreis, PMIC (500), mit Leistung versorgt wird, wobei der Mikrocontroller (10) aufweist: eine Mehrzahl von Kernen (100) aufweisend: einen ersten Kern (100), der konfiguriert ist zum Implementieren einer Systemleistungstransienten-Verwaltungskomponente (200), einen oder mehrere zweite Kerne (100), die zum Implementieren einer oder mehrerer Anwendungen (400) konfiguriert sind; wobei die durch den ersten Kern (100) implementierte Systemleistungstransienten-Verwaltungskomponente (200) konfiguriert ist zum: dynamischen Identifizieren eines zu erwartenden transienten Lastereignisses im Mikrocontroller (10), Ermitteln von Leistungssteuerdaten zum Optimieren einer Reaktion auf das identifizierte erwartete transiente Lastereignis, wobei die Leistungssteuerdaten einen Leistungssteuermodus und zugehörige Parameter aufweisen, und Bereitstellen der Leistungssteuerdaten an den integrierten Leistungsverwaltungsschaltkreis (500).
  2. Der Mikrocontroller (10) nach Anspruch 1, wobei der PMIC (500) konfiguriert ist zum dynamischen Ändern des Betriebs des PMIC (500) entsprechend den bereitgestellten Leistungssteuerdaten.
  3. Der Mikrocontroller (10) nach einem der Ansprüche 1 oder 2, wobei die Systemleistungstransienten-Verwaltungskomponente (200) konfiguriert ist, einen Leistungssteuermodus aus mindestens zwei der folgenden Modi auszuwählen: einem Strommodus, einem Vorwärtskopplungsmodus, einem Hysterese-Modus, einem Spannungsmodus.
  4. Der Mikrocontroller (10) nach einem der Ansprüche 1 bis 3, wobei die zugehörigen Parameter Schleifenparameter für den Leistungssteuerungsmodus aufweisen.
  5. Der Mikrocontroller (10) nach einem der Ansprüche 1 bis 4, wobei die zugehörigen Parameter Spannungs- und Frequenzparameter für den PMIC (500) aufweisen.
  6. Der Mikrocontroller (10) nach einem der Ansprüche 1 bis 5, wobei das Ermitteln der Leistungssteuerdaten zum Optimieren des transienten Lastverhaltens aufweist: Identifizieren eines Szenarios, das dem identifizierten transienten Lastereignis entspricht, aus einer Mehrzahl von vordefinierten Szenarien; Ermitteln einer oder mehrerer Aktivitäten basierend auf dem ermittelten Szenario, die auf der Grundlage des ermittelten Szenarios erwartet werden; Ermitteln eines dynamischen Stromverbrauchsprofils, aufweisend ein Ermitteln, auf der Grundlage der einen oder mehreren ermittelten Aktivitäten, einer geschätzten Leistungsaufnahme für jede Aktivität; Erhalten von Laufzeitdaten für die eine oder mehrere Anwendungen und Aktualisieren des dynamische Stromverbrauchsprofils auf der Grundlage der Laufzeitdaten; Ermitteln der Leistungssteuerdaten auf der Grundlage des aktualisierten dynamischen Stromverbrauchsprofils.
  7. Der Mikrocontroller (10) nach Anspruch 6, wobei die Mehrzahl von vordefinierten Szenarien in einer Mehrzahl von Hardwareregistern des Mikrocontrollers (10) gespeichert ist, wobei jedes der Mehrzahl von vordefinierten Szenarien eine oder mehrere Aktivitäten angibt, die durch die eine oder mehrere Anwendungen (400) ausgeführt werden können.
  8. Der Mikrocontroller (10) nach einem der Ansprüche 6 oder 7, wobei das Ermitteln der Leistungssteuerdaten ein Auswählen eines Leistungssteuermodus aus einer Mehrzahl von vordefinierten Leistungssteuermodi aufweist, wobei die Mehrzahl von vordefinierten Leistungssteuermodi mindestens zwei der folgenden aufweist: einen Strommodus, einen Vorwärtskopplungsmodus, einen Hysterese-Modus, einen Spannungsmodus.
  9. Der Mikrocontroller (10) nach Anspruch 8, wobei das Ermitteln der Leistungssteuerdaten ferner aufweist, dass mindestens ein Satz von zugehörigen Parametern für den ausgewählten Leistungssteuermodus ausgewählt wird, wobei der mindestens eine Satz von zugehörigen Parametern aus den folgenden ausgewählt ist: einer Gruppe von Spannungs-, Frequenz- und Schleifenparametern.
  10. Der Mikrocontroller (10) nach Anspruch 9, wobei die ermittelten Leistungssteuerdaten einen Leistungssteuermodus aufweisen, der derselbe ist wie ein aktueller oder vorhergehender Leistungssteuermodus, und ferner mindestens einen Satz zugehöriger Parameter aufweisen, die sich von einem Satz zugehöriger Parameter für den aktuellen oder vorhergehenden Leistungssteuermodus unterscheiden.
  11. Ein Verfahren zur Leistungsverwaltung für einen Mikrocontroller (10), wobei das Verfahren aufweist: Implementieren einer Systemleistungstransienten-Verwaltungskomponente (200) durch einen ersten Kern (100) des Mikrocontrollers (10), Implementieren einer oder mehrerer Anwendungen (400) durch einen oder mehrere zweite Kerne (100) des Mikrocontrollers (10); wobei das Implementieren durch den ersten Kern (100) der Systemleistungstransienten-Verwaltungskomponente (200) aufweist, dass die Systemleistungstransienten-Verwaltungskomponente (200): ein erwartetes transientes Lastereignis im Mikrocontroller (10) dynamisch identifiziert, Leistungssteuerdaten zum Optimieren einer Reaktion auf das identifizierte erwartete transiente Lastereignis ermittelt, wobei die Leistungssteuerdaten einen Leistungssteuermodus und zugehörige Parameter aufweisen, und die Leistungssteuerdaten an eine integrierte Leistungsverwaltungsschaltung (500) bereitstellt.
  12. Das Verfahren nach Anspruch 11, ferner aufweisend: dynamisches Ändern des Betriebs des PMIC (500) durch den PMIC (500) entsprechend den bereitgestellten Leistungssteuerdaten.
  13. Das Verfahren nach einem der Ansprüche 11 oder 12, ferner aufweisend: Auswählen eines Leistungssteuermodus durch die Systemleistungstransienten-Verwaltungskomponente (200) aus mindestens zwei der folgenden Modi: einem Strommodus, einem Vorwärtskopplungsmodus, einem Hysterese-Modus, einem Spannungsmodus.
  14. Das Verfahren nach einem der Ansprüche 11 bis 13, wobei das Ermitteln von Leistungssteuerdaten zum Optimieren des transienten Lastverhaltens aufweist: Identifizieren eines Szenarios aus einer Mehrzahl von vordefinierten Szenarien, das dem identifizierten transienten Lastereignis entspricht, Ermitteln, auf der Grundlage des identifizierten Szenarios, einer oder mehrerer Aktivitäten, die aufgrund des ermittelten Szenarios erwartet werden, Ermitteln eines dynamischen Stromverbrauchsprofils, aufweisend ein Ermitteln einer geschätzten Leistungsaufnahme für jede Aktivität, basierend auf der einen oder mehreren ermittelten Aktivitäten; Erhalten von Laufzeitdaten für die eine oder die mehreren Anwendungen und Aktualisieren des dynamischen Stromverbrauchsprofils auf der Grundlage der Laufzeitdaten; Ermitteln der Leistungssteuerdaten auf der Grundlage des aktualisierten dynamischen Stromverbrauchsprofils.
  15. Das Verfahren nach Anspruch 14, wobei das Ermitteln der Leistungssteuerdaten ein Auswählen eines Leistungssteuermodus aus einer Mehrzahl von vordefinierten Leistungssteuermodi aufweist, wobei die Mehrzahl von vordefinierten Leistungssteuermodi mindestens zwei der folgenden aufweist: einen Strommodus, einen Vorwärtskopplungsmodus, einen Hysterese-Modus, einen Spannungsmodus.
  16. Hardware-Leistungsschätzer-Schaltung zum Schätzen einer Leistung einer elektronischen Vorrichtung, die eine Mehrzahl von (Geistiges Eigentum) IP-Blöcken bereitstellt, wobei der Hardware-Leistungsschätzer aufweist: ein künstliches neuronales Hardware-Netzwerk, das eine Mehrzahl von miteinander verbundenen Knoten aufweist, die in einer oder mehreren Stufen angeordnet sind, wobei jede einzelne Stufe aufweist: eine erste Eingabeschicht, die Werte aufweist, die auf Aktivitäten der elektronischen Vorrichtung und/oder auf aktive Zellen der elektronischen Vorrichtung hinweisen, eine zweite Eingabeschicht, die einen gewichteten Satz von Werten aufweist, eine Ausgabeschicht, die für die einzelnen Knotenstufen berechnete Werte aufweist; mindestens eine Zwischenschicht, die sich zwischen der Eingabeschicht und der Ausgabeschicht befindet, wobei jeder Knoten der mindestens einen Zwischenschicht eine Multiplizier- und Addierschaltung (MADD-Schaltung) aufweist, die konfiguriert ist, unter Verwendung von Werten, die von der ersten und zweiten Eingabeschicht empfangen werden, einen Wert für den jeweiligen Knoten zu berechnen.
  17. Der Hardware-Leistungsschätzer nach Anspruch 16, wobei das künstliche neuronale Hardware-Netzwerk eine oder mehrere einzelne Stufen aufweist, wobei die Ausgabeschicht jeder einzelnen Stufe Werte aufweist, die eine Leistungsschätzung für einen oder mehrere der Mehrzahl von IP-Blöcken angeben.
  18. Der Hardware-Leistungsschätzer nach einem der Ansprüche 16 oder 17, wobei das künstliche neuronale Hardware-Netzwerk eine oder mehrere Mehrfachstufen aufweist, wobei jede Mehrfachknoten-Stufe eine Mehrzahl von in Reihe angeordneten Einzelstufen aufweist, so dass die Ausgabeschicht einer nicht-letzten Stufe der Mehrfachstufe als erste Eingangsschicht für eine folgende Einzelstufe der Mehrfachstufe dient, und wobei die Ausgabeschicht einer letzten Einzelstufe Werte aufweist, die eine Leistungsschätzung für einen oder mehrere der Mehrzahl von IP-Blöcken der elektronischen Vorrichtung anzeigen.
  19. Der Hardware-Leistungsschätzer nach einem der Ansprüche 16 bis 18, wobei das künstliche neuronale Hardware-Netzwerk eine Mehrzahl von Stufen aufweist, die konfiguriert sind zum parallelen und gleichzeitigen Arbeiten.
  20. Der Hardware-Leistungsschätzer nach einem der Ansprüche 16 bis 19, wobei jede Stufe des neuronalen Netzwerks konfiguriert ist zum Arbeiten in einem Taktzyklus.
DE102023101325.4A 2022-01-25 2023-01-19 Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung Pending DE102023101325A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/583,246 US11831159B2 (en) 2022-01-25 2022-01-25 Systems, devices and methods for power management and power estimation
US17/583,246 2022-01-25

Publications (1)

Publication Number Publication Date
DE102023101325A1 true DE102023101325A1 (de) 2023-07-27

Family

ID=87068413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023101325.4A Pending DE102023101325A1 (de) 2022-01-25 2023-01-19 Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung

Country Status (2)

Country Link
US (2) US11831159B2 (de)
DE (1) DE102023101325A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230176645A1 (en) * 2021-12-06 2023-06-08 Mediatek Inc. Maximum current suppression for power management in a multi-core system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520395B2 (en) * 2017-12-19 2022-12-06 Intel Corporation Integrated circuit power systems with machine learning capabilities
US11209886B2 (en) * 2019-09-16 2021-12-28 Microsoft Technology Licensing, Llc Clock frequency adjustment for workload changes in integrated circuit devices
US11803221B2 (en) * 2020-03-23 2023-10-31 Microsoft Technology Licensing, Llc AI power regulation

Also Published As

Publication number Publication date
US11831159B2 (en) 2023-11-28
US20230238800A1 (en) 2023-07-27
US20240047966A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
DE102017212837B4 (de) Schaltungen und Verfahren zum Extrahieren eines Durchschnittslaststroms bei Gleichspannungs-Schaltwandlern
DE10297598T5 (de) Mechanismus zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen
DE102019111995A1 (de) Training eines künstlichen neuronalen Netzes unter Verwendung von flexiblen Gleitkommatensoren
Zeng et al. Tradeoff analysis and optimization of power delivery networks with on-chip voltage regulation
DE102014014301B4 (de) Verfahren und Einrichtung zum Verwalten globaler Chip-Energie auf einem Chip-internen Mehrkernsystem
DE102005049232A1 (de) Integrierter Schaltkreis und Verfahren zum Betreiben eines integrierten Schaltkreises
DE102005044533A1 (de) Aufgabenplanungsverfahren für geringe Leistungsableitung in einem Systemchip
DE102015211966A1 (de) Steuerschema für Hysterese-Abwärts-Controller mit Induktionsspulen-Stromschätzung
DE102011009800A1 (de) Selbstkalibrierende On-Chip-Verzögerungsüberwachungsschaltung
DE102015211561A1 (de) Leistungsverfolgungsanschluss zum Verfolgen von Zuständen von Leistungsdomänen
DE102018214670A1 (de) Systeme und verfahren zur erzeugung eines rückkopplungsstroms in einem dc-dc-wandler
DE112016004414T5 (de) Parametermessung innerhalb eines Chips
DE112015002183T5 (de) Computerimplementiertes System und Verfahren zum Übersetzen von Verifizierungs-Befehlen eines elektronischen Designs
DE112014000616T5 (de) Doppelstruktur-Taktbaumsynthese (CTS)
DE112018004142T5 (de) Proaktive verringerung und/oder minderung eines spannungseinbruchs in einem prozessorkern
DE102013104536A1 (de) Schaltungsanordnung und verfahren zum betreiben einer schaltungsanordnung
DE102023101325A1 (de) Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung
DE112011105644T5 (de) Ladungssparende Power-Gate-Vorrichtung und Verfahren
DE102022122719A1 (de) Leistungsmodulation unter Verwendung von dynamischer Spannungs- und Frequenzskalierung
DE19937829A1 (de) Schaltung, Verfahren und Vorrichtung zum Ausgeben, Eingeben bzw. Empfangen von Daten
DE102021121216A1 (de) Einrichtung und Verfahren zum Steuern eines Prozessorspitzensttroms
DE112013005833T5 (de) Analyse zeitlicher Leitungsengpässe zur Steuerung einer Optimierung mit nützlichem Versatz
DE60202443T2 (de) Methode zum Testen eines elektronischen Bauteils
EP4001938A1 (de) Computergestütztes verfahren zum bestimmen von zustandsgrössen eines batteriespeichers und batteriespeicher
DE112017005371T5 (de) Energiesparen eines Prozessors während Warteereignissen