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.
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).