Thinking about this a little more, one could implement wear-leveling in the fat filesystem implementation. It wouldn't be perfect, but it would be pretty good. For file contents, it would be pretty easy: just allocate blocks fifo-fashion, and all new or updated files get written to the least-recently-used flash blocks. For directories, it's not as good, but I think it could mark any changed entries as unused and then append the new value of the entries. Every once in a while it would coallesce all the entries in a directory. The root directory is in a fixed place -- that would be the worst part. I guess it could allocate a fairly large amount of space for it and handle the blocks there in LRU fashion as well and extend the life of the card while having it be interoperable with windows.
Of course, if you don't need to interoperate with windows then jffs2 or yaffs would be the way to go.
-Jamey
> -----Original Message-----
> From: Steven Reddie [mailto:smr_at_essemer.com.au]
> Sent: Thursday, February 20, 2003 6:25 PM
> To: ipaq_at_handhelds.org
> Subject: RE: [iPAQ] File system for a 256MB SD Card
>
>
> I was wondering if the software on the iPAQ did the
> wear-leveling but I
> guess it's not possible for it to do it in some way that
> wouldn't make the
> card unreadable on some other device. Sounds like installing
> something like
> YAFFS is the only way to go, or treat it as almost write-once storage.
>
> Steven
>
> -----Original Message-----
> From: ipaq-bounces_at_handhelds.org [mailto:ipaq-bounces_at_handhelds.org]On
> Behalf Of Jamey Hicks
> Sent: Friday, 21 February 2003 1:28 AM
> To: Steven Reddie
> Cc: ipaq_at_handhelds.org
> Subject: Re: [iPAQ] File system for a 256MB SD Card
>
>
> Steven Reddie wrote:
>
> >I'm not getting any response from the Windows CE community
> so hoping that
> >someone here may know something about this. An article on slashdot
> recently
> >mentioned that using FAT file systems with SD cards can lead
> to sudden
> death
> >due to the constant writes made to the first bunch of sectors for the
> >allocation table, effectively wearing out only a few
> critical sectors while
> >leaving the rest of the card ok. Does anyone know if this is a real
> >concern. I can understand why it is, but I don't know if
> there is some
> >sector translation (vitualisation) going on or something
> else to make this
> >problem irrelevant. I'm really interested in using it with
> Windows CE on
> >the iPAQ H5450. It's a Sandisk card if that makes any difference.
> >
> I think it really depends on the controller in the Sandisk card, which
> is mapping the SD protocol onto the NAND flash interface. If the
> controller does not do wear leveling, then the cards will not
> last long.
> Given that most users will be using FAT on the SD, and that the file
> allocation table in the low blocks of the device get updated
> very often,
> it seems that this is probably not true. If Sandisk is not
> forthcoming
> with the information, we could devise an experiment to learn whether
> this is true or not -- by reading/writing blocks until the card stops
> working. Case A: read/write random blocks, case B: read/write one
> block, and see how long it takes to fail in each case. Let me know if
> you're interested.
>
> Jamey
>
>
> _______________________________________________
> Open Source Software for Compaq iPAQ Handhelds.
> iPAQ mailing list
> iPAQ_at_handhelds.org
> https://handhelds.org/mailman/listinfo/ipaq
> irc://irc.openprojects.net #ipaq
>
> _______________________________________________
> Open Source Software for Compaq iPAQ Handhelds.
> iPAQ mailing list
> iPAQ_at_handhelds.org
> https://handhelds.org/mailman/listinfo/ipaq
> irc://irc.openprojects.net #ipaq
>
Received on Fri Feb 21 2003 - 13:08:48 EST
This archive was generated by hypermail 2.2.0 : Mon Jul 25 2005 - 18:33:22 EDT