Splitting hairs: When is a flash file system not a flash file system?

Posted by: Kerri McConnell

When you spend as much of your time as we do in the depths of the storage stack you become aware of nuances that are often lost on those less well-versed in file systems and media drivers. My most recent pet peeve is products on offer in our industry that bill themselves as "flash file systems" and offer absolutely no features that have anything to do with the flash memory itself. "How can that be" you ask, "are they lying?". Lying is a strong word, but I would certainly say that they are misinformed and clearly can't be counted on as experts when it comes to flash memory.

To be clear, a flash file system is not just a file system that happens to write to and read from flash memory-based media, like SD cards, eMMC, or UFS. A file system's fundamental job is to organize and manage data that is created and used by one or more applications in a system. It also keeps track of access times and sometimes grants or denies permission based on security settings. The organizational structure used by different file systems can be quite complex and features such as those required to ensure data and structural integrity can be present or not.

In contrast, a flash file system, like JFFS2 and UBIFS, has additional capabilities that are specifically required by the underlying flash-memory based storage device. A true flash file system must contain functionality to address the specific requirements of flash memory: such as tracking the erase count and actively shifting data around to ensure even wear (wear-leveling), detecting and correcting errors (EDC), tracking and scrubbing bad blocks (BBM), and handling read and write disturb. These complex functions cannot be ignored. On eMMC, SD, and UFS (managed flash), internal firmware handles those details and the complexity of making the flash function properly, in effect insulating the file system from it.

To further complicate our lexicon, consider those file systems that describe themselves as "flash-friendly", like F2FS. What they claim is that the process they use to store data considers things like write-amplification and they manage the size and frequency of writes to minimize erases, theoretically helping the flash to last longer and possibly perform better. Laudable goals, but not a flash file system.

So, let's review. A file system manages file and directory access from the application. A flash friendly file system does so using methods that seek to minimize erase counts. A flash file system adds features required to manage the complexities of the underlying flash media: specifically wear-leveling, error detection and correction, and bad block management. If a product claims to be a flash file system and does not do active wear-leveling, EDC or BBM it is NOT a flash file system.

As all of this relates to Datalight's products, Reliance Edge and Reliance Nitro are file systems. Flash management is handled by FlashFX Tera. Use either Reliance file system with FlashFX Tera and you have a true flash file system. Structuring our products this way allows our customers to keep the same power-failsafe file system experience whether they use eMMC, SD, UFS or raw NAND or NOR flash. 

Comments (0)

Add a Comment

Allowed tags: <b><i><br>Add a new comment: