DE112017005778T5 - Mikrocontroller-energie-profiler - Google Patents

Mikrocontroller-energie-profiler Download PDF

Info

Publication number
DE112017005778T5
DE112017005778T5 DE112017005778.7T DE112017005778T DE112017005778T5 DE 112017005778 T5 DE112017005778 T5 DE 112017005778T5 DE 112017005778 T DE112017005778 T DE 112017005778T DE 112017005778 T5 DE112017005778 T5 DE 112017005778T5
Authority
DE
Germany
Prior art keywords
energy
signals
component
bus
bus interface
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.)
Granted
Application number
DE112017005778.7T
Other languages
English (en)
Inventor
Christian Wiencke
Hans Van Antwerpen
Stephan Rosner
Roland Richter
Jean-Paul Vanitegem
Jan-Willem van de Waerdt
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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of DE112017005778T5 publication Critical patent/DE112017005778T5/de
Granted legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • 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/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Es wird ein Verfahren offenbart, um die durch eine Komponente in einem Mikrocontroller während eines Betriebs verbrauchte Energie zu schätzen, umfassend das Identifizieren von „Ereignis“-Aktivitäten, bei denen die durch die Komponente verbrauchte Energie durch die Zahl der durch die Komponente ausgeführten Ereignisse bestimmt wird; und „Dauer“-Aktivitäten, bei denen die verbrauchte Energie durch die erforderliche Zeitdauer, um die Aktivität auszuführen, bestimmt wird; Bestimmen der Zahl der durch die Komponente ausgeführten Ereignisse oder der Zeitdauer, die eine Komponente aktiv ist; und Bestimmen der durch die Komponente verbrauchten Energie basierend auf der Zahl von Ereignissen/Zeitdauer und von einem Energiekoeffizienten, der der durch die Komponente zum Ausführen der Aktivität verbrauchten Energiemenge entspricht, unter gegebenen Betriebsbedingungen. In einer Ausführungsform können Datentransfers an einer Busschnittstelle Ereignisaktivitäten repräsentieren. Es wird ein Apparat offenbart, um die verbrauchte Energie zu schätzen, umfassend Busüberwachungen, um Signale zu empfangen, die Datentransfers an einer Busschnittstelle repräsentieren, und Signale bereitzustellen, die die Zahl der ausgeführten Datentransfers anzeigen.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist eine internationale Anmeldung der nicht vorläufigen US-Anmeldung Nr. 15/585,890 , eingereicht am 3. Mai 2017, die die Priorität der vorläufigen US-Patentanmeldung Nr. 62/422,739 , eingereicht am 16. November 2016, beansprucht, die beide durch Bezugnahme in ihrer Gesamtheit hierin einbezogen sind.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf Mikrocontroller und insbesondere auf das Bestimmen des Energieverbrauchs von Komponenten eines Mikrocontrollers.
  • STAND DER TECHNIK
  • Das Kontrollieren des Energieverbrauchs eines Mikrocontrollers kann bei einigen Anwendungen kritisch sein. Bei batteriebestromten Anwendungen ist es beispielsweise wichtig, den Energieverbrauch zu minimieren, um die Batterielebensdauer zu maximieren. Bei Anwendungen, bei denen sich der Mikrocontroller in einer Umgebung mit begrenzter Wärmeableitung befindet, ist es wichtig, die durch den Mikrocontroller generierte Wärme zu minimieren, um Überhitzung und Fehlfunktion des Mikrocontrollers zu verhindern.
  • Ein aktueller Ansatz zum Kontrollieren des Energieverbrauchs eines Mikrocontrollers involviert das Anpassen von Betriebseinstellungen, wie etwa Reduzieren von Taktgeberraten oder Deaktivieren von Komponenten während des Betriebs. Ohne eine genaue Schätzung des durch spezifische Komponenten während des Betriebs verwendeten Energieverbrauchs kann ein solcher Ansatz jedoch die Funktionalität unnötig reduzieren. Demgemäß besteht aktuell ein Bedarf für ein Verfahren und einen entsprechenden Apparat zum Schätzen des durch spezifische Komponenten während des Betriebs in einem Mikrocontroller verwendeten Energieverbrauchs.
  • ÜBERSICHT
  • In einer Ausführungsform wird ein Verfahren offenbart, um die durch eine Komponente während des Betriebs in einem Mikrocontroller verbrauchte Energie zu schätzen. Das Verfahren umfasst das Identifizieren des Typs der durch die Komponente ausgeführten Aktivität als entweder eine „Ereignisaktivität“, bei der die durch die Komponente verbrauchte Energie durch die Zahl der durch die Komponente ausgeführten Ereignisse bestimmt wird, oder als eine „Daueraktivität“, bei der die verbrauchte Energie durch die zum Ausführen der Aktivität erforderliche Zeitdauer bestimmt wird (d. h. die Zeitdauer, die die Komponente aktiv ist); Bestimmen der Zahl der durch die Komponente ausgeführten Ereignisse oder der Zeitdauer, die eine Komponente aktiv ist; und Bestimmen der durch die Komponente verbrauchten Energie basierend auf der Zahl von Ereignissen/Zeitdauer und eines Energiekoeffizienten, der der durch die Komponente zum Ausführen der Aktivität verbrauchten Energiemenge entspricht, unter gegebenen Betriebsbedingungen. Der Energiekoeffizient kann durch den Benutzer vorgegeben werden. Das Verfahren kann während des Laufzeitbetriebs verwendet werden, um die Batterielebensdauer zu schätzen oder um den Betrieb zwecks Leistungs- und Energieverbrauchskontrolle dynamisch anzupassen. Das Verfahren kann während einer Debug-Sitzung verwendet werden, um die durch spezifische Komponenten verbrauchte Energiemenge zu schätzen, um die Energiekoeffizienten zu bestimmen oder um die Anwendungssoftware fein abzustimmen, um den Leistungs- und Energieverbrauch während des Betriebs zu kontrollieren.
  • In einer Ausführungsform wird ein Energieschätzkreis offenbart, um das oben beschriebene Verfahren zu implementieren, umfassend, aber nicht beschränkt auf Zähler, Taktgeber, analoge Kreise, Logikkreise und Speicherkreise, der konfiguriert ist, um Signale zu empfangen, die Ereignis- oder Daueraktivitäten einer zu überwachenden Komponente anzeigen, um die durch die Komponente zum Ausführen der Aktivität verbrauchte Energie zu schätzen, um Signale bereitzustellen, die die durch die Komponente verbrauchte Energie anzeigen, und um eine Messung der durch die Komponente verbrauchten Energie zu speichern.
  • In einer Ausführungsform wird ein Verfahren offenbart, bei dem Datentransfers an einer Busschnittstelle einer Komponente Ereignisaktivitäten repräsentieren können, die durch die Komponente ausgeführt werden.
  • In einer Ausführungsform wird eine Busüberwachung offenbart, die Datentransfers und Datentransfersteuerungssignale an einer Busschnittstelle erfassen kann und Signale bereitstellen kann, um Datentransfers als Ereignisse anzuzeigen.
  • In einer Ausführungsform wird eine Energie-Profiler-Einheit offenbart, die verschiedene Zählerschaltungen, Steuerungsregister, analoge Kreise und Logikkreise umfassen kann, die eine Zählung von Ereignissen oder eine Dauer von aktiven Zeiten einer Komponente messen.
  • Figurenliste
    • 1 illustriert einen Mikrocontroller gemäß einer beispielhaften Ausführungsform.
    • 2 illustriert Gleichungen zum Schätzen des Energieverbrauchs gemäß verschiedenen Ausführungsformen.
    • 3A-3D illustrieren Blockdiagramme von Komponenten, die konfiguriert sind, um Verfahren durchzuführen, um das Zählen von Ereignissen oder die Messung der Dauer gemäß verschiedenen Ausführungsformen zu aktivieren.
    • 4 illustriert eine Tabelle, die Verfahren offenbart, um das Zählen von Komponentenereignissen oder Dauer gemäß verschiedenen Ausführungsformen zu aktivieren.
    • 5A-B illustrieren Blockdiagramme von Komponenten, die konfiguriert sind, um das Zählen von Buszugriffen unter Verwendung von Busüberwachungen gemäß verschiedenen Ausführungsformen zu aktivieren.
    • 6A-B illustrieren Busüberwachungen gemäß verschiedenen Ausführungsformen.
    • 7 illustriert eine Tabelle, die Verfahren offenbart, um die Dauermessung in verschiedenen Leistungsmodiausführungsformen gemäß verschiedenen Ausführungsformen zu aktivieren.
    • 8 illustriert eine Energie-Profiler-Einheit gemäß einer Ausführungsform.
    • 9 illustriert eine Energie-Profiler-Einheit-Abtastlogik gemäß einer Ausführungsform.
    • 10A-B illustrieren ausgegebene Anzeigen des Energieverbrauchs gemäß verschiedenen Ausführungsformen.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden, zum Zwecke der Erklärung, zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der in dieser Patentschrift erörterten Ausführungsformen der vorliegenden Erfindung bereitzustellen. Es wird jedoch für einen Fachmann auf dem Gebiet evident sein, dass diese und andere Ausführungsformen ohne diese spezifischen Details ausgeübt werden können. In anderen Fällen werden wohlbekannte Strukturen und Techniken nicht im Detail gezeigt, sondern stattdessen in einer Blockdarstellung, um das Verständnis dieser Beschreibung nicht zu erschweren. Die nachfolgend dargelegten spezifischen Details sind daher lediglich beispielhaft. Besondere Implementierungen können von diesen beispielhaften Details abweichen und trotzdem im Geist und Umfang der vorliegenden Erfindung vorgesehen sein.
  • Bezugnahmen in der Beschreibung auf „eine einzelne Ausführungsform“ oder „eine Ausführungsform“ bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, beschrieben in Verbindung mit der Ausführungsform, in mindestens einer einzelnen Ausführungsform der Erfindung eingeschlossen ist. Der Ausdruck „in einer einzelnen Ausführungsform“ an verschiedenen Stellen in dieser Beschreibung bezieht sich nicht unbedingt auf die gleiche Ausführungsform.
  • Die Beschreibung umfasst Bezüge auf die beigefügten Figuren, die Teil der detaillierten Beschreibung bilden. Die Figuren zeigen Illustrationen in Übereinstimmung mit beispielhaften Ausführungsformen. Diese Ausführungsformen, die hierin auch als „Beispiele“ bezeichnet werden können, werden ausführlich genug beschrieben, um es Fachleuten auf dem Gebiet zu ermöglichen, die hierin beschriebenen Ausführungsformen des beanspruchten Gegenstands auszuüben. Die Ausführungsformen können kombiniert werden, andere Ausführungsformen können benutzt werden oder strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Umfang und Geist des beanspruchten Gegenstands abzuweichen. Es versteht sich, dass die hierin beschriebenen Ausführungsformen den Umfang des beanspruchten Gegenstands nicht beschränken sollen, sondern eher einem Fachmann auf dem Gebiet ermöglichen sollen, den beanspruchten Gegenstand auszuüben, herzustellen und/oder zu verwenden.
  • Zwecks Einfachheit und Übersichtlichkeit der Illustration können Bezugszeichen in den Figuren wiederholt werden, um entsprechende oder analoge Elemente anzugeben. Es werden zahlreiche Details dargelegt, um ein Verständnis der in dieser Patentschrift beschriebenen Ausführungsformen bereitzustellen. Die Beispiele können ohne diese Details ausgeübt werden. In anderen Fällen werden gut bekannte Verfahren, Abläufe und Komponenten nicht im Detail beschrieben, um ein Unverständlichmachen der beschriebenen Beispiele zu vermeiden. Die Beschreibung soll nicht als auf den Umfang der in dieser Patentschrift beschriebenen Beispiele beschränkt angesehen werden.
  • Überblick
  • 1 illustriert einen Mikrocontroller 100 gemäß verschiedenen Ausführungsformen. Mikrocontroller können viele in eine einzelne Schaltungsvorrichtung (IC-Vorrichtung) integrierte Komponenten aufweisen. Komponenten können zentrale Verarbeitungseinheiten (Central Processing Units, „CPU“) 101, grafische Verarbeitungseinheiten 102, Speicher, wie etwa SRAM 103 und Flash 104, digitale Komponenten, wie etwa Zeitschalter 105 und Eingänge/Ausgänge (Input/Outputs, „I/O“) 106, analoge Komponenten, wie etwa Analog-zu-Digital-Wandler (Analog-to-Digital Converters, „ADC“) 107 und analoge Vergleicher 108, Kommunikationsschnittstellen 109, Taktgeberquellen, wie etwa einen Quarzoszillator 110, Zeitschalter, wie etwa einen Echtzeit-Taktgeber (Real Time Clock, „RTC“) 113 und interne Busse 111 umfassen. Es wird darauf hingewiesen, dass verschiedene Implementierungen und Ausführungsformen unterschiedliche Komponenten oder Kombinationen von Komponenten verwenden können, um die Vorgänge der Kreise in 1 durchzuführen. Die nachfolgende Beschreibung und die Kreise in 1 sind daher als illustrativ und nicht beschränkend aufzufassen.
  • In einigen Anwendungen können Mikrocontroller unter Verwendung von Batterieleistung betrieben werden, wobei eine Kontrolle des Energieverbrauchs des Mikrocontrollers erforderlich ist, um die Batterielebensdauer zu maximieren. In anderen Ausführungsformen werden Mikrocontroller in Umgebungen mit begrenzter Wärmeableitung betrieben, wobei eine Kontrolle des Leistungsverbrauchs des Mikrocontrollers erforderlich ist, um die durch den Mikrocontroller generierte Wärme zu minimieren, um Überhitzung und Fehlfunktion des Mikrocontrollers zu verhindern.
  • Der Leistungsverbrauch eines Mikrocontrollers kann eine Funktion der durch die Mikrocontrollerkomponenten verbrauchten Leistung, während diese Aktivitäten ausführen (oder „aktiv“ sind), sein. In einem Beispiel wird in jedem Fall, bei dem ein Mikrocontroller einen Flash-Lesezugriff ausführt, durch den Flash-Speicher Leistung verbraucht. In diesem Beispiel kann die durch den Flash-Speicher verbrauchte Energiemenge zu der Zahl von ausgeführten Flash-Lesezugriffen (d. h. „Ereignissen“) proportional sein. In einem anderen Beispiel wird in jedem Fall, bei dem ein analoger Vergleicher einen Vergleich durchführt, durch den analogen Vergleicher Leistung verbraucht. In diesem Beispiel kann die durch den analogen Vergleicher verbrauchte Energiemenge zu der Zeitmenge (d. h. der „Dauer“), die der analoge Vergleicher aktiv ist (d. h. den Vergleich ausführt), proportional sein.
  • Die durch einen Mikrocontroller zu einem spezifischen Zeitpunkt verbrauchte gesamte Leistungsmenge kann durch Summieren der durch die Komponenten, die zu diesem Zeitpunkt aktiv sind, verwendeten Leistung geschätzt werden. Die durch einen Mikrocontroller während eines Zeitraums verbrauchte gesamte Energiemenge kann durch Summieren der durch die Komponenten, die während dieses Zeitraums aktiv sind, verwendeten Energie geschätzt werden. Daher kann der Leistungsverbrauch des Mikrocontrollers unmittelbar geschätzt werden oder kann der Energieverbrauch über einen Zeitraum geschätzt werden. Der geschätzte Leistungsverbrauch kann verwendet werden, um den Spitzenleistungsverbrauch durch den Mikrocontroller zu schätzen. Der geschätzte Energieverbrauch kann verwendet werden, um die Batterielebenszeit zu schätzen.
  • 2 offenbart drei Gleichungen, die verwendet werden können, um die verbrauchte Energie, während Komponenten aktiv sind, zu schätzen. Die durch eine Komponente ausgeführten Aktivitäten können Ereignisaktivitäten sein, bei denen die durch die Komponente verbrauchte Energie durch die Zahl der ausgeführten Ereignisse bestimmt werden kann. Die durch eine Komponente ausgeführten Aktivitäten können Daueraktivitäten sein, bei denen die verbrauchte Energie durch die Zeitdauer, die erforderlich ist, um die Aktivität auszuführen, bestimmt werden kann (d. h. die Zeitdauer, die die Komponente aktiv ist). Die Gleichung 1 beschreibt eine Schätzung eines Maßes eines Ereignistyp-Energieverbrauchs. Die verbrauchte Energie kann eine Funktion der Zahl von Ereignissen und des Ereigniskoeffizienten („event_coefficient“), der eine durchschnittliche, pro gegebenem Ereignis verbrauchte Energiemenge, unter gegebenen Betriebsbedingungen, repräsentiert oder dieser entspricht, sein oder darauf basieren. Die Gleichung 2 beschreibt eine Schätzung des Maßes eines Dauertyp-Energieverbrauchs. Die verbrauchte Energie kann eine Funktion der Zeitdauer und des Dauerkoeffizienten („duration_coefficient“), der eine durchschnittliche, für eine gegebene Daueraktivität verbrauchte Leistungsmenge, repräsentiert oder dieser entspricht, sein oder darauf basieren.
  • Der Energiekoeffizient (d. h. der Ereigniskoeffizient und der Dauerkoeffizient in 2) kann durch den Benutzer vorgegeben werden. Betriebsbedingungen können Leistungsmodus, Speisespannung, Betriebsfrequenz und Betriebsmodi umfassen. In einer Ausführungsform kann eine Komponente nur Ereignistyp- oder nur Dauertyp-Aktivitäten ausführen. In einer anderen Ausführungsform kann eine Komponente sowohl Ereignistyp-Aktivitäten als auch Dauertyp-Aktivitäten ausführen.
  • Die Gleichung 1 und Gleichung 2 von 2 illustrieren Beispiele, bei denen der Energieverbrauch eine lineare Funktion von Energiekoeffizient und Ereignissen/Dauer sein kann. Die Gleichung 3 illustriert ein Beispiel für Ereignistyp-Energieverbrauch, bei dem der Energieverbrauch eine nicht lineare Funktion von Energiekoeffizient und Ereignissen sein kann. Es versteht sich, dass die Beziehung zwischen Energiekoeffizienten und Ereignissen/Dauer komplexer sein kann als hier illustriert wird; daher sind die Gleichungen von 2 als illustrativ und nicht beschränkend aufzufassen.
  • 3A-3D illustrieren Beispiele, bei denen die Ereigniszählung oder Dauer der Aktivitäten berechnet werden kann. In 3A führt die Komponente 301 eine Ereignisaktivität aus, die unter Softwaresteuerung erfolgen kann (d. h. eine Aktivität, die durch Firmware oder Software vollständig aktiviert/deaktiviert werden kann, welche in einer oder mehreren Speicherkomponenten des Mikrocontrollers gespeichert sein kann, umfassend, aber nicht beschränkt auf Flash, ROM und RAM, und die durch eine Komponente des Mikrocontrollers ausgeführt werden kann, umfassend, aber nicht beschränkt auf eine CPU). Die Software kann die durch die Komponente 301 ausgeführten Ereignisse zählen.
  • In 3B führt die Komponente 311 eine Daueraktivität aus, die unter Softwaresteuerung erfolgt. In einer Ausführungsform kann die Software einen frei laufenden Zähler 316 auswählen und kann einen anfänglichen Wert des frei laufenden Zählers 316 am Start der Aktivität und einen endgültigen Wert am Ende der Aktivität erfassen. Eine Dauerzählung kann durch Feststellen des Unterschieds zwischen einem anfänglichen Wert und einem endgültigen Wert berechnet werden. Der frei laufende Zähler 316 kann einen Referenztaktgeber 317 verwenden. Der Taktgeber 317 kann eine bekannte Frequenz aufweisen, die mindestens so schnell wie die Frequenz der Aktivität ist (d. h. die Frequenz des Starts/Stopps der Aktivität). In einer spezifischen Ausführungsform kann der Taktgeber 317 eine Frequenz aufweisen, die mindestens zweimal so schnell wie die Frequenz der Aktivität ist, um eine genaue Zählung der Daueraktivitäten zu aktivieren. Der frei laufende Zähler 316 und der Taktgeber können intern oder extern zu der Komponente 321 sein. Der frei laufende Zähler 316 kann Dauersignale 316 bereitstellen, die der anfänglichen Zählung und endgültigen Zählung entsprechen.
  • In 3C führt die Komponente 321 eine Ereignisaktivität unter Hardwaresteuerung aus (d. h. aktiviert und/oder deaktiviert durch Hardware). Die Komponente 321 kann Hardwarekreise verwenden, umfassend, aber nicht beschränkt auf Taktgeber, analoge Kreise und digitale Logikkreise, um Steuerungssignale 323 bereitzustellen, die Zähler-Aktivierungs-/Deaktivierungs- und Zählerinkrementsignale umfassen können, aber nicht darauf beschränkt sind, und kann Ereignisaktivitätssignale 324 senden, um jeden Fall anzuzeigen, bei dem ein durch den Zähler 322 zu zählendes Ereignis auftritt. Der Zähler 322 kann intern oder extern zu der Komponente 321 sein. Der Zähler 322 kann durch Firmware oder Software gesteuert (d. h. aktiviert/deaktiviert) werden. Der Zähler 322 kann Zählungssignale 325 bereitstellen, die der Zahl der gezählten Ereignisse entsprechen.
  • In 3D kann die Komponente 331 eine Daueraktivität unter Hardwaresteuerung ausführen. In einer Ausführungsform kann die Komponente 331 Steuerungssignale 333 und Daueraktivitätssignale 334 bereitstellen, um den Zähler 338 zu aktivieren, um basierend auf den Flanken des Taktgebers 337 zu inkrementieren, während die Komponente 331 aktiv ist. Der Taktgeber 337 kann eine Frequenz aufweisen, die mindestens so schnell wie die Frequenz der Daueraktivitätssignale 338 ist. In einer spezifischen Ausführungsform kann der Taktgeber 337 eine Frequenz aufweisen, die zweimal so schnell wie die Frequenz der Dauersignale 338 ist, um eine genaue Zählung der Daueraktivitäten zu aktivieren. Der frei laufende Zähler 336, Taktgeber 337 und Zähler 338 können intern oder extern zu der Komponente 331 sein. Der frei laufende Zähler 336, Taktgeber 337 und Zähler 338 können Dauersignale 335 bereitstellen, die der anfänglichen Zählung, endgültigen Zählung oder Dauerzählung entsprechen. In einer anderen Ausführungsform kann die Komponente 331 Hardwarekreise verwenden, umfassend, aber nicht beschränkt auf Taktgeber, analoge Kreise und digitale Logikkreise, um das Erfassen eines anfänglichen Werts des frei laufenden Zählers 336 am Start der Aktivität und eines endgültigen Werts am Ende der Aktivität zu aktivieren. Die Komponente 331 kann Daueraktivitätssignale 334 bereitstellen, die dem Anfang einer Aktivität und dem Ende einer Aktivität entsprechen. Beispielsweise kann ein A/D-Wandler ein „Wandlung starten“-Signal, um das Erfassen einer anfänglichen Zählung eines frei laufenden Zählers zu aktivieren, und ein „Wandlung abgeschlossen“-Signal, um das Erfassen einer endgültigen Zählung des frei laufenden Zählers zu aktivieren, bereitstellen. Der frei laufende Zähler 336 kann einen Referenztaktgeber 337 mit einer bekannten Frequenz verwenden, die mindestens so schnell wie die Frequenz der Daueraktivitätssignale 334 ist (d. h. die Frequenz des Aktivitäts-Start-/Stopp-Signals). In einer spezifischen Ausführungsform kann der Taktgeber 337 eine Frequenz aufweisen, die mindestens zweimal so schnell wie die Frequenz der Aktivität ist, um eine genaue Zählung der Daueraktivitäten zu aktivieren. Eine Dauerzählung kann durch Feststellen des Unterschieds zwischen einer anfänglichen Zählung und einer endgültigen Zählung berechnet werden.
  • In Beispielen für Dauerkomponenten, wie etwa in den 3B und 3D illustriert, kann die Dauer durch Multiplizieren der Dauerzählung mit der Periode des Taktgebers 317, 337 berechnet werden. Die Dauerzählung und Dauer können durch die Komponente oder durch eine andere Komponente des Mikrocontrollers, wie etwa eine CPU, oder durch ein mit dem Mikrocontroller gekoppeltes externes System, wie etwa ein Debug-Host, berechnet werden.
  • In Beispielen, die in den 3A-3D illustriert sind, kann ein Maß des Energieverbrauchs, der mit Ereignis- oder Daueraktivität assoziiert ist, basierend auf den Zählungssignalen oder Dauersignalen und den entsprechenden Energiekoeffizienten durch die Komponente oder durch eine andere Komponente des Mikrocontrollers, wie etwa eine CPU, oder durch ein mit dem Mikrocontroller gekoppeltes externes System, wie etwa ein Debug-Host, geschätzt werden.
  • In Beispielen, die in den 3A-3D illustriert sind, können die Ereigniszählung, anfängliche Zählung, endgültige Zählung, Dauerzählung, Dauer oder das Maß des Energieverbrauchs durch die Komponente oder durch eine andere Komponente des Mikrocontrollers, durch ein mit dem Mikrocontroller gekoppeltes externes System in Speicherungskomponenten, umfassend, aber nicht beschränkt auf Flash, ROM, RAM und andere Speicherungstechnologie, gespeichert werden.
  • In einer Ausführungsform können Energieschätzkreise einige oder alle der Elemente umfassen, die in den 3A-3D illustriert sind. Die Energieschätzkreise können ferner Kreise oder Schaltungsblöcke beinhalten, umfassend, aber nicht beschränkt auf eine CPU, welche gemäß den oben beschriebenen und in 2 offenbarten Verfahren eine Dauer berechnen können und ein Maß des Energieverbrauchs schätzen können. Einige oder alle Komponenten der Energieschätzkreise können Komponenten des Mikrocontrollers sein oder können Komponenten eines mit dem Mikrocontroller gekoppelten externen Systems sein.
  • 4 offenbart Beispiele für Komponentenaktivitäten, einschließlich Aktivitäten von CPU, Speicher und peripheren Komponenten, deren Energieverbrauch unter Verwendung der offenbarten Erfindung, gemäß einigen Ausführungsformen, geschätzt werden kann. In einem Beispiel kann die durch eine serielle, periphere Schnittstelle (Serial Peripheral Interface, „SPI“) verbrauchte Energie als Ereignisaktivität unter Hardwaresteuerung geschätzt werden. In einem anderen Beispiel kann die durch einen Allzweck-I/O verbrauchte Energie als Daueraktivität unter Softwaresteuerung geschätzt werden. Es versteht sich, dass der Energieverbrauch durch Komponenten einen Energieverbrauch umfassen kann, der sowohl Ereignis- als auch Daueraktivitäten entspricht, die sowohl durch Software als auch durch Hardware gesteuert werden können.
  • CPU-Energieschätzung
  • Wie in 4 offenbart, kann die durch eine Verarbeitungseinheit, wie etwa eine CPU, verbrauchte Energie unter Verwendung der oben offenbarten Verfahren geschätzt werden. In einer Ausführungsform kann die durch eine CPU verbrauchte Energie basierend auf der Daueraktivität geschätzt werden (d. h. basierend auf einer Zeitdauer, die eine CPU aktiv ist). In einer anderen Ausführungsform kann die durch eine CPU verbrauchte Energie basierend auf der Ereignisaktivität geschätzt werden (d. h. Anweisungen oder aktive CPU-Zyklen). Die entsprechenden Energiekoeffizienten zum Schätzen des CPU-Energieverbrauchs können auf der ausgeführten Aktivität, unter gegebenen Betriebsbedingungen, basieren.
  • Speicherzugriff-Energieschätzung
  • Wie in 4 offenbart, kann die durch Zugriffe auf einen und von einem Speicher verbrauchte Energie als Ereignisaktivitäten unter Verwendung der oben offenbarten Verfahren geschätzt werden. In einigen Ausführungsformen können RAM- und ROM-Zugriffe verglichen mit dem CPU-Energieverbrauch sehr klein sein. Der Energieverbrauch von RAM- und ROM-Zugriffen kann in einem Energiekoeffizienten eingeschlossen sein, der eine durch die CPU für eine gegebene Aktivität, unter gegebenen Betriebsbedingungen, verbrauchte Energiemenge repräsentiert. In anderen Ausführungsformen kann die Zahl der RAM- oder ROM-Zugriffe verglichen mit dem CPU-Energieverbrauch wesentlich sein. Der Energieverbrauch von RAM- und ROM-Zugriffen kann als Ereignisaktivitäten mit entsprechenden Energiekoeffizienten für jeden Typ von RAM- oder ROM-Zugriff, unter gegebenen Betriebsbedingungen, geschätzt werden.
  • In einigen Ausführungsformen kann die durch Zugriffe auf einen und von einem Flash-Speicher verbrauchte Energie verglichen mit dem gesamten CPU-Energieverbrauch wesentlich sein. Der Energieverbrauch von Flash-Zugriffen kann als Ereignisaktivitäten mit entsprechenden Energiekoeffizienten für jeden Typ von Flash-Zugriff (z. B. Lesen, Programmieren, Löschen), unter gegebenen Betriebsbedingungen, geschätzt werden.
  • Energieschätzung für Daueraktivität von peripherer Komponente
  • Wie in 4 offenbart, können durch Mikrocontrollerkomponenten ausgeführte Aktivitäten Daueraktivitäten sein. Die durch eine Komponente zum Ausführen einer Daueraktivität verbrauchte Energie kann unter Verwendung der oben beschriebenen Verfahren berechnet werden. Komponenten, die Daueraktivitäten ausführen, können analoge Komponenten wie etwa Analog-zu-Digital-Wandler („A/D“-Wandler), Digital-zu-Analog-Wandler (Digital-to-Analog Converters, „DAC“), Op-Verst., und Vergleicher umfassen. Komponenten, die Daueraktivitäten ausführen, können auch Allzweck-Eingänge/Ausgänge (General Purpose Input/Outputs, „GPIO“) umfassen. In einigen Ausführungsformen können Komponentendaueraktivitäten unter Softwaresteuerung erfolgen. In anderen Ausführungsformen können Komponentendaueraktivitäten unter Hardwaresteuerung erfolgen. Ein entsprechender Energiekoeffizient kann einer für eine gegebene oder repräsentative Dauer für eine gegebene Aktivität, unter gegebenen Betriebsbedingungen, verbrauchten Leistungsmenge entsprechen. In einem Beispiel kann der Energiekoeffizienten eines GPIO davon abhängen, was extern mit dem GPIO verbunden sein kann.
  • In einer Ausführungsform kann eine Komponente die Dauer und Energiekoeffizienten verwenden, um ein Maß der durch die Komponente verbrauchten Energie zu schätzen. In einer anderen Ausführungsform kann eine andere Komponente des Mikrocontrollers, wie etwa die CPU, oder ein mit dem Mikrocontroller gekoppeltes externes System, wie etwa ein Debug-Host, ein Maß der verbrauchten Energie schätzen. Ein Maß des Energieverbrauchs kann in einer oder mehreren Speicherkomponenten des Mikrocontrollers oder eines mit dem Mikrocontroller gekoppelten externen System gespeichert werden.
  • Energieschätzung für Ereignisaktivität von peripherer Komponente
  • Wie in 4 offenbart, können durch Mikrocontrollerkomponenten ausgeführte Aktivitäten Ereignisaktivitäten sein. Die durch eine Komponente verbrauchte Energie, um eine Ereignisaktivität auszuführen, kann unter Verwendung der oben beschriebenen Verfahren berechnet werden. Komponenten, die Ereignisaktivitäten ausführen, können Kommunikationskomponenten, wie etwa 12C-, SPI-, UART- und USB-Komponenten, umfassen. Komponenten, die Ereignisaktivitäten ausführen, können auch Datenverarbeitungskomponenten, wie etwa DMA-Controller, Grafik-Controller und kryptografische Komponenten/Authentifizierungskomponenten, umfassen. In einer Ausführungsform kann eine Ereignisaktivität ein Datentransfer sein. In einigen Ausführungsformen können Komponentenereignisaktivitäten unter Softwaresteuerung erfolgen. In anderen Ausführungsformen können Komponentenereignisaktivitäten unter Hardwaresteuerung erfolgen.
  • In einigen Ausführungsformen kann eine Komponente mehrere aufeinanderfolgende („back-to-back“, fortlaufende) Ereignisaktivitäten ausführen, die durch ein Signal angezeigt werden, das für mehrere Taktgebersignale aktiv sein kann. In einer Ausführungsform kann eine Datentransfer-Aktivierung für zwei Zyklen aktiv sein, die zwei Transfers entsprechen, die zwei Ereignissen entsprechen. In einigen Ausführungsformen kann ein Zähler den Ereignisquellentaktgeber der Ereignisaktivität als Referenztaktgeber verwenden, wodurch eine genaue Zählung von einzelnen Impulsereignissen sowie fortlaufenden Ereignissignalen aktiviert wird. In anderen Ausführungsformen kann ein Zähler als Referenztaktgeber einen Taktgeber verwenden, der sich von dem Ereignisaktivitätsquellentaktgeber unterscheidet. In dieser Ausführungsform kann der Referenztaktgeber mindestens so schnell wie der Ereignisquellentaktgeber sein. In einer spezifischen Ausführungsform kann der Referenztaktgeber mindestens zweimal so schnell wie der Ereignisquellentaktgeber sein, um eine genaue Zählung zu aktivieren. Ein Signal kann durch Flankencodierung unter Verwendung des Referenztaktgebers konfiguriert werden, wodurch eine genaue Zählung von fortlaufenden Ereignissen ohne Verwendung des Ereignisquellentaktgebers aktiviert wird.
  • Ein entsprechender Energiekoeffizient kann einer durchschnittlichen, pro Ereignis verbrauchten Energiemenge, unter gegebenen Betriebsbedingungen, entsprechen. In einem Beispiel kann der einem Datentransfer entsprechende Energiekoeffizient von der in jedem Ereignis transferierten Datenmenge abhängen.
  • In einer Ausführungsform kann eine Komponente die Ereigniszählung und Energiekoeffizienten verwenden, um ein Maß der durch die Komponente verbrauchten Energie zu schätzen. In einer anderen Ausführungsform kann eine andere Komponente des Mikrocontrollers, wie etwa eine CPU, oder ein mit dem Mikrocontroller gekoppeltes externes System, wie etwa ein Debug-Host, ein Maß der durch die Komponente verbrauchten Energie schätzen. Ein Maß des Energieverbrauchs kann in einer oder mehreren Speicherkomponenten des Mikrocontrollers oder eines mit dem Mikrocontroller gekoppelten externen System gespeichert werden.
  • Repräsentieren von Komponenten Ereignisaktivitäten unter Verwendung von Datentransfers
  • In einigen Ausführungsformen kann der Ereignisaktivitätsenergieverbrauch von Komponenten durch den Transfer von Daten zu oder von der Komponente repräsentiert werden. Die durch die Komponente verbrauchte Energiemenge kann sich auf die Zahl der Datentransfers an einer Busschnittstelle zu oder von der Komponente beziehen. In einer Ausführungsform kann sich die verbrauchte Energiemenge auf die transferierte Datenmenge beziehen. In einem Beispiel können sich Ereignisaktivitäten, die durch einen DMA-Controller ausgeführt werden, durch Datentransfers repräsentiert werden und kann die Ereigniszählung durch eine Datentransferzählung oder eine Byte-Zählung repräsentiert werden. Die Verwendung von Datentransfers, um Ereignisse zu repräsentieren, kann sowohl für Bus-Slaves als auch Bus-Masters funktionieren. Eine Busschnittstelle kann ein Satz Hardwarekomponenten sein, die Teil der Struktur einer Komponente sind.
  • In einem Beispiel kann eine Komponente eine Advanced-High-Performance-Busschnittstelle („AHB“-Schnittstelle) verwenden. AHB ist eine Busstruktur innerhalb des Mikrocontrollers, die Teilsysteme (umfassend, aber nicht beschränkt auf CPU-Teilsysteme, analoge Teilsysteme, digitale Teilsysteme, Speicher-Teilsysteme, Taktgeber-Teilsysteme und I/O-Teilsysteme) und/oder Komponenten (beispielsweise Analog-zu-Digital-Wandler, Flash-Speicher, Sensor-Controller und Echtzeit-Taktgeber) verbindet. Eine AHB-Schnittstelle kann Busschnittstellensignale bereitstellen, umfassend, aber nicht beschränkt auf TRANS[1], HREADY, HSEL, HTRANS[1], HREADY und HREADY_OUT. Buszugriffe an einer AIM-Schnittstelle auf eine Komponente können Ereignisaktivitäten repräsentieren, die durch die Komponente ausgeführt werden. Die AHB-Busschnittstellensignale können konfiguriert sein, um einem Zähler zu signalisieren, Datentransfers oder transferierte Bytes an der AHB-Schnittstelle zu zählen.
  • In einem Beispiel kann eine Komponente eine Advanced-eXtensible-Schnittstellen-Busschnittstelle („AXI“-Busschnittstelle) verwenden. AXI ist eine Busstruktur innerhalb des Mikrocontrollers, die Teilsysteme und/oder Komponenten verbindet. Buszugriffe an einer AXI-Schnittstelle auf eine Komponente können Ereignisaktivitäten repräsentieren, die durch die Komponente ausgeführt werden. Die AXI-Busschnittstellensignale können konfiguriert sein, um einem Zähler zu signalisieren, Datentransfers oder transferierte Bytes an der AXI-Schnittstelle zu zählen.
  • In einem Beispiel kann eine Komponente eine Busschnittstelle verwenden, die mit Bussen kompatibel ist, die von Intel®-Prozessoren, wie etwa Celeron®-, Pentium®- und Core-i3®-Prozessoren, verwendet werden. Eine x86-kompatible Busschnittstelle kann mit Bussen kompatibel sein, umfassend, aber nicht beschränkt auf einen Vorderseitenbus, einen Rückseitenbus, eine Direktmedienschnittstelle (Direct Media Interface, „DMI“) und eine QuickPath-Zwischenverbindung (QuickPath Interconnect, „QPI“). Buszugriffe an einer x86-kompatiblen Busschnittstelle auf eine Komponente können Ereignisaktivitäten repräsentieren, die durch die Komponente ausgeführt werden. Die x86-kompatiblen Busschnittstellensignale können konfiguriert sein, um einem Zähler zu signalisieren, Datentransfers oder transferierte Bytes an der x86-kompatiblen Schnittstelle zu zählen.
  • Entsprechende Energiekoeffizienten können einer durchschnittlichen, pro Datentransfer verbrauchten Energiemenge, unter gegebenen Betriebsbedingungen, entsprechen. In einem Beispiel kann der einem Datentransfer entsprechende Energiekoeffizient von der Busschnittstelle oder von der Datenmenge abhängen.
  • Überwachen von Datentransfers unter Verwendung einer Busüberwachung
  • Die 5A-5B illustrieren die Verwendung einer mit einer Busschnittstelle gekoppelten Busüberwachung, um das Zählen von Datentransferereignissen zu ermöglichen. In einer Ausführungsform können Datentransfers an einer Busschnittstelle durch eine Busüberwachung überwacht werden, die mit der Busschnittstelle und mit einem Zähler gekoppelt sein kann. In einer spezifischen Ausführungsform kann eine Busüberwachung ein Satz Hardwarekomponenten sein, die Teil einer Businfrastruktur des Mikrocontrollers sein können. Eine Businfrastruktur kann den Bus 111, wie in 1 illustriert, umfassen, aber ist nicht darauf beschränkt. Eine Busüberwachung kann konfiguriert sein, um Steuerungssignale und Datentransfer von dem entsprechenden Busschnittstellenprotokoll zu empfangen. Busschnittstellenprotokolle können AHB-, AXI- und x86-kompatible Busschnittstellenprotokolle umfassen, aber sind nicht darauf beschränkt. Die Busüberwachung kann die Steuerungssignale und Datentransfers von der Busschnittstelle empfangen und die empfangenen Signale konfigurieren, um Signale bereitzustellen, die den zu zählenden Bustransferereignissen entsprechen. In einem Beispiel kann die Zahl der Datentransfers gezählt werden. In einem anderen Beispiel kann die Zahl der transferierten Bytes gezählt werden.
  • 5A illustriert eine Komponente 501, die Datenzugriffe über eine AHB-Schnittstelle 502 auf eine Businfrastruktur 520 vornimmt. Die Businfrastruktur 520 umfasst eine AHB-Busüberwachung 505. Die AHB-Schnittstelle 502 stellt der AHB-Busüberwachung 504 AHB-Steuerungssignale 503 und Bustransfersignale 504 bereit. Die AHB-Steuerungssignale 503 können TRANS[1], HREADY, HSEL, HTRANS[1] und HREADY_OUT umfassen, sind aber nicht darauf beschränkt. Die AHB-Busüberwachung 505 kann die AHB-Signale 503 und 504 konfigurieren, um dem Zähler 508 zu zählende Ereignissignale 507 bereitzustellen. Der Zähler 508 stellt Zählungssignale 509 bereit, die der Zählung von Bustransfers 504 entsprechen.
  • 5B illustriert eine Komponente 511, die Datenzugriffe über eine AXI-Schnittstelle 512 auf eine Businfrastruktur 520 vornimmt. Die Businfrastruktur 520 umfasst eine AXI-Busüberwachung 515. Die AHB-Schnittstelle 512 stellt der AXI-Busüberwachung 515 AXI-Steuerungssignale 503 und Bustransfersignale 514 bereit. Die AXI-Steuerungssignale 513 können WVALID, WREADY, RVALID und RREADY umfassen, sind aber nicht darauf beschränkt. Die AXI-Busüberwachung 515 kann die AXI-Signale 513 und 514 konfigurieren, um dem Zähler 518 zu zählende Ereignissignale 517 bereitzustellen. Der Zähler 518 stellt Ereigniszählungssignale 519 bereit, die der Zählung von Bustransfers 514 entsprechen.
  • In der Ausführungsform kann eine Busüberwachung für jede entsprechende Busschnittstelle konfiguriert sein. In einem Beispiel kann eine universelle AHB-Busüberwachung für jede entsprechende AHB-Schnittstelle instanziiert werden. In einem anderen Beispiel kann eine universelle AXI-Busüberwachung für jede entsprechende AXI-Schnittstelle instanziiert werden. In einem anderen Beispiel kann eine universelle x86-Typ-Busüberwachung für jede entsprechende x86-Typ-Schnittstelle instanziiert werden. Die Verwendung einer Busüberwachung eliminiert die Notwendigkeit, eine Komponente zu modifizieren oder kundenspezifische Logik bereitzustellen, um passende Signale für einen Zähler bereitzustellen, um Transfers an einer Busschnittstelle zu zählen.
  • In einigen Ausführungsformen kann eine Komponente mehr Busschnittstelle aufweisen. Eine dem Busschnittstellentyp entsprechende Busüberwachung kann mit jeder Busschnittstelle gekoppelt sein.
  • Entsprechende Energiekoeffizienten können eine durchschnittliche, pro Datentransfer verbrauchte Energiemenge, unter gegebenen Betriebsbedingungen, repräsentieren oder dieser entsprechen. In einem Beispiel kann der einem Datentransfer entsprechende Energiekoeffizient von der Busschnittstelle oder von der bei jedem Ereignis transferierten Datenmenge abhängen.
  • 6A illustriert eine Ausführungsform eines einer AHB-Busschnittstelle entsprechenden Busüberwachungsblocks und 6B illustriert eine Ausführungsform eines einer AXI-Busschnittstelle entsprechenden Busüberwachungsblocks, die den oben und in den 5A-5B referenzierten Busüberwachungen entsprechen können. Es wird darauf hingewiesen, dass verschiedene Implementierungen und Ausführungsformen verschiedene möglicherweise unterschiedliche Komponenten verwenden können, um die Operationen des oben offenbarten Verfahrens durchzuführen. Die nachfolgende Beschreibung und die Kreise in den 6A-B sind daher als illustrativ und nicht beschränkend aufzufassen.
  • 6A illustriert einen AHB-Master 601 und einen AHB-Slave 602, die konfiguriert sind, um über eine AHB-Slave-Schnittstelle 603 zu kommunizieren und Daten zu übertragen. Die AHB-Busüberwachung 604 kann konfiguriert sein, um AHB-Signale 605 zu empfangen, umfassend, aber nicht beschränkt auf HSEL, HTRANS[1], HREADY und HREADY_OUT, DATA 607 und Taktgebersignal 606. Die AHB-Busüberwachung 604 enthält eine Logik, um die AHB-Signale 605 und 607 zu konfigurieren, um Ereignissignale 609 bereitzustellen.
  • 6B illustriert einen AXI-Master 611 und einen AXI-Slave 612, die konfiguriert sind, um über eine AXI-Slave-Schnittstelle 613 zu kommunizieren und Daten zu übertragen. Die AXI-Busüberwachung 614 kann konfiguriert sein, um AXI-Steuerungssignale 615 zu empfangen, umfassend, aber nicht beschränkt auf WVALID, WREADY, RVALID, AND RREADY, DATA 617 und Taktgebersignal 616. Die AXI-Busüberwachung 614 enthält eine Logik, um die AXI-Signale 615 und 617 zu konfigurieren, um Ereignissignale 619 bereitzustellen. In einer Ausführungsform werden Lese- und Schreibzugriffe auf eine AXI-Schnittstelle zusammen überwacht, beispielsweise während des Überwachens eines AXI-DMA-Controllers. In einer anderen Ausführungsform werden möglicherweise nur AXI-Lese- oder nur AXI-Schreib-Zugriffe überwacht; in dieser Ausführungsform können die Signale des anderen Kanals auf 0 festgesetzt sein. In einer anderen Ausführungsform können sowohl AXI-Lese- als auch nur AXI-Schreib-Zugriffe getrennt überwacht werden; in dieser Ausführungsform können zwei AXI-Überwachungsblöcke verwendet werden.
  • Es versteht sich, dass andere Busüberwachungen konfiguriert sein können, um die Aktivität auf anderen Busschnittstellentypen zu überwachen, umfassend, aber nicht beschränkt auf andere Konfigurationen von AHB-, AXI- und x86-Busschnittstellen.
  • In einer Ausführungsform können Energieschätzkreise einige oder alle Elemente umfassen, die in den 5A-5B illustriert sind, umfassend, aber nicht beschränkt auf Busschnittstellen 502, 512, Busüberwachungen 505, 515, Businfrastruktur 520 und Zähler 508, 518. In einer Ausführungsform können Energieschätzkreise einige oder alle Elemente umfassen, die in den 6A-6B illustriert sind, umfassend, aber nicht beschränkt auf AHB-Busüberwachung 604 und AXI-Busüberwachung 614. Die Energieschätzkreise können ferner Logikkreise beinhalten, umfassend, aber nicht beschränkt auf eine CPU, welche gemäß den oben beschriebenen und in 2 offenbarten Verfahren Ereignisaktivitätszählungen berechnen können und den Energieverbrauch schätzen können.
  • Leistungsmodusschätzung
  • Der Energieverbrauch durch den Mikrocontroller während Niedrigleistungsmodi kann als eine Daueraktivität unter Softwaresteuerung geschätzt werden, wie oben beschrieben. Leistungsmodi können die Modi „aktiv“, „Schlaf“, „Tiefschlaf“, „Niedrigleistung aktiv“, „Niedrigleistung Schlaf“, „Ruhezustand“ oder „Aus“ umfassen, aber sind nicht darauf beschränkt.
  • 7 illustriert mehrere beispielhafte Leistungsmodi und Verfahren zum Messen der Dauer in einem Leistungsmodus. In einer Ausführungsform kann ein aktiver Leistungsmodus ein Modus sein, bei dem ein interner Hochfrequenztaktgeber als Referenz für einen frei laufenden Zähler verfügbar ist. Ein aktiver Leistungsmodus kann die Modi aktiv, Schlaf, Niedrigleistung aktiv oder Niedrigleistung Schlaf umfassen, aber ist nicht darauf beschränkt. Eine Zeitdauer in einem gegebenen aktiven Leistungsmodus kann unter Verwendung von Verfahren gemessen werden, die dem in Bezug auf 3B beschriebenen Verfahren ähnlich sind, wobei ein anfänglicher Wert des frei laufenden Zählers dem Eintreten in einen gegebenen aktiven Leistungsmodus entspricht und ein endgültiger Wert dem Verlassen des gegebenen aktiven Leistungsmodus entspricht.
  • In einer Ausführungsform kann ein inaktiver Leistungsmodus ein Modus sein, bei dem ein interner Hochfrequenztaktgeber nicht verfügbar ist, aber ein frei laufender Zähler, wie etwa ein Echtzeit-Taktgeber („RTC“) verfügbar ist. Ein inaktiver Leistungsmodus kann die Modi Aus oder Ruhezustand umfassen, aber ist nicht darauf beschränkt. Eine in jedem gegebenen inaktiven Leistungsmodus verbrachte Zeitdauer kann unter Verwendung von Verfahren gemessen werden, die dem in Bezug auf 3B beschriebenen Verfahren ähnlich sind, wobei ein anfänglicher Wert des RTC dem Eintreten in einen gegebenen inaktiven Leistungsmodus entspricht und ein endgültiger Wert dem Verlassen des gegebenen inaktiven Leistungsmodus entspricht. Das Verfahren erfordert einen frei laufenden Zähler oder RTC, der aktiv bleibt, während sich der Mikrocontroller in einem inaktiven Leistungsmodus befindet.
  • In einer anderen Ausführungsform kann ein inaktiver Leistungsmodus mit kurzer Dauer ein inaktiver Leistungsmodus sein, bei dem eine in dem Modus verbrachte Zeitdauer kürzer als die Auflösung des frei laufenden Zählers oder RTC ist. Ein inaktiver Modus mit kurzer Dauer kann den Modus Tiefschlaf umfassen, aber ist nicht darauf beschränkt. Eine in jedem inaktiven Leistungsmodus mit kurzer Dauer verbrachte Zeitdauer kann berechnet werden durch Konfigurieren der Software, um den RTC zu lesen, um die gesamte aktive Zeit des Mikrocontrollers zu bestimmen, dann durch Subtrahieren der in jedem der anderen Leistungsmodi verbrachten Zeitdauer (gemessen unter Verwendung der oben beschriebenen Verfahren) von der gesamten aktiven Zeit, um die in einem inaktiven Leistungsmodus mit kurzer Dauer verbrachte Zeit zu erhalten.
  • Entsprechende Energiekoeffizienten können einer durchschnittlichen, pro Dauer in jedem Leistungsmodus verbrauchten Energiemenge, unter gegebenen Betriebsbedingungen, entsprechen. Die in jedem Leistungsmodus verbrauchte Energie kann basierend auf der in jedem Leistungsmodus verbrachten Zeitdauer und dem entsprechenden Energiekoeffizient geschätzt werden.
  • Energie-Profiler-Einheit
  • 8 illustriert eine Ausführungsform der Energie-Profiler-Einheit 800, die in einem Mikrocontroller implementiert werden kann, um Ereigniszählungen oder -dauer gemäß den oben offenbarten Techniken zu messen. Die Energie-Profiler-Einheit 800 kann Hardwarekomponenten beinhalten, umfassend, aber nicht beschränkt auf eine Vielzahl von Zählereinheiten 801, Energie-Profiler-Einheit-Steuerungsregister 804, Zählereinheitskonfigurationsregister 805, Unterbrechungsregister 806, Zählerleseregister 807 und Busschnittstelle 810. Jede Zählereinheit 801 kann eine Abtastlogik 802 und einen Zähler 803 beinhalten. In einer Ausführungsform kann ein Energieschätzkreis eine Energie-Profiler-Einheit beinhalten. Es wird darauf hingewiesen, dass verschiedene Implementierungen und Ausführungsformen unterschiedliche Komponenten oder Kombinationen von Komponenten verwenden können, um die Vorgänge der Kreise in 8 durchzuführen. Die nachfolgende Beschreibung und die Kreise in 8 sind daher als illustrativ und nicht beschränkend aufzufassen.
  • Die Zahl der Zählereinheiten kann nach den Konzeptionsanforderungen bestimmt werden. In einer Ausführungsform kann die Größe der Zähler so gewählt werden, dass sie groß genug sind, um Überläufe zu vermeiden, auch für Zähldauern. In einer anderen Ausführungsform kann die Größe der Zähler so gewählt werden, um den Zähler zu aktivieren, um in einem Buszugriff gelesen zu werden. In einer besonderen Ausführungsform können die Zähler 32 Bits sein.
  • In einer Ausführungsform können die Zählereinheiten mehrere Instanziierungen einer ersten Zählereinheitskonfiguration sein. In einer anderen Ausführungsform können die Zählereinheiten Zählereinheiten von unterschiedlichen Konfigurationen beinhalten.
  • Die Energie-Profiler-Einheit 800 kann einen Profiler-Taktgeber 811 verwenden, um den Komponenten der Energie-Profiler-Einheit 800 Takte zu geben. In einer Ausführungsform kann der Profiler-Taktgeber 811 ein Hochfrequenztaktgeber sein, wie etwa ein interner Hauptoszillatortaktgeber. In einer Ausführungsform kann der Profiler-Taktgeber 811 verwendet werden, um einer Busschnittstelle 810 Takte zu geben, um die Zeit zu minimieren, die zum Lesen der Zähler erforderlich ist. In besonderen Ausführungsformen kann die Busschnittstelle 810 eine AHB, AXI- oder x86-kompatible Schnittstelle sein. In einer Ausführungsform kann ein Profiler-Taktgeber 811 verwendet werden, um Zählerleseregistern 807 Takte zu geben, um das Bewegen von Zählerdaten zur Busschnittstelle 810 zu ermöglichen.
  • Der Profiler-Taktgeber 811 kann durch die Abtastlogik unterteilt werden, um eine Frequenz zu generieren, die mindestens so hoch wie die höchste Frequenz von zu zählenden synchronen Ereignissen ist, um sicherzustellen, dass alle Aktivitätssignale erfasst werden. In einer Ausführungsform kann der Profiler-Taktgeber 811 durch eine Abtastlogik 802 unterteilt werden, um eine Frequenz zu generieren, die mindestens zweimal so hoch wie die höchste Frequenz von zu zählenden asynchronen Ereignissen ist, um sicherzustellen, dass alle Aktivitätssignale erfasst werden.
  • Die Energie-Profiler-Einheit 800 kann einen von einer Vielzahl von Referenztaktgebern 813 verwenden. In einer Ausführungsform kann die Energie-Profiler-Einheit 800 einen von einer Vielzahl von Referenztaktgebern 813 als Referenztaktgeber für Daueraktivitäten oder für Ereignisaktivitäten verwenden. In einer Ausführungsform können beim Zählen von Ereignissen, wenn Flankencodieren nicht verwendet wird, Referenztaktgeber 813 Ereignisquellentaktgeber beinhalten. In einer anderen Ausführungsform kann die Energie-Profiler-Einheit 800 eines von einer Vielzahl von Ereignisquellentaktgeberaktivierungssignalen verwenden.
  • 9 illustriert eine Ausführungsform der Abtastlogik 900, die in der Energie-Profiler-Einheit 800 implementiert werden kann, um Aktivitäts- und Referenztaktgebersignale gemäß den oben offenbarten Techniken zu verarbeiten. Von anderen Komponenten kann die Abtastlogik eine Vielzahl von Multiplexern, Synchronisierungsgates und Steuerungslogik beinhalten. Es wird darauf hingewiesen, dass verschiedene Implementierungen und Ausführungsformen unterschiedliche Komponenten oder Kombinationen von Komponenten verwenden können, um die Vorgänge der Schaltkreise in 9 durchzuführen. Die nachfolgende Beschreibung und die Schaltkreise in 9 sind daher als illustrativ und nicht beschränkend aufzufassen.
  • Die Abtastlogik 900 kann konfiguriert sein, um eine Vielzahl von Signalen zu empfangen, umfassend Aktivitätssignale 901 (die Ereignis- oder Daueraktivitäten anzeigen), Referenztaktgeber 902, Profiler-Taktgeber 904 und Abtastlogiksteuerungssignale, umfassend Ereignis-/Dauerauswahl 905, Taktgeberquellenauswahl 906 und Aktivitätssignalauswahl 910. In einer Ausführungsform können Aktivitätssignale 901 durch eine Busüberwachung bereitgestellt werden, die dem Ereignissignal 609 in 6A und Ereignissignal 619 in 6B entsprechen. In einer anderen Ausführungsform kann ein Aktivitätssignal 901 ein Impuls sein, der einer Dauer entspricht, während der eine Komponente aktiv sein kann.
  • Die Abtastlogik 900 kann ein durch den entsprechenden Zähler zu zählendes Aktivitätssignal 901 vorbereiten. Die Aktivitätssignalauswahl 910 kann ein zu zählendes Aktivitätssignal auswählen. Die Aktivitätssignale 901 können asynchrone Signale sein, die mit dem Profiler-Taktgeber 904 synchronisiert sein können. Die Aktivitätssignale 901 können flankencodierte Signale sein, worauf die Abtastlogik 900 eine Flankendetektion durchführen kann. Die Ereignis-/Dauerauswahl 905 kann als vorbereitetes Ereignissignal 907 ein Signal auswählen, das einem Ereignis entspricht, oder ein Impulssignal, das einer Dauer entspricht.
  • Die Abtastlogik 900 kann die Zeitsteuerungsreferenz vorbereiten. Die Abtastlogik kann einen von einer Vielzahl von Referenztaktgebern 902 auswählen. Die Abtastlogik kann einen Referenztaktgeber 902 mit dem Profiler-Taktgeber 904 synchronisieren. Die Taktgeberquellenauswahl 906 kann eine vorbereitete Taktgeberreferenz 908 auswählen.
  • Die Abtastlogik 900 kombiniert das vorbereitete Ereignissignal 907 und die vorbereitete Taktgeberreferenz 908, um ein Zählungssignal 909 bereitzustellen, das dem Zählungssignal 818 in 8 entspricht.
  • Zurückkehrend zu 8 kann das Energie-Profiler-Einheit-Steuerungsregister 804 konfiguriert sein, um Signale zu empfangen, um die Energie-Profiler-Einheit 800 zu steuern, umfassend Aktivieren/Deaktivieren und Löschen der Zählereinheit 801. Das Energie-Profiler-Einheit-Steuerungsregister kann der Zählereinheit 801 Steuerungssignale 820 bereitstellen.
  • Die Zählereinheitskonfigurationsregister 805 können konfiguriert sein, um Zählereinheitssteuerungssignale 819 bereitzustellen, um eine entsprechende Zählereinheit zu konfigurieren, umfassend Ereignis-/Dauerauswahl-, Ereignis-Flankencodierungs-Auswahl- und Taktgeber-/Taktgeberteilerauswahl-Signale.
  • Die Unterbrechungsregister 806 können konfiguriert sein, um ein Unterbrechungssignal 821 zu empfangen, umfassend Zählerüberlaufunterbrechungssignale, die der Zählereinheit entsprechen. Die Unterbrechungsregister können INTR, INTR_SET, INTR_MASK, INTR_MASKED, mit einem Bit pro Zähler, umfassen. In einer Ausführungsform umfasst jedes Unterbrechungsregister 32 Bits.
  • Die Zählerleseregister 807 können den Wert des entsprechenden Zählers speichern und den Wert an die Busschnittstelle 810 transferieren.
  • Nach Empfangen des Zählereinheitskonfigurationssignals 819, der Energie-Profiler-Einheit-Steuerungssignale 820 und des Zählungssignals 818 kann der Zähler 803 Ereignisse oder Dauer zählen. Sobald der Zähler 803 aktiviert ist, wird der Zähler 803 die Flanken des Profiler-Zeitgebers 811 während des Zeitraums zählen, in dem das Zählungssignal 818 ein gegebener Wert ist (z. B. ein „hoher“ Pegel), bis der Zähler deaktiviert wird. Der Zähler 803 kann den endgültigen Zählerwert an Zählerleseregister 807 transferieren. Die Zählerleseregister 807 können den endgültigen Zählerwert an die Busschnittstelle 810 transferieren.
  • Es versteht sich, dass die Energie-Profiler-Einheit 800 unter Verwendung von unterschiedlichen Komponenten oder Kombinationen von Komponenten implementiert werden kann, um die oben offenbarten Verfahren durchzuführen. In einem Beispiel kann der endgültige Wert eines Zählers direkt an die Busschnittstelle 810 transferiert werden. In einem anderen Beispiel können der Zählereinheit Steuerungssignale ohne dazwischenliegende Register direkt bereitgestellt werden. In einem anderen Beispiel können die Komponenten der Energie-Profiler-Einheit 800 mit dem Profiler-Taktgeber 811 synchronisiert werden; in diesem Beispiel sind möglicherweise zusätzliche Synchronisierungskreise erforderlich. In einer Ausführungsform kann der Zähler 803 konfiguriert sein, um ein frei laufender Zähler zu sein.
  • In einer Ausführungsform kann in einem Mikrocontroller eine einzelne Energie-Profiler-Einheit implementiert werden. In einer anderen Ausführungsform können in einem Mikrocontroller mehrere Energie-Profiler-Einheiten mit unterschiedlichen Konfrontationen implementiert werden. In einem Beispiel kann eine Energie-Profiler-Einheit unter Verwendung eines Taktgebers, der sich von dem Profiler-Taktgeber 811 unterscheidet, als Referenztaktgeber für die Energie-Profiler-Einheit implementiert werden.
  • In einer Ausführungsform kann jede zu zählende Ereignisaktivität oder Daueraktivität eine entsprechende Zählereinheit 801 innerhalb der Energie-Profiler-Einheit 800 aufweisen. In einer anderen Ausführungsform können sich Ereignis- oder Daueraktivitäten eine Zählereinheit 801 teilen. In dieser Ausführungsform können zusätzliche Logikreise erforderlich sein, um die zu zählende Aktivität auszuwählen.
  • In einer Ausführungsform können Energieschätzkreise einige oder alle der Elemente der Energie-Profiler-Einheit 800 umfassen, die in 8 illustriert sind. In einer Ausführungsform können Energieschätzkreise einige oder alle der Elemente der Abtastlogik 900 umfassen, die in 9 illustriert sind. Die Energieschätzkreise können ferner Logikkreise beinhalten, umfassend, aber nicht beschränkt auf eine CPU, welche gemäß den oben beschriebenen und in 2 offenbarten Verfahren Ereigniszählungen berechnen können und den Energieverbrauch schätzen können.
  • Energie-Profiler-Resultate
  • In einer Ausführungsform kann ein Mikrocontroller Entscheidungskreise beinhalten, die eine Messung des unter Verwendung der hierin beschriebenen Verfahren und des hierin beschriebenen Apparats geschätzten Energieverbrauchs verwenden, um während des Laufzeitbetriebs Betriebseinstellungen dynamisch anzupassen, um den Leistungsverbrauch zu kontrollieren. In einem Beispiel können die Entscheidungskreise spezifische Komponenten oder Peripherien aktivieren/deaktivieren oder die Betriebsfrequenz von spezifischen Komponenten anpassen, um den Spitzenleistungsverbrauch zu begrenzen oder den durchschnittlichen Leistungsverbrauch zu begrenzen, basierend auf einem geschätzten Maß des Energieverbrauchs durch die Komponente. Es ist möglicherweise keine externe Hardware erforderlich, wenn der Mikrocontroller die Resultate während des Betriebs verwendet.
  • In einer Ausführungsform kann ein mit dem Mikrocontroller gekoppeltes externes System einen Indikator (z. B. ein Licht oder ein Messgerät) oder eine Anzeige (z. B. eine Flüssigkristallanzeige) umfassen, welche Informationen anzeigen können, wie etwa geschätzte Batterielebensdauer, aktueller Leistungsverbrauch oder Energieverbrauch basierend auf einer Messung des Leistung- und Energieverbrauchs, die unter Verwendung der hierin beschriebenen Verfahren und des hierin beschriebenen Apparats geschätzt werden.
  • In einer Ausführungsform umfasst ein mit dem Mikrocontroller gekoppeltes externes System Energieschätzkreise, um den Energieverbrauch von Komponenten unter Verwendung der hierin beschriebenen Verfahren und des hierin beschriebenen Apparats zu schätzen. In einer spezifischen Ausführungsform kann ein externes System eine Debugging-Umgebung für den Mikrocontroller sein, beispielsweise eine integrierte Entwicklungsumgebung (Integrated Development Environment, „IDE“), die auf einem Hostsystem (typischerweise einem PC) läuft. Der Mikrocontroller kann durch eine Debug-Schnittstelle, beispielsweise einem ARM-Debug- und Trace-Port, mit dem Hostsystem verbunden sein. Das externe System kann ein mit dem Mikrocontroller gekoppeltes Messgerät umfassen, um während des Betriebs den Leistungsverbrauch des Mikrocontrollers zu messen.
  • Das externe System kann auf Komponenten des Mikrocontrollers zugreifen, umfassend eine Busüberwachung, einen Zähler oder eine Energie-Profiler-Einheit. In einem Beispiel kann das externe System Informationen von dem Mikrocontroller abrufen, umfassend einige oder alle Informationen über Zählung, Dauer, Energiekoeffizient und Messung des Energieverbrauchs. In einem Beispiel kann das externe System von dem Mikrocontroller Zählung, Dauer und Energiekoeffizienten abrufen. Das externe System kann Energieschätzkreise beinhalten, um die Informationen über Zählung, Dauer und Energiekoeffizient zu verwenden, um ein Maß des Energieverbrauchs der Komponenten des Mikrocontrollers und des gesamten Energieverbrauchs des Mikrocontrollers zu schätzen. In anderen Beispiel kann das externe System Zählung und Dauer von dem Mikrocontroller und Energiekoeffizienten von dem Benutzer des externen Systems abrufen. Das externe System kann Energieschätzkreise beinhalten, um die Informationen über Zählung, Dauer und Energiekoeffizienten zu verwenden, um ein Maß des Energieverbrauchs der Komponenten des Mikrocontrollers und des gesamten Energieverbrauchs des Mikrocontrollers zu schätzen. In einem anderen Beispiel kann das externe System Informationen über Zählung und Dauer von dem Mikrocontroller und einem gemessenen Leistungsverbrauch von einem Messgerät abrufen. Der Benutzer des externen Systems kann die Informationen über Zählung, Dauer und gemessenen Leistungsverbrauch verwenden, um Energiekoeffizienten zu schätzen. In anderen Ausführungsformen kann die Debug-Software auf die durch den Mikrocontroller geschätzten Energieverbrauchsinformationen zugreifen.
  • Ein Anwendungssoftwareentwickler kann die Energieverbrauchsinformationen verwenden, um die Software fein abzustimmen, um den Energieverbrauch zu kontrollieren, beispielsweise um den Spitzenergieverbrauch zu minimieren oder um die Batterielebensdauer zu maximieren.
  • Die 10A-10B illustrieren zwei Ausführungsformen von visuellen Resultaten, die durch ein externes System als Resultat der oben offenbarten Verfahren produziert werden können. Es wird darauf hingewiesen, dass die nachfolgende Beschreibung und die in den 10A-10B gezeigten Ausführungsformen als illustrativ und nicht beschränkend aufzufassen sind.
  • 10A illustriert eine Berechnung des momentanen Leistungsverbrauch als Funktion der Zeit. Der Leistungsverbrauch kann durch die vertikale Achse angezeigt werden; die Zeit kann auf der horizontalen Achse angezeigt werden. Leistung kann durch die CPU in unterschiedlichen Energiemodi des Mikrocontrollers verbraucht werden, umfassend die Modi aktiv, Tiefschlaf und Ruhezustand; durch die CPU beim Vornehmen von Flash-Speicher-Zugriffen; durch die CPU beim Vornehmen von Aufgaben; und durch Komponenten beim Vornehmen von Aktivitäten. Wie in dem Beispiel von 10A illustriert, verbraucht die CPU mehr Leistung im aktiven Modus (Zeitperioden A-C) als im Tiefschlafmodus (Zeitperiode D). Die CPU verbraucht mehr Leistung beim Vornehmen der Aufgabe A während eines Betriebs mit 200 MHz (Zeitperiode A) als beim Vornehmen der Aufgabe A während eines Betriebs mit 100 MHz (Zeitperiode M). Der Spitzenleistungsverbrauch tritt in der Zeitperiode H auf, wenn der Leistungsmodus aktiv ist, es Flash-Speicher-Zugriffe gibt, die CPU die Aufgabe A vornimmt während eines Betriebs mit 200 MHz und ein analoger Block aktiv ist.
  • Die 10B illustriert Zählerwerte, die der in 10A illustrierten Aktivität entsprechen. In einer Ausführungsform kann die Zählereinheit 1 konfiguriert sein, um CPU-Aktivität zu zählen, kann die Zählereinheit 2 konfiguriert sein, um Flash-Aktivität zu zählen, kann der Zähler 3 konfiguriert sein, um USB-Aktivität zu zählen, kann die Zählereinheit 4 konfiguriert sein, um SPI-Aktivität zu zählen, kann die Zählereinheit 5 konfiguriert sein, um analoge Blockaktivität zu zählen, und kann die Zählereinheit 6 konfiguriert sein, um CPU-Aktivität zu zählen. Wie in 10B illustriert, erhöht sich der Zählungswert des Zählers 6, wenn die CPU in einem aktiven Modus (z. B. Zeitperioden A-C) betrieben wird, erhöht sich aber nicht, wenn sich die CPU im Tiefschlafmodus (Zeitperiode D) befindet. Der Zählungswert des Zählers 1 erhöht sich um eine schnellere Rate, wenn die CPU Aktivitäten mit 200 MHz (Zeitperiode A) vornimmt, als wenn die CPU Aktivitäten mit 100 MHz (Zeitperiode B) vornimmt. Der Zählungswert des Zählers 1 erhöht sich nicht, wenn die CPU irgendwelche Aktivitäten vornimmt (Zeitperiode D).
  • In einer Ausführungsform sind zum Zeitpunkt 1001 in 10B alle Zähler aktiviert und sind zum Zeitpunkt 1002 alle Zähler deaktiviert. In einer anderen Ausführungsform können die Zähler permanent aktiviert oder deaktiviert sein. In einer anderen Ausführungsform können individuelle Zähler unabhängig von anderen Zellen aktiviert oder die aktiviert sein.
  • In der vorangehenden Patentschrift wurde die Erfindung unter Verweis auf spezifische beispielhafte Ausführungsformen von dieser derselbenbeschrieben. Es versteht sich jedoch von selbst, dass verschiedene Modifikationen und Änderungen an diesen vorgenommen werden können, ohne von dem in den beiliegenden Ansprüchen dargelegten umfassenderen Geist und Umfang der Erfindung abzuweichen. Die Patentschrift und Zeichnungen sind demgemäß als illustrativ und nicht beschränkend aufzufassen.
  • Es sollte erkannt werden, dass Referenzen auf „eine Ausführungsform“ oder „eine einzelne Ausführungsform“ in der gesamten vorliegenden Patentschrift bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, beschrieben in Verbindung mit der Ausführungsform, in mindestens einer Ausführungsform der vorliegenden Erfindung eingeschlossen ist. Es wird daher betont und es sollte erkannt werden, dass zwei oder mehrere Referenzen auf „eine Ausführungsform“ oder „eine einzelne Ausführungsform“ oder eine „alternative Ausführungsform“ in verschiedenen Abschnitten dieser Patentschrift nicht unbedingt immer auf die gleiche Ausführungsform verweisen. Des Weiteren können die besonderen Merkmale, Strukturen oder Charakteristiken in einer geeigneten Weise in einer oder mehreren Ausführungsformen der Erfindung kombiniert werden. In ähnlicher Weise ist zu verstehen, dass in der voranstehenden Beschreibung beispielhafter Ausführungsformen der Erfindung verschiedene Merkmale der Erfindung manchmal zusammen in einer einzelnen Ausführungsform, Figur oder Beschreibung davon gruppiert werden, was dem Zweck dient, die Offenbarung zu rationalisieren und das Verständnis von einem oder mehreren der verschiedenen erfindungsgemäßen Aspekte zu vereinfachen. Dieses Verfahren der Offenbarung ist jedoch nicht als eine Absicht dahingehend zu interpretieren, dass die beanspruchte Erfindung mehr Merkmale erfordert, als in jedem Patentanspruch ausdrücklich zitiert. Vielmehr liegen die erfinderischen Aspekte, wie die folgenden Patentansprüche zeigen, in weniger als allen Merkmalen einer einzelnen vorhergehend offenbarten Ausführungsform. Daher werden die auf die ausführliche Beschreibung folgenden Patentansprüche hiermit ausdrücklich in diese ausführliche Beschreibung aufgenommen, wobei jeder Patentanspruch als separate Ausführungsform der vorliegenden Erfindung für sich allein steht.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15585890 [0001]
    • US 62422739 [0001]

