Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ......
Transcript of Power Management - ess.cs.tu-dortmund.de · – Modi zum Abschalten bestimmter Komponenten ......
Power ManagementEnergiesparen in eingebetteten Betriebssystemen
Michael Mü[email protected]
AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund
technische universität dortmund
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
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
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
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?
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
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)∘
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)
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
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
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
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
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
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%
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
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
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
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)
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); }
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
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
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
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
PG 595 - Power Management 24
technische universität dortmund
embedded system software
Herkömmliches Betriebssystem
PG 595 - Power Management 25
technische universität dortmund
embedded system software
Energiegewahres Betriebssystem
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
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
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
PG 595 - Power Management 29
technische universität dortmund
embedded system software
ECOSystem
Prozesse
Resource Container
kenrgd
currentcy
Nutzerauflagen
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
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]
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
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.
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.