Subject: Re: MTD devices in NetBSD
To: Garrett D'Amore <garrett_damore@tadpole.com>
From: Terry Moore <tmm@mcci.com>
List: tech-kern
Date: 03/23/2006 14:59:37
Hi Garret,
My point was that to have a common layer, you have to design for
NAND, not for NOR, and that it's not something anyone can do casually.
Based on my experience, trying to couple this kind of detail into a
file system is a really bad idea. FTLs (the generic term in the
industry for "Flash Transfer Layers", the transfer layers that hide
the media from the file system) are much better. The commercial
market has come to this conclusion too; this is why CF cards don't
expose the flash to the host machine. In the early 90s, I helped
write the PCMCIA spec that introduced standards for all this, and
worked for a company that used both Microsoft's original FFS and then
M-Systems TFFS (which is really an FTL). Microsoft's original FFS
never worked well. The problem was that the FFS systems that knew
about the media details were much too complex, and were
unmaintainable as the media evolved. It is possible to get
everything (including performance and reliability) via an FTL; then
you can use existing file systems (FAT, UDF, etc). There really
aren't enough hours in the day to deal with all these details. I've
written file system and FTL code, and the thought of trying to test
all the possible interactions between the file system, FTL and memory
technology is daunting. Since the performance of the file system is
critical for system integrity and security, keeping things simple is
a really good idea. In addition to all their other properties, FTLs
have a really clean unit-test interface.
Somewhat off topic, "MTD" is the term of art that was invented by
PCMCIA to describe the low level drivers for memory access (SRAM
cards, EPROM cards, Flash cards). Five years from now something may
well replace "flash", but wear levelling and data integrity
considerations that are peculiar to non-rotating inexpensive media
are likely still to be an issue. I'd strongly suggest using "mtd"
rather than "flash" as the name of the bus, for this reason. If I
understood the earlier comments, Linux got this one right.
--Terry
At 11:45 AM 3/23/2006 -0800, Garrett D'Amore wrote:
>I *think* the existence of
>the MTD framework in Linux is evidence that the notion that the
>abstractions have *something* in common is not totally insane.