Claims (21)

  1. Eine integrierte Schaltungsvorrichtung (IC-Vorrichtung), die Folgendes beinhaltet: eine Komponente, die eine Busschnittstelle beinhaltet; und eine mit der Busschnittstelle gekoppelte Energieschätzschaltung, die für Folgendes konfiguriert ist: Empfangen von Datentransfersignalen, die Datentransfers anzeigen, die an der Busschnittstelle ausgeführt werden; Bestimmen einer ersten Zahl von Datentransfers basierend auf den Datentransfersig nalen; Bestimmen eines ersten Maßes des Energieverbrauchs durch die mit der ersten Zahl von Datentransfers assoziierte Komponente und eines ersten Energiekoeffizienten, wobei der erste Energiekoeffizient einer mit einem Datentransfer assoziierten, verbrauchten Energiemenge entspricht; und Speichern des ersten Maßes des Energieverbrauchs.
  2. IC-Vorrichtung gemäß Anspruch 1, die ferner Folgendes beinhaltet: eine zwischen der Busschnittstelle und der Energieschätzschaltung gekoppelte Busüberwachung, wobei die Busüberwachung konfiguriert ist, um Busschnittstellensignale von der Busschnittstelle zu empfangen und der Energieschätzschaltung Busüberwachungssignale basierend auf den Busschnittstellensignalen bereitzustellen, und wobei die Datentransfersignale die Busüberwachungssignale beinhalten.
  3. IC-Vorrichtung gemäß Anspruch 2, wobei die Busüberwachung konfiguriert ist, um Busschnittstellensignale von einer von einer Advanced-High-Performance-Busschnittstelle (AHB-Schnittstelle), einer Advanced-eXtensible-Schnittstelle (Advanced eXtensible Interface, „AXI“) und einer x86-kompatiblen Busschnittstelle zu empfangen.
  4. IC-Vorrichtung gemäß Anspruch 1, wobei die Energieschätzschaltung ferner eine erste Zählerschaltung beinhaltet, die konfiguriert ist, um die Datentransfersignale zu empfangen.
  5. IC-Vorrichtung gemäß Anspruch 1, wobei die Energieschätzschaltung ferner für Folgendes konfiguriert ist: Empfangen von Ereignissignalen, die Ereignisse anzeigen, die durch die Komponente ausgeführt werden; Bestimmen einer ersten Zahl von ausgeführten Ereignissen basierend auf den Ereignissignalen; Bestimmen eines zweiten Maßes des Energieverbrauchs von der mit der ersten Zahl von Ereignissen assoziierten Komponente und eines zweiten Energiekoeffizienten, wobei der erste Energiekoeffizient einer mit einem der Ereignisse assoziierten Energiemenge entspricht; Empfangen von Daueraktivitätssignalen, die eine erste aktive Zeit anzeigen, während der die Komponente eine erste Daueraktivität ausführt; Bestimmen einer ersten Dauer der ersten aktiven Zeit, die mit der ersten Daueraktivität assoziiert ist; und Bestimmen eines dritten Maßes des Energieverbrauchs von der mit der ersten Dauer assoziierten Komponente und eines dritten Energiekoeffizienten, wobei der dritte Energiekoeffizient einer mit der ersten Daueraktivität assoziierten Leistungsmenge entspricht; wobei eine Energieschätzschaltung ferner konfiguriert ist, um das zweite Maß des Energieverbrauchs und das dritte Maß des Energieverbrauchs zu speichern.
  6. IC-Vorrichtung gemäß Anspruch 5, wobei die Energieschätzschaltung ferner eine erste Zählerschaltung, die konfiguriert ist, um die Datentransfersignale zu empfangen, eine zweite Zählerschaltung, die konfiguriert ist, um die Ereignissignale zu empfangen, und eine dritte Zählerschaltung, die konfiguriert ist, um die Daueraktivitätssignale zu empfangen, beinhaltet.
  7. IC-Vorrichtung gemäß Anspruch 1, wobei die Energieschätzschaltung ferner konfiguriert ist, um während des Laufzeitbetriebs die Datentransfersignale zu empfangen, das erste Maß des Energieverbrauchs zu bestimmen und das zweite Maß des Energieverbrauchs zu speichern.
  8. IC-Vorrichtung gemäß Anspruch 7, wobei eine oder mehrere Komponenten der IC-Vorrichtung konfiguriert sind, um Betriebseinstellungen während des Laufzeitbetriebs basierend auf dem ersten Maß des Energieverbrauchs anzupassen.
  9. IC-Vorrichtung gemäß Anspruch 1, wobei der erste Energiekoeffizient einem ersten Betriebszustand entspricht.
  10. Ein Apparat, der Folgendes beinhaltet: einen Mikrocontroller, der eine Energieschätzschaltung beinhaltet, und eine Komponente, die eine Busschnittstelle beinhaltet, wobei die Energieschätzschaltung mit der Busschnittstelle gekoppelt ist und konfiguriert ist, um Datentransfersignale zu empfangen, die Datentransfers anzeigen, die an der Busschnittstelle ausgeführt werden, zum Bestimmen einer ersten Zahl von Datentransfers basierend auf den Datentransfersignalen und Bereitstellen von Datentransferzählungssignalen, die die erste Zahl von Datentransfers anzeigen; und ein mit dem Mikrocontroller gekoppeltes externes System.
  11. Apparat gemäß Anspruch 10, wobei das externe System für Folgendes konfiguriert ist: Empfangen der Datentransferzählungssignale; Bestimmen eines ersten Maßes des Energieverbrauchs von der mit den Datentransferzählungssignalen assoziierten Komponente und eines ersten Energiekoeffizienten, wobei der erste Energiekoeffizient einer mit einem Datentransfer assoziierten Energiemenge entspricht; und Speichern des ersten Maßes des Energieverbrauchs.
  12. Apparat gemäß Anspruch 11, wobei das externe System eine Debug-Umgebung ist, die auf einem Host-System läuft.
  13. Apparat gemäß Anspruch 10, wobei die Energieschätzschaltung ferner für Folgendes konfiguriert ist: Bestimmen eines zweiten Maßes des Energieverbrauchs von der mit den Datentransfersignalen assoziierten Komponente und eines ersten Energiekoeffizienten, wobei der erste Energiekoeffizient einer mit einem Datentransfer assoziierten Energiemenge entspricht; und Speichern des ersten Maßes der Energie; wobei das externe System konfiguriert ist, um auf das erste Maß des Energieverbrauchs zuzugreifen.
  14. Apparat gemäß Anspruch 10, wobei der Mikrocontroller ferner eine zwischen der Busschnittstelle und der Energieschätzschaltung gekoppelte Busüberwachung beinhaltet, wobei die Busüberwachung konfiguriert ist, um Busschnittstellensignale von der Busschnittstelle zu empfangen und der Energieschätzschaltung Busüberwachungssignale basierend auf den Busschnittstellensignalen bereitzustellen, und wobei die Datentransfersignale die Busüberwachungssignale beinhalten.
  15. Apparat gemäß Anspruch 11, wobei die Energieschätzschaltung ferner für Folgendes konfiguriert ist: Empfangen von Ereignissignalen, die Ereignisse anzeigen, die durch die Komponente ausgeführt werden; Bestimmen einer ersten Zahl von ausgeführten Ereignissen basierend auf den Ereignissignalen; Bereitstellen von Ereigniszählungssignalen, die die erste Zahl von ausgeführten Ereignissen anzeigen; Empfangen von Daueraktivitätssignalen, die eine erste aktive Zeit anzeigen, während der die Komponente eine erste Daueraktivität ausführt; Bestimmen einer ersten Dauer der ersten aktiven Zeit basierend auf den Daueraktivitätssignalen; und Bereitstellen von Dauersignalen, die die erste Dauer anzeigen; und wobei das externe System ferner für Folgendes konfiguriert ist: Empfangen der Ereigniszählungssignale und Bestimmen eines zweiten Maßes des Energieverbrauchs von der mit den Ereigniszählungssignalen assoziierten Komponente und eines zweiten Energiekoeffizienten, wobei der erste Energiekoeffizient einer mit einem der Ereignisse assoziierten Energiemenge entspricht; und Empfangen der Dauersignale, die ein drittes Maß des Energieverbrauchs von der mit den Dauersignalen assoziierten Komponente anzeigen und Bestimmen von dieser und eines dritten Energiekoeffizienten, wobei der dritte Energiekoeffizient einer mit der ersten Daueraktivität assoziierten Leistungsmenge entspricht; wobei das externe System ferner konfiguriert ist, um das zweite Maß des Energieverbrauchs und das dritte Maß des Energieverbrauchs zu speichern.
  16. Ein Verfahren zum Bestimmen eines Energieverbrauchs einer Komponente einer integrierten Schaltungsvorrichtung (IC-Vorrichtung), das Folgendes beinhaltet: Empfangen, durch einen Energieschätzschaltkreis, von Datentransfersignalen, die Datentransfers anzeigen, die an einer Busschnittstelle der Komponente ausgeführt werden; Bestimmen, durch den Energieschätzschaltkreis, einer ersten Zahl von Datentransfers basierend auf den Datentransfersignalen; Bestimmen, durch den Energieschätzschaltkreis, des Energieverbrauchs basierend auf der ersten Zahl von Datentransfers und eines ersten Energiekoeffizienten, wobei der erste Energiekoeffizient einer durch die Komponente verbrauchten Energiemenge, um einen Datentransfer auszuführen, entspricht; und Bereitstellen, durch den Energieschätzschaltkreis, von Energieverbrauchssignalen, die den Energieverbrauch anzeigen.
  17. Verfahren gemäß Anspruch 16, das ferner Folgendes beinhaltet: Empfangen, durch eine Busüberwachung, einer Vielzahl von Datensignalen von der Busschnittstelle, die Datentransfers anzeigen, die an der Busschnittstelle ausgeführt werden; Bereitstellen, durch die Busüberwachung, von Busüberwachungssignalen basierend auf den Datensignalen; und Empfangen, durch die Energieberechnungsschaltkreise, der Busü berwachu ngssignale; wobei die Datentransfersignale die Busüberwachungssignale beinhalten.
  18. Verfahren gemäß Anspruch 16, wobei die Energieschätzschaltkreise Komponenten der IC-Vorrichtung sind und wobei das Empfangen, Bestimmen und Bereitstellen während des Laufzeitbetriebs durchgeführt werden.
  19. Verfahren gemäß Anspruch 18, das ferner das Anpassen von Betriebseinstellungen der IC-Vorrichtung während des Laufzeitbetriebs basierend auf den Energieverbrauchswerten beinhaltet.
  20. Verfahren gemäß Anspruch 16, wobei der Mikrocontroller mit einem externen System gekoppelt ist, das konfiguriert ist, um die Energieverbrauchssignale zu empfangen.
  21. Verfahren gemäß Anspruch 20, wobei das externe System eine Debug-Umgebung ist, die auf einem Host-System läuft.
