[Tinyos-2-commits] CVS: tinyos-2.x/doc/txt tep103.txt,1.3,1.4

David Gay idgay at users.sourceforge.net
Wed Sep 13 10:45:13 PDT 2006


Update of /cvsroot/tinyos/tinyos-2.x/doc/txt
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10110

Modified Files:
	tep103.txt 
Log Message:
rationale
some beginning of multiple storage chips


Index: tep103.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/doc/txt/tep103.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tep103.txt	13 Sep 2006 16:51:09 -0000	1.3
--- tep103.txt	13 Sep 2006 17:45:08 -0000	1.4
***************
*** 70,74 ****
  derived from the timing and power consumption of erase and write operations
  (for NOR flash, values are for the STMicroelectronics M25P family, for NAND
! flash, values are from a Samsung datasheet). Energy/byte for reads appears
  to depend mostly on how long the read takes (the power consumptions are
  comparable), i.e., on the efficiency of the bus + processor.
--- 70,74 ----
  derived from the timing and power consumption of erase and write operations
  (for NOR flash, values are for the STMicroelectronics M25P family, for NAND
! flash, values are from the Samsung datasheet). Energy/byte for reads appears
  to depend mostly on how long the read takes (the power consumptions are
  comparable), i.e., on the efficiency of the bus + processor.
***************
*** 95,99 ****
    reimplemented for these other chips, in part because it does not 
    support some applications (e.g., network reprogramming) very well.
!   
  One approach to hiding the differences between different flash chips is to
  provide a disk-like, block interface (with, e.g., 512B blocks). This is the
--- 95,102 ----
    reimplemented for these other chips, in part because it does not 
    support some applications (e.g., network reprogramming) very well.
! 
! 2. Storage in TinyOS 2.x
! ====================================================================
! 
  One approach to hiding the differences between different flash chips is to
  provide a disk-like, block interface (with, e.g., 512B blocks). This is the
***************
*** 108,128 ****
    table is too expensive on many mote-class devices.
  
! Another approach to supporting multiple flash chips is to build a
! file system (like Matchbox) which can be implemented for multiple
! flash chips. However, TinyOS is currently targeted at running a 
! single application, and many applications know their storage needs
! in advance: for instance, a little space for configuration data, and
! everything else for a log of all sampled data. In such cases, the
! flexibility offered by a filing system (e.g., arbitrary numbers of
! files) is overkill, and may come at the expense of implementation
! and runtime complexity.
  
! Instead, TinyOS 2.x, divides flash chips into separate volumes (with
! sizes fixed at compile-time). Each volume provides a single storage
! abstraction (the abstraction defines the format). So far there are three
! such abstractions: large objects written in a single session,
! small objects with arbitrary reads and writes, and logs. This approach
! has two advantages:
  
  - Each abstraction is relatively easy to implement on a new flash chip, and
    has relatively little overhead.
--- 111,147 ----
    table is too expensive on many mote-class devices.
  
! A second approach is to provide a generic low-level interface providing
! operations (read, write, erase) corresponding to the basic flash
! operations, along with information describing the flash chip's layout
! (minimum write and erase unit, timing information, etc). However,
! we believe that the large differences between NAND and NOR flash (see the
! table above), in particular the differences in reliability, write and
! erase units, make the design of a useful generic low-level interface
! tricky at best. 
  
! We thus believe it is best, for now at least, to define high-level
! storage abstractions that are useful for sensor network applications,
! and leave their implementation up to each flash chip - such abstractions
! will be necessary anyway. We leave open the possibility that a future
! TEP may define portable lower-level flash interfaces (either for all
! flash chips, or, e.g., for NOR-family flashes). Such low-level
! interfaces would allow implementations of the storage abstractions
! defined in this TEP to be used for multiple flash chips.
  
+ This TEP describes three high-level storage abstractions: large objects
+ written in a single session, small objects with arbitrary reads and
+ writes, and logs. TinyOS 2.x, divides flash chips into separate volumes
+ (with sizes fixed at compile-time). Each volume provides a single
+ storage abstraction (the abstraction defines the format).
+ 
+ We prefer the use of single abstractions over fixed-size volumes over
+ the use of a more general filing system (like Matchbox) for several
+ reasons:
+      
+ - TinyOS is currently targeted at running a single application, and many
+   applications know their storage needs in advance: for instance, a
+   little space for configuration data, and everything else for a log of
+   all sampled data. In such cases, the flexibility offered by a filing
+   system (e.g., arbitrary numbers of files) is overkill,
  - Each abstraction is relatively easy to implement on a new flash chip, and
    has relatively little overhead.
***************
*** 134,153 ****
    the same number of time, to maximise flash chip lifetime).
  
! New abstractions (including a filing system) can easily be added to this
! framework, or can be built on top of these abstractions.
  
  The rest of this TEP covers some principles for the organisation of
! flash chips (Section 2), then describes the flash volumes and
! storage abstractions in detail (Section 3).
  
  
! 2. HPL/HAL/HIL Architecture
  ====================================================================
  
  The flash chip architecture follows the three-layer Hardware
  Abstraction Architecture (HAA), with each chip providing a presentation
! layer (HPL, Section 2.1), adaptation layer (HAL, Section 2.2) and
! platform-independent interface layer (the storage abstractions described in
! Section 3) [2_]. The implementation of these layers SHOULD be found in the
  ``tos/chips/CHIPNAME`` directory. If a flash chip is part of a larger
  family with a similar interface, the HAA SHOULD support all family members
--- 153,172 ----
    the same number of time, to maximise flash chip lifetime).
  
! New abstractions (including a filing system...) can easily be added to
! this framework.
  
  The rest of this TEP covers some principles for the organisation of
! flash chips (Section 3), then describes the flash volumes and
! storage abstractions in detail (Section 4).
  
  
! 3. HPL/HAL/HIL Architecture
  ====================================================================
  
  The flash chip architecture follows the three-layer Hardware
  Abstraction Architecture (HAA), with each chip providing a presentation
! layer (HPL, Section 3.1), adaptation layer (HAL, Section 3.2) and
! platform-independent interface layer (HIL, Section 3.3) [2_]. 
! The implementation of these layers SHOULD be found in the
  ``tos/chips/CHIPNAME`` directory. If a flash chip is part of a larger
  family with a similar interface, the HAA SHOULD support all family members
***************
*** 158,162 ****
  
  
! 2.1 Hardware Presentation Layer (HPL)
  --------------------------------------------------------------------
  
--- 177,181 ----
  
  
! 3.1 Hardware Presentation Layer (HPL)
  --------------------------------------------------------------------
  
***************
*** 173,177 ****
  particular flash chip found on the platform.
  
! 2.2 Hardware Adaptation Layer (HAL)
  --------------------------------------------------------------------
  
--- 192,196 ----
  particular flash chip found on the platform.
  
! 3.2 Hardware Adaptation Layer (HAL)
  --------------------------------------------------------------------
  
***************
*** 184,189 ****
  abstractions that interact cleanly with the rest of the flash system.
  
  
! 3. Non-Volatile Storage Abstracitons in TinyOS 2.x 
  ===================================================================
  
--- 203,221 ----
  abstractions that interact cleanly with the rest of the flash system.
  
+ 3.3 Hardware Interface Layer (HIL)
+ --------------------------------------------------------------------
  
! Each flash chip MUST provide implementations of the storage abstractions
! described in Section 4. These abstractions MUST be presented in
! components named ``ChipAbstractionC``, e.g., ``At45dbLogStorageC``.
! 
! Each platform MUST have ``AbstractionC`` components (e.g., ``LogStorageC``)
! implementing the storage abstractions of Section 4. Platforms with a single
! storage chip SHOULD simply make ``AbstractionC`` be a simple configuration
! wrapping the appropriate ``ChipAbstractionC`` component. Platforms with
! multiple storage chips SHOULD redirect uses of ``AbstractionC`` to the 
! appropriate storage chip, based on the requested volume.
! 
! 4. Non-Volatile Storage Abstractions
  ===================================================================
  
***************
*** 192,196 ****
  volume structure discussed in the introduction.
  
! 3.1. Volumes
  -------------------------------------------------------------------
  
--- 224,228 ----
  volume structure discussed in the introduction.
  
! 4.1. Volumes
  -------------------------------------------------------------------
  
***************
*** 235,239 ****
  
  
! 3.2 Large objects
  ------------------------------------------------------------------
  
--- 267,271 ----
  
  
! 4.2 Large objects
  ------------------------------------------------------------------
  
***************
*** 295,299 ****
  
  
! 3.3 Logging
  ------------------------------------------------------------------
  
--- 327,331 ----
  
  
! 4.3 Logging
  ------------------------------------------------------------------
  
***************
*** 391,395 ****
  
  
! 3.4 Small objects:
  ------------------------------------------------------------------
  
--- 423,427 ----
  
  
! 4.4 Small objects:
  ------------------------------------------------------------------
  
***************
*** 446,450 ****
  definitions.
  
! 4. Implementations
  ====================================================================
  
--- 478,482 ----
  definitions.
  
! 5. Implementations
  ====================================================================
  
***************
*** 454,458 ****
  
  
! 5. Authors' Addresses
  ====================================================================
  
--- 486,490 ----
  
  
! 6. Authors' Addresses
  ====================================================================
  
***************
*** 474,478 ****
  | email - jhui at archedrock.com
  
! 6. Citations
  ====================================================================
  
--- 506,510 ----
  | email - jhui at archedrock.com
  
! 7. Citations
  ====================================================================
  



More information about the Tinyos-2-commits mailing list