Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ......

34
Power Management Energiesparen in eingebetteten Betriebssystemen Michael Müller [email protected] AG Eingebettete Systemsoftware Informatik 12, TU Dortmund technische universität dortmund

Transcript of Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ......

Page 1: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

Power ManagementEnergiesparen in eingebetteten Betriebssystemen

Michael Mü[email protected]

AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund

technische universität dortmund

Page 2: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 2

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystem

● Zusammenfassung

Page 3: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 3

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystem

● Zusammenfassung

Page 4: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 4

technische universität dortmund

embedded system software

Energieverbrauch

CPU

FRAM (typ)

Funk (senden)l

Funk (empf)

Display

AES

Modul Stromaufnahme

CPU 1920 μA

FRAM 1845 μA1

Funken (Senden)

33600 μA

Funken (Empfangen)

19000 μA

Display 6 μA

AES 336 μA

Quelle: www.ti.com, Datasheet MSP430FR59xx, [2]1 typischer Verbrauch bei Ablauf eines Programms

Beispiel MSP430FR59xx mit TI CC1200 und Low Power Display

Page 5: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 5

technische universität dortmund

embedded system software

Energieverbrauch

CPU

FRAM (typ)

Funk (senden)l

Funk (empf)

Display

AES

Modul Stromaufnahme

CPU 1920 μA

FRAM 1845 μA1

Funken (Senden)

33600 μA

Funken (Empfangen)

19000 μA

Display 6 μA

AES 336 μA

Quelle: www.ti.com, Datasheet MSP430FR59xx, [2]1 typischer Verbrauch bei Ablauf eines Programms

Beispiel MSP430FR59xx mit TI CC1200 und Low Power Display

Funken sehr teuer! Aber CPU bereits auf Platz 2→ Fazit: Nur selten Funken und CPU sparsam verwenden → Aber wie?

Page 6: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 6

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystem

● Zusammenfassung

Page 7: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 7

technische universität dortmund

embedded system software

Wodurch enstehen die Verluste?● Umwandlung von Energie in Wärme

● Verursacht durch Stromfluss in der Schaltung

● Physikalischer Zusammenhang zwischen Stromfluss und Energie

– E = P Δt∘ (Energie = Leistung Zeit)∘

– P = U I∘ (Leistung = Spannung Strom)∘

Page 8: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 8

technische universität dortmund

embedded system software

CMOS-Technologie● CMOS heute dominierende Technologie für CPUs und

Speicher

● Basiert auf komplementär verschalteten MOSFETs

● Stromfluss nur beim Schalten

Leistung einer CMOS-Schaltung: P = C ∘ U2 f + I∘ L U∘

C Schaltkapazität

U Versorgungsspannung

f Schaltfrequenz

IL Leckstrom (in der Regel vernachlässigbar)

Leistung einer CMOS-Schaltung: P = C ∘ U2 f + I∘ L U∘

C Schaltkapazität

U Versorgungsspannung

f Schaltfrequenz

IL Leckstrom (in der Regel vernachlässigbar)

Page 9: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 9

technische universität dortmund

embedded system software

CMOS-Technologie● CMOS heute dominierende Technologie für CPUs und

Speicher

● Basiert auf komplementär verschalteten MOSFETs

● Stromfluss nur beim Schalten

Leistung einer CMOS-Schaltung: P = C ∘ U2 f + I∘ L U∘

C Schaltkapazität

U Versorgungsspannung

f Schaltfrequenz

IL Leckstrom (in der Regel vernachlässigbar)

Leistung einer CMOS-Schaltung: P = C ∘ U2 f + I∘ L U∘

C Schaltkapazität

U Versorgungsspannung

f Schaltfrequenz

IL Leckstrom (in der Regel vernachlässigbar)

Fazit: Größtes Energiesparpontenzial durch Reduktion der Betriebsspannug Aber Reduktion auch der Taktrate (Frequenz) nötig

Page 10: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 10

technische universität dortmund

embedded system software

Techniken – Überblick● Dynamic Voltage and Frequency Scaling (DVFS)

– Dynamische Anpassung von Taktfrequenz und Spannung um Energie zu sparen

– Setzt geschicktes Scheduling vorraus

● Clock-Gating

– Abschalten des Taktes für CPU, Peripherie durch eine zusätzliche Hardwarekomponente (Gate)

– Softwareumsetzung meist durch Sleep Modes

● Sleep Modes

– Modi zum Abschalten bestimmter Komponenten

– Werden durch Software-Instruktionen ausgewählt

Page 11: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 11

technische universität dortmund

embedded system software

Sleep Modes● Dienen dazu bestimmte Peripheriegeräte abzuschalten

● Modus bestimmt welche Geräte abgeschaltet werden

● Deutliches Energiesparpotenzial, z.B. MSP430Modus Eigenschaften Stromaufnahme Aufwachzeit

AM Aktivmodus ~1420 μA –

LPM0 CPU und MCLK angehalten ~225 μA 0 μs

LPM1 FRAM aus, DCO wenn nicht nötig ~180 μA 6 μs

LPM2 SMCLK, DCO aus ~0,9 μA 7 μs

