[Tinyos-Storage WG] Performance vs Portability
Prabal Dutta
prabal at cs.berkeley.edu
Thu Apr 12 20:56:22 PDT 2007
[From Gaurav Mathur's original e-mail]
This refers to the question that David Moss has brought up in the past.
The current storage design (TEP 103) offers performance optimization
by exposing flash chip-specific features, but is not designed for
portability across multiple flash memories. For example, if a new
sensor platform is introduced with a new storage chip, new
implementations of BlockStorage, LogStorage, ConfigStorage, etc, would
be needed.
An alternative approach may be to develop generic implementations of
these components built on top of an abstraction layer that just
exposes the set of features common to all flash memories. Such an
approach would reduce development time since the objects do not need
to be re-implemented for different flash devices.
One issue to discuss would be whether we should support such a generic
abstraction layer in addition to the platform-specific layer that is
provided by TEP 103. Different individuals/groups have implemented a
few examples of such a generic abstraction layer (DirectStorage for
Blackbook, FAL for Capsule). Having both a platform-specific and a
platform-independent interface has the benefit of letting a developer
decide which implementation suits their requirements best. Also, for
our purposes, it makes it easier to port objects that we develop to
different flash memories.
Questions:
* Should we have a "generic" flash abstraction layer?
* Is DirectStorage + VolumeSettings this abstraction layer ? (Can it
be used to support both NAND and NOR flash chips)
* Comparison of the platform independent implementation with the
platform dependent implementations that already exist (LogStorage,
ConfigStorage and BlockStorage for Telos and Mica2) in terms of
performance efficiency and memory efficiency (any other metrics ?)
More information about the Tinyos-Storage
mailing list