
8. Flash Devices and Flash File System Support
27
known as the cycling limit, depends on the specific flash technology, but it ranges
from a hundred thousand to a million times per block.
1
Optimization Methods
As mentioned, flash memory is not an infinitely reusable storage medium. The
number of erase cycles per erase unit of flash memory is large but limited.
Eventually, flash degrades to a read-only state. To delay this as long as possible,
TrueFFS uses a garbage collection algorithm that works in conjunction with a
technique called wear-leveling.
Wear-Leveling
One way to alleviate over-programming is to balance usage over the entire
medium, so that the flash is evenly worn and no one part is over-used. This
technique is known as wear-leveling and it can extend the lifetime of the flash
significantly. To implement wear-leveling, TrueFFS uses a block-to-flash
translation system that is based on a dynamically maintained map. This map is
adjusted as blocks are modified, moved, or garbage collected.
Static File Locking
By remapping modified blocks to new flash memory coordinates, a certain degree
of wear-leveling occurs. However, some of the data stored in flash may be
essentially static, which means that if wear-leveling only occurs during
modifications, the areas of flash that store static data are not cycled at all. This
situation, known as static file locking, exacerbates the wear on other areas of flash,
which must be recycled more frequently as a consequence. If not countered, this
situation can significantly lower the flash medium’s life-expectancy.
TrueFFS overcomes static file locking by forcing transfers of static areas. Because
the block-to-flash map is dynamic, TrueFFS can manage these wear-leveling
transfers in a way that is invisible to the file system.
Algorithm
Implementing absolute wear-leveling can have a negative impact on performance
because of the many required data moves. To avoid performance degradation,
TrueFFS implements a wear-leveling algorithm that is not quite absolute. This
algorithm provides an approximately equal number of erase cycles per unit. Over
time, you can expect the same number of erase cycles per erase unit without a
1. This number is statistical in nature and should not be taken as an exact figure.
Comentarios a estos manuales