Flash memory has a finite lifetime. This means that Flash memory reliability and life are issues that need to be accounted when considering its use.
When Flash memory was first introduced it had a limited number of write / cycles and Flash memory wear was a significant issue.
Now fabrication processes have been significantly improved, and although Flash memory still has a limited life, the number of write cycles it can endure is very high, and along with wear levelling algorithms used, this means that the life of Flash memory is not normally an issue.
Flash memory wear basics
Significant improvements have been made in terms of flash memory wear since the first flash devices were introduced. Originally the flash memory lifetime was measured in terms of a few thousand programme- erase cycles.
Today most commercially available flash memory is guaranteed to withstand 100 000 or more programme-erase cycles with some manufacturers guaranteeing a life of over 1 000 000 cycles.
Flash memory wear out mechanism
The flash memory life results from a wear out mechanism caused by the basic the structure and technology of the device.
A typical device structure is seen below, and from this it can be seen that there are various layers and areas to the device.
The wear-out mechanism for flash devices occurs as a result of usage causing the tunnel oxide layer to degrade. Although there are other mechanism that can cause the device to fail, it is the tunnel oxide layer degradation that causes the flash memory wear issue.
Flash memory uses a process called channel hot-electron injection for programming each cell and Fowler-Nordheim tunnelling for the erase cycle. However it is found that electrons can become trapped within the oxide layer, and this electron trapping in the tunnel oxide reduces electric field during erase operations. In turn this gives rise to a in gradual degradation of the erase characteristics and closure of memory cell threshold window.
As a result charge trapping / de-trapping technology is key to the improvement of the flash memory wear characteristics.
Flash memory wear levelling
In order to gain the maximum use from a Flash memory, a process called wear levelling is often used. The Flash memory wear levelling technique is one that can be used in a variety of forms of memory, e.g. hard drives, etc., but is also very applicable to Flash memories where it is widely used to increase the life and improve reliability.
The aim of the Flash memory wear levelling functionality is to track which blocks have been used, and to distribute the programme and erase cycles are distributed evenly across the available memory. By using the wear levelling techniques, no block should be used greatly more than any other and therefore no single block prematurely fails due to a higher number of programme-erase cycles.
To achieve this, one block within the Flash memory is designed to have an extended lifetime, so that it can be used to track the usage and control the wear levelling.
There are three main types of wear levelling mechanism that are used:
- No wear levelling: The simplest option is not to use wear levelling for the Flash memory. This approach might be acceptable in circumstances where little use is expected and a reduction in complexity is of paramount importance. Under these circumstances the Flash memory controller permanently assigns the logical addresses from the operating system to the physical addresses of the Flash memory. When a location is changed, the contents of that block must be erased and then re-programmed without any intelligence to reduce the number of programme-erase cycles. This is not only more time consuming, but it also does nothing to reduce the flash memory wear.
- Dynamic wear levelling: Dynamic wear levelling uses a map to link Logical Block Addresses, LBAs generated by the operating system, OS, to the physical Flash memory locations. Each time the operating system writes new data, the map is updated so the original physical block is marked as invalid data. A new block is then linked to that map entry. Each time a block of data is re-written to the Flash memory it is written to a new location.
There is still a problem with this type of flash memory wear levelling with blocks of data that never get replaced. They remain with no additional wear.
The name for this type of wear levelling comes from the fact that only the dynamic data, i.e. data that is changed, is recycled. The memory may last longer than one with no wear levelling, but there will still be blocks of data that remain operable as a result of low usage, long after the memory as a whole is inoperable as some areas have exceeded the number of programme-erase cycles.
- Static wear levelling: This form of Flash memory wear levelling is the most sophisticated and effective. Static wear levelling also uses a map to link the Logical Block Addresses to physical memory addresses.
Static wear levelling works the same as dynamic wear levelling but with the addition that blocks of static data, i.e. data that does not change, are periodically moved so that these low usage cells are used by other data. By moving even static data periodically it levels the usage and hence levels the wear across the whole memory.
The overall performance of Flash memory has been significantly improved in recent years. This means that the reliability and life of a Flash memory is sufficient to enable it to be used not only for short term storage in applications like memory sticks and camera memory cards, but also for more exacting applications like the replacement of hard drives in computers.