Anbieter zum Thema
CPU-Frequenz und Spannungsregelung
Der Stromverbrauch eines CMOS-Logikbausteins wird theoretisch durch folgende Formel ausgedrückt: P = f x U^2 x k, wobei f die Taktfrequenz ist, U die Spannung in Volt; k ist eine Konstante.
Beim Power Debugging kann der Entwickler den Stromverbrauch anhand der Taktfrequenz analysieren. Ein System, das bei einer Taktfrequenz von 50 MHz nahezu keine Zeit im Stromsparmodus verbringt, sollte bei 100 MHz etwa 50 Prozent der Laufzeit im Stromsparmodus bleiben. Die Leistungsdaten im Debugger ermöglichen es dem Entwickler, dieses erwünschte Verhalten zu überprüfen. Bei nichtlinearer Abhängigkeit von der Taktfrequenz lässt sich so die ideale Taktfrequenz bestimmen, bei der die Energieaufnahme am geringsten ist.
Seit kurzer Zeit ist es bei manchen CPUs möglich, die interne Spannungsversorgung des Rechenkerns aus einer Anwendung heraus zu beeinflussen. So lässt sich bei einem System die VCORE beispielsweise von 1,8 auf 1,2 Volt senken und gleichzeitig die Taktfrequenz auf bis zu 4 MHz hochsetzen. Diese Technik ist vergleichbar mit den in Desktop- und Mobilprozessoren verwendeten Technologien, beispielsweise Intels Speedstep.
Die Möglichkeit, die Spannungs-Komponente der obigen Gleichung zu beeinflussen, eröffnet völlig neue Möglichkeiten, ein System für geringen Energieverbrauch zu optimieren. Das Potenzial ist riesig: Das Senken der Taktfrequenz von 32 auf 4 MHZ senkt den Stromverbrauch um Faktor 8. Wird gleichzeitig VCORE von 1,8 auf 1,2 Volt gesenkt, ergibt sich eine Ersparnis um das 18-fache.
Ein Beispiel mit Interrupts zeigt eine weitere Situation, in der ein überhöhter Stromverbrauch schwierig nachzuvollziehen ist.
Das folgende Bild zeigt ein schematisches Diagramm der Stromaufnahme eines ereignisgesteuerten Systems, wobei das System bei t0 in einem inaktiven Zustand ist, der Strom liegt bei I0. Bei t1 wird das System aktiviert, der Strom steigt auf I1, das ist die Stromaufnahme des aktiven Systems mit einer genutzten Peripherieeinheit. Bei t2 wird die Ausführung durch einen Interrupt mit höherer Priorität unterbrochen. Peripheriegeräte, die der neue Thread nicht benötigt, werden nicht abgeschaltet, stattdessen werden durch den neuen Thread zusätzliche Einheiten aktiviert. Damit steigt der Strom in der Zeit zwischen t2 und t3 auf I2. Bei t3 wird die Kontrolle an den niedriger priorisierten Thread zurückgegeben.

Die Funktionalität des Beispielsystems kann exzellent sein, Codegröße und Ausführungsgeschwindigkeit optimal. Nichtsdestotrotz lässt sich der Energieverbrauch weiter optimieren. Die gelbe Fläche repräsentiert die Energie, die sich durch das Abschalten der ungenutzten Peripherie oder das Ändern der Prioritäten zwischen t2 und t3 hätte sparen lassen.
Durch Power Debugging wäre es einfach gewesen, den außergewöhnlichen Anstieg des Stromverbrauchs beim Schalten des Interrupts zu bemerken und als unnormal zu erkennen. Eine genauere Untersuchung im Timeline-Fenster hätte gezeigt, dass ungenutzte Peripherieeinheiten aktiv sind und länger als nötig Energie verbrauchen. Es wäre eine Untersuchung gefolgt, ob es sinnvoll gewesen wäre, in Situationen wie der beschriebenen zusätzliche Taktzyklen für das Ab- und Anschalten der Peripherie zu verwenden
Falsche Hardwarekonfiguration
Um potentialfreie Eingänge zu vermeiden, ist es übliche Praxis in der Hardwareentwicklung, ungenutzte I/O-Pins des Mikrocontrollers auf Erde zu legen. Konfiguriert nun die Software einen dieser geerdeten Pins irrtümlich als Ausgang mit einer logischen „1“, kann ein Strom von bis zu 25 mA an diesem Pin abfließen. Dieser hohe, unerwartete Abfluss wird im Stromdiagramm schnell erkannt. Auch die zugehörige falsche Initialisierung lässt sich beim Beobachten des Anwendungsstarts im Stromdiagramm einfach identifizieren. Eine ähnliche Situation entsteht, wenn ein I/O-Pin als Eingang definiert und von einem externen Schaltkreis gespeist, von der Software aber irrtümlich als Ausgang konfiguriert wird.
Analoge Interferenzen
Das Mischen analoger und digitaler Stromkreise auf einer Platine birgt viele Herausforderungen. Das Board-Design und -Routing werden wichtig, um analoge Rauschpegel niedrig zu halten und ein exaktes Auswerten der Analogsignale zu ermöglichen. Ein gutes gemischtes Design erfordert eine sorgfältige Auswahl der Hardware und viel Erfahrung. Auch die Software kann die Qualität der analogen Messungen beeinflussen. Eine hohe I/O-Aktivität in Zeitspannen, in denen analoge Signale ausgelesen werden, führt dazu, dass in dieser Zeit viele digitale Leitungen ihren Zustand ändern. Dies kann zusätzliches Rauschen am A/D-Wandler verursachen.
Mit Hilfe von Power Debugging lassen sich Interferenzen aus digitalen und Stromversorgungsleitungen in die analogen Bereiche erkennen. Wird die Interrupt-Aktivität im Timeline-Fenster gemeinsam mit Energiedaten dargestellt, lässt sich im Stromdiagramm der zeitliche Bereich direkt vor den A/D-Wandler-Interrupts untersuchen. Spannungsspitzen in der Nähe von A/D-Wandleraktivität können Rauschen verursachen und müssen untersucht werden. Da die Daten in der Timeline mit dem ausgeführten Code verknüpft sind, führt ein Doppelklick auf eine verdächtige Strommessung direkt zum entsprechenden C-Quellcode.
Die beschriebene Power Debugging-Technologie ermöglicht es dem Entwickler, den Ablauf und Code einer Anwendung in Bezug auf den Energieverbrauch zu analysieren. Mit den Erkenntnissen daraus lässt sich der Quellcode so synchronisieren und optimieren, dass die Energieanforderungen so gering wie möglich sind. Auf diese Weise stellen Software-Entwickler sicher, dass ihr Projekt so stromsparend wie möglich ist, ohne die Leistungsfähigkeit der Anwendung einzuschränken.
Die Power Debugging-Technologie von IAR Systems ermöglicht es dem Entwickler, den Ablauf und Code einer Anwendung in Bezug auf den Energieverbrauch zu analysieren. Mit den Erkenntnissen lässt sich der Quellcode so synchronisieren und optimieren, dass die Energieanforderungen so gering wie möglich sind. Auf diese Weise stellen Software-Entwickler sicher, dass ihr Projekt so viel Strom wie möglich spart, ohne die Leistungsfähigkeit der Anwendung einzuschränken. //FG
* * Lotta Frimansson ist Produktmanagerin bei IAR Systems. Sie lebt und arbeitet in Uppsala/Schweden.
* * Anders Lundgren ist Produktmanager bei IAR Systems. Er lebt und arbeitet in Uppsala/Schweden.
(ID:39444320)