Jim Donelson wrote:
-If we are talking about regular SD cards, there is no internal wear leveling.
It is up to the driver to do that.

The driver only could do that, if the interface to the card is done as the interface of of SPI Flash chips:
- Writing is only possible on erased areas
- there is a block erase command. (with block size several 100 K Bytes)

Here the driver needs to know about the physical block size.

The soon coming wear out of a block needs to be detected by measuring the time necessary to erase a block.

Also to do wear leveling the driver would need to write information about spare and worn out blocks onto the card. As the card is exchangeable between different systems running different OSes, there would need to be a standard on how this is done. I never heard about something like that.

If in fact the card provides an interface like an SPI Flash chip, with Linux supposedly use an MTD driver would be used to physically access it. On top of that it would be viable to use JFFS2 to do the wear leveling. But I never heard about a way to do a wear leveling layer between the card interface and an FAT file system.

If the logical interface of the SD card is done similar to that of an FC card or an IDE driver (with randomly readable and writable 512 Byte sectors) the wear leveling needs to be made internally in the card.

A string indicator of the card doing internal wear leveling is the size. If it provides all it's data bytes "naked", the byte count should be exactly 2**n. if it's 2**n - x, the remaining bytes will be used for wear leveling.

When activating the SD card in my uClinux system by "modprobe mmc0" I get the message:

mmc0: new SD card on SPI
mmc0: mmc0:0000 121 MiB

This is a 128 MB SD-card.

So I do suppose that there is an internally reserved memory area used for wear leveling.

--Michael
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to