SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Low-Power Linux



               Wolfram Luithardt

Hochschule für Technik und Architektur,
         Fribourg, Schweiz




     DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   1
Warum Low Power Linux?

Server: Performance ist wichtiger als Energie-
        verbrauch. Low Power primär aus
        Kostengründen
Desktop: Performance ist oft wichtiger als Low Power
Laptops: Low Power primär zur Verlängerung der
         Batterielaufzeit
Mobile:   Batterielaufzeit
Embedded: Oft nur wenig Energie vorhanden.


          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   2
Embedded Systems




DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   3
Warum Low-Power Systeme ?

                                   - Weniger Wärme
                                   - Weniger bewegliche Teile
      Low                          - Weniger Lärm
     Power
     System                         Lebensdauer und Wirkungs-
                                    grad der elektronischen
                                    Komponenten

                                    Weniger Kosten (Energie ist
                                    teuer!!)

Low Power Systeme sind im wahrsten Sinne des Wortes:
                                    cool !
           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   4
Motivation
         Embedded System Roadmap 2002:
     ″Power is considered as the most important
         constraint in embedded systems″

Energy-Harvesting:
- Photovoltaik                                              Leistungsabgaben
- Thermoelektrik                                            an ein System ca:
- Vibrationsgeneratoren                                      100 uW – 10mW
- Mikro-Luftgeneratoren
  Langfristiges Ziel:
  Ein Linuxrechner, der mit einer Energyharvesting-
  Versorgung gespeist wird.

          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   5
Neue Low Power Komponenten

- Display: bistabiles LCD: hält sein Bild auch
  im stromlosen Zustand

- Ram: PASR (Partitial Array Self Refresh):
  dynamisches Ram, das nur teilweise refreshed
  wird.
                                                                             15
- Ram: NVRam (Nichtflüchtiges Ram): >10
  Schreib-Löschzyklen

- Energiespeicher: Supercaps

         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011        6
Leistung einzelner PC-Komponenten

* Mainboard: 25 Watt
* Gehäuselüfter: 5 Watt
* Prozessorlüfter: 3 Watt
* Speichermodul: 10 Watt
* PCI Soundkarte/Netzwerkkarte/Modem: 5 Watt
* Festplatte: 30 Watt
* CD/DVD Laufwerk/Brenner: 30 Watt
* Diskettenlaufwerk: 4 Watt
* Tastatur/Maus/andere USB-Geräte: 3 Watt/Stück
* Grafikkarte: ca. 50-100 Watt je nach Hersteller
* Prozessor:
    Duron: 27Watt /600MHz - 80Watt /1,6 GHz
    Athlon XP: 60Watt /1500+ - 110Watt / 3200+
    Intel P4: 50Watt / 1,6GHz - 100 Watt / 3,2 GHz


      DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   7
Vergleich verschiedener Linux-
    fähiger Prozessorfamilien
Intel Pentium: 120 Watt
Intel Duo 2 Core (z.B. E8600): 65 Watt
Intel Atom: 2-6 Watt
Transmeta Crusoe: 1 Watt
ARM: z.B. AT91SAM9260: 200 mW
Atmel AVR32: 80mW.




         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   8
Bekannte Energiespar-Methoden


       - Screen off-mode

       - Suspend to Ram

     - Suspend to disk
    (Hibernation mode)

   DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   9
Die grundlegende Gleichungen
       P gesamt =P statisch P dynamisch
                    P statisch =∑ U⋅I Leak
U: Corespannung
IL e a k : Leckstrom
                        1      2
           P dynamisch = ⋅⋅C⋅U ⋅f
                        2
α: Aktivitätsfaktor
C: Parasitäre Kapazität (Transistoren und Leitungen)
U: Corespannung
f: Frequenz
          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   10
Technologische Entwicklungen

Von Generation zu Generation:

-   Parasitäre Kapazität/Transistor:                                         ↓
-   Corespannungen: ↓
-   Taktfrequenz: ↑
-   Anzahl-Transistoren pro Chip: ↑

      Dynamische Leistung: =/↑
        Statische Leistung: ↑
         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011       11
Technologische Entwicklungen
        zur Reduktion statischer Verluste:
                   P statisch =∑ U⋅I Leak
