I am sometimes asked what the difference is between a flash manager and a file system. In broad terms, both are required to store data on flash media, but their roles in storing the data vary greatly from one another. Simply put, software management controls how the flash media is read from and written to, while a file system dictates how and when data is stored. Perhaps some of the confusion between the two options comes from people who are familiar with the flash file systems on Linux – YAFFS, JFFS2, and UBIFS. Here is how the Datalight solution is different.
Our flash management software, FlashFX Tera, handles the interface with NOR and NAND flash media. This software is responsible for wear leveling (both static and dynamic data) and bad block management, including error correction and scrubbing on NAND media. This is equivalent to the firmware on SD, SSD, eMMC and UFS based media – only providing a lot more control to the developer. Like that firmware, it provides a block device interface, so that any file system can be used.
Our file system software, Reliance Nitro and Reliance Edge, can be used with any block device via the driver or interface provided. This software handles files, folders, attributes and metadata. The big differences between the Reliance family and other file systems (e.g. FAT) include the amount of control available at runtime and the data reliability provided by its transactional architecture.
All of our software products are designed for embedded designs, where power can be lost without warning. Each is also designed to be fully configurable by the developer, even at runtime, which means our solution can nearly always be customized to fit your use case. By using atomic write principles, we ensure that the system remains bootable and that previously written data is only removed when the developer needs that to happen. Even overwrites take place in a separate media state – this is known as copy on write.
Linux based flash file systems provide both drivers together, and they are not designed to be separated. The media has no block device available, and the file system only works with raw flash media. This can of course be a problem if a customer must make a bill-of-materials change, e.g. from raw flash to eMMC.