DE112017005778.7T 2016-11-16 2017-08-16 Mikrocontroller-energie-profiler Granted DE112017005778T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662422739P 2016-11-16 2016-11-16
US62/422,739 2016-11-16
US15/585,890 2017-05-03
US15/585,890 US11023025B2 (en) 2016-11-16 2017-05-03 Microcontroller energy profiler
PCT/US2017/047205 WO2018093431A1 (en) 2016-11-16 2017-08-16 Microcontroller energy profiler

Publications (1)

Publication Number Publication Date
DE112017005778T5 true DE112017005778T5 (de) 2019-08-14

Family

ID=62106635

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005778.7T Granted DE112017005778T5 (de) 2016-11-16 2017-08-16 Mikrocontroller-energie-profiler

Country Status (4)

Country Link
US (2) US11023025B2 (de)
CN (1) CN109716519B (de)
DE (1) DE112017005778T5 (de)
WO (1) WO2018093431A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11023025B2 (en) * 2016-11-16 2021-06-01 Cypress Semiconductor Corporation Microcontroller energy profiler
US10853204B2 (en) * 2018-10-26 2020-12-01 Dell Products, L.P. System and method to detect and recover from inoperable device management bus
US11895588B2 (en) * 2020-08-05 2024-02-06 Analog Devices, Inc. Timing precision maintenance with reduced power during system sleep

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6958706B2 (en) * 1990-07-27 2005-10-25 Hill-Rom Services, Inc. Patient care and communication system
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US6021381A (en) * 1996-06-05 2000-02-01 Sharp Kabushiki Kaisha System for detecting power consumption of integrated circuit
US6367023B2 (en) * 1998-12-23 2002-04-02 Intel Corporation Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system
EP1182556B1 (de) 2000-08-21 2009-08-19 Texas Instruments France Auf Aufgaben basierte adaptive Profilerstellung und Fehlerbeseitigung
US6667929B1 (en) * 2002-06-14 2003-12-23 International Business Machines Corporation Power governor for dynamic RAM
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
US20060080076A1 (en) * 2004-10-12 2006-04-13 Nec Laboratories America, Inc. System-level power estimation using heteregeneous power models
US20060265485A1 (en) * 2005-05-17 2006-11-23 Chai Sek M Method and apparatus for controlling data transfer in a processing system
US7430673B2 (en) * 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8681671B1 (en) * 2006-04-25 2014-03-25 Cisco Technology, Inc. System and method for reducing power used for radio transmission and reception
US7340378B1 (en) * 2006-11-30 2008-03-04 International Business Machines Corporation Weighted event counting system and method for processor performance measurements
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
US7992017B2 (en) * 2007-09-11 2011-08-02 Intel Corporation Methods and apparatuses for reducing step loads of processors
JP4973490B2 (ja) * 2007-12-26 2012-07-11 富士通株式会社 消費電力監視プログラム
US8032317B2 (en) * 2008-05-15 2011-10-04 The Nielsen Company (Us), Llc System and methods for metering and analyzing energy consumption of events within a portable device
US8726281B2 (en) * 2009-08-31 2014-05-13 Imec Method and system for improving performance and reducing energy consumption by converting a first program code into a second program code and implementing SIMD
US8358298B2 (en) * 2009-10-07 2013-01-22 Cisco Technology, Inc. Automatic brightness control
JP5408264B2 (ja) * 2009-12-15 2014-02-05 富士通株式会社 集積回路消費電力計算装置,処理方法およびプログラム
US20110145612A1 (en) 2009-12-16 2011-06-16 International Business Machines Corporation Method and System to Determine and Optimize Energy Consumption of Computer Systems
CN102129414B (zh) * 2010-01-15 2013-12-04 华为技术有限公司 一种变频总线适配器、适配方法及系统
US9506963B2 (en) * 2010-04-15 2016-11-29 Yale University Consumption breakdown monitoring through power state sensing
US8904154B2 (en) * 2010-04-16 2014-12-02 Massachusetts Institute Of Technology Execution migration
KR101699770B1 (ko) * 2010-09-06 2017-02-13 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US9092219B2 (en) * 2010-11-02 2015-07-28 Advanced Micro Devices, Inc. Method and system of sampling to automatically scale digital power estimates with frequency
US9135213B2 (en) * 2011-01-13 2015-09-15 Xilinx, Inc. Extending a processor system within an integrated circuit and offloading processes to process-specific circuits
US9753519B2 (en) * 2011-10-14 2017-09-05 Intel Corporatoin Speculative system start-up to improve initial end-user interaction responsiveness
US20130318382A1 (en) * 2012-05-23 2013-11-28 Canon Kabushiki Kaisha Power management apparatus, image forming apparatus and power management method
US8683418B2 (en) * 2012-06-18 2014-03-25 International Business Machines Corporation Adaptive workload based optimizations to mitigate current delivery limitations in integrated circuits
KR20140020404A (ko) * 2012-08-08 2014-02-19 삼성전자주식회사 집적 회로의 소비 전력 모델링 방법 및 장치
US9310864B1 (en) 2012-09-19 2016-04-12 Amazon Technologies, Inc. Monitoring and real-time adjustment of power consumption settings
US9575542B2 (en) 2013-01-31 2017-02-21 Hewlett Packard Enterprise Development Lp Computer power management
US20140278165A1 (en) * 2013-03-14 2014-09-18 Johnson Controls Technology Company Systems and methods for analyzing energy consumption model data
US9612879B2 (en) * 2013-08-01 2017-04-04 Texas Instruments Incorporated System constraints-aware scheduler for heterogeneous computing architecture
CN103455132A (zh) 2013-08-20 2013-12-18 西安电子科技大学 基于硬件性能计数器的嵌入式系统功耗估算方法
US9542179B2 (en) * 2013-09-06 2017-01-10 Texas Instruments Incorporated System and method for energy aware program development
US10707038B2 (en) * 2013-09-06 2020-07-07 Texas Instruments Incorporated System and method for energy monitoring
US9519522B1 (en) * 2013-09-30 2016-12-13 Veritas Technologies Llc Use of power data in the selection of resources for performance of processes
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
US9733978B2 (en) * 2015-08-27 2017-08-15 Qualcomm Incorporated Data management for multiple processing units using data transfer costs
GB2542215B (en) * 2016-01-18 2018-04-11 Imagination Tech Ltd Dynamic power measurement using a formal verification tool
US10101796B2 (en) * 2016-05-27 2018-10-16 Taiwan Semiconductor Manufacturing Company, Ltd. Processor power estimation
US11023025B2 (en) * 2016-11-16 2021-06-01 Cypress Semiconductor Corporation Microcontroller energy profiler