- Neue Dielektrika
- DVTCMOS (Dual Voltage Threshold-CMOS):
  Man benützt je nach Aufgabe 2 verschiedene Arten
  von Transistoren (schnell mit hohem IL e a k oder
  langsam mit niedrigem IL e a k

- STI (Sleep Transistor Insertion): Transistoren, die für
   eine gewisse Funktionalität nicht benötigt werden,
   werden stromlos geschaltet.

           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   12
Technologische Entwicklungen
    zur Reduktion dynamischer Verluste:
                    1      2
       P dynamisch = ⋅⋅C⋅U ⋅f
                    2
- ULV-Prozessoren
- Clock-Gating: Optimierung der Anzahl
  der Transistoren, die bei einer gewissen
  Operation getaktet werden müssen.

- Cross Talk Avoidance: z. B. durch Vertau-
  schen von Leitungen etc.
        DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   13
Sparmöglichkeiten
      - Abschaltung von nicht benötigter
        Peripherie
                                                   Verbrauch ARM Cortex M3- STM32F103x8
- Reduktion der
  Taktfrequenz                                    40
                                                           Run, Peri on
                                                  35       Run, Peri off
                                                           Sleep, Peri on
                                                  30
- Reduktion der             Stromverbaruch [mA]
                                                  25
                                                           Sleep, Peri off
                                                           Stop
  Versorgungs-                                    20
  spannung                                        15

                                                  10

                                                   5
- Kombination                                      0

  von Allem !!!!                                       0     10     20        30     40     50
                                                                             Taktfrequenz [MHz]
                                                                                                  60   70   80




           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011                                14
The real world
      Verbrauch UNC90, AT91RM9200




DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   15
Abhängigkeit von Spannung und Frequenz




                                                             XScale, Quelle Intel

     DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011          16
X86 Sleep-modes
                                P-States:
   Verringerung der Frequenz und der Corespannung

                                C-States:
Beispiel: Intel® Core™2 Duo
C-State                             max Leistung
C0            Running Mode            35.0 Watt
C1            Idle Mode               13.5 Watt
C2            Ohne Datenbus           12.9 Watt
C3            Deaktivierung PLL        7.7 Watt
C4            Enhanced Deeper Sleep    1.2 Watt

          http://www.lesswatts.org/documentation/silicon-power-mgmnt/
               DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   17
Warum verschiedene Sleep-Modes?

Leistungsaufnahme                                                    Beispiel: Intel®
                                     C0 Mode                         Core™2 Duo
                                      35.0 Watt


                10 ns

         C1 Mode                   100 ns                        250 us
          13.5 Watt
                                                   50 us
                         C2 Mode
                          12.9 Watt

                                               C3 Mode
                                                  7.7 Watt                       C4 Mode
                                                                                  1.2 Watt


             DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011               18
Beispiel Sleep-Modes: ARM

Strongarm SA1100                   Active
                                  400 mW


              10μs
                                                         160ms
                           10μs              90μs

           Idle                                             Sleep
          50 mW                    90μs                    160 μW


 Woher weiss der Prozessor, in welchen Zustand er gehen kann ?


           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   19
Grundlegende Prinzipien

 Grundzustand aktiv, schlafen nur,                               Wartendes
      wenn nichts zu tun ist                                   Betriebssystem



Grundzustand schlafend, aktiv nur, Ereignisgesteuertes
      wenn etwas zu tun ist           Betriebssystem



   Grundzustand aus, aktiv nur,
                                                           Energiegesteuertes
     wenn genügend Energie                                   Betriebssystem
         vorhanden ist

          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011     20
Unix- Prozessmodel

externes                                                  Problematik bei
Gerät                  Polling                          energiegesteuertem
                                                          Betriebssystem:

                                    Aktiv                   Bootzeit
Interrupt



                Blockiert                          Wartend



       DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   21
Reduktion der Aufstartzeit
Karo TX-25




                         66 Sek               8 Sek
                               Quelle: D. Doninelli: TX25-Fast Boot, EIA-FR 2011
         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011     22
Wie sieht dies in der Praxis aus ?

      - Dynamische
       Reduktion der
        Taktfrequenz                                 - Prozessor
                                                    schlafen legen
- Abschaltung von
  nicht benötigter
     Peripherie                             - Reduktion der
                                              Versorgungs-
                                                spannung

         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   23
Plattform UNC90
    http://www.digi.com/pdf/prd_em_unc90.pdf
     - Prozessor: AT91RM9200 (ARM 920EJ)
     - Maximale Frequenz: 180 MHz
     - 32 MB Ram, 16 MB Flash
     - Linux Kernel 2.6.12

                                          Um

 Spannungs-
   regler
                              0.1 Ω                      UNC90- Modul
Ausgang 3.3 V           I = Um / 0.1Ω
                        P = U·I = Um2 / R

        DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   24
Crosscompiling
                                      PC mit Ubuntu +
                                      UNC90-Crosscompiling
 UNC90                                Umgebung
                            TFTP        TFTP-Server mit
 Kernel                                 Kernel für UNC90

                            NFS         Filesystem auf
Filesystem                              NFS-Partition

                           seriell      Terminalprogramm
 Terminal
                                        (minicom)

  DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   25
Frequencyscaling
             Power Management Controller PMC



  Prozessorfrequenz




Frequenzverhältnis
   zur Peripherie


             DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   26
Manuelles Frequencyscaling

saveCurrent()
{
   PMC_ MCKR |= PRES_DIV2;               // Master Clock register auf /2 stellen
   US_BRGR = US_BRGR /2;                  // USART Baudrate Divider Register
}

normalCurrent()
{
   PMC_ MCKR &= ~PRES_DIV2;                 // Master Clock register auf /1 stellen
   US_BRGR = US_BRGR *2;                    // USART Baudrate Divider Register
}



     Wie kann dieses automatisiert werden ?
            DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   27
Unix- Prozessmodel

externes
Gerät                  Polling


                                 Laufend                                   Aktive
                                                                           Prozesse
Interrupt



                Blockiert                          Wartend



       DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011        28
Die runqueue
        runqueue-Struktur im Kernel                                         geblockte Prozesse:



run      Idle-         Proc          Proc
queue    Task           1             2




 Ein Feld dieser Struktur: nr_running enthält die Anzahl
     der aktiven Prozesse (inklusive des Idle-Tasks)



                 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011           29
Ein einfacher Patch in sched.c

Die Funktion schedule() wird bei jedem Kontextwechsel
(preemptiv oder gewünscht) aufgerufen:
if(unlikely(rq -> nr_running == 1)){
     if(saveMode == 0){
          saveCurrent();
          saveMode = 1;
     }
} else {
     if(saveMode != 0){
          normalCurrent();
          saveMode = 0;
     }
}

          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   30
Die Routinen
saveCurrent() {
   local_irq_disable();
   waitForTXReady();                    waitForTXReady(){
   saveCurrent();                         do {
   local_irq_enable();                         /* wait until TX_Ready
}                                                 Bit in USART Channel
                                                  Status Register set
normalCurrent() {                              */
   local_irq_disable();                   }
   waitForTXReady();                      while((US_ CSR & TXRDY)==0)
   normalCurrent();                     }
   local_irq_enable();
}


          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   31
Ein etwas besserer Patch

if(unlikely(rq -> nr_running == 1)){
  if((saveMode == 0)&&(saveCounter > SAVEWAIT)){
     saveCurrent();
     saveMode = 1;
  } else {
     saveCounter++;
  }
} else {
  if(saveMode != 0){
     normalCurrent();
     saveMode = 0;
  }
  saveCounter = 0;
}

           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   32
Ergebnisse
                 ohne         SAVEWAIT SAVEWAIT SAVEWAIT SAVEWAIT
                 Patch           =1       =2       =3       =5

 Active        232 mA           232 mA           232 mA           232 mA           232 mA
   Idle        232 mA           170 mA           170 mA           170 mA           170 mA
Time [ms]       15810            16700            16200             16000          15830
Stabilität         80              200              170               130           100
  [ms]

Die Zeit wird mit einem Programm gemessen, das eine einfache mathe-
matische Funktion ausführt.

          Warum nicht die Frequenz noch weiter senken?

               DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011          33
Sleep-Mode

in linux/include/asm-arm/arch-at91rm9200/system.h

static inline void arch_cpu_idle()
{
   AT91_SYS -> PMC_SCDR = AT91C_PMC_PCK;
}

Ergebnisse: sleepmode: 232 mA → 130 mA
mit Frequenzscaling:   170 mA → 112 mA


Wie lange kann ein System im Sleep-Mode bleiben?

        DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   34
PowerTop
      PowerTOP version 1.9                  (C) 2007 Intel Corporation
      Cn        Verweildauer                 P-States (Frequenzen)
      C0           0,3%                           2,00 GHz      0%
      C1           0,0%                           1,60 GHz      0%
      C2          99,7%                           1,20 GHz 100 %
Aufwachen pro Sekunde : 52,1 Intervall: 15,0s
Häufigste Ursachen für das Aufwachen:
32,5% (20,0)     beagled : futex_wait (hrtimer_wakeup)
16,3% (10,0) <kernel core> : ehci_work (ehci_watchdog)
11,1% ( 6,8) <interrupt> : ahci
 6,9% ( 4,3) <interrupt> : acpi
 6,5% ( 4,0) <kernel module> : usb_hcd_poll_rh_status (rh_timer_func)
 5,2% ( 3,2) <interrupt> : extra timer interrupt
 4,9% ( 3,0)     kicker : schedule_timeout (process_timeout)
 2,2% ( 1,3)     klipper : schedule_timeout (process_timeout)

            DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   35
Nach allen Tipps
      Cn               Verweildauer              P-States (Frequenzen)
      C0                0,1%                    2,00 GHz      0,0%
      C1                0,0%                    1,60 GHz      0,0%
      C2              99,9%                     1200 MHz 100,0%
Aufwachen pro Sekunde : 21,8 Intervall: 20,0s
Häufigste Ursachen für das Aufwachen:
42,6% ( 10,0) <kernel core> : ehci_work (ehci_watchdog)
17,3% ( 4,0) <kernel module> : usb_hcd_poll_rh_status (rh_timer_func)
 8,7% ( 2,0)    kicker : schedule_timeout (process_timeout)
 7,9% ( 1,9)    kwin : schedule_timeout (process_timeout)
 5,3% ( 1,2)    klipper : schedule_timeout (process_timeout)
 4,3% ( 1,0)    kwrapper : do_nanosleep (hrtimer_wakeup)
 4,3% ( 1,0) <kernel core> : queue_delayed_work_on
 1,7% ( 0,4)    kdesktop : schedule_timeout (process_timeout)

              DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   36
Linux Kernel vor 2.6.21

                                        Erhöhung der jiffies-Variable

Timer-Ticks
(alle 1, 4 oder                         Process Accounting: Wieviel Zeit
10 ms)                                  hat jeder Prozess verbraucht ?

                                        Scheduler: Muss ein Kontext-
                                        wechsel durchgeführt werden ?


                                        Sind SW-Timer abgelaufen ?

         Nur benötigt, wenn ein Programm aktiv ist
        Wird auch im Idle-Modus benötigt

            DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   37
Linux Kernel nach 2.6.21
         Thomas Gleixner, Ingo Molnár et al.:
                  Tickless Kernel

HPET (High Precission                         Jiffies-Variable wird nur
    Event Timer)                              erhöht, wenn ein Prozess
                                              aktiv ist

                                              Process Accounting
     Scheduler
                                              Kontextwechsel

                                              Abgelaufene Timer werden
                                              vom HPET gemanaged
     Interrupts
 Wenn kein Prozess aktiv ist kann der Prozessor im
              Schlaf-Mode bleiben!
         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   38
Linux Kernel nach 2.6.21
Grouping:


     1 Sekunde                                           1 Sekunde

Systemaufrufe:
unsigned long round_jiffies(unsigned long j);
unsigned long __round_jiffies_relative(unsigned long j, int cpu);

       Neue Applikationen immer mit Power-Top oder
                    ähnlichem testen !

 Alle gezeigten Messungen waren mit einem alten Kernel.
      Wie sieht es mit einem aktuelleren System aus?
             DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   39
Armadeus: APF-27

www.armadeus.org

- Prozessor Freescale i.mx27
- Takt bis 400MHz
- 64 MB RAM
- 16 MB Flash
- Ethernet, USB etc...
- FPGA

- Kernel: 2.6.29.4

          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   40
On demand Governor
  make linux26-menuconfig




DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   41
Messungen unterschiedlicher
       Frequenzscalingmethoden
Frequenzscaling Methode Strom Idle [mA] Strom aktiv [mA]
Perfomance Governor                        512 (400 MHz)                 723 (400 MHz)
Powersave Governor                         494 (133 MHz)                 494 (133 MHz)
Ondemand Governor                          494 (133 MHz)                 723 (400 MHz)
Scheduler Patch                            371 (200 MHz)                 723 (400 MHz)
Scheduler Patch                            348 (133 MHz)                 723 (400 MHz)
 Die aktuelle Frequenz kann über das sysfs bestimmt werden:
   /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

Interessantes Paper zum Thema:
http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/doc/OLS2006-ondemand-paper.pdf


                 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011       42
Sleep Mode auf APF-27
  Im File:/linux-2.6.29.4/arch/arm/mm/proc-arm926.S
ENTRY(cpu_arm926_do_idle)
  mov     r0, #0
  mrc     p15, 0, r1, c1, c0, 0                       @ Read control register
  mcr     p15, 0, r0, c7, c10, 4                      @ Drain write buffer
  bic     r2, r1, #1 << 12
  mrs     r3, cpsr                                    @ Disable FIQs while Icache
  orr     ip, r3, #PSR_F_BIT                          @ is disabled
  msr     cpsr_c, ip
  mcr     p15, 0, r2, c1, c0, 0                       @   Disable I cache
  mcr     p15, 0, r0, c7, c0, 4                       @   Wait for interrupt
  mcr     p15, 0, r1, c1, c0, 0                       @   Restore ICache enable
  msr     cpsr_c, r3                                  @   Restore FIQ state
  mov     pc, lr

 Ausschaltbar über Kernelboot-Parameter: no-hlt oder über Systemfunktion: disable_hlt();
 Strom:                     512 mA → 725 mA
                 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   43
Was bringt Tickless ?
ohne Tickless: I = 535 mA




Tickless: I = 515 mA




   DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   44
Was bringt Tickless ?




http://www.phoronix.com/scan.php?page=article&item=651&num=1
            DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   45
Ausschalten von Peripherie
  Bisher wurden die Messungen ohne
       USB-Support durchgeführt !




   DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   46
Eingeschaltetes USB
512 mA → 725 mA (+ ~30%)

Wird dies durch SW oder HW verursacht ?




  DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   47
Konfiguration des USB
- Über 100 Register !

- Peripheral Clock Control Register des Clockmoduls:
   Durch Ausschalten des Bits USB AHB Clock Enable,
   (Advanced High-performance Bus) wird der Strom reduziert
   (Clock-Gating ??? --> !!!)

- Der AHB Clock wird aber nur zum Erkennen eines neuen
  USB-Gerätes benötigt. Dies' ermöglicht, durch ein einfaches
  Programm, welches periodisch den USB AHB Clock ein-
  schaltet, den Stromverbrauch massgeblich zu reduzieren....


           DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   48
Userspace-dynamisches USB

User Space                                Kernel Space

 Procedure
  loop{
 - AHB einschalten
 - Status Register lesen                             Zugriff auf Register
 - AHB ausschalten
 - sleep(1);
 }

             Einsparung bei APF-27: 30%

Lassen sich solche Lösungen generalisieren ?
         DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   49
Neue Plattform FRIARM

- Komplettes ereignisgesteuertes System
  (Interrupt-Handling)
- Dynamische Frequenz- und Corespannungs-Anpassung
- Dual-Ram zur Reduktion der Zugriffsfrequenz und damit
  Reduktion der Versorgungsspannung
- Ram/Flash wird durch NV-Ram ersetzt: Ausschalten des
  Stromes in Ruhephasen, Live-Daten im Ram, um
  schnelles Booten zu ermöglichen
- Display mit bistabilem LCD


          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   50
Literatur

Daniel P. Bovet, Marco Cesati: Understanding the
Linux Kernel, O'Reilly, ISBN: 978-0-596-00565-8

http://www.mjmwired.net/kernel/Documentation/cpu-
freq/governors.txt

http://www.carlthompson.net/software/cpuspeed/

www.lesswatts.org

Manuals der Prozessoren

          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   51
Dank an die beteiligten Personen

Vielen Dank an:
Silvain Décastel, Xavier Menoud, Andéol Demierre
und Igor Zanetti für die interessanten Analysen des
Linux-Systems.
Guy Morand und Davide Doninelli für Ihre tollen
Arbeiten zum Fastboot an verschiedenen Systemen.
Sowie an Daniel Gachet und Nicolas Schroeter ' für
die vielen interessante Diskussionen zu diesem
Thema....



          DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   52
und natürlich....

Vielen Dank auch für Ihre
    Aufmerksamkeit !



                  Weitere Infos:

       wolfram.luithardt@hefr.ch



 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011   53

Contenu connexe

En vedette (6)

FPGA Configuration
FPGA ConfigurationFPGA Configuration
FPGA Configuration
 
DSD
DSDDSD
DSD
 
Arm 1-overview-090720075211-phpapp01
Arm 1-overview-090720075211-phpapp01Arm 1-overview-090720075211-phpapp01
Arm 1-overview-090720075211-phpapp01
 
Multiple EEPROM and Flash Memory Programmer Circuits
Multiple EEPROM and Flash Memory Programmer Circuits Multiple EEPROM and Flash Memory Programmer Circuits
Multiple EEPROM and Flash Memory Programmer Circuits
 
Introduction to NanoBoard-3000 FPGA
Introduction to NanoBoard-3000 FPGA Introduction to NanoBoard-3000 FPGA
Introduction to NanoBoard-3000 FPGA
 
Embedded System Basics
Embedded System BasicsEmbedded System Basics
Embedded System Basics
 

Similaire à Low power linux

Intelligente Steuerungstechnologie für LED
Intelligente Steuerungstechnologie für LEDIntelligente Steuerungstechnologie für LED
Intelligente Steuerungstechnologie für LEDLea-María Louzada
 
Tatawin midoun presentation v16
Tatawin midoun presentation v16Tatawin midoun presentation v16
Tatawin midoun presentation v16ELYAS90
 
kuehn-digital_09
kuehn-digital_09kuehn-digital_09
kuehn-digital_09telst
 
EI_2011_07_fürs-Internet
EI_2011_07_fürs-InternetEI_2011_07_fürs-Internet
EI_2011_07_fürs-Internetnaveenfhd
 
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...Lika Electronic
 
Die serielle Schnittstelle
Die serielle Schnittstelle Die serielle Schnittstelle
Die serielle Schnittstelle LabDev
 
Katalog Megger Messgeräte für Niederspannungsnetze 2017
Katalog Megger Messgeräte für Niederspannungsnetze 2017Katalog Megger Messgeräte für Niederspannungsnetze 2017
Katalog Megger Messgeräte für Niederspannungsnetze 2017e-Marke Österreich
 
Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2Edward Tuttle
 
Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2elmeansthe
 
Recom, Self, HN-Power, Ansmann, Yuasa und weitere
Recom, Self, HN-Power, Ansmann, Yuasa und weitereRecom, Self, HN-Power, Ansmann, Yuasa und weitere
Recom, Self, HN-Power, Ansmann, Yuasa und weitereSchukat Electronic
 
Atlas Copco Energieoptimierung
Atlas Copco Energieoptimierung Atlas Copco Energieoptimierung
Atlas Copco Energieoptimierung Marketing CTS
 
Energie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der StraßenbeleuchtungEnergie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der StraßenbeleuchtungDKI Deutsches Kupferinstitut
 
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdfSamuel Ou
 
Energiespeicher LotusG2 - Alternative Energiesysteme Holleis
Energiespeicher LotusG2 - Alternative Energiesysteme HolleisEnergiespeicher LotusG2 - Alternative Energiesysteme Holleis
Energiespeicher LotusG2 - Alternative Energiesysteme HolleisMartin Pletzenauer
 
DL3LAC-Antennenkoppler by DK8EY
DL3LAC-Antennenkoppler by DK8EYDL3LAC-Antennenkoppler by DK8EY
DL3LAC-Antennenkoppler by DK8EYChristoph Huetten
 

Similaire à Low power linux (20)

Intelligente Steuerungstechnologie für LED
Intelligente Steuerungstechnologie für LEDIntelligente Steuerungstechnologie für LED
Intelligente Steuerungstechnologie für LED
 
Tatawin midoun presentation v16
Tatawin midoun presentation v16Tatawin midoun presentation v16
Tatawin midoun presentation v16
 
kuehn-digital_09
kuehn-digital_09kuehn-digital_09
kuehn-digital_09
 
S3 l stromumwandler tlb
S3 l stromumwandler tlbS3 l stromumwandler tlb
S3 l stromumwandler tlb
 
EI_2011_07_fürs-Internet
EI_2011_07_fürs-InternetEI_2011_07_fürs-Internet
EI_2011_07_fürs-Internet
 
Batz Leuchtsysteme Katalog 2007
Batz Leuchtsysteme Katalog 2007Batz Leuchtsysteme Katalog 2007
Batz Leuchtsysteme Katalog 2007
 
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...
Inkrementellen, programmierbaren Geber IQ58 / IP58 von Lika Electronic (deuts...
 
4 510052
4 5100524 510052
4 510052
 
Vitorsworkshop
VitorsworkshopVitorsworkshop
Vitorsworkshop
 
Die serielle Schnittstelle
Die serielle Schnittstelle Die serielle Schnittstelle
Die serielle Schnittstelle
 
Smart act 1 German
Smart act 1 GermanSmart act 1 German
Smart act 1 German
 
Katalog Megger Messgeräte für Niederspannungsnetze 2017
Katalog Megger Messgeräte für Niederspannungsnetze 2017Katalog Megger Messgeräte für Niederspannungsnetze 2017
Katalog Megger Messgeräte für Niederspannungsnetze 2017
 
Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2
 
Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2Beschreibung zentaurus rev.1.2
Beschreibung zentaurus rev.1.2
 
Recom, Self, HN-Power, Ansmann, Yuasa und weitere
Recom, Self, HN-Power, Ansmann, Yuasa und weitereRecom, Self, HN-Power, Ansmann, Yuasa und weitere
Recom, Self, HN-Power, Ansmann, Yuasa und weitere
 
Atlas Copco Energieoptimierung
Atlas Copco Energieoptimierung Atlas Copco Energieoptimierung
Atlas Copco Energieoptimierung
 
Energie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der StraßenbeleuchtungEnergie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der Straßenbeleuchtung
 
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf
(德语) INVT_Katalog Solar-Wechselrichter_2023.4.10.pdf
 
Energiespeicher LotusG2 - Alternative Energiesysteme Holleis
Energiespeicher LotusG2 - Alternative Energiesysteme HolleisEnergiespeicher LotusG2 - Alternative Energiesysteme Holleis
Energiespeicher LotusG2 - Alternative Energiesysteme Holleis
 
DL3LAC-Antennenkoppler by DK8EY
DL3LAC-Antennenkoppler by DK8EYDL3LAC-Antennenkoppler by DK8EY
DL3LAC-Antennenkoppler by DK8EY
 

Plus de Digicomp Academy AG

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Digicomp Academy AG
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Digicomp Academy AG
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Digicomp Academy AG
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutDigicomp Academy AG
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutDigicomp Academy AG
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xDigicomp Academy AG
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Digicomp Academy AG
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinDigicomp Academy AG
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Digicomp Academy AG
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattDigicomp Academy AG
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogDigicomp Academy AG
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnDigicomp Academy AG
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingDigicomp Academy AG
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessDigicomp Academy AG
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Digicomp Academy AG
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceDigicomp Academy AG
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudDigicomp Academy AG
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slidesDigicomp Academy AG
 

Plus de Digicomp Academy AG (20)

Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
Becoming Agile von Christian Botta – Personal Swiss Vortrag 2019
 
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
Swiss IPv6 Council – Case Study - Deployment von IPv6 in einer Container Plat...
 
Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018Innovation durch kollaboration gennex 2018
Innovation durch kollaboration gennex 2018
 
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handoutRoger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
Roger basler meetup_digitale-geschaeftsmodelle-entwickeln_handout
 
Roger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handoutRoger basler meetup_21082018_work-smarter-not-harder_handout
Roger basler meetup_21082018_work-smarter-not-harder_handout
 
Xing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit xXing expertendialog zu nudge unit x
Xing expertendialog zu nudge unit x
 
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
Responsive Organisation auf Basis der Holacracy – nur ein Hype oder die Zukunft?
 
IPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe KleinIPv6 Security Talk mit Joe Klein
IPv6 Security Talk mit Joe Klein
 
Agiles Management - Wie geht das?
Agiles Management - Wie geht das?Agiles Management - Wie geht das?
Agiles Management - Wie geht das?
 
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi OdermattGewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
Gewinnen Sie Menschen und Ziele - Referat von Andi Odermatt
 
Querdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING ExpertendialogQuerdenken mit Kreativitätsmethoden – XING Expertendialog
Querdenken mit Kreativitätsmethoden – XING Expertendialog
 
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickelnXing LearningZ: Digitale Geschäftsmodelle entwickeln
Xing LearningZ: Digitale Geschäftsmodelle entwickeln
 
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only BuildingSwiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
Swiss IPv6 Council: The Cisco-Journey to an IPv6-only Building
 
UX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital BusinessUX – Schlüssel zum Erfolg im Digital Business
UX – Schlüssel zum Erfolg im Digital Business
 
Minenfeld IPv6
Minenfeld IPv6Minenfeld IPv6
Minenfeld IPv6
 
Was ist design thinking
Was ist design thinkingWas ist design thinking
Was ist design thinking
 
Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich Die IPv6 Journey der ETH Zürich
Die IPv6 Journey der ETH Zürich
 
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)CommerceXing LearningZ: Die 10 + 1 Trends im (E-)Commerce
Xing LearningZ: Die 10 + 1 Trends im (E-)Commerce
 
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloudZahlen Battle: klassische werbung vs.online-werbung-somexcloud
Zahlen Battle: klassische werbung vs.online-werbung-somexcloud
 
General data protection regulation-slides
General data protection regulation-slidesGeneral data protection regulation-slides
General data protection regulation-slides
 

Low power linux

  • 1. Low-Power Linux Wolfram Luithardt Hochschule für Technik und Architektur, Fribourg, Schweiz DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 1
  • 2. Warum Low Power Linux? Server: Performance ist wichtiger als Energie- verbrauch. Low Power primär aus Kostengründen Desktop: Performance ist oft wichtiger als Low Power Laptops: Low Power primär zur Verlängerung der Batterielaufzeit Mobile: Batterielaufzeit Embedded: Oft nur wenig Energie vorhanden. DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 2
  • 3. Embedded Systems DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 3
  • 4. Warum Low-Power Systeme ? - Weniger Wärme - Weniger bewegliche Teile Low - Weniger Lärm Power System Lebensdauer und Wirkungs- grad der elektronischen Komponenten Weniger Kosten (Energie ist teuer!!) Low Power Systeme sind im wahrsten Sinne des Wortes: cool ! DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 4
  • 5. Motivation Embedded System Roadmap 2002: ″Power is considered as the most important constraint in embedded systems″ Energy-Harvesting: - Photovoltaik Leistungsabgaben - Thermoelektrik an ein System ca: - Vibrationsgeneratoren 100 uW – 10mW - Mikro-Luftgeneratoren Langfristiges Ziel: Ein Linuxrechner, der mit einer Energyharvesting- Versorgung gespeist wird. DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 5
  • 6. Neue Low Power Komponenten - Display: bistabiles LCD: hält sein Bild auch im stromlosen Zustand - Ram: PASR (Partitial Array Self Refresh): dynamisches Ram, das nur teilweise refreshed wird. 15 - Ram: NVRam (Nichtflüchtiges Ram): >10 Schreib-Löschzyklen - Energiespeicher: Supercaps DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 6
  • 7. Leistung einzelner PC-Komponenten * Mainboard: 25 Watt * Gehäuselüfter: 5 Watt * Prozessorlüfter: 3 Watt * Speichermodul: 10 Watt * PCI Soundkarte/Netzwerkkarte/Modem: 5 Watt * Festplatte: 30 Watt * CD/DVD Laufwerk/Brenner: 30 Watt * Diskettenlaufwerk: 4 Watt * Tastatur/Maus/andere USB-Geräte: 3 Watt/Stück * Grafikkarte: ca. 50-100 Watt je nach Hersteller * Prozessor: Duron: 27Watt /600MHz - 80Watt /1,6 GHz Athlon XP: 60Watt /1500+ - 110Watt / 3200+ Intel P4: 50Watt / 1,6GHz - 100 Watt / 3,2 GHz DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 7
  • 8. Vergleich verschiedener Linux- fähiger Prozessorfamilien Intel Pentium: 120 Watt Intel Duo 2 Core (z.B. E8600): 65 Watt Intel Atom: 2-6 Watt Transmeta Crusoe: 1 Watt ARM: z.B. AT91SAM9260: 200 mW Atmel AVR32: 80mW. DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 8
  • 9. Bekannte Energiespar-Methoden - Screen off-mode - Suspend to Ram - Suspend to disk (Hibernation mode) DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 9
  • 10. Die grundlegende Gleichungen P gesamt =P statisch P dynamisch P statisch =∑ U⋅I Leak U: Corespannung IL e a k : Leckstrom 1 2 P dynamisch = ⋅⋅C⋅U ⋅f 2 α: Aktivitätsfaktor C: Parasitäre Kapazität (Transistoren und Leitungen) U: Corespannung f: Frequenz DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 10
  • 11. Technologische Entwicklungen Von Generation zu Generation: - Parasitäre Kapazität/Transistor: ↓ - Corespannungen: ↓ - Taktfrequenz: ↑ - Anzahl-Transistoren pro Chip: ↑ Dynamische Leistung: =/↑ Statische Leistung: ↑ DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 11
  • 12. Technologische Entwicklungen zur Reduktion statischer Verluste: P statisch =∑ U⋅I Leak - Neue Dielektrika - DVTCMOS (Dual Voltage Threshold-CMOS): Man benützt je nach Aufgabe 2 verschiedene Arten von Transistoren (schnell mit hohem IL e a k oder langsam mit niedrigem IL e a k - STI (Sleep Transistor Insertion): Transistoren, die für eine gewisse Funktionalität nicht benötigt werden, werden stromlos geschaltet. DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 12
  • 13. Technologische Entwicklungen zur Reduktion dynamischer Verluste: 1 2 P dynamisch = ⋅⋅C⋅U ⋅f 2 - ULV-Prozessoren - Clock-Gating: Optimierung der Anzahl der Transistoren, die bei einer gewissen Operation getaktet werden müssen. - Cross Talk Avoidance: z. B. durch Vertau- schen von Leitungen etc. DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 13
  • 14. Sparmöglichkeiten - Abschaltung von nicht benötigter Peripherie Verbrauch ARM Cortex M3- STM32F103x8 - Reduktion der Taktfrequenz 40 Run, Peri on 35 Run, Peri off Sleep, Peri on 30 - Reduktion der Stromverbaruch [mA] 25 Sleep, Peri off Stop Versorgungs- 20 spannung 15 10 5 - Kombination 0 von Allem !!!! 0 10 20 30 40 50 Taktfrequenz [MHz] 60 70 80 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 14
  • 15. The real world Verbrauch UNC90, AT91RM9200 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 15
  • 16. Abhängigkeit von Spannung und Frequenz XScale, Quelle Intel DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 16
  • 17. X86 Sleep-modes P-States: Verringerung der Frequenz und der Corespannung C-States: Beispiel: Intel® Core™2 Duo C-State max Leistung C0 Running Mode 35.0 Watt C1 Idle Mode 13.5 Watt C2 Ohne Datenbus 12.9 Watt C3 Deaktivierung PLL 7.7 Watt C4 Enhanced Deeper Sleep 1.2 Watt http://www.lesswatts.org/documentation/silicon-power-mgmnt/ DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 17
  • 18. Warum verschiedene Sleep-Modes? Leistungsaufnahme Beispiel: Intel® C0 Mode Core™2 Duo 35.0 Watt 10 ns C1 Mode 100 ns 250 us 13.5 Watt 50 us C2 Mode 12.9 Watt C3 Mode 7.7 Watt C4 Mode 1.2 Watt DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 18
  • 19. Beispiel Sleep-Modes: ARM Strongarm SA1100 Active 400 mW 10μs 160ms 10μs 90μs Idle Sleep 50 mW 90μs 160 μW Woher weiss der Prozessor, in welchen Zustand er gehen kann ? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 19
  • 20. Grundlegende Prinzipien Grundzustand aktiv, schlafen nur, Wartendes wenn nichts zu tun ist Betriebssystem Grundzustand schlafend, aktiv nur, Ereignisgesteuertes wenn etwas zu tun ist Betriebssystem Grundzustand aus, aktiv nur, Energiegesteuertes wenn genügend Energie Betriebssystem vorhanden ist DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 20
  • 21. Unix- Prozessmodel externes Problematik bei Gerät Polling energiegesteuertem Betriebssystem: Aktiv Bootzeit Interrupt Blockiert Wartend DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 21
  • 22. Reduktion der Aufstartzeit Karo TX-25 66 Sek 8 Sek Quelle: D. Doninelli: TX25-Fast Boot, EIA-FR 2011 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 22
  • 23. Wie sieht dies in der Praxis aus ? - Dynamische Reduktion der Taktfrequenz - Prozessor schlafen legen - Abschaltung von nicht benötigter Peripherie - Reduktion der Versorgungs- spannung DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 23
  • 24. Plattform UNC90 http://www.digi.com/pdf/prd_em_unc90.pdf - Prozessor: AT91RM9200 (ARM 920EJ) - Maximale Frequenz: 180 MHz - 32 MB Ram, 16 MB Flash - Linux Kernel 2.6.12 Um Spannungs- regler 0.1 Ω UNC90- Modul Ausgang 3.3 V I = Um / 0.1Ω P = U·I = Um2 / R DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 24
  • 25. Crosscompiling PC mit Ubuntu + UNC90-Crosscompiling UNC90 Umgebung TFTP TFTP-Server mit Kernel Kernel für UNC90 NFS Filesystem auf Filesystem NFS-Partition seriell Terminalprogramm Terminal (minicom) DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 25
  • 26. Frequencyscaling Power Management Controller PMC Prozessorfrequenz Frequenzverhältnis zur Peripherie DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 26
  • 27. Manuelles Frequencyscaling saveCurrent() { PMC_ MCKR |= PRES_DIV2; // Master Clock register auf /2 stellen US_BRGR = US_BRGR /2; // USART Baudrate Divider Register } normalCurrent() { PMC_ MCKR &= ~PRES_DIV2; // Master Clock register auf /1 stellen US_BRGR = US_BRGR *2; // USART Baudrate Divider Register } Wie kann dieses automatisiert werden ? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 27
  • 28. Unix- Prozessmodel externes Gerät Polling Laufend Aktive Prozesse Interrupt Blockiert Wartend DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 28
  • 29. Die runqueue runqueue-Struktur im Kernel geblockte Prozesse: run Idle- Proc Proc queue Task 1 2 Ein Feld dieser Struktur: nr_running enthält die Anzahl der aktiven Prozesse (inklusive des Idle-Tasks) DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 29
  • 30. Ein einfacher Patch in sched.c Die Funktion schedule() wird bei jedem Kontextwechsel (preemptiv oder gewünscht) aufgerufen: if(unlikely(rq -> nr_running == 1)){ if(saveMode == 0){ saveCurrent(); saveMode = 1; } } else { if(saveMode != 0){ normalCurrent(); saveMode = 0; } } DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 30
  • 31. Die Routinen saveCurrent() { local_irq_disable(); waitForTXReady(); waitForTXReady(){ saveCurrent(); do { local_irq_enable(); /* wait until TX_Ready } Bit in USART Channel Status Register set normalCurrent() { */ local_irq_disable(); } waitForTXReady(); while((US_ CSR & TXRDY)==0) normalCurrent(); } local_irq_enable(); } DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 31
  • 32. Ein etwas besserer Patch if(unlikely(rq -> nr_running == 1)){ if((saveMode == 0)&&(saveCounter > SAVEWAIT)){ saveCurrent(); saveMode = 1; } else { saveCounter++; } } else { if(saveMode != 0){ normalCurrent(); saveMode = 0; } saveCounter = 0; } DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 32
  • 33. Ergebnisse ohne SAVEWAIT SAVEWAIT SAVEWAIT SAVEWAIT Patch =1 =2 =3 =5 Active 232 mA 232 mA 232 mA 232 mA 232 mA Idle 232 mA 170 mA 170 mA 170 mA 170 mA Time [ms] 15810 16700 16200 16000 15830 Stabilität 80 200 170 130 100 [ms] Die Zeit wird mit einem Programm gemessen, das eine einfache mathe- matische Funktion ausführt. Warum nicht die Frequenz noch weiter senken? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 33
  • 34. Sleep-Mode in linux/include/asm-arm/arch-at91rm9200/system.h static inline void arch_cpu_idle() { AT91_SYS -> PMC_SCDR = AT91C_PMC_PCK; } Ergebnisse: sleepmode: 232 mA → 130 mA mit Frequenzscaling: 170 mA → 112 mA Wie lange kann ein System im Sleep-Mode bleiben? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 34
  • 35. PowerTop PowerTOP version 1.9 (C) 2007 Intel Corporation Cn Verweildauer P-States (Frequenzen) C0 0,3% 2,00 GHz 0% C1 0,0% 1,60 GHz 0% C2 99,7% 1,20 GHz 100 % Aufwachen pro Sekunde : 52,1 Intervall: 15,0s Häufigste Ursachen für das Aufwachen: 32,5% (20,0) beagled : futex_wait (hrtimer_wakeup) 16,3% (10,0) <kernel core> : ehci_work (ehci_watchdog) 11,1% ( 6,8) <interrupt> : ahci 6,9% ( 4,3) <interrupt> : acpi 6,5% ( 4,0) <kernel module> : usb_hcd_poll_rh_status (rh_timer_func) 5,2% ( 3,2) <interrupt> : extra timer interrupt 4,9% ( 3,0) kicker : schedule_timeout (process_timeout) 2,2% ( 1,3) klipper : schedule_timeout (process_timeout) DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 35
  • 36. Nach allen Tipps Cn Verweildauer P-States (Frequenzen) C0 0,1% 2,00 GHz 0,0% C1 0,0% 1,60 GHz 0,0% C2 99,9% 1200 MHz 100,0% Aufwachen pro Sekunde : 21,8 Intervall: 20,0s Häufigste Ursachen für das Aufwachen: 42,6% ( 10,0) <kernel core> : ehci_work (ehci_watchdog) 17,3% ( 4,0) <kernel module> : usb_hcd_poll_rh_status (rh_timer_func) 8,7% ( 2,0) kicker : schedule_timeout (process_timeout) 7,9% ( 1,9) kwin : schedule_timeout (process_timeout) 5,3% ( 1,2) klipper : schedule_timeout (process_timeout) 4,3% ( 1,0) kwrapper : do_nanosleep (hrtimer_wakeup) 4,3% ( 1,0) <kernel core> : queue_delayed_work_on 1,7% ( 0,4) kdesktop : schedule_timeout (process_timeout) DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 36
  • 37. Linux Kernel vor 2.6.21 Erhöhung der jiffies-Variable Timer-Ticks (alle 1, 4 oder Process Accounting: Wieviel Zeit 10 ms) hat jeder Prozess verbraucht ? Scheduler: Muss ein Kontext- wechsel durchgeführt werden ? Sind SW-Timer abgelaufen ? Nur benötigt, wenn ein Programm aktiv ist Wird auch im Idle-Modus benötigt DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 37
  • 38. Linux Kernel nach 2.6.21 Thomas Gleixner, Ingo Molnár et al.: Tickless Kernel HPET (High Precission Jiffies-Variable wird nur Event Timer) erhöht, wenn ein Prozess aktiv ist Process Accounting Scheduler Kontextwechsel Abgelaufene Timer werden vom HPET gemanaged Interrupts Wenn kein Prozess aktiv ist kann der Prozessor im Schlaf-Mode bleiben! DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 38
  • 39. Linux Kernel nach 2.6.21 Grouping: 1 Sekunde 1 Sekunde Systemaufrufe: unsigned long round_jiffies(unsigned long j); unsigned long __round_jiffies_relative(unsigned long j, int cpu); Neue Applikationen immer mit Power-Top oder ähnlichem testen ! Alle gezeigten Messungen waren mit einem alten Kernel. Wie sieht es mit einem aktuelleren System aus? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 39
  • 40. Armadeus: APF-27 www.armadeus.org - Prozessor Freescale i.mx27 - Takt bis 400MHz - 64 MB RAM - 16 MB Flash - Ethernet, USB etc... - FPGA - Kernel: 2.6.29.4 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 40
  • 41. On demand Governor make linux26-menuconfig DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 41
  • 42. Messungen unterschiedlicher Frequenzscalingmethoden Frequenzscaling Methode Strom Idle [mA] Strom aktiv [mA] Perfomance Governor 512 (400 MHz) 723 (400 MHz) Powersave Governor 494 (133 MHz) 494 (133 MHz) Ondemand Governor 494 (133 MHz) 723 (400 MHz) Scheduler Patch 371 (200 MHz) 723 (400 MHz) Scheduler Patch 348 (133 MHz) 723 (400 MHz) Die aktuelle Frequenz kann über das sysfs bestimmt werden: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq Interessantes Paper zum Thema: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/doc/OLS2006-ondemand-paper.pdf DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 42
  • 43. Sleep Mode auf APF-27 Im File:/linux-2.6.29.4/arch/arm/mm/proc-arm926.S ENTRY(cpu_arm926_do_idle) mov r0, #0 mrc p15, 0, r1, c1, c0, 0 @ Read control register mcr p15, 0, r0, c7, c10, 4 @ Drain write buffer bic r2, r1, #1 << 12 mrs r3, cpsr @ Disable FIQs while Icache orr ip, r3, #PSR_F_BIT @ is disabled msr cpsr_c, ip mcr p15, 0, r2, c1, c0, 0 @ Disable I cache mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt mcr p15, 0, r1, c1, c0, 0 @ Restore ICache enable msr cpsr_c, r3 @ Restore FIQ state mov pc, lr Ausschaltbar über Kernelboot-Parameter: no-hlt oder über Systemfunktion: disable_hlt(); Strom: 512 mA → 725 mA DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 43
  • 44. Was bringt Tickless ? ohne Tickless: I = 535 mA Tickless: I = 515 mA DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 44
  • 45. Was bringt Tickless ? http://www.phoronix.com/scan.php?page=article&item=651&num=1 DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 45
  • 46. Ausschalten von Peripherie Bisher wurden die Messungen ohne USB-Support durchgeführt ! DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 46
  • 47. Eingeschaltetes USB 512 mA → 725 mA (+ ~30%) Wird dies durch SW oder HW verursacht ? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 47
  • 48. Konfiguration des USB - Über 100 Register ! - Peripheral Clock Control Register des Clockmoduls: Durch Ausschalten des Bits USB AHB Clock Enable, (Advanced High-performance Bus) wird der Strom reduziert (Clock-Gating ??? --> !!!) - Der AHB Clock wird aber nur zum Erkennen eines neuen USB-Gerätes benötigt. Dies' ermöglicht, durch ein einfaches Programm, welches periodisch den USB AHB Clock ein- schaltet, den Stromverbrauch massgeblich zu reduzieren.... DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 48
  • 49. Userspace-dynamisches USB User Space Kernel Space Procedure loop{ - AHB einschalten - Status Register lesen Zugriff auf Register - AHB ausschalten - sleep(1); } Einsparung bei APF-27: 30% Lassen sich solche Lösungen generalisieren ? DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 49
  • 50. Neue Plattform FRIARM - Komplettes ereignisgesteuertes System (Interrupt-Handling) - Dynamische Frequenz- und Corespannungs-Anpassung - Dual-Ram zur Reduktion der Zugriffsfrequenz und damit Reduktion der Versorgungsspannung - Ram/Flash wird durch NV-Ram ersetzt: Ausschalten des Stromes in Ruhephasen, Live-Daten im Ram, um schnelles Booten zu ermöglichen - Display mit bistabilem LCD DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 50
  • 51. Literatur Daniel P. Bovet, Marco Cesati: Understanding the Linux Kernel, O'Reilly, ISBN: 978-0-596-00565-8 http://www.mjmwired.net/kernel/Documentation/cpu- freq/governors.txt http://www.carlthompson.net/software/cpuspeed/ www.lesswatts.org Manuals der Prozessoren DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 51
  • 52. Dank an die beteiligten Personen Vielen Dank an: Silvain Décastel, Xavier Menoud, Andéol Demierre und Igor Zanetti für die interessanten Analysen des Linux-Systems. Guy Morand und Davide Doninelli für Ihre tollen Arbeiten zum Fastboot an verschiedenen Systemen. Sowie an Daniel Gachet und Nicolas Schroeter ' für die vielen interessante Diskussionen zu diesem Thema.... DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 52
  • 53. und natürlich.... Vielen Dank auch für Ihre Aufmerksamkeit ! Weitere Infos: wolfram.luithardt@hefr.ch DIGICOMP Open Tuesday, Wolfram Luithardt HTA-Freiburg, 05.04.2011 53