Stromverbrauch genau ermitteln

Redakteur: Holger Heller

Beim Entwurf batteriebetriebener Handheld-Systeme, die Funktionen zur digitalen Signalverarbeitung besitzen, muss sorgfältig auf den Stromverbrauch geachtet werden. Die Auswahl des

Firmen zum Thema

( Archiv: Vogel Business Media )

Beim Entwurf batteriebetriebener Handheld-Systeme, die Funktionen zur digitalen Signalverarbeitung besitzen, muss sorgfältig auf den Stromverbrauch geachtet werden. Die Auswahl des DSPs, der sowohl die erforderliche Rechenleistung besitzt als auch zum Stromverbrauchsbudget passt, kann über die Vermarktbarkeit eines Entwurfs entscheiden – oder das Entwicklerteam zu einem kostenaufwändigen Neuentwurf zwingen. Die meisten Entwickler wissen aber aus leidvoller Erfahrung, dass der herkömmliche Ansatz zum Schätzen des DSP-Stromverbrauchs bestenfalls eine grobe Annäherung sein kann. Insoweit werden neue Ansätze zum Energiemanagement mit Software und zur Schätzung des Stromverbrauchs benötigt.

Traditionell orientierte sich ein Entwicklerteam bei der Auswahl eines Prozessors immer an den Datenblättern der in Betracht gezogenen DSPs. Die in mA/MIP oder mA/MHz gemessenen Werte sind in der Regel zusammen mit dem maximalen IDD des Chips angegeben. Diese Informationen sind in praktisch allen Datenblättern enthalten. Das Problem besteht darin, dass die Datenblattangaben zum Stromverbrauch stark von der jeweiligen Applikation abhängen und in der Regel wenig praxisgerecht sind. Den Halbleiterherstellern ist dies bewusst. Deshalb geben sie in der Regel die Grundbedingungen mit an, auf die sich die Stromverbrauchsangaben beziehen. Bei einem TI DSP werden z.B. die folgenden Bedingungen angegeben: „CPU mit 75% Dual-MAC und 25% ADD belastet, mit moderater Datenbusaktivität (Sinuswellen-Tabelle). Domänen-CPU und CLKGEN (DPLL) sind aktiv.“

Bildergalerie

Datenblattangaben zum Stromverbrauch nicht immer hilfreich

Falls die Applikation des Design-Teams nicht zufällig mit dieser Beschreibung übereinstimmt, sind die Daten nur zum Vergleich ähnlicher ICs desselben Herstellers geeignet. Tatsächlich ist es sogar wahrscheinlich, dass andere Halbleiterunternehmen ihre Stromverbrauchswerte unterschiedlich messen. Für Design-Teams mit eng begrenztem Stromverbrauchsbudget ist der Wert von Datenblattangaben noch problematischer, da weitere Umstände hinzukommen:

• DSPs sind komplexe ICs, die Stromsparfunktionen wie z.B. Sleep-Zustände und Power-Down-Modi enthalten. Diese Funktionen vergrößern den Fehlerspielraum in Schätzungen, die ein einziges Szenario beinhalten.

• Datenblätter berücksichtigen nicht die Tatsache, dass der Stromverbrauch von zwei Komponenten bestimmt wird: Prozessor (Kernspannungsversorgung) und Peripheriekomponenten (E/A-Stromversorgung).

• Design-Teams möchten den Stromverbrauch anhand verschiedener Implementierungsansätze und unter Nutzung verschiedener Plattformen vergleichen.

Aufgrund dieser Schwierigkeiten sehen sich Design-Teams gezwungen, Prototyp-Platinen aufzubauen und die Stromverbrauchsergebnisse auf der Basis verschiedener Optionen zu schätzen, z.B. unterschiedliche Prozessoren, Implementierungsansätze und Plattformen. Dieser Ansatz ist zwar zeit- und kostenaufwändig, ergibt aber wenigstens genauere Daten. Die Methodik zur Schätzung des Stromverbrauchs unter verschiedenen Szenarien und Implementierungsstrategien ist recht gut bekannt. Die Daten sind am sinnvollsten, wenn sie segmentiert und aus tatsächlichen Messungen abgeleitet werden. Der Vorgang vollzieht sich in der Regel in folgenden Schritten:

• aufteilen des ICs in Subsysteme,

• unabhängige Messungen für jedes Subsystem,

• Bestimmung des Beitrags jedes Subsystems anhand subtraktiver Analyse,

• ermitteln des Maximal- und Leerlaufverbrauchs pro Subsystem,

• schätzen des Stromverbrauchs des Subsystems durch Interpolation,

• schätzen des Gesamtverbrauchs des ICs durch Superposition.

Die Daten aus den Messungen werden zusammen mit den Herstellerangaben (wie z.B. Core-Spannungen) in eine Kalkulationstabelle eingetragen, aus der die Schätzungen anhand der betreffenden Summen abgeleitet werden (Bild 1). Der graue Block rechts zeigt die Ergebnisse. Dieser Ansatz bedeutet zwar eine Verbesserung gegenüber dem Vergleich von Datenblattwerten, lässt jedoch noch Wünsche offen. Als Beispiel sei angenommen, dass der DSP hauptsächlich in einer Filter-Applikation eingesetzt wird. Er kann dann etwa 20% der Zeit aktiv und 80% der Zeit inaktiv sein. Moderne DSPs können durch Berücksichtigung von Lastzyklen eine erhebliche Stromverbrauchseinsparung erzielen. So kann etwa im nicht aktiven Zustand die Spannung auf einen Stand-by-Wert abgesenkt werden. Der CMOS-Stromverbrauch ist stark von der Frequenz abhängig. Sie lässt sich reduzieren, wenn der IC keine aktiven Filterfunktionen ausführt.

Verbrauchsoptimierung per Software

Halbleiterhersteller wie Texas Instruments haben große Anstrengungen unternommen, um den Stromverbrauch auf Chip-Ebene zu kontrollieren. Die Funktionen waren früher außerhalb der Kontrolle des Design-Teams. Heute können Entwickler die Verbrauchsoptimierungsverfahren per Software steuern. Um zu erläutern, wie sich dies erreichen lässt, wollen wir uns zunächst die Strategien ansehen, die Design-Teams zur Leistungsoptimierung zur Verfügung stehen.

Im Halbleiterchip selbst haben Systementwickler Zugang zu Funktionen wie Tiefschlafmodi, dynamischer Spannungs- und Frequenzskalierung sowie das Ausschalten nicht benötigter Ressourcen, wenn sich der IC in einem Leerlaufzyklus befindet. Erhebliche Energieeinsparungen lassen sich auch während der Systemstartfolge erzielen. In der Regel werden bei der Boot-Sequenz alle Systeme eingeschaltet. Es ist jedoch ratsam, Komponenten, die von der Applikation überhaupt nicht bzw. nicht während ihres Starts benutzt werden, abzuschalten oder in einen Leerlaufmodus zu versetzen. Der Softwarecode kann im Hinblick auf den Stromverbrauch optimiert werden. Die Faustregel, den Code für die erforderliche Funktionalität im Interesse des Speicherbedarfs so kompakt wie möglich zu halten, führt zu einem höheren Stromverbrauch, weil die Applikation den Code häufiger ausführen muss.

Ferner sollte der Code auch so geschrieben werden, um die Anzahl der Befehlsabrufe zu reduzieren sowie die Abfragen von Cache-Speichern und internen Instruktionspuffern zu optimieren. Alle diese Maßnahmen verringern die Zeit, in der sich der DSP im aktiven Modus befindet und maximieren die Leerlaufzeit, in der Frequenz und Spannung reduziert werden können.

Auf Systemebene können unter anderem die folgenden weiteren Strategien eingesetzt werden:

• sorgfältige Auswahl der Komponenten,

• minimieren der Komponentenanzahl,

• bevorzugte Nutzung des internen Speichers, um Verbrauchsverluste zwischen ICs zu minimieren,

• Verwendung externen Speichers zum Starten oder für langsamere Funktionen, auf die nur gelegentlich zugegriffen wird,

• abschalten des Bootspeichers nach dem Start.