LPM3 VCC für DCO aus ~0.6 μA 7 μs

LPM4 ACLK aus ~0.5 μA 7 μs

LPM3.5 Nur RTC arbeitet ~0.45 μA 250 μs

LPM4.5 Alle CLKs und Komponenten aus ~0.2 μA 250 μs

Page 12: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 12

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystemen

● Zusammenfassung

Page 13: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 13

technische universität dortmund

embedded system software

Einfache Heuristik: PAST [7]

Idle-Zeiten und Laufzeiten bestimmenIdle-Zeiten und Laufzeiten bestimmen Letzte CPU-Last berechnenLetzte CPU-Last berechnen

Überhang für nächste Periode berechnenÜberhang für nächste Periode berechnen

Geschwindigkeit = 1.0Geschwindigkeit = 1.0 Geschwindigkeit erhöhenGeschwindigkeit erhöhen Geschwindigkeit senkenGeschwindigkeit senken

Last < 50%

Last > 70%

Überhang > Idle-Zeit

Page 14: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 14

technische universität dortmund

embedded system software

Einfache Heuristik: PAST [7]

Idle-Zeiten und Laufzeiten bestimmenIdle-Zeiten und Laufzeiten bestimmen Letzte CPU-Last berechnenLetzte CPU-Last berechnen

Überhang für nächste Periode berechnenÜberhang für nächste Periode berechnen

Geschwindigkeit = 1.0Geschwindigkeit = 1.0 Geschwindigkeit erhöhenGeschwindigkeit erhöhen Geschwindigkeit senkenGeschwindigkeit senken

Last < 50%

Last > 70%

Überhang > Idle-ZeitEnergie-Ersparnis laut Weiser: bis zu 50% und 75%Energie-Ersparnis laut Weiser: bis zu 50% und 75%

Page 15: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 15

technische universität dortmund

embedded system software

DVS mit Echtzeit● In Echtzeitsystem max. Laufzeit meist bekannt (WCET)

● Verwendung des Schlupfs um Laufzeit bei Reduktion der Frequenz auszudehnen

● Bestimmung der Durchführbarkeit eines Schedules mit Formeln (z.B. bei EDF) möglich

Page 16: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 16

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystemen

● Zusammenfassung

Page 17: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 17

technische universität dortmund

embedded system software

Peripherie: Anwendung bisherEvery 5 minutes: Turn on SPI bus Turn on flash chip Turn on voltage reference Turn on I2C bus Log prior readings Start humidity sample Wait 5ms for log Turn off flash chip Turn off SPI bus Wait 12ms for vref Turn on ADC Start total solar sample Wait 2ms for total solar Start photo active sample Wait 2ms for photo active Turn off ADC Turn off voltage reference Wait 34ms for humidity Start temperature sample Wait 220ms for temperature Turn off I2C bus

Abschalten aller nichtbenötigten Peripherie-einheiten

Im tiefstmöglichenSchlafmodus aufMessergebnis warten

Die eigentliche Funktiondes Programms ohnePower Management

Quelle: SuS Folien 3.8 PowerManagement

Page 18: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 18

technische universität dortmund

embedded system software

Peripherie: Beispiel TinyOS● Verlagerung der Energieverwaltung in Treiber

● Kennt drei Arten von Geräten

– Dedicated Devices (Low-Level etwa GPIO-Pin, ADC)

– Shared Devices (z.B. SPI, I2C)

– Virtualized Devices (komplexe Geräte, wie Funkmodul)

Page 19: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 19

technische universität dortmund

embedded system software

TinyOS – Dedicated Devices● Repräsentieren Lowlevel-Devices (GPIO-Pins, Counter,

Timer, …)

● Erlauben nur einen Klienten den Zugrif

● Explizite Steuerung des Energieverbrauchs

● Standardschnittstellen zum Ein- und Ausschalten

– StdControl, AsyncStdControl, SplitControl

interface SplitControl { command error_t start(); event void startDone(error_t error); command error_t stop(); event void stopDone(error_t error); }

interface SplitControl { command error_t start(); event void startDone(error_t error); command error_t stop(); event void stopDone(error_t error); }

Page 20: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 20

technische universität dortmund

embedded system software

TinyOS – Shared Devices● Implizites Power Management

● Gestattet mehreren Komponenten Zugrif auf ein Gerät

– Üblicherweise geteilte Geräte (z.B. Busse, wie I2C, SPI, UART)

Client2

Client2

ArbiterArbiter

Dedicated DeviceDedicated Device

Config1

Config1

Power ManagerPower Manager

Default OwnerArbiter Configure

Lock

StdControl

HW-specific configData Interface

Client1

Client1

Config2

Config2

Page 21: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 21

technische universität dortmund

embedded system software

TinyOS – Virtualized Devices● Stellen einfache funktionale Schnittstelle bereit (z.B.

Paket senden/empfangen)

● Erlauben (implizit) mehrere Nutzer

Dedicated DeviceDedicated Device Power ManagerPower Manager

ArbiterArbiter

Client2

Client2

VirtualizerVirtualizer

Default Owner

StdControl

Lock

Client1

Client1

