Deep thinking about the Wear-leveling mothed

Iwo Mergler iwo at call-direct.com.au
Wed Jul 30 20:02:39 EDT 2008


xiaochuan-xu wrote:
> On Wed, 2008-07-30 at 09:22 +0300, Artem Bityutskiy wrote:
>> Also, I am not sure it is save to erase one eraseblock several million
>> times and do not erase neighbor eraseblocks. There are "radiation"
>> effects in some flashes, when unused eraseblocks slowly "rot" when
>> their
>> neighbor eraseblocks are used a lot.
> 
> I'm sorry but I'm not understand this clearly.
> 
> 

You might be aware of the fact that after erasure of NAND FLASH,
you are only allowed to write a page once (or a small number of times).

In principle, the write operation is like a logical AND between
the new page content and the old one. That is, writing '0' will
result in a '0', writing a '1' leaves the bit unchanged.

However, in this context, you must regard NAND cells as analog devices.
What you store is not numbers, but electric charge. Erasing the cells
drains the charge (='1'), writing a '0' increases the charge. A charge
above a certain threshold is read as '0', below that is read as '1'.

Due to the proximity of the NAND cells, there is some leakage between
them. Writing a '0' into a cell leaks a little charge into the neighbouring
cells. Also, writing a '1' is not quite perfect and also moves a cell
a notch towards '0'. In other words, memory contents deteriorate despite
'correct' digital operations.

The manufacturers put more effort (and silicon area) into separating
individual erase blocks than into separating individual pages than into
separating individual bits.

But nothing is perfect. Writing a page has a small effect on bits in
neighbouring pages and even in neighbouring erase blocks.

This, I think, is what Artem meant. Although it's 'leakage' rather
than 'radiation'. :-)

Kind regards,

Iwo




More information about the linux-mtd mailing list