ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: Flash wear level

To:
Subject: Re: [ts-7000] Re: Flash wear level
From: Jim Jackson <>
Date: Mon, 9 Feb 2009 20:33:33 +0000 (GMT)
On Mon, 9 Feb 2009, Michael Schmidt wrote:
> Jim Jackson wrote:
>> On Mon, 9 Feb 2009, Alan Dayley wrote:
>>> The wear-leveling behavior you described here is known as "dynamic
>>> wear-leveling."
........
>>> As of a few years ago, a better algorithm has been deployed by most
>>> flash controller makers.  This is known as "static wear-leveling" and
>>> includes ALL flash blocks, including those with static data.  In
>>> static wear-leveling the writes are moved all around the flash media,
>>> even moving around previously written blocks of user data.  This
>>> obviously improves the spread out of the wear on the flash.
>>
>> Thanks for this, I'd not come across static wear-leveling, but google
>> provides :-)
>>
>> It does of course imply added time for writes where there is lots of static
>> data.
>
> Well at first I was going to say that it would also seem to imply
> reduced overall flash lifetime, as internally the wear-leveler is doing
> additional erases and writes on blocks that otherwise would be left
> alone.  But after running a simple thought experiment I can't see how it
> would even provide any better wear-leveling.

I thought that at first, but then I read this explanation...

  http://www.storagesearch.com/siliconsys-art1.html

If a block holds Static data and hence hasn't been used much, the static 
data is moved to a well used block and the data written to the 
underused block. This moving spreads out the writes over the whole flash 
device. However there is a penalty in increased writes overall, so it's a 
trade off.

> For example, suppose you had a flash with only 4 blocks, and each has a
> lifetime of 10 writes.  If 3 blocks are in use, then if you repeatedly
> re-write the 4th block it will wear out faster.  Specifically, you will
> get 10 writes before the 4th block is worn out and (since there are only
> 4 blocks) the device is declared unusable.  But if you erase other
> blocks does it really help?   No, because whatever block you erase to
> write the 4th block, you now have to write into the 4th block.  Now
> after 10 writes, two blocks will be bad instead of one.
>
> If only 2 blocks are in use, then alternating between blocks 3 and 4
> will give a total of 20 writes until the flash is full.  But if you
> repeatedly erase block 1 or 2 in order to put the new block, you still
> have to put the contents of that block somewhere, either block 3 or 4.
> So now you get 30 writes, but 10 of those are writes required to move a
> block.
>
> Hopefully the above description of how this works either has been
> simplified and is missing the key to what makes it work, or else whoever
> designed this algorithm is better/more rigorous at their math than me. ;-)
>
>
>
>  ______   Best Regards,
> |__  __/                  Michael Schmidt
>    ||                   Software Engineer
>    ||echnologic Systems (EmbeddedARM.com)
>    || (480)        16525 East Laser Drive
>    |/ 837-5200   Fountain Hills, AZ 85268
>        http://oz.embeddedarm.com/~michael
>


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU