On Sun, 22 Apr 2012 23:54:43 -0700
Eric Smith <eric at brouhaha.com> wrote:
Because the erase block size inside the card is
large, they have to do blocking and deblocking to that size.
Modern NAND-Flash
chips have a usual erase block size of 512 bytes.
This fits the 512 byte blocks of disks. So no (de)blocking. The write
buffering is mainly there to mitigate the effects of several
consecutive writs to a single block. (E.g. directory structures.)
There is an other problem: MLC. Multi Level Cells. In the old days a
Flash cell stored a single bit. There was a single comparator with a
single threshold to decide 0 or 1. Current SD cards are MLC. They
compare the voltage in a single flash cell to e.g. three thresholds and
thus can store two bits per cell. Newer devices can store three bits per
cell. This means the thresholds get closer to each other. Unfortunately
reading the contents of a cell draws a few electrons of its charge. So
the voltage of the cell drops a tiny bit with every read. Given the
narrow voltage windows of a triple bit cell its only a question of time
when read cycles drop the voltage below the next threshold. - Reading
becomes destructive! I addition these MLC devices have a very small
count of write cycles. Down to 1000 writes per erase block. Thats OK
for a MP3 player or digicam, but in no way this is a reliable storage
medium. SD cards are cheap consumer junk.
Yes, at work we have been bitten by this problem. Servely. :-(
--
\end{Jochen}
\ref{http://www.unixag-kl.fh-kl.de/~jkunz/}