My understanding is that wear leveling on CF cards is done within zones (at least for sandisk cards, it could vary by vendor). The zones vary in size based on the card size I think, but the typical zone size is about 4 MB (of contiguous blocks).

I haven't done anything with CF for well over a year, so things may have changed quite a bit by now (you never know).

If I remember correctly, SanDisk had an excellent white paper on wear leveling on CF cards. You might search for it online, or call them and ask for it.

Hope that helps..

Chander Ganesan
Microhard Technical Institute

Alan Porter wrote:


I am developing an embedded Linux system that uses a compact flash card for storage. I have a little bit of data that needs to be stored to the card, but I do not want the entire disk to be mounted read/write.

So I have made two partitions on the CF card:

  # fdisk -l /dev/sda

  Disk /dev/sda: 261 MB, 261881856 bytes
  16 heads, 32 sectors/track, 999 cylinders
  Units = cylinders of 512 * 512 = 262144 bytes

     Device Boot Start  End  Blocks  Id  System
  /dev/sda1          1   62   15856  83  Linux
  /dev/sda2   *     63  999  239872  83  Linux

My question is this.  If I write to the 16 meg
read-write partition (/dev/sda1), will the writes
be spread across the entire disk by the CF card's
internal wear-leveling?  Or will it spread the
writes only within my 16-meg read-write partition?


Alan





-- TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug TriLUG Organizational FAQ : http://trilug.org/faq/ TriLUG Member Services FAQ : http://members.trilug.org/services_faq/ TriLUG PGP Keyring : http://trilug.org/~chrish/trilug.asc

Reply via email to