Die Stromverbrauchsfunktionen, die Halbleiterhersteller in die ICs integrieren, laufen normalerweise automatisch ab: So werden die Spannung und Frequenz reduziert, wenn der IC in den Leerlaufzustand wechselt. Eine neue Stufe der Perfektion lässt sich jedoch erreichen, wenn das Systemdesign-Team über so genannte Hooks im DSP BIOS die Möglichkeit erhält, weitere Schritte zur Stromverbrauchssteuerung einzusetzen. Die automatische Spannungs- oder Frequenzskalierung ist eine nützliche Funktion. Aber plötzliche Änderungen im DSP-Core können unerwartete Wirkungen auf Peripheriekomponenten haben. Die Frequenzskalierung kann die Zeitbasis des Betriebssystems beeinträchtigen und bestimmte Peripherietreiber funktionieren nur dann effizient, wenn sie über Änderungen der Frequenz- und Stromverbrauchszustände informiert werden.

Unter der Frequenzskalierung kann auch die Wirksamkeit des BS-Schedulers leiden. Deshalb ist generell eine genaue Koordination für die sichere Spannungs-, Frequenz- und Leerlaufregelung erforderlich. Durch den Aufbau einer Leistungsskalierungs-Bibliothek für das DSP BIOS können Halbleiterhersteller ein höheres Maß der Stromverbrauchsregelung bereitstellen und gleichzeitig sicherstellen, dass sich die Probleme in Verbindung mit Spannungs- und Frequenzskalierung vermeiden lassen. Diese Steuerung kann auch auf Peripheriekomponenten außerhalb des Halbleiterchips ausgeweitet werden, indem Nachrichten über die GPIO-Pins an die Peripheriegeräte gesendet werden. Bild 2 zeigt an einem Beispiel die Möglichkeit zur Nutzung von Power-Scaling-Routinen (PSL), die als Teil der Library über selbstgeschriebenen Code des Entwicklers aufgerufen werden können.

Power Scaling Libraries

Als Beispiel sei ein DSP angenommen, der einen sehr komplexen Algorithmus ausführt. Normalerweise wird der Core mit 1,6 V und 200 MHz betrieben (blaue Linie auf der linken Seite in Bild 2). Wenn der Algorithmus nicht abläuft, kann jedoch die Frequenz mittels der Power Scaling Library auf 72 MHz reduziert werden. Normalerweise würde die Core-Spannung bei 1,6 V bleiben. Mithilfe der Power Scaling Library lässt sich die Spannung in den Zeiten, in denen der Algorithmus nicht ausgeführt wird, jedoch auf 1,2 V reduzieren und damit weitere 30 mW einsparen. Texas Instruments hat Power Scaling Libraries erstmals im DSP TMS320VC5509A eingesetzt.

Trotz der Verfügbarkeit der genannten Stromverbrauchs-Tools benötigen Entwickler immer noch eine Möglichkeit, um den Stromverbrauch des Gesamtsystems abzuschätzen. Ein neuer Ansatz beinhaltet die Integration von Software, die vom Halbleiterhersteller bereitgestellt wird und von Hardware, die von virtuellen Instrumentierungsunternehmen wie National Instruments (NI) stammt. In diesem Ansatz wird LabView von National Instruments zur Überwachung des Chips eingesetzt, während dieser die Applikation des Entwicklers ausführt. Texas Instruments hat umfassende Stromverbrauchstestdaten für seinen TMS320VC5509 in einer Kalkulationstabelle bereitgestellt. Mit LabView und dem C55 Power Optimization DSP Starterkit (DSK) kann das Design-Team verschiedene Implementierungsszenarien testen und den Stromverbrauch mit GUI-Tools, ähnlich wie dem in Bild 3 gezeigten, optimieren. Mit dem Kit lassen sich Design-Optionen untersuchen und hochgenaue Stromverbrauchsmessungen separat für DSP-Kern, DSP I/O und den gesamten Verbrauch der Platine einschließlich Flash-Speicher, Codec und weiterer Peripheriekomponenten durchführen. Die Kombination aus innovativen Möglichkeiten zur Kontrolle des IC-Stromverbrauchs und zur Schätzung der Systemleistungsaufnahme bietet Entwicklern eine leistungsfähige neue Möglichkeit zum Entwurf stromverbrauchssensitiver DSP-Applikationen.

Texas Instruments, Tel. +49(0)8161 803311

*Stuart Cording ist Applications Engineer, Lori Vidra ist eXpressDSP Development Tools Marketing Manager bei Texas Instruments in Dallas, Texas.

(ID:178379)