On Wed, May 7, 2008 at 9:12 AM, Tomasz Chmielewski <mangoo@xxxxxxxx> wrote:As Compact Flash and its wear levelling does not know about free space on
the filesystem, the wear levelling's effectiveness can be only limited -
writes won't spread on the whole free area of the flash.
Does anyone know how wear levelling is done in these devices? Perhaps it
will differ from a manufacturer to manufacturer, but I guess they have a
free area we normally use to store data, and some reserved area used just
for wear levelling and bad block handling, but that's just my guess.
The wear leveling algorithm depends on the CompactFlash manufacturer.
Most manufacturers define a certain number of areas on a CompactFlash.
Each area consists of two or more sectors which are counted in the
total size of the CompactFlash, and one or more spare sectors. Wear
leveling is carried out within an area by spreading writes over the
sectors in an area. The controller in the CompactFlash stores the data
about which sectors are used for storing which data persistently. I
know of only one manufacturer who makes the CompactFlash controllers
carry out wear leveling over the whole CompactFlash.