> If 100,000 writes aren't enough for your application then you
> are using the wrong medium.
That depends on what you mean by a "write". I wrote an application
with a custom
flash interface. The addressable units were small data blocks. When
I added or changed a data block, I simply wrote the block at the end
of the previous data in the sector, then added a pointer to point to
the new block in front of a pointer to the old block. After the
sector filled, I copied all the live data to an erase sector and
continued filling the new sector. This significantly reduced the
number of writes and erasures to each page.
Thad
Reply by tim (moved to sweden)●June 23, 20052005-06-23
"Meindert Sprang" <mhsprang@NOcustomSPAMware.nl> wrote in message
news:11blnpj6umdr462@corp.supernews.com...
> "tim (moved to sweden)" <tim_in_sweden2005@yahoo.co.uk> wrote in message
> news:3i04pdFj3imrU1@individual.net...
>>
>> "Richard Malerba" <r_malerba@hotmail.com> wrote in message
>> news:1119540060.756752.266230@g43g2000cwa.googlegroups.com...
>> > Hi guys, I have a litte question for this group. The erasure/programing
>> > cycles in the Nand Flash devices are normaly 100.000 cycles. Suppose
>> > that my NAND Flash has 32 pages per block and one block was previously
>> > erased, Is the individual page programming counted like a cycle or is
>> > only the erase block operation taken into account.
>>
>> No-one does any counting, it's just an average. When a block goes
>> bad it is marked and the data is moved elsewhere.
>>
>> Apparently, a block almost always goes bad when erasing or writing
>> so the number of times you will risk losing any data is negligible, and
>> most of those will be correctable by the error correction.
>>
>> In a file system moving a block is a task that you will do often as you
>> cannot easily just add to a page. So when you need to do this you
>> rewrite the complete block and then erase the old one. To avoid
>> failures you should rotate around all the blocks rather than swap
>> between some predefined ones.
>>
>> If 100,000 writes aren't enough for your application then you
>> are using the wrong medium.
>
> But to really answer the question: the 100.000 cycles are erase cycles. So
> if you can fit 32 pages in one block, you can store a block 3.200.000
> times.
No you can't. It's an average expected life (mean or median).
Some will fail before this, some after.
But you're right, each page can be written separately (and if you're
sure that you are only writing new zeros you can write the same
block again, (though quite how you ensure that the error code
only has new zeros I don't know).
So you could write 32 pages and then do one block erase, but as
I poined out earlier, you don't actually do this in practice because
many of your writes will be block moves and then you'll be writing
the whole block at the same time.
tim
>
> Meindert
>
>
Reply by Magnus McElroy●June 23, 20052005-06-23
Meindert Sprang wrote:
> "tim (moved to sweden)" <tim_in_sweden2005@yahoo.co.uk> wrote in message
> news:3i04pdFj3imrU1@individual.net...
>
>>"Richard Malerba" <r_malerba@hotmail.com> wrote in message
>>news:1119540060.756752.266230@g43g2000cwa.googlegroups.com...
>>
>>>Hi guys, I have a litte question for this group. The erasure/programing
>>>cycles in the Nand Flash devices are normaly 100.000 cycles. Suppose
>>>that my NAND Flash has 32 pages per block and one block was previously
>>>erased, Is the individual page programming counted like a cycle or is
>>>only the erase block operation taken into account.
>>
>>No-one does any counting, it's just an average. When a block goes
>>bad it is marked and the data is moved elsewhere.
>>
>>Apparently, a block almost always goes bad when erasing or writing
>>so the number of times you will risk losing any data is negligible, and
>>most of those will be correctable by the error correction.
>>
>>In a file system moving a block is a task that you will do often as you
>>cannot easily just add to a page. So when you need to do this you
>>rewrite the complete block and then erase the old one. To avoid
>>failures you should rotate around all the blocks rather than swap
>>between some predefined ones.
>>
>>If 100,000 writes aren't enough for your application then you
>>are using the wrong medium.
>
>
> But to really answer the question: the 100.000 cycles are erase cycles. So
> if you can fit 32 pages in one block, you can store a block 3.200.000 times.
>
> Meindert
If you write or erase to any section more than the 100k times, then that
section is going to start to exhibit weird and intermittent behaviour.
You CANNOT rely on the manufacturer to put in error correction for bad
sections. You're going to write data there and you'll think it's fine
until you read it. Some parts will fail while others will be fine. You
might have just one bit in a block that always reads a '0', so you may
not even notice it for a long time.
I think the OP is asking if there's a counter to keep track of how many
times the section is accessed. There isn't one. The probability exists
that as you approach 100k writes to any section that the little wires
inside have had it and die. It's an electrical failure, not a counter.
That's 100k writes to the same place. You can probably write 100k times
to one section and 100k writes to another section and be fine. You may
not be, since a failure in one set of wires could get another nearby
section to fail as well.
If you're going to be writing to the Flash lots and lots of times
(anywhere NEAR 100k, e.g. 50k or more) then you MUST choose another
medium or you WILL have failures. Remember, it's not a dead-on number.
Some of the Flash chips will be happy to erase/write 150k times and keep
going, some will stop dead after 47,212 times.
--
Magnus McElroy
Electrical Engineer (EIT)
HABIT Research
(250) 381-9425
Reply by Meindert Sprang●June 23, 20052005-06-23
"tim (moved to sweden)" <tim_in_sweden2005@yahoo.co.uk> wrote in message
news:3i04pdFj3imrU1@individual.net...
>
> "Richard Malerba" <r_malerba@hotmail.com> wrote in message
> news:1119540060.756752.266230@g43g2000cwa.googlegroups.com...
> > Hi guys, I have a litte question for this group. The erasure/programing
> > cycles in the Nand Flash devices are normaly 100.000 cycles. Suppose
> > that my NAND Flash has 32 pages per block and one block was previously
> > erased, Is the individual page programming counted like a cycle or is
> > only the erase block operation taken into account.
>
> No-one does any counting, it's just an average. When a block goes
> bad it is marked and the data is moved elsewhere.
>
> Apparently, a block almost always goes bad when erasing or writing
> so the number of times you will risk losing any data is negligible, and
> most of those will be correctable by the error correction.
>
> In a file system moving a block is a task that you will do often as you
> cannot easily just add to a page. So when you need to do this you
> rewrite the complete block and then erase the old one. To avoid
> failures you should rotate around all the blocks rather than swap
> between some predefined ones.
>
> If 100,000 writes aren't enough for your application then you
> are using the wrong medium.
But to really answer the question: the 100.000 cycles are erase cycles. So
if you can fit 32 pages in one block, you can store a block 3.200.000 times.
Meindert
Reply by tim (moved to sweden)●June 23, 20052005-06-23
"Richard Malerba" <r_malerba@hotmail.com> wrote in message
news:1119540060.756752.266230@g43g2000cwa.googlegroups.com...
> Hi guys, I have a litte question for this group. The erasure/programing
> cycles in the Nand Flash devices are normaly 100.000 cycles. Suppose
> that my NAND Flash has 32 pages per block and one block was previously
> erased, Is the individual page programming counted like a cycle or is
> only the erase block operation taken into account.
No-one does any counting, it's just an average. When a block goes
bad it is marked and the data is moved elsewhere.
Apparently, a block almost always goes bad when erasing or writing
so the number of times you will risk losing any data is negligible, and
most of those will be correctable by the error correction.
In a file system moving a block is a task that you will do often as you
cannot easily just add to a page. So when you need to do this you
rewrite the complete block and then erase the old one. To avoid
failures you should rotate around all the blocks rather than swap
between some predefined ones.
If 100,000 writes aren't enough for your application then you
are using the wrong medium.
tim
> Thanks in advance :)
>
Reply by Richard Malerba●June 23, 20052005-06-23
Hi guys, I have a litte question for this group. The erasure/programing
cycles in the Nand Flash devices are normaly 100.000 cycles. Suppose
that my NAND Flash has 32 pages per block and one block was previously
erased, Is the individual page programming counted like a cycle or is
only the erase block operation taken into account.
Thanks in advance :)