Hard disks have long used self-monitoring, analyses, and reporting technologies (SMARTs). Now, flash-memory disks can join the club.
Flash memory-based systems have become successful because the lifetime of the flash subsystem is often much longer than the expected life of the product. (This is typically the case when there are infrequent writes to flash memory.) But while both indicate how long the media will be usable, differences exist between the two due to the underlying storage technology.
Flash memory's limited number of write cycles per storage block is the main reason behind the disparity. These cycles, which can predict maximum life, give designers the data to determine the capacity that's required as well as how often the device must be replaced. Hard-disk systems tend to track hard and soft errors.
As flash memory moves to replace more hard-disk storage in environments with a high percentage of writes, technologies such as Silicon Systems' SiSmart will become increasingly important. The SiSmart technology is implemented in the company's SiliconDrive products (Fig. 1). It includes Silicon Systems' PowerArmor power-down corruption prevention feature. SiSmart also uses Silicon Systems' load-leveling technology.
SMART MONITORING, SMART MANAGEMENT
Load leveling is key to SiSmart support, but it's even more important in how it works. The typical flash-memory load-leveling approach writes new data to an unallocated block, freeing up the block where the data was originally destined. If the write fails, a spare block is used instead, and the failed block is marked accordingly. Unfortunately, this simple approach will struggle if few spares are available. A typical spare usage curve will look like Figure 2, with a steep falloff just before the device experiences a hard failure.
Part of the problem is that unwritten data often is left where it was originally placed. As a result, a good amount of life remains in relatively static blocks, while blocks where data is written frequently start to expire. In this case, the spare blocks eventually will replace failed blocks being written. Theoretically, then, a good deal of life still exists in the static portion of the flash memory when all spares are gone.
Silicon Systems' load-leveling support changes the equation by moving static data as part of its load-leveling algorithm. This can significantly extend the overall life of the system. Spares are still needed, though, to turn hard failures into recoverable soft failures.
Combine Silicon Systems' load-leveling support with the SiSmart tracking system, and you've got a device with a predictable lifetime. It won't be a strict function of the number of flash-memory cells and the projected cell lifetime, however, because the device's environment will affect overall performance. This will be an adjustable estimate instead, based on the frequency of spare-block usage.
It's still possible for the device to fail catastrophically, but such failures would be an exception. In general, SiSmart offers a good estimate of the useful device lifetime, providing a mechanism for an early warning system that can notify a host before the system fails.
SiSmart tracks the number of times each block is written, information that is available to the host. Silicon Systems will provide the application programming interface (API) to developers. A host typically will poll the device, using the API in a manner similar to the hard-disk SMART system. When that system starts, the status is checked. But embedded systems will require this checking on a regular basis, since many embedded systems never turn off. Otherwise, only the initial check would occur.
SiSmart is exclusive to Silicon Systems' SiliconDrive line of flash-memory devices, but it could be licensed and utilized in other vendors' products. Until then, Silicon Systems is the sole source of highly reliable flash memory.