RE: Flash Memory Wearing Qeustions



Greetings Erik, your concerns are shared by many.

In the past I have I recommend using a commercial or open source FFS (Flash
File System) like JFFS or TrueFFS (M-Systems) because unlike FAT, these
solutions are designed to tackle this issue at its heart, and are field
proven.

The CE6 docs make reference to something called the FAL but give no details
as to its implementation and the portability of the media. I would like more
details on the FAL if anyone can provide them.


"erik.burigo@xxxxxxxxx" wrote:

Hi.

Our team is going to realize a software component running under
Windows CE 6.0 which has to record a variable amount of data:
- Synchronous data (say 200 b) every 15 minutes for a dozen of years
(with older data replaced by new one if needed).
- Asysnchronous data (not really predicatable, but for this example we
could imagine 400b per day).

Data can be asynchronously read. The target storage device is a
Samsung NAND flash memory.
We also need to persist data (and, of course, in a consistent way)
accross power failures.

We wonder about flash memory wearing issues. Currently we have
acquired this knowledge:
- Writing data on flash can be performed only to a block granularity
(128KB for our hardware). Writing smaller chunks needs to erase and
rewrite the whole block.
- There is a limited number of writings (block erase and re-write
sessions) per block before the block itslef becomes unreliable.
- FAT file systems writes the file's Directory Entry Structure each
time the file is accessed (to update the Last Access Field) [source:
http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem.html]
- Corruption of a block can compromise each file using that block.

It seems that under these conditions the Directory Entry Structure of
the synchronous data store will be rewritten ate least 35000 times per
year, but probably twice this number because of the double update
(Last Access Date and Last Write Time). Furthermore, it's quite sure
the given structure will always reside on the same block accross its
lifetime. Also, the given structure can share the block of other
structures of files (further increasing the block wearing rate in
unpredictable ways).

Our questions are:
- Are our deductions correct?
- Is to manage the given scenery possible with "standard" Windows CE 6
components? (For example, by using different file system or by
correctly tuning a FAT?) If yes, how?
- Are there wear-leveling file systems for Windows CE? We weren't able
to find any.
- Is there a standard solution for data-acquiring devices mounting
Windows CE and storaging data on flash memory?

Thank you very much.

Erik.


.



Relevant Pages

  • Re: Flash Media Driver
    ... that some blocks are getting marked read-only in your FAT partition. ... is your image XIP directly from flash or are you using BINFS? ... > For the file system, I am specifying the FAT file system. ... > Moreover, without specifiying the FAT filesystem in the registry, my Flash ...
    (microsoft.public.windowsce.embedded)
  • Re: Text File Open for Writing and Viewing.
    ... >> impact to the life cycle of the Flash Memory Chips. ... >open and close only changes RAM contents. ... I know only one CE manufacturer who bufferes the FAT in RAM ... - File System Driver checks, ...
    (microsoft.public.windowsce.app.development)
  • Re: Throughput question with CF/DiskOnChip
    ... commands that allow to revive the CF by rewriting the address allocation ... CF) but that is a quite naked flash chip. ... (e.g. the FAT with a DOS file system, ... but of course you need a media access driver ...
    (comp.os.linux.embedded)
  • Re: FlashROM as a disk in CE 5.0
    ... FileSystem Starting - starting with clean file system ... Lower flash. ... 0x83fc8994: FLASHDRV.DLL:Unable to initialize FLASH Media Driver. ... I have added the Registry settings to Project.reg file like ...
    (microsoft.public.windowsce.platbuilder)
  • Re: STRATA flash driver - Not able to persist data
    ... Are you saying that you store data in the flash drive and after rebooting ... I have implemented the file system thro' stratad.dll. ... 0x83fc88a4: FS: Registering file system ROM, index 2, flags 0x00000031 ... doesn't exist for logical sector 0x3c!!! ...
    (microsoft.public.windowsce.platbuilder)