-
TECHNISCHER BEREICH
-
Die vorliegende Offenbarung bezieht sich allgemein auf den Erhalt von Messdaten von einer Schaltungskomponente, die eine integrierte Schaltung (IC) enthält.
-
HINTERGRUND
-
Die Verbraucher verlangen laufend nach einer höheren Funktionalität und einer höheren Leistungsfähigkeit ihrer batteriebetriebenen Produkte, wie zum Beispiel Smartphones und elektronischen Tablet-Computern. Um die Funktionalität und die Batterielebensdauer zu maximieren, müssen die Entwickler dieser batteriebetriebenen Anwendungen mehrere Faktoren für ihren Systementwurf berücksichtigen. In diesen Anwendungen ist der Mikrocontroller ein Hauptstromverbraucher, und Entwickler müssen die Art, in der die Energie verbraucht wird, sorgfältig berücksichtigen. In manchen Fällen müssen die Entwickler den Stromverbrauch des Mikrocontrollers messen, während er im Betriebsmodus ist. Herkömmliche Lösungen zur Messung der Leistungsaufnahme verwenden externe Strommessschaltungen.
-
ZUSAMMENFASSUNG
-
Ein Stromfühlerwiderstand ist zwischen eine Spannungsquelle und einen oder mehrere Stromversorgungsanschlüsse eines IC-Chips geschaltet, der eine Schaltungskomponente (zum Beispiel eine Mikrocontrollereinheit (MCU)) enthält. Ein Verstärker auf dem Chip (zum Beispiel ein Verstärker mit programmierbarem Verstärkungsfaktor oder ein Operationsverstärker) verstärkt den Spannungsabfall über dem Stromfühlerwiderstand auf einen Wert, der innerhalb des dynamischen Bereichs eines Analog-Digital-Wandlers (ADC) auf dem Chip liegt. In manchen Implementierungen können die Messsignale mit einem Zeitstempel versehen werden und in einem Nachverfolgungspuffer gespeichert werden und mit anderen Nachverfolgungsdaten unter Verwendung eines Frontend-Werkzeugs (zum Beispiel eines Personal Computers) zusammengeführt werden. In manchen Implementierungen ist eine Schaltung zur Detektion und Behandlung von Stromaufnahmeereignissen, die mit der Schaltungskomponente verbunden sind, enthalten. In manchen Implementierungen wird ein mit der Schaltungskomponente verbundener Programmzähler synchron zu den Leistungsaufnahmemessungen und/oder anderen Datenquellen abgetastet.
-
In manchen Implementierungen umfasst ein Verfahren zum Ermitteln von Messdaten von einer in einem IC-Chip enthaltenen Schaltungskomponente die folgenden Schritte: Messen eines Spannungsabfalls über einem Stromfühlerwiderstand, der mit einem Stromversorgungsanschluss des IC-Chips gekoppelt ist; Verstärken des Spannungsabfalls unter Verwendung eines auf dem Chip befindlichen Verstärkers; Wandeln des verstärkten Spannungsabfalls in digitale Daten unter Verwendung eines auf dem Chip befindlichen Analog-Digital-Wandlers (ADC); Ermitteln eines Messzeitpunkts; und Speichern des Messzeitpunkts und der digitalen Daten.
-
In manchen Implementierungen umfasst ein Verfahren zur Detektierung und Behandlung von Stromaufnahmeereignissen, die mit einer in einem IC-Chip enthaltenen Schaltungskomponente verbunden sind, die folgenden Schritte: Messen eines Spannungsabfalls über einem Stromfühlerwiderstand, der mit einem Stromversorgungsanschluss des IC-Chips gekoppelt ist; Verstärken des Spannungsabfalls unter Verwendung eines auf dem Chip befindlichen Verstärkers; Vergleichen des verstärkten Spannungsabfalls mit einer Spannungsreferenz, die Grenzwerte für eine Überstrom- oder Unterstrombedingung definiert; und Ermitteln eines Stromaufnahmeereignisses auf Basis des Ergebnisses des Vergleichs.
-
Andere Implementierungen sind auf Schaltungen und Systeme gerichtet.
-
Die hier offenbarten konkreten Implementierungen haben einen oder mehrere der folgenden Vorteile: 1) Batterielebensdauerberechnungen können auf Echtzeitmessungen beruhen, die die Batteriechemie berücksichtigen; 2) eine Überwachung der Leistungsaufnahme kann in die Komponente integriert werden, wobei nur ein externer Stromfühlerwiderstand benötigt wird; 3) der Stromfühlerwiderstand kann auch als Tiefpassfilter erster Ordnung zur Filterung hochfrequenten Rauschens dienen; 4) Leistungsmessungen können durch Stromaufnahmeereignisse getriggert werden; 5) ein Abtaster für den Programmzähler kann mit den Leistungsaufnahmemessungen und/oder anderen Datenquellen synchronisiert werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Schaltungsdiagramm einer Beispielschaltung zur Messung der Leistungsaufnahme einer Schaltungskomponente.
-
2 ist ein Flussdiagramm, das einen Beispielprozess zur Messung der Leistungsaufnahme unter Verwendung der Messschaltung aus 1 illustriert.
-
3 ist ein Schaltungsdiagramm einer Beispielschaltung zur Messung der Leistungsaufnahme einer Schaltungskomponente, die dazu in der Lage ist, Leistungsaufnahmeereignisse zu detektieren und zu behandeln.
-
4 ist ein Flussdiagramm eines Beispielprozesses zur Detektierung und Behandlung von Leistungsaufnahmeereignissen unter Verwendung der Schaltung aus 3.
-
5 ist ein Schaltungsdiagramm einer Beispielschaltung zur Synchronisierung der Abtastung eines Programmzählers mit Leistungsaufnahmemessungen.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist ein Schaltungsdiagramm einer beispielhaften Messschaltung 10 zur Messung der Leistungsaufnahme einer Schaltungskomponente. Die Schaltung 10 kann in einem IC-Chip 1 enthalten sein, der auch die Schaltungskomponente enthält, für die die Leistungsaufnahme gemessen werden soll. In manchen Implementierungen kann die Messschaltung 10 diskrete Komponenten enthalten. In machen Implementierungen kann der Stromfühlerwiderstand 18 in dem IC-Chip 1 enthalten sein oder als Bestandteil einer SoC-Lösung (System an Chip-Lösung) mit mehreren Chipabschnitten hinzugefügt werden.
-
In dem dargestellten Beispiel ist die Schaltungskomponente eine Mikrocontroller-Einheit (MCU). In manchen Implementierungen enthält die Schaltung 10 einen Verstärker 12, einen ADC 14 und einen Nachverfolgungspuffer 16. Der Ausgang des Stromfühlerwiderstands 18 ist mit einem oder mit mehreren Stromversorgungsanschlüssen des IC-Chips 1 gekoppelt. Eine Systemstromversorgung (Vcc) ist mit dem Eingang des Stromfühlerwiderstands 18 und dem positiven Anschluss des Verstärkers 12 über einen anderen Anschluss des IC-Chips 1 (ADCO) gekoppelt. Der Verstärker 12 kann ein auf dem Chip befindlicher Operationsverstärker oder ein Verstärker mit programmierbarem Verstärkungsfaktor (PGA) sein.
-
Unter Verwendung der On-Chip-Ressourcen (Verstärker 12, ADC 14) kann die MCU ihre eigene Leistungsaufnahme messen. Der Verstärker 12 verstärkt den Spannungsabfall über dem Stromfühlerwiderstand 18 auf einen Pegel, bei dem er den dynamischen Bereich des ADC 14 verwenden kann. Ein Satz von Verstärkungseinstellungen kann in die Verstärkungsstufe eingebaut sein. Jede der Einstellungen kann gegen einen Nullpunkt kalibriert werden, indem die Eingänge des Verstärkers 12 kurzgeschlossen werden.
-
In manchen Implementierungen kann ein einfacher Kalibrierungsstromgenerator (nicht dargestellt) zur Kalibrierung der Verstärkungseinstellungen implementiert werden. Durch Hinzufügen eines festen Strombetrags (zum Beispiel 5 mA) können zum Beispiel zwei Punkte auf einer linearen Kurve gemessen werden, und von diesen Messungen können die Koeffizienten A und B in der linearen Gleichung y = Ax + B berechnet werden, wobei y die Stromaufnahme, x der abgetastete Spannungsabfall, B eine Offsetkorrektur und A ein Verstärkungsfaktor ist. Einige Beispielberechnungen sind wie folgt.
- – Mit Rsense = 2,2 R, Verstärkungsfaktor = 100, Vcc = 3,3 V, Gesamtmessbereich des ADC Icc = 15 mA, 12-Bit-ADC-Auflösung 3,66 μA/Schritt, beträgt der Spannungsabfall über Rsense = 33 mV bei 15m A.
- – Mit Rsense = 1R, Verstärkungsfaktor = 10, Vcc = 1,8 V, Gesamtmessbereich des ADC Icc = 180 mA, 12-Bit-ADC-Auflösung 43,9 μA/Schritt, beträgt der Spannungsabfall über Rsense = 100 mV bei 100 mA.
- – Mit Rsense = 3,3 R, Verstärkungsfaktor = 200, Vcc = 1,8 V, Gesamtmessbereich des ADC Icc = 2,72 mA, 12-Bit-ADC-Auflösung 0,66 μA/Schritt, beträgt der Spannungsabfall über Rsense = 9 mV bei 2 mA.
-
Die Leistungsaufnahmemessungen können mit einem Zeitstempel versehen werden und in dem Nachverfolgungspuffer 16 gespeichert werden. Ein Frontendwerkzeug (zum Beispiel ein Personal Computer, auf dem eine Leistungsanalyseanwendung läuft) kann auf die Messungen zugreifen und die Messungen mit anderen Nachverfolgungsdaten (zum Beispiel Instruktionsnachverfolgungen, Interrupt-Nachverfolgungen, DMA-Nachverfolgungen oder Ereignissen) zusammenführen. Das Frontendwerkzeug kann die Messungen verwenden, um ein Leistungsprofil für den laufenden Code zu identifizieren, und bei einer Kombination mit einer Leistungsmessschaltung für einen Schlafmodus mit ultraniedriger Stromaufnahme kann ein Gesamtleistungsprofil für die Schaltungskomponente erstellt werden. Das Leistungsprofil kann in Batterielebensdauerberechnungen verwendet werden, die die Batteriechemie berücksichtigen.
-
2 ist ein Flussdiagramm, das einen Beispielprozess 200 zur Messung der Leistungsaufnahme der Schaltungskomponente aus 1 illustriert. Der Prozess 200 kann unter Verwendung der Messschaltung 10, die in 1 dargestellt ist, implementiert werden.
-
In manchen Implementierungen enthält der Prozess 200 die folgenden Schritte: Messen eines Spannungsabfalls über einen Stromfühlerwiderstand (202); Verstärken des Spannungsabfalls (204); Umwandeln des verstärkten Spannungsabfalls in digitale Daten (206); Ermitteln eines Messzeitpunkts (208); Speichern der Zeit und der digitalen Daten (210); und Liefern der digitalen Daten an eine Leistungsanalyseanwendung (212).
-
Der Stromfühlerwiderstand kann extern oder intern zu dem IC-Chip sein oder als Teil einer SoC-Lösung mit mehreren Chip-Abschnitten hinzugefügt werden. Die Verstärkung und Umwandlung des Spannungsabfalls über den Stromfühlerwiderstand kann durch die auf dem Chip befindliche Hardware durchgeführt werden, wie zum Beispiel durch den PGA (oder Operationsverstärker) und den ADC. Der Zeitpunkt der Messung oder der Zeitstempel kann durch eine auf dem Chip befindliche Taktquelle bestimmt werden. Die Leistungsanalyseanwendung kann Instruktionen enthalten, die auf einem Personalcomputer oder einem anderen Datenverarbeitungsgerät laufen, der/das mit dem IC-Chip gekoppelt ist. Die Anwendung kann dazu konfiguriert sein, auf digitale Daten von einem Nachverfolgungspuffer oder einem anderen On-Chip- oder Off-Chip-Datenspeicher zuzugreifen.
-
3 ist ein Schaltungsdiagramm einer beispielhaften Messschaltung 30 zur Messung der Leistungsaufnahme einer Schaltungskomponente (zum Beispiel einer MCU), die in einem IC-Chip 3 enthalten ist, die dazu in der Lage ist, Verbrauchsereignisse zu detektieren und zu behandeln. Die Schaltung 30 enthält einen Verstärker 12 und kann zumindest einen Hochstromereignis-Detektor 31 oder einen Niederstromereignis-Detektor 32 enthalten. Der Hochstromereignis-Detektor 31 enthält einen analogen Komparator 33 und einen optionalen Digital-Analog-Wandler (DAC) 34. Der Niederstromereignis-Detektor 31 enthält einen analogen Komparator 33 und einen optionalen DAC 34. Die Schaltung 30 kann in einem IC-Chip 3 enthalten sein.
-
Die Schaltung 30 verwendet auf dem Chip befindliche Hardware zur Detektion von Stromverbrauchsereignissen (zum Beispiel Über- und Unterstromereignissen). In manchen Anwendungen muss die Leistungsaufnahme der Schaltungskomponente innerhalb gegebener Grenzen bleiben. Diese Anforderung ergibt sich aus der Maximalstromgrenze einer Batterie (zum Beispiel Silberoxidbatterien) oder der minimalen Last einer Stromversorgung, bei der diese stabil ist. Während der Entwicklung kann es wichtig sein zu überprüfen, dass die Stromaufnahme innerhalb dieser Grenzen bleibt. In einer Debugging-Sitzung kann es zum Beispiel wünschenswert sein, die Programmausführung als Reaktion auf übermäßige Leistungspegel zu unterbrechen, um die Ursache zu identifizieren. In einem laufenden System kann es wünschenswert sein, eine spezielle Behandlungsroutine für Stromaufnahmeereignisse aufzunehmen (zum Beispiel einen Exception-Handler). Das letztere Szenario könnte im Zusammenhang mit Sicherheitssystemen auftreten, bei denen die Überwachung des Systems überwacht wird, um sicherzustellen, dass das System innerhalb sicherer Leistungsaufnahmegrenzen arbeitet.
-
Bezugnehmend auf 3 misst die Schaltung 30 den Stromfluss in die Schaltungskomponente hinein durch Messen des Spannungsabfalls über den Stromfühlerwiderstand 18 (zum Beispiel Größenordnung 1 Ohm) und durch Verstärken dieses Spannungsabfalls unter Verwendung des Verstärkers 12, welcher ein auf dem Chip befindlicher Operationsverstärker oder ein PGA sein kann. Das resultierende Ausgangssignal des Verstärkers 12 wird an Hochstrom- und Niederstromdetektoren 31, 32 weitergeleitet. Konkret wird der Ausgang des Verstärkers 12 an den positiven Anschluss des Komparators 33 und den negativen Anschluss des Komparators 35 weitergeleitet. Der negative Anschluss des Komparators 33 ist mit einer ersten Spannungsreferenz gekoppelt. Der positive Anschluss des Komparators 35 ist mit einer zweiten Spannungsreferenz gekoppelt. Die Spannungsreferenzen können variabel oder konstant sein.
-
In dem dargestellten Beispiel wird die erste Spannungsreferenz durch den DAC 34 zur Verfügung gestellt, und die zweite Spannungsreferenz wird durch den DAC 36 zur Verfügung gestellt. Die Spannungsreferenzen können auch durch externe oder außerhalb des Chips befindliche Schaltungen in die Schaltung 30 eingespeist werden. Die erste und die zweite Spannungsreferenz definieren die Triggerpegel der Komparatoren 33, 35. Wenn der gemessene Strom eine der durch die erste und die zweite Spannungsreferenz definierten Grenzen über- oder unterschreitet, schaltet der Ausgang des Komparators 33 oder 35 um. Die Ausgangssignale der Komparatoren 33, 35 können mit einem Ereignissystem, einem Ausnahme-/Unterbrechungssystem und/oder einem auf dem Chip befindlichen Debug-System (OCD) gekoppelt sein.
-
Unter Verwendung der komparatorbasierten Lösung der Schaltung 30 kann die Detektion und Behandlung von Leistungsaufnahmeereignissen in der Schaltungskomponente ohne die Verwendung eines Amperemeters, externer Schaltungs-Logger oder Oszilloskopmessungen implementiert werden. Die komparatorbasierte Lösung hat eine geringere Verzögerung als eine ADC-basierende Lösung. Ein Komparator wird mehr oder weniger sofort auf ein Leistungsereignis reagieren, wohingegen der ADC eine ADC-Wandlung abschließen muss, bevor die Daten analysiert und ein Hoch-/Niederstromereignis detektiert werden kann.
-
4 ist ein Flussdiagramm, das einen Beispielprozess 400 zur Detektierung und Behandlung von Leistungsaufnahmeereignissen unter Verwendung der Schaltung 30 aus 3 illustriert.
-
In manchen Implementierungen enthält der Prozess 400 die folgenden Schritte: Messen eines Spannungsabfalls über einen Stromfühlerwiderstand (402); Verstärken des Spannungsabfalls (404); Vergleichen des verstärkten Spannungsabfalls mit einer oder mehreren Referenzspannungen (406); und Ermitteln eines Leistungsereignisses auf Basis des Ergebnisses des Vergleichs (408). In manchen Implementierungen kann die in 1 gezeigte Schaltung neben den in den 3 und 5 gezeigten Schaltungen in dem gleichen Gerät vorhanden sein und den Widerstand 18 und den Verstärker 12 gemeinsam verwenden.
-
Der Stromfühlerwiderstand kann außerhalb des IC-Chips (Off-Chip) vorgesehen sein oder sich auf dem Chip befinden (On-Chip). Die Verstärkung des Spannungsabfalls über den Stromfühlerwiderstand kann durch eine auf dem Chip befindliche Hardware (zum Beispiel PGA, Operationsverstärker) durchgeführt werden. Die Spannungsreferenzen können programmierte digitale Werte sein, die in analoge Spannungen durch optionale DACs 34, 36 gewandelt werden. Die Ausgangstriggersignale der Komparatoren 33, 35 können mit einem Ereignissystem, einem Ausnahme-/Unterbrechungssystem und/oder einem OCD zur Behandlung von Leistungsaufnahmeereignissen gekoppelt sein. Bei manchen Implementierungen kann einer der Komparatoren 33 oder 35 verwendet werden, oder es können drei oder mehrere Komparatoren verwendet werden, abhängig von der Art und der Zahl der zu detektierenden Leistungsereignisse.
-
5 ist ein Schaltungsdiagramm einer beispielhaften Messschaltung 50 zur Synchronisierung der Abtastung eines Programmzählers (PC) der Schaltungskomponente mit den Leistungsaufnahmemessungen. Die Synchronisierung der Abtastung eines PC mit den Leistungsaufnahmemessungen verknüpft die Leistungsaufnahmemessungen mit einer Stelle in dem Benutzerprogramm, welche wiederum verwendet werden kann, um die Quellcodezeilen zu identifizieren, die mit den individuellen Leistungsmessungen verbunden sind.
-
Die Schaltung 50 kann in dem IC-Chip 5 enthalten sein. In manchen Implementierungen kann die Schaltung 50 einen Verstärker 12, einen ADC 14, eine Ausrichtungsverzögerung 51, Auffangregister 54 bis 55 und einen Puffer 56 enthalten. Die Schaltung 50 ist mit dem Stromfühlerwiderstand 18 und dem Programmzähler 52 gekoppelt. Der PC 52 ist mit einem PC-Auffangregister 53 gekoppelt, um die PC-Daten aufzufangen. In manchen Implementierungen ist der Verstärker 12 ein PGA und kann außerhalb des Chips vorgesehen sein.
-
Die Schaltung 50 ermöglicht die Synchronisierung der Abtastung eines PC mit Messungen einer Leistungsaufnahme und/oder mit anderen Datenquellen (zum Beispiel einem Ereignissystem) in einer Schaltungskomponente, wie zum Beispiel einer MCU oder einem MCU-System. Die Leistungsmessungen können unter Verwendung eines auf dem Chip befindlichen ADC 14 erhalten werden. Außerhalb des Chips befindliche Hardware kann auch verwendet werden, kann aber die Verwendung eines Synchronisierungsmechanismus unter Verwendung zusätzlicher IC-Anschlüsse (zum Beispiel zusätzliche GPIO) erfordern.
-
Die PC-Abtastung kann mit dem tatsächlichen Start der ADC-Erfassung (Abtasten und Halten) synchronisiert werden, um die Leistungsmessungen auszurichten. Eine typische Zeit für das Abtasten und Halten bei einem unteren/mittleren MCU ADC liegt im Bereich von 0,25 bis 1 Mikrosekunde. Für ein 20 MHz MCU-System mit einer Abtast- und Haltezeit von 0,5 Mikrosekunden kann die Leistungsaufnahmemessung mit einer Genauigkeit von bis zu +/–5 Instruktionen gemessen werden, ohne dass zusätzliche Hardware hinzugefügt wird (1 Instruktion benötigt typischerweise 0,05 Mikrosekunden, um bei 20 MHz ausgeführt zu werden). Ohne die Synchronisierung müsste das Ausrichten der PC-Proben und der Leistungsmessungen unter Verwendung von Zeitstempeln erfolgen, die von einer gemeinsamen globalen Zeitstempelquelle stammen, und das Ausrichten der Daten müsste in einer Nachverarbeitung erfolgen, die auf dem Chip in der Form eines Programms oder in einem Werkzeug außerhalb des Chips erfolgen kann.
-
Sobald die Messungen durch den ADC 14 in digitale Daten gewandelt wurden, kann ein Datensatz 56 für die Leistungsmessprobe (zum Beispiel Leistungsnachverfolgungsdatensatz) zusammengestellt werden, der die digitalen Daten enthält, inklusive, aber nicht beschränkt auf, einen Zeitstempel für die Messung, eine PC-Probe, das ADC-Wandlungsergebnis und andere Daten des Systems, wie zum Beispiel den Zustand eines Ereignissystems oder den Wert eines Universaleingabe-/-ausgabeanschlusses (GPIO), etc. Der Datensatz 56 kann in dem Nachverfolgungspuffer, einem Systemspeicher oder einem anderen geeigneten Datenspeicher gespeichert werden. Der Datensatz 56 kann an andere Systeme über einen seriellen Anschluss mit niedriger Bandbreite, über einen Hochgeschwindigkeits-Parallelanschluss oder als Reaktion auf eine Abfragung übertragen werden. Das Ausgeben der Daten an einen dezidierten Nachverfolgungspuffer oder sogar an einen Systemspeicher kann unter Verwendung eines Direktspeicherzugriffs (DMA) erfolgen.
-
Ähnliche Mechanismen zur Synchronisierung können auch verwendet werden, um Leistungsmessungen auszulösen, die durch andere Ereignisse in der Schaltungskomponente initiiert wurden, wie zum Beispiel Ereignissysteme, DMA-Übertragungen und andere. Ein Abtrasttrigger kann zum Beispiel verwendet werden, um die ADC-Erfassung zu starten. Der Abtasttrigger kann durch ein Debugging-System, ein Abschlusssignal eines (freilaufenden) ADC, ein Ereignissystem, Triggerpunkte, oder andere Abtasttrigger zur Verfügung gestellt werden.
-
Obgleich dieses Dokument viele konkrete Implementierungsdetails enthält, sollten diese nicht als beschränkend für den beanspruchten Schutzumfang aufgefasst werden, sondern als Beschreibung von Merkmalen, die bestimmten Ausführungsformen zu eigen sein können. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben wurden, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzigen Ausführungsform beschrieben wurden, auch in mehreren Ausführungsformen getrennt voneinander oder in jeder geeigneten Unterkombination implementiert werden. Obwohl darüber hinaus Merkmale als in bestimmten Kombinationen zusammenwirkend beschrieben wurden oder sogar anfänglich als solche beansprucht wurden, können ein oder mehrere Merkmale aus einer beanspruchten Kombination in manchen Fällen aus dieser Kombination herausgelöst werden, und die beanspruchte Kombination kann auf eine Unterkombination oder eine Variation einer Unterkombination gerichtet werden.