Does mtd support two-plane page program for nand flash?

Jörn Engel joern at lazybastard.org
Mon Mar 12 06:58:54 EDT 2007


On Mon, 12 March 2007 19:53:58 +1300, Charles Manning wrote:
> On Monday 12 March 2007 17:49, Marteo Tim wrote:
> > MLC NAND Flash has already become the mainstream flash for
> > large-capacity on the market. But due to its low writting speed, there
> > will be introduced more parallel writting features such as multi-bank,
> > interleave, etc. So I think it is very necessary to modify MTD
> > structure to support multi-plane & interleave feature for speed
> > issure.

Flash will evolve much like hard disks and RAM does.  Size and bandwidth
will scale up, while latency remains roughly unchanged.  And just like
hard disks and RAM, much effort will be spent, trying to reduce the
effect of latency.

In case you don't remember: increasing bandwidth is trivial.  Reducing
latency is the real challange.

> > It is a good method to shield the details of flash type by composing
> > two or more page as a large page. 
> This approach works, but also forces you to have more bad blocks than you'd 
> have otherwise. MLC will tend to have more bad blocks than SLC.

And it will increase latency instead of reducing it.  Instead of sending
multiple independent commands to multiple planes, a single command is
sent to all planes.  Not only is the slowest of all planes dominating
the latency now, but the remaining independent commands still need to
run.

It is possible to reduce the number of commands somewhat by writing
larger amount of data in one go.  But that has disadvantages of its own
is not always possible.

> > Although it will be more slower for 
> > small segment data read/write. But for large-capacity flash,
> > continuate writting speed maybe is more concerned.

Again, increasing bandwidth is trivial, as you just showed.  Latency is
the real killer.

> I think anyone really wanting speed probably writes their own drivers anyway 
> (well that's what people woho are most interested in speed tell me 
> anyway :-)).

Absolutely.  Going down the easy route coupling all planes may be a
simple first step to get bandwidth up.  But supporting independent
operations is the interesting route to follow.

Jörn

-- 
"[One] doesn't need to know [...] how to cause a headache in order
to take an aspirin."
-- Scott Culp, Manager of the Microsoft Security Response Center, 2001




More information about the linux-mtd mailing list