Also Published As

Publication number Publication date
US20180136706A1 (en) 2018-05-17
US11934245B2 (en) 2024-03-19
US11023025B2 (en) 2021-06-01
CN109716519A (zh) 2019-05-03
US20210373634A1 (en) 2021-12-02
WO2018093431A1 (en) 2018-05-24
CN109716519B (zh) 2023-10-10

Similar Documents

Publication Publication Date Title
DE60122780T2 (de) Betriebssystemunabhängiges verfahren und system zur bestimmung der cpu-ausnützung
DE102010002636B4 (de) Reduktion des Stromverbrauchs in einem Mikrocontroller
US11934245B2 (en) Microcontroller energy profiler
DE102019111995A1 (de) Training eines künstlichen neuronalen Netzes unter Verwendung von flexiblen Gleitkommatensoren
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE102012022412B4 (de) Ablaufverfolgung eines eingebetteten Spannungsreglers
DE112006000296T5 (de) Modifizieren des Ausgangs eines Leistungsadapters
DE102020102783A1 (de) Verfahren und einrichtungen zum verbessern einer leistungsdatensammlung einer hochleistungsberechnungsanwendung
DE112015004839T5 (de) Kapazitive Niedrigstrom-Sensortaste
DE102010040935A1 (de) Sniff-Modus-Niedrigenergieoszillator (LPO)-Taktkalibrierung
DE102008050370A1 (de) Energiemanagement- und Sicherheitsschutzsystem sowie zugehöriges Verfahren
DE102020102237A1 (de) Echtzeit-eingabe/ausgabe-bandbreitenschätzung
DE102007009300A1 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE102020105939A1 (de) Enhanced-Serial-Peripheral-Interface-(eSPI)-Signalisierung zurAbsturzereignisbenachrichtigung
DE102006041444A1 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE102018132807A1 (de) Anwendungsprozessor, elektronischer Fahrzeugprozessor und Berechnungsvorrichtung mit Anwendungsprozessor
DE102012221253B4 (de) Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür
DE102017209132A1 (de) Sensordaten-Verarbeitungseinrichtung
DE102005020656B4 (de) Flankenerfassungsschaltung
DE102018130166A1 (de) Latenzmessungstechnologie
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
CN102880785A (zh) 针对gpu程序的源码级数据传输能耗估算方法
DE102013108943B4 (de) Statische Blockanzeige aus einem zu einer Datenverarbeitungseinrichtung gehörenden Speicher während geringer Aktivität derselben
DE102009019828A1 (de) Verfahren zum Übertakten einer CPU einer Computer-Hauptplatine
DE112017006454T5 (de) Computervorrichtung, Aufgabeneinleitungsverfahren und Aufgabeneinleitungsprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division