Re: What NAND flash is compatible with FAL?
- From: "Dean Ramsier" <ramsiernospam@xxxxxxxxxx>
- Date: Wed, 17 Dec 2008 17:42:16 -0500
This issue is one of the reasons MS implemented a new flash driver in CE6
R2. The new flash driver model does honor the write limitation requirement
which is present on MLC flash devices as well as other large sector SLC
devices. Presumbly the underlying flash in your OneNAND part is one that
has those restrictions.
But it isn't available in CE5...
--
Dean Ramsier - eMVP
BSQUARE Corporation
"jhendrix58" <jhendrix58@xxxxxxxxx> wrote in message
news:f1992aa3-6554-43db-968f-b4beac624cd8@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
On Dec 17, 9:52 am, jhendrix58 <jhendri...@xxxxxxxxx> wrote:
On Dec 16, 5:34 pm, Marco Contenti <marco.conte...@xxxxxxxxxx> wrote:
I've been working with OneNAND devices for a while and don't see any
incompatibility with FAL.
Samsung created a library called PocketStore, which is an alternative
to FAL, but I think they did it this way mainly for performance
reasons, since FAL cannot use all optimizations present in OneNAND
devices.
Basically a OneNAND is nothing else than a conventional NAND flash
with a different, more sophisticated interface. Thus I don't
understand the "limit of four writes to a page per erase cycle". Any
flash area must be written only ONCE after erase. After that you
cannot turn 0's into 1's if you don't erase it again. FAL is aware of
this limitation which is common to all NAND and NOR flash devices.
Moreover, you are not bound to use 512-byte physical sectors or pages
with FAL. Actually, most modern NAND devices have 2k pages. Grouping
together the 64 bytes of spare area per page you have enough room to
store the sector info plus CRC.
Marco Contenti
PROJECT s.a.s. (MSWEP)www.projectsas.it
marco.contenti@<see domain above>
jhendrix58 ha scritto:
Hi All,
We have been working on a prototype that is attempting to use
Microsoft's Flash Abstraction Layer (FAL) with Samsung's OneNAND flash
device. We are encountering what seems to be an incompatibility
between FAL and the OneNAND device.
First, some background.
1) We are working with Win CE 5.0.
2) The OneNAND device has a limit of four writes to a page per erase
cycle. Put another way, a page in OneNAND flash can only be written
to four times and then it must be erased before another write is
attempted.
Now about the incompatibilty between FAL and the OneNAND flash memory.
The FAL writes sector state information to the Flash device. It
conducts a write to record the following states:
1) that a sector-write is in progress,
2)that a sector-write is complete,
3) that a sector is dirty
4) that compaction is underway
5) that a compaction is complete
The OneNAND provides 16 bytes of flash memory for each sector to
record metadata. (OneNAND calls this "spare area") We are using this
spare spare area to record the FAL's state data. The each sector's
spare area is located in said sector's page.
And, of course, there are more than one sector in a page. This means
that the total number of potential writes to a page is more than
four.
I understand from the Field Application Engineer (FAE) that this limit
is due to the 60 nanometer technology used to fabricate the flash
memory. I understand from the FAE that 60 nanometer technology is the
current industry standard and, consequentially, all current NAND
memory devices will tend to have similar limits regarding the number
of page writes.
My question is: is anybody able to get FAL working with today's NAND
flash memories? And, if so, which devices?
many thanks for any help,
johnh
Hi Marco,
Thank you for your quick response. I am new to working with flash
memories so I am probably asking naive questions.
Regarding the 512 byte sector issue. We understood that the FAT and
fatutil.dll only worked correctly with 512 byte sectors. Is this
understanding wrong? (I bring up fatutil.dll here because fatutil.dll
is used by the FAT FSD to format the flash to FAT32.) Is there any
reason why we cannot use, say, a 8K flash sector size?
Regarding your statement, "...I don't understand the "limit of four
writes to a page per erase cycle." Let me describe the background to
my statement.
Our FMD layer informs FAL that the flash sector size is 512 bytes. We
believed that FAT32 required a 512 byte sector. Are we wrong?
The FAL writes state data (i.e., the SectorInfo data) for each
sector. The FAL update this state data as the sector is written, as
the block the sector is located within is compacted and so on. These
states include (1) Write in Progress, (2) Write Complete, (3) Dirty,
(4) Compaction in Progress and (5) Compaction complete. We reason
that the FAL is capable writing at much as five different states to
the spare area before the block is erased.
We want to write this SectorInfo data to the spare area. We believe
that the spare info area is the best place to store the SectorInfo
data. Are we wrong?
In the OneNAND flash each sector, with its associated spare area, is
part of a page.
Each page has multiple sectors.
The OneNAND devices limits the maximum number of writes to a page to
four. After a page has been written to four time then the block said
page is located within must be erased before that page can be written
to again. The datasheet for Samsung K9F1G08U0B, on page 10, shows the
"Number of partial programming cycles" (i.e., the NOP parameter) as
4. Samsung's field application engineer stated that this NOP
parameter specifies the maximum number of times that a page can be
written; the block the page is located within must be erased before
said page can be written to again.
Both writes to a page's main area and writes to a page's spare area
count toward this NOP limit.
Now that I have described my understanding of the background, here is
what we encountered.
After the FAL writes the sector info to a given page a few times the
OneNAND flash indicated ECC errors for the sector. We learned from
conversations with the FAE that the page has a write limit of 4 (i.e.,
the NOP limit.) The excess write attempts caused these errors.
This made us wonder how anyone else was able to get the FAL to work
with the OneNAND. The messages in the groups sure seemed to indicate
that it was possible so we believed that there was some workaround for
the NOP limit.
Sorry for the long post, but I wanted to make sure that explained my
comment about "a limit of four writes to a page per erase cycle."
johnh
On Dec 16, 5:34 pm, Marco Contenti <marco.conte...@xxxxxxxxxx> wrote:
I've been working with OneNAND devices for a while and don't see any
incompatibility with FAL.
Samsung created a library called PocketStore, which is an alternative
to FAL, but I think they did it this way mainly for performance
reasons, since FAL cannot use all optimizations present in OneNAND
devices.
Basically a OneNAND is nothing else than a conventional NAND flash
with a different, more sophisticated interface. Thus I don't
understand the "limit of four writes to a page per erase cycle". Any
flash area must be written only ONCE after erase. After that you
cannot turn 0's into 1's if you don't erase it again. FAL is aware of
this limitation which is common to all NAND and NOR flash devices.
Moreover, you are not bound to use 512-byte physical sectors or pages
with FAL. Actually, most modern NAND devices have 2k pages. Grouping
together the 64 bytes of spare area per page you have enough room to
store the sector info plus CRC.
Marco Contenti
PROJECT s.a.s. (MSWEP)www.projectsas.it
marco.contenti@<see domain above>
jhendrix58 ha scritto:
Hi All,
We have been working on a prototype that is attempting to use
Microsoft's Flash Abstraction Layer (FAL) with Samsung's OneNAND flash
device. We are encountering what seems to be an incompatibility
between FAL and the OneNAND device.
First, some background.
1) We are working with Win CE 5.0.
2) The OneNAND device has a limit of four writes to a page per erase
cycle. Put another way, a page in OneNAND flash can only be written
to four times and then it must be erased before another write is
attempted.
Now about the incompatibilty between FAL and the OneNAND flash memory.
The FAL writes sector state information to the Flash device. It
conducts a write to record the following states:
1) that a sector-write is in progress,
2)that a sector-write is complete,
3) that a sector is dirty
4) that compaction is underway
5) that a compaction is complete
The OneNAND provides 16 bytes of flash memory for each sector to
record metadata. (OneNAND calls this "spare area") We are using this
spare spare area to record the FAL's state data. The each sector's
spare area is located in said sector's page.
And, of course, there are more than one sector in a page. This means
that the total number of potential writes to a page is more than
four.
I understand from the Field Application Engineer (FAE) that this limit
is due to the 60 nanometer technology used to fabricate the flash
memory. I understand from the FAE that 60 nanometer technology is the
current industry standard and, consequentially, all current NAND
memory devices will tend to have similar limits regarding the number
of page writes.
My question is: is anybody able to get FAL working with today's NAND
flash memories? And, if so, which devices?
many thanks for any help,
johnh
Just one more clarification: you pointed out "Any flash area must be
written only ONCE after erase. After that you cannot turn 0's into 1's
if you don't erase it again."
I do understand that to write data to a flash memory is set ones to
zeros. I understand that the only way to return these zero to ones is
to erase the block where the data is located. I do understand that
the FAL writes its states by setting a particular bit in the
SectorInfo struct to zero.
I think you were responding to my statement "The OneNAND device has a
limit of four writes to a page per erase cycle. Put another way, a
page in OneNAND flash can only be written to four times and then it
must be erased before another write is attempted." I understand the
OneNAND supports "partial page writes". A partial page write is a
write operation that writes to an individual 512 byte sector of a
page.
Recall my earlier comments about the "Number of *Partial* Program
Cycles" (NOP) parameter. It is the "partial page write" operation
that puts the "partial" in the NOP parameter's name.
That said, can the spare area be written to more than once provided
that subsequent writes only set additional bits to zero? FAL's design
seems to assume that it can. That is, the FAL's design seems to
assume that it can write multiple times to the area that contains the
SectorInfo because all it is doingon each subsequent write is setting
additional bits to zero to update the sector's state information. If
the spare area is used to store the SectorInfo then this implies that
the OneNAND must allow the FAL to write to the spare area more than
once. Or am I wrong?
johnh
.
- References:
- What NAND flash is compatible with FAL?
- From: jhendrix58
- Re: What NAND flash is compatible with FAL?
- From: Marco Contenti
- Re: What NAND flash is compatible with FAL?
- From: jhendrix58
- Re: What NAND flash is compatible with FAL?
- From: jhendrix58
- What NAND flash is compatible with FAL?
- Prev by Date: Re: What NAND flash is compatible with FAL?
- Next by Date: Re: ${CEConfigName} on CE 6.0 and VS 2005
- Previous by thread: Re: What NAND flash is compatible with FAL?
- Next by thread: A new DNS resolving problem after "WnCE Update 2008 M05"
- Index(es):
Relevant Pages
|