Effizientere Datenverarbeitung

Leistungsgrenzen bei Mikrocontrollern überschreiten

Seite: 3/3

Anbieter zum Thema

Die Interrupt-Latenz für eine Task mit niedriger Priorität (z.B. PFC) kann schnell einige 1000 Zyklen betragen, abhängig davon, wie viele Interrupts höherer Priorität in Reihe vorliegen. Höhere Latenz bedeutet, dass die Kondensatoren später als zum optimalen Zeitpunkt geschaltet werden, was den Wirkungsgrad erheblich verringert. Die Latenzzeit bei einer Event-Weiterleitung beträgt dagegen meist nur zwei Zyklen.

Bei Events, die öfter auftreten, muss die CPU-Last zunehmend berücksichtigt werden. So muss z.B. ein schneller Sensor Samples sammeln, bevor das nächste Sample fertig ist, um Datenverlust zu vermeiden. Sammelt ein Durchflussmesser, Mehrachsen-Positioniersystem oder ein Instrumentierungssystem 2 MSamples/s für schnelle und genaue Messungen, so werden dafür jede Sekunde Hunderte von Millionen Zyklen aufgewendet.

CPU entlasten und Zyklen auslagern

Mit einem Eventsystem und DMA-Controller lassen sich all diese Zyklen von der CPU auslagern sowie die Samples verarbeiten, anstatt sie nur zu puffern. Selbst eine einfache Task, die nur 50 Zyklen zur Vollendung mit Kontext-Switching-Overhead benötigt, führt zu einer Entlastung der CPU von 100 Megazyklen. Viele Systeme verwenden daher eine separate MCU, um HF-Sensoren und Motoren anzusteuern.

Bei Consumer-Produkten kommt es vor allem auf das Benutzererlebnis an. Ein Eventsystem ermöglicht eine schnellere Reaktion bei einer Wake-up-Tastenbetätigung oder einer Peripherie-Eingabe - innerhalb von zwei Zyklen. Interrupts fordern vom System ebenfalls, dass es in den Aktivmodus übergeht, was die Energieeffizienz verringert. Entwickler erweitern daher die Timer-Intervalle, was die Reaktionsfähigkeit verringert.

Tabelle 1: Verbrauchsdaten für eine Anwendung, die 1,2 Megazyklen/s erfordert und eine Atmel XMEGA MCU verwendet (Archiv: Vogel Business Media)

Neben dem Auslagern von Interrupts, was die Leistungsfähigkeit einer MCU erhöht, kann das Eventsystem je nach Anwendung auch zu einer geringeren Leistungsaufnahme um den Faktor 7 beitragen. Tabelle 1 listet die Verbrauchsdaten für eine Anwendung auf, die 1,2 Megazyklen/s erfordert und eine Atmel XMEGA MCU verwendet. Bei 12 MHz befindet sich die MCU 10% der Zeit im Aktivmodus und in der restlichen Zeit im Standby-Modus.

Ein DMA-Controller und Eventsystem entlasten die CPU von Zyklen, die sonst jede Sekunde ausgeführt werden müssten. Damit kann die MCU in den Idle-Sleep-Modus versetzt werden. Ein Eventsystem und DMA-Controller erhöhen nicht nur die CPU-Kapazität und Leistungsfähigkeit, sondern senken auch die Leistungsaufnahme, indem die MCU öfters in den Idle- oder Sleep-Modus übergehen kann.

*Kristian Saether ist Product Marketing Manager AVR bei Atmel.

(ID:346475)