wiki:embedded/flash

using flash memory as a filesystem

Flash memory is different than standard magnetic non-volatile storage because the number of potential write cycles is relatively small. On the order of 10000 writes for the life of a single bit (need sources).

So in general, the guiding principle seems to be:

  • avoid writes

In detail, this means:

  • you probably don't want to swap on flash-backed devices.
  • you probably want the noatime mount option for any filesystems on flash-backed devices.
  • you might prefer a non-journaled filesystem over a journaled filesystem.

It sounds like Compact Flash has a translation layer that makes it different from writing directly to flash. That is, the CF pseudo-IDE interface provides "wear levelling" capability directly in firmware. It's not clear exactly how (or where?) this is implemented, or if all CF devices use the same wear-levelling scheme.

If it's done in firmware like this, that makes it difficult to upgrade the system if a more sophisticated protocol comes along.

speed

Much flash-backed storage is slow: it might have a decent burst speed, but for sustained read or write transfer, it degrades significantly. How can we measure this? What can we do to avoid this? What kinds of flash-backed storage is faster than others?

the standard metric for CF speed is the "times" indication. 20x is about 3MB/s. By comparison, modern SATA disks (in 2007) are 3Gb/s (375MB/s).

Last modified 10 years ago Last modified on Dec 10, 2007, 4:46:42 PM