The previous article of this introduction series on flash storage was all about two things: the daunting complexity of flash memory and the importance of proper flash management. In essence, it was a warning: blindly heading down the flash road is calling for trouble. Said. Understood. Now what? At this point, a lot of questions remain unanswered. But let’s not give in to the temptation of jumping from one burning topic to the other. Rather, let’s start where we left off and take the next logical step.
Now that we know what flash management is about, we are ready to explore and compare two different paradigms of flash management commonly used throughout the industry: managed flash and unmanaged flash. Managed flash devices include SD cards, USB flash drives, eMMC and UFS modules — also SSDs, but those are less often seen in embedded systems. These are all NAND-based devices. On the other hand, unmanaged flash devices include raw NOR and NAND memories. There are other technologies available outside of NOR and NAND, but these two are overwhelmingly dominant at the moment.
Unmanaged Flash, Really?
It may seem odd to refer to flash devices as being unmanaged given the message that we have been hammering, about the sheer importance of proper flash management. But this contradiction is only apparent. The term ‘unmanaged’ does not refer to the absence of flash management but rather to the fact that flash management is not built into the flash device itself.
Using unmanaged devices, copy-on-write (COW), bit error correction, bad block tracking, read disturbance handling and other flash management tasks must be taken care of on the host side. Exactly how these tasks are handled, through which combination of software and hardware, is entirely up to the application designer. And this is good…mostly.
When opting for unmanaged flash devices, application designers end up with more on their plate. More responsibilities. More design decisions to make. And, arguably, more chances of getting it wrong. But these efforts could be rewarded. Here are three reasons why.
- Flexibility. Unmanaged flash means that the application designer can tune every aspect of the storage subsystem. Only need to store a few files and cost is an issue? Consider a small NOR. Energy consumption should be kept as low as possible ? Then, a small NAND would probably be a better fit. Need some large storage capacity with high random write performances and high reliability? Why not consider a multi-die SLC NAND? Or even an array of separate NAND chips? Robustness is the crux? Consider beefing up that ECC a tad. Possibilities are endless.
- Transparency. A source-available flash management software, such as JBLopen’s TreeSpan File System (TSFS), provides an open window on every single aspect of the flash management, ready to be independently reviewed and approved. This is in stark contrast with managed flash devices where flash management is typically offered as part of a proprietary firmware.
- Cost. The unit cost of a bare flash device is much lower than that of a managed flash of equal capacity. Assuredly for high volume applications, managed flash will cost more, regardless of the application’s development costs. For low volume applications, things are less of a black-and-white situation. Still, by opting for an integrated solution such as TSFS — including file management, flash management and platform drivers —, overall cost can be kept to a minimum.
Managed Flash: an Easy Way Out
As a company who sells flash management software, we are admittedly biased. Indeed, we do believe that unmanaged flash devices, along with the appropriate flash management software, typically yield superior results than managed flash devices, especially for deeply embedded applications. However, there are specific situations where managed flash devices shine:
- A very large storage capacity is needed. Large managed flash devices are typically based on TLC or QLC NAND, which have much stricter — and sometimes more manufacturer-specific — management requirements which are better dealt with using custom-tailored, proprietary flash management firmware. For industrial applications, a multi-die SLC NAND (or perhaps even an array of individual NAND chips) might be preferred for reliability reasons, although this solution is significantly more expensive.
- Immediate support for a legacy file system is required. Legacy file systems are typically block device oriented, which means that they cannot be deployed directly on top of a raw flash memory. Managed flash devices readily provide the missing block device abstraction. This can be helpful, for instance, if the legacy file system has already been through extensive verification and validation and starting all over again with a new file system is not an viable option.
- Interoperability is required. Your application may require that data collected on the embedded device, for instance, be accessed from a PC. In this case, using the FAT file system is one reasonable option. This brings us back to the previous point. FAT being a legacy file system, managed flash devices allow for straightforward integration. Not to mention that SD cards are found about everywhere.
- Off-loading of storage-related tasks is required to save on limited CPU/memory resources. Flash management tasks, such as garbage collection and ECC, may add up to a significant computation burden for a modest CPU. These tasks also require some amount of RAM, which could otherwise be saved for application purposes. If a fair amount of storage is needed and the selected host platform is very limited, off-loading flash management tasks to a separate managed device could be the way to go.
A Final Advice
As much as we would like to conclude this article with a simple, straightforward advice, we can’t. There are just too many ins and outs. Too many nuances. Too many specific requirements that deserve a close look to form a sound opinion. In fact, that might well be our final advice: don’t underestimate the complexity of storage design, be thorough in assessing your various requirements and design options, and get support from experts if you need some.
As always, thank you for reading. Any questions or comments regarding this article will be more than welcome. Also if you need targeted advice regarding the selection of the best flash technology for your specific application, please feel free to reach out to us.