[Yaffs-archive] RE: Block size of Sandisk 256MB SD Card

Steven Reddie smr@essemer.com.au
Tue, 25 Feb 2003 12:34:08 +1100


Sorry for being off-topic.  This list is the only place I've found to get
the answers for why I might want to use yaffs on wince.  I think I need to
use it I just want to make sure first.  Compatibility with other devices
isn't important to me.

Sandisk state that their SD cards don't have wear-leveling.  I assume that a
block driver on the host device can't be doing the physical to logical
mapping because the format would be incompatible with other host devices,
unless there's some standard for doing this.  Does this sound like the FAT
problem therefore is a real problem?

Thanks for your help,

Steven

-----Original Message-----
From: Charles Manning [mailto:manningc2@actrix.gen.nz]
Sent: Tuesday, 25 February 2003 12:14 PM
To: Steven Reddie; yaffs@toby-churchill.org
Subject: Re: Block size of Sandisk 256MB SD Card


On Tue, 25 Feb 2003 11:49, Steven Reddie wrote:
> Thanks for the reply.
>
> I'm an iPAQ Windows CE user (and developer).  Yaffs seems to support
> Windows CE so I'm wondering why I might need to use it.  I got hold on a
> Sandisk spec for a flash part which may or may not be used in their card.
> It has a 16KB block size.  I take this to mean that when writing a
512-byte
> sector over the top of an old one that the entire 16KB block needs to be
> erased. It would therefore seem that one could write and then delete a 4MB
> file on a FAT16 filesystem only 36.6 times before the card is dead due to
> wearing out the allocation table block.  I hope my understanding about
this
> is wrong, and was hoping that someone on this list may know the truth.  I
> arrived at 36.6 time by using a 512-byte cluster size, a 16KB erase block
> size, and FAT16 filesystem.  Since an allocation sector contains 16-bit
> entries that chain together clusters it would seem that a full 16KB block
> would contain 8192 entries which would account for 4MB of storage
> (8192*(512 byte clusters)).  So, writing and then deleting a 4MB file 36.6
> times would cause 300,000 erasures of the allocation block.
>
> Regards,
>
> Steven
>
The main reason people use YAFFS with WinCE is to build large "disks"  in
handheld/embedded devices. Sure, you could use a FAT-based system but that
is
way slower and not very robust.  Mainly people use soldered-down NAND chips
with YAFFS, but some use SmartMedia.

However, YAFFS is not the way to go for removeable media that you want to
share with your camera, PC etc, since these will 99.99% chance only
understand FAT.

I will answer your SD/FAT query even though it is off thread and has no
bearing on YAFFS. SmartMedia (and I assume SD) run a block driver which does
a mapping between physical and logical blocks. When you overwrite a logical
block, the data is written to a new physical block and the old physical
block
gets scrubbed. Thus logical blocks which get a lot of activity, like FAT
blocks,  don't get written to the same place. THerefore the writing gets
spread out on the flash. This is called wear levelling (though some file
systems go further and do explicite wear levelling). Now, should a block
wear
out, it gets retired and is never used again. SmartMedia reserves approx 2%
of the disk for retirement losses.

-- Charles


---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by 
sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" 
(without the quotes) as the subject.