[Tinyos-devel] TinyOS on Cortex M3?
Paul Kimelman
paul at nikoosha.com
Thu Mar 13 10:47:38 PDT 2008
...
> The last time I checked (which was, admittedly, a year ago), there were
> no sleep current numbers for M3 chips. The brochure claims pretty low
> numbers. It would be good to see if those hold up in practice; they've
> always been the issue with ARM chips.
I think you will find that a part designed to run at 50MHz and above with 64K of
SRAM will always draw more power in sleep modes (hibernate/standby is a
different matter and they should all be a few uA at most). The problem is that
SRAM tends to draw a lot of power (a few mA) regardless, especially when
designed for speed (senseAmps draw more, precharge circuits are bigger, word
decoders have to be faster nets, etc) as does eFlash (especially when able to
run at speeds). That is, there is a baseline power number for sleep which is the
result of the SRAM and eFlash (both of which dominate the chip's die area after
all) and this is a function of size and max speed.
No, the current crop of ARM parts are not designed to run for years on a single
battery. That said, three things can be considered if looking at CM3 parts for
other than gateways/bridges and powered nodes: hibernate, process geometry
changes, and data models.
Since most WSN nodes/motes are off the vast majority of time, the truth is that
the hibernate mode is quite viable; this allows a part to be depowered (other
than some retention memory and an RTC) and then to wake on event or time. The
choice of how fast to run them once woken can be considered in terms of work to
be done vs. power at different speeds. But, it is not a linearity. That baseline
number for things like eFlash and SRAM suggests that getting in and out faster
may be preferable for many apps in this space. That said, you can get a lot done
with a more powerful processor, including a lot more pre-processing of the data.
Process geometries are shrinking as you no doubt know. But, the problem is one
of tradeoffs. Newest/smallest geometries are not only very expensive (multi
million dollars for a new mask), but tend to be very leaky at 1st (sleep numbers
are worse than larger geometries, even if run power numbers are better) due to
difficulties in controlling gate thicknesses and overcoming migration and other
issues. But, 90nm is now stabilizing as a reasonable geometry in terms of power
- it is only waiting on eFlash (the key to MCUs). With 90nm, it looks good for
CM3 based chips to have very good power numbers across the board, using a
combination of techniques: for devices not pushing the speed barriers,
slow/normal transistors are very good in both off and on power numbers; SRAMs
are starting to add more controls for idle use where they depower the current
hungry components (senseAmps, pre-charge circuits, word decoders, etc) and lower
the voltage for the rest (so less leakage current); power clamps are easier to
use more broadly for things not being used (one of the real issues with sleep
numbers, especially IO rings which run at higher voltage than the logic; eFlash
will be an ongoing issue (migration, barrier breakdown, etc), but will improve
in power due to the density allowing for more logic level controls to mitigate
other issues; with lower overall current needed for run, LDOs and charge-pumps
are smaller and lose less power in sleep modes.
In spite of all that, the "dumb" mote will still belong to the cheapest, ugliest
8 and 16 bit parts (I am showing my bias ;-) But, the CM3 based node/mote will
likely change the notion of what a mote should do. By having far more processing
power, better code density, more advanced peripherals (including higher end ADCs
and PWMs and the like), and far more speed range, these motes will do more
processing of the data locally and within the mesh (sharing data and comparing
to look for patterns and trends) rather than sending raw data somewhere else to
be crunched. This will include much finer granularity of data and add things
like vision (motion detection, compression, etc) and more sensor options. All of
this allows use of far less bandwidth (especially when having to hop through a
mesh) and more intelligence in the network itself (only send the results and not
all the raw data behind it). Since radios use a lot of power (and even with
improved efficiency, most of that power translates to reach of the signal,
ability to deal with interference and obstacles, etc) and MCUs driving radios
use a lot of power (driving pins), more upfront processing means less of that
power.
With increased energy efficiency of Solar cells (and fast dropping prices) and
better battery charge/discharge cycling (get to more of that energy, again for
less money and size), I suspect that soon the focus will change. Maybe that
leaves TinyOS behind, I do not know. But, I think there are a lot of good
concepts in TinyOS and the building block approach can work very well for more
flexible devices (less purpose built, more generalized) as has been seen in
IEC61131 and the like. Cortex-M3 was designed for just this kind of use. So, the
future is so bright (in my view) that I am already wearing the shades!
Regards, Paul
More information about the Tinyos-devel
mailing list