Slides presented on June 11 2012 in Ottawa, at IEEE ICC 2012.
Open-hardware open-source architecture of a wireless sensor node that features an ultra-low-power microcontroller unit (MCU) completely programmable in Java.
All the low-power modes of the MCU are directly exploitable from the Java-compatible runtime environment.
Ultra-Low-Power Wireless Sensor Node Programmable in Java
1. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
E2NETS Workshop
Energy Efficiency in Wireless Networks & Wireless Networks for Energy Efficiency
Ultra-Low-Power Sensor Nodes
Featuring a Virtual Runtime Environment
EMANUELE LATTANZI ALESSANDRO BOGLIOLO
DiSBeF University of Urbino & NeuNet
1/25
alessandro.bogliolo@uniurb.it
2. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Agenda
• Introduction
• HW-SW platform
• Power states
• DPM issues and solutions
• Experimental results
2/25
alessandro.bogliolo@uniurb.it
3. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Introduction
• Need for energy efficient wireless sensor nodes
– Lifetime maximization
– Compatibility with energy harvesters
• Attractiveness of runtime virtual environment
– Development
– Deployment
– Re-use/Re-programming
• Availability of ultra-low-power micro controller units
(MCUs) featuring
– 16-bit RISC architectures clocked at tens of MHz
– 16kbytes of main memory
– 64kbytes of flash memory
– Voltage-frequency scaling
– Low-power modes with sub-ms wake-up time
3/25
alessandro.bogliolo@uniurb.it
7. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
SW stack Contiki OS
• Open-source real-time OS for sensor networks
and networked embedded systems
– Portability
– Multi-tasking
– Memory efficiency
– Event-driven organization
– Elementary DPM which exploits the stand-by state of
the MCU and wakes it up every 10ms to keep timing
coherence
7/25
alessandro.bogliolo@uniurb.it
8. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
SW stack Darjeeling VM
• Open-source VM for extremely limited devices
– Java compatibility
– Limited requirements (10kbytes of RAM)
– Bytecode efficiency (infuser)
– Runs as a single process
– Supports multi-threading
– Preemptive round-robin scheduling
8/25
alessandro.bogliolo@uniurb.it
9. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Agenda
• Introduction
• HW-SW platform
• Power states
• DPM issues and solutions
• Experimental results
9/25
alessandro.bogliolo@uniurb.it
10. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Power modes
CPU Clock Memory
Active mode 1-10mW
Self wake up [1-10us]
Standby mode 1-100uW
External interrupt [<1ms]
Sleep mode 1uW
Reboot at external interrupt [1-100ms]
Hibernation mode 100nW
10/25
alessandro.bogliolo@uniurb.it
11. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
SW-stack dimension
OS VM Int OS VM
Active boot boot hand sch sch
Vtask
Standby
Sleep
Hibernation
11/25
alessandro.bogliolo@uniurb.it
12. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Wake-up transitions
OS VM Int OS VM
Active boot boot hand sch sch
Vtask
Standby
Sleep
Hibernation
12/25
alessandro.bogliolo@uniurb.it
13. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Agenda
• Introduction
• HW-SW platform
• Power states
• DPM issues and solutions
• Experimental results
13/25
alessandro.bogliolo@uniurb.it
14. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode
Int OS VM
ContikiOS schedules hand sch sch
Vtask
a self-wakeup
every 10ms
There are 3 cases:
a) The VM has no tasks to resume a
14/25
alessandro.bogliolo@uniurb.it
15. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode
Int OS VM
ContikiOS schedules hand sch sch
Vtask
a self-wakeup
every 10ms
There are 3 cases:
a) The VM has no tasks to resume a
a) The OS has no proc. to resume b
15/25
alessandro.bogliolo@uniurb.it
16. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode
Int OS VM
ContikiOS schedules hand sch sch
Vtask
a self-wakeup
every 10ms
There are 3 cases:
a) The VM has no tasks to resume a
a) The OS has no processes to resume b
a) The VM has a task to resume Actual wake up
16/25
alessandro.bogliolo@uniurb.it
17. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode abstract state diagram
Active 1-10mW Vtask
c Exploitation issues:
a The self-loop longer than 10ms
1-10mW
No power saving
Standby b Not supported by the SW
1-100uW stack (VM always active)
1-10uW Not supported by Contiki OS
Lack of timing info
Stanby mode is not compatible with the SW stack!
17/25
alessandro.bogliolo@uniurb.it
18. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode improvements
• Modified Contiki OS to make it able to dynamically adjust
the INTERVAL of timer interrupts
• Modified Darjeeling VM scheduler to make it able to set
the OS timer and suspends the VM
PROCESS_WAIT_EVENT_UNTIL()
• Implemented a timed standby mode with just-in-time
predictive wake-up
• Mounted an external low-power (0.3uW) real-time clock
(RTC) to preserve timing accuracy
18/25
alessandro.bogliolo@uniurb.it
19. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Standby mode modified state diagram
6.6mW Vtask
4.5uW + 153.72uJ/T Standby.a(T) Families of
low-power states
Standby.b(T) depending on T
4.5uW + 0.33uJ/T
4.5uW + 0.3uW Standby.t
4.5uW Standby
19/25
alessandro.bogliolo@uniurb.it
20. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Sleep mode issues
• Unable to issue self-events
– Wakup can only be triggered by external interrupts
– Cannot be exploited if there are processes/tasks that
need to resume at a given time (e.g., periodic
monitoring tasks typical of many WSN applications)
• Lack of timing information
– No information about the time elapsed since last shut
down
– No time stamps associated with external interrupts
Sleep mode can ony be exploited in case of time-
independent reactive applications
20/25
alessandro.bogliolo@uniurb.it
21. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Sleep mode improvements
• Implemented a timed sleep mode with just in
time predictive wakeup based on the external
RTC
• Used the external RTC to provide relative and
absolute timing information at wake up
1.5uW + 0.3uW Sleep.t
1.5uW Sleep
21/25
alessandro.bogliolo@uniurb.it
22. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Hibernation mode issues
• Unable to issue self-events
– As for Sleep mode
• Lack of timing information
– As for Sleep mode
• Lack of data retention
– Requires a complete reboot
– Impossible to resume a process/task
Hibernation mode can ony be exploited in case of
memory-less reactive applications
22/25
alessandro.bogliolo@uniurb.it
23. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Hibernation mode improvements
• Used the external RTC as for the Sleep mode
• Implemented a native method in the main of the
VM to save and restore the heap of the VM in
flash memory
1.5uW + 0.3uW Hibernation.t
1.5uW Hibernation
23/25
alessandro.bogliolo@uniurb.it
24. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Agenda
• Introduction
• HW-SW platform
• Power states
• DPM issues and solutions
• Experimental results
24/25
alessandro.bogliolo@uniurb.it
25. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Characterization results
Data refer to a MSP430F2618 MCU powered at 3V and clocked at 16MHz
25/25
alessandro.bogliolo@uniurb.it
26. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Experimental results
6.6mW
Average power consumption of the MCU
used to execute a periodic monitoring
110uW
task which keeps the CPU busy for 1s
6.9uW
Once Once
per hour per day
26/25
alessandro.bogliolo@uniurb.it
27. ICC 2012 – E2NETS workshop
OTTAWA – CANADA – JUNE 10-15 2012
Conclusions
• Ultra-low-power sensor node
• Java-compatible virtual runtime environment
• Power consumption ranging from 6.6mW to
0.1uW (in Hibernation)
• Capable of reacting to external events and
resume execution from any low-power state
• All low-power modes directly exploitable from
the Java runtime environment
• Open-HW / Open-SW approach
27/25
alessandro.bogliolo@uniurb.it