Choosing Flash storage for harsh environments
Flash memory has become the favoured non-volatile bulk storage medium for embedded applications for good reasons. Flash memory is compact, provides long-term reliable data storage that, if the right form is chosen, is able to operate over a wide temperature range and handle conditions such as shock and vibration more readily than rotating disk media.
By Victor Tsai, Director of Flash Products, SMART Modular Technologies
Although Flash memory is highly suited to use in embedded applications, it is important to choose a format and packaging that fits the requirement. In many industrial applications, there is a high of risk of ingress by dust and other pollutants. Humidity changes and the presence of volatile chemicals in the atmosphere around the system can degrade the metals used for electrical contacts, leading to failures in the field. As a result, designers need to think carefully about the suitability of some types of off-the-shelf Flash-memory products.
Options for Flash memory
Thanks to the widespread use of Flash in consumer and commercial IT products, there are numerous options in terms of capacity and performance thanks to the large market size for consumer-grade Flash memory. From the perspective of the circuit designer and firmware developer, the hardware interfaces are typically easy to design in and the software support is straightforward. Mostly this ease of use is because any management of the Flash memory is performed within the storage module itself, hiding any from the applications programmer and letting them treat the non-volatile storage as a virtual disk drive.
However, Flash memory requires more extensive management of data than is the case with traditional magnetic disk drives. One element of this management is the need to erase a block of memory before replacing previously written data rather than simply overwriting a storage location. Flash memory cells are programmed by pulling charged particles, typically through a quantum-tunnelling process, onto a floating gate that sits between the normal control gate of a transistor and the transistor’s channel.
When charged, the floating gate keeps the transistor channel open even when power is not applied to the control gate, encoding a non-zero value. The only way to reverse this is full erasure of the cell which restores the unprogrammed state.
A further complication is that the process of charging and erasure damages the structure of the device over time. After millions of cycles, the transistor can become too degraded to store data reliably and it will need to be retired. Over the lifetime of a device, some locations may be rewritten many times whereas others are left mostly untouched. To avoid the need to discard and replace the entire memory device, a controller within the storage module actively manages how data is mapped to the Flash-memory blocks to avoid overusing any memory cells.
Typically, segments of the application’s memory space that receive larger numbers of repeated writes, such as runtime data values that need to be backed-up in non-volatile storage regularly, will be moved to different blocks in physical memory in order to balance the number of writes each group of cells receives during the Flash device’s lifetime.
Communication between the filesystem and the memory controller is important to maximise memory lifetime. A risk with simple Flash-management schemes is that the controller will attempt to move and rewrite blocks of data that have been deleted at filesystem level because it has no way to determine whether they are still in use or not.
TRIM command now supported by many Flash controllers provides a link from the filesystem to the Flash controller so that data blocks that are no longer needed are moved. They are simply erased when new data needs to be written into that location. By reducing unnecessary write operations, TRIM ensures a longer lifetime for the underlying Flash memory hardware.
Although they relieve the developer from the burden of Flash-memory management and ensure long lifetimes, removable-media solutions do not provide a good fit for many embedded systems used in the industrial market and other sectors where environmental compatibility is important.
Solid-state disk drives (SSDs) are comparatively bulky as they are designed to mimic the form factor of conventional hard drives, which can cause issues for systems that are prone to shock and vibration. Systems that use SSDs may need to be mounted in shock-absorbing cages to ensure that cables do not become disconnected during transport or operation.
Overcoming challenges with removable media
Removable media based on standards such as CompactFlash card, SD card and MultiMediaCard (MMC) offer significantly smaller and lighter form factors. However, shock and vibration still present major concerns, requiring the use of locking mechanisms to prevent them from being disconnected by impacts or vibration. A further and significant problem for removable cards, as with the pin-header connections used for larger SSDs, is that of chemical contamination and dust build-up that is highly likely in industrial-production environments. SD card and MMC are particularly vulnerable due to their use of edge contacts where corrosion and dust ingress can also affect pin headers unless the product is sealed.
One option is to dispense with removability and employ memory devices that are soldered directly onto the PCB. The direct permanent connections, assuming the use of suitable high-reliability packaging and solder choices, are not subject to the same chemical and dust contamination issues as removable media. The issue for the development team is that this places the burden of Flash management on them unless they take the risk of reducing product lifetime by not investing the time and funds to write firmware that performs operations such as wear levelling and TRIM.
There is an option that combines the reliability of soldered memory with the ease of use associated with removable Flash media. This is the embedded MultiMediaCard (eMMC) standard. Originally developed for mobile devices, the eMMC standard combines Flash memory devices with a controller in a single ball-grid array (BGA) package.
The eMMC standard
The are several form factors for eMMC. The standard defined by JEDEC uses BGAs with 100, 153 or 169 solder balls and employs an 8bit parallel interface for data transfer to provide a good tradeoff between performance and ease of PCB layout. The 100-pin format, for example, uses larger solder balls to provide compatibility with lower-cost PCB manufacturing processes. In all cases, the large ratio of solderable connections to those used for power, ground and signals ensures an excellent bond between the PCB and the memory, ensuring high resilience to shock and vibration.
Although the eMMC standard was developed for consumer devices, the inclusion of a controller within the package and the support for standard BGA form factors made it readily adaptable to the needs of teams working on embedded solutions that can operate in harsh environments. Specialist manufacturers such as SMART Modular Technologies use industrial-quality Flash devices and packaging materials to offer eMMC solutions in extended temperature ranges.
Thanks to the inclusion of an onboard controller, eMMC solutions can provide features in addition to standard offerings such as wear levelling and TRIM compatibility that enhance overall reliability. For example, the DuraFlash range of eMMC solutions can provide error correction code (ECC) support to improve the overall reliability of data transfers to and from the system. There are a variety of ECC technologies that can be used. SMART employs a low-density parity check (LDPC) code as this provides more powerful error detection and correction facilities.
The combination of features offered by DuraFlash has provided customers with the ability to greatly boost the reliability of their products. As an example, one customer faced problems with conventional removable SD card storage in their line of products for fast-food kitchens. Grease and other contaminants were finding their way into the contacts of the SD card memory slot, causing intermittent disconnects and unresponsive systems. Replacement with SMART’s DuraFlash eMMC eliminated the problems while maintaining the convenience of built-in Flash management and high-durability non-volatile storage.
Though embedded systems designers have many choices when it comes to designing in non-volatile storage, environmental concerns make a soldered solution the best choice. The eMMC technology provides the benefits associated with removable storage with none of the reliability issues.