Re: [NTLK] A hardware question

From: Andrei Chichak <newton_at_chichak.ca>
Date: Fri Aug 07 2009 - 18:34:05 EDT

On 2009-August-07, at 3:45 PM, Phil Muller wrote:

>
> On a more technical note, most flash memory has some type of error
> correction and block addressing that will make allowances for bad
> blocks.

Not at all. Embedded FLASH chips will just go off line if they can't
program properly. All typical 29F000 family chips are like that. The
internal state machine will toggle values on the data bus until the
write is complete. You just repeatedly read the location until it
becomes stable. If the state machine cannot get the location to match
the source it will continue to toggle the values and go offline.

FLASH is good for about 1,000,000 erase/write cycles, guaranteed, so
they will probably last much longer than that. To write a value you
have to erase a page, typically 1/8 or 1/16 of the complete chip, then
write the value. So to update a value, you read out the page, modify
the copy, erase the page, and write it back.

A while back I read an article from Apple (or one of the Newton
Architects) that described how they do it. It involves transactions so
you don't corrupt any data logically, a FLASH file system that does
wear leveling, and lots of compression.

But "most flash memory" certainly do not include error correction. You
may be thinking of ATA memory cards, they have a processor in them and
a bunch of FLASH memory chips.

To find out if a chip is available, take the number off of the chip
(like 29F080) and put it into www.findchips.com.

Andrei

====================================================================
The NewtonTalk Mailing List - http://www.newtontalk.net/
The Official Newton FAQ - http://www.splorp.com/newton/faq/
The Newton Glossary - http://www.splorp.com/newton/glossary/
WikiWikiNewt - http://tools.unna.org/wikiwikinewt/
====================================================================
Received on Fri Aug 7 18:34:18 2009

This archive was generated by hypermail 2.1.8 : Fri Aug 07 2009 - 23:30:00 EDT