Page 22: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 22

technische universität dortmund

embedded system software

TinyOS● Verwendung von asynchroner E/A-Schnittstelle

– Erlaubt parallele Ausführung von E/A-Aktionen

● Protokollierung von E/A-Aufträgen erlaubt “Blick in die Zukunft”

– Damit effiziente Ansteuerung von Geräten möglich

● 98% des Optimums erreichbar

Page 23: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 23

technische universität dortmund

embedded system software

Inhalt● Einleitung – Warum Energie sparen?

● Elektrotechnische Grundlagen

● Energiesparen per DVS

● Peripherie und Power-Management

● Energiemodelle in Betriebssystemen

● Zusammenfassung

Page 24: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 24

technische universität dortmund

embedded system software

Herkömmliches Betriebssystem

Page 25: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 25

technische universität dortmund

embedded system software

Energiegewahres Betriebssystem

Page 26: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 26

technische universität dortmund

embedded system software

Nutzerauflagen

ECOSystem

Prozesse

Resource Container

kenrgd

currentcy

Currentcy Unit = Nutzung von ΔE pro ΔtCurrentcy Unit = Nutzung von ΔE pro Δt

Page 27: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 27

technische universität dortmund

embedded system software

ECOSystem

Prozesse

Resource Container

kenrgd

currentcy

Nutzerauflagen

Aufteilung der Zeit in Energieepochen

Aufteilung der Zeit in Energieepochen

Page 28: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 28

technische universität dortmund

embedded system software

ECOSystem

Prozesse

Resource Container

kenrgd

currentcy

Nutzerauflagen

Kernel-Thread verwaltet und verteilt Currentcy im System

Kernel-Thread verwaltet und verteilt Currentcy im System

Page 29: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 29

technische universität dortmund

embedded system software

ECOSystem

Prozesse

Resource Container

kenrgd

currentcy

Nutzerauflagen

Page 30: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 30

technische universität dortmund

embedded system software

ECOSystem - Zusammenfassung● Energie als First-Level-Resource im System

● Prozesse zahlen mit Energiewährung für Benutzung von Geräten

● Erreichen festgelegten Batterielaufzeit (mit max. Abweichung von 10%) möglich

– Allerdings auf Kosten der Performance konkurriender Anwendungen

Page 31: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 31

technische universität dortmund

embedded system software

Energiemodell – PTAs

● Modellierung des Geräts als Finite State Machine

● Transitionen zusätzlich gewichtet mit Zeitschranken und Energieverbrauch

● Zustände gewichtet mit Leistungsaufnahme

Quelle: [2]

Page 32: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 32

technische universität dortmund

embedded system software

Zusammenfassung● Power-Management wichtig insb. in eingebetteten

Systemen

● Dynamic Voltage Scaling erlaubt Energie bei der Verwendung der CPU zu sparen

– Setzt genaue Kenntnis über Verhalten der Prozesse vorraus

– Meist nicht gegeben → Heuristiken und Hints nötig

● Erleichterung der Anwendungsentwicklung durch Verlagerung des Power-Managements in Gerätetreiber

● Energiemodelle erlauben das Accounting und Abschätzen von Energie durch das OS

– Schwierig zu erstellen (messen), vereinfachen daher ungenau

Page 33: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 33

technische universität dortmund

embedded system software

Literatur[1] Zeng, H., Ellis, C., Lebeck, A., Vahdat, A.: ECOSystem. ACM SIGPLAN

Notices. 37, 123 (2002).

[2] Rapczynski, R., Entwurf eines energiegewahren Treibermodells für eingebettete Betriebssysteme, Masterarbeit, TU-Dortmund (2014).

[3] D. Grunwald, C.B. Morrey, P. Levis, M. Neufeld, and K.I. Farkas, Policies for dynamic clock scheduling. In Proceedings of the 4th Conference on Symposium on OSDI. USENIX Association, 2000.

[4] M. Weiser, B. Welch, A. Demers, and S. Shenker. Scheduling for reduced CPU energy. In Proceedings of the 1st USENIX Conference on OSDI (Monterey, California). Vol. 1. USENIX Association, 1994.

[5] K. Klues, V. Handziski, C. Lu, A. Wolisz, D. Culler, D. Gay, and P. Levis. Integrating concurrency control and energy management in device drivers. In Proceedings of Twenty-First ACM SIGOPS Symposium on Operating Systems Principles (SOSP '07). ACM, New York, pages 251-264, 2007.

Page 34: Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ... ECOSystem Prozesse Resource Container kenrgd currentcy Currentcy Unit = Nutzung von

PG 595 - Power Management 34

technische universität dortmund

embedded system software

Literatur

[6] D. Grunwald, C.B. Morrey, P. Levis, M. Neufeld, and K.I. Farkas, Policies for dynamic clock scheduling. In Proceedings of the 4th Conference on Symposium on OSDI. USENIX Association, 2000.

[7] M. Weiser, B. Welch, A. Demers, and S. Shenker. Scheduling for reduced CPU energy. In Proceedings of the 1st USENIX Conference on OSDI (Monterey, California). Vol. 1. USENIX Association, 1994.