This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Simple flash filesystem?




I've been looking for info on flash filesystems, and have found pretty
much nothing.

What I have found are flash device-drivers that emulate 512-byte 
block devices so that you can use them in place of disk drives
underneath file systems designed for disk drives.  These filesystems
are designed with (and optimized for) the following assumptions:

 1) The physical media has 512 blocks that are independently
    erasable/writable.

 2) Read and write operations are both an order of magnitude slower
    than RAM. 

 3) Read and write times for a sector depend on the sector number (i.e.
    there is a seek-time).

 4) There is zero cost associated with an erase (either elapsed time
    or media lifetime).

For flash, none of these assumptions are true.  Blocks can only be erased
in large chunks (typically 64k).  Read operations are the same speed
(roughly) as RAM.  Write operations are an order of magnitude slower.
Erase operations are _another_ order of magnitude slower and have an
associated media life cost.  Read/write speeds are independant of address.

Though it may be the most expedient thing to do in the short-term, 
It seems like a bad idea to take a complex filesystem designed for disk
and use it for a flash.  For example, it seems like a waste of effort
to impliment 512 byte blocks when the filesystem uses them in 4K clusters.

Rather than try to make a flash act like a disk drive (and using a
disk-drive filesystem), has anybody seen any information on a simple
filesystem designed for flash?

-- 
Grant Edwards
grante@visi.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]