Understanding the Limitations of Solid State Storage in Embedded PCs Using Robustel Flash Manager
“Always when a customer has premature field wear out, it is due to not understanding their WAF* and/or the amount of data written by their application.”
(* - WAF = Write Amplification Factor)
The quote above is from experts in the field of Solid State storage, aka NAND Flash memory.
Most modern embedded computers – including the EG5000 series edge gateways from Robustel use NAND Flash memory because it has excellent price and mechanical characteristics. But! There is a poorly understood & very real danger of using such memory in Industrial applications.
The most prevalent type of storage is MLC NAND Flash (typically in an eMMC package – see Figure 1.1). This type of storage has around 3000 write/erase cycles – in essence, a very finite limit of the number of times you can write new data to it. Not dissimilar from a battery conceptually once you use it all up its gone and its useful life finished.
To ensure the longevity of your embedded system, whether it's a Robustel gateway, SBC, Raspberry Pi, or a similar device, it is critical to check and make sure that the installed application software is not bombarding the system drive with lots of regular writes. The excessive writes can potentially lead to premature failure, causing the system to fail before the useful life of the entire product is over.
Flash Manager, is an innovative software seamlessly integrated into RobustOS Pro and compatible with all Robustel's Edge Gateway routers. This powerful tool is designed to assist you in assessing the potential risk of premature wear and tear on your onboard solid-state storage.
Once you have established the final software image for your EG5000 project, set Flash Manager running for a day or even a week and it will record granular detail about how your application software (and the OS) has interacted with your system drive.(See figure 2.1)
Figure 2.1 – Screenshot of Flash Manager showing Flash storage status and detailed information on data throughput
You can then extrapolate from these measurements to get an indication of the endurance or ‘useful lifetime’ of your solid state drive in real-world conditions(see figure 2.2).
Figure 2.2 – Screenshot of Flash Manager showing Flash life time information
If you have any concerns about whether your system will ‘stay the course’ then there are many ways to help increase system endurance. These include:
-Optimizing your application software to write data more efficiently to disk
-Over-provisioning – use a large(r) capacity drive to get more total read/write cycles
-Using pSLC (pseudo SLC) mode to make an existing flash drive capable of more writes
-Making other OS optimizations