Advantages of robust flash solution for digital signage media players & touchscreens
IAdea Germany CEO Björn Christiansen explains the special features of IAdea technology
Schwentinental, 26.09.2017 - IAdea specializes in optimizing the Android™ operating system for unattended applications with round-the-clock operation. Important improvements compared to conventional Android are:
- More robust flash memory
- Access control to protect against unauthorized tampering
- Improved remote upgrades
- Remote device provisioning
- Improved multimedia performance
This essay focuses on IAdea proprietary features that protect a device from various flash memory related failures, these include:
- Database replication
- Overlay file system
- Improved file system for SD cards
- Reduction of the write volume
These improvements significantly increase the reliability of digital signage devices.
Flash memory houses components and operating system configuration parameters that are required for a device to function properly. Faulty flash memory is the primary reason a device "hangs" or becomes inoperable. Data contained in flash memory can be lost for two reasons: Power failure or flash failure. Both can cause devices to become inoperable and require costly site visits and repairs.
More often, critical failures associated with flash memory are not caused by flash hardware failure, but by the loss of data as it is written to flash memory. The Android device often assumes that there is a battery in the system, as is the case with most mobile devices, to prevent a sudden drop in power. However, the commercial/industrial hardware designs usually do not or cannot include a battery. The original Android design can show weaknesses when the power supply is suddenly interrupted.
Before being stored in flash memory, data is often placed in a "queue" backed up with DRAM, which can be millions of times faster than flash. Unlike flash, however, data in DRAM is lost in the event of a power failure. If this happens, essential parts of the system - such as file system indexes and configuration databases - can enter a faulty state. This often causes the device to become inoperable, making it inaccessible over the network.
Another cause of flash memory failure is physical wear and tear of the flash memory device. A flash memory is divided into "blocks" that have a limited life span measured by how often they are erased. When the allowable number of erases is reached, the block becomes unusable and must be replaced with one of the spare blocks. When the spare blocks run out, the flash memory becomes inoperable.
When data is evenly distributed across all blocks ("wear leveling"), a typical flash device can withstand trillions of writes, and that's really a lot. The typical mobile device makes a few changes every time a photo is taken or a call is recorded. On average, this happens a few times per day. Industrial applications, however, often need to store activity logs throughout, possibly thousands of times per hour. If the wear leveling mechanism is not properly developed, round-the-clock operations can quickly destroy flash memory.
For the mobile device industry, the eMMC (Embedded Multi-Media Controller) is used to provide a dedicated flash controller that replaces software-based flash control. A good eMMC controller provides optimal wear leveling and may allow the flash memory to shut down a little more gracefully when power is lost. However, the eMMC does not fix data loss in the event of power loss, so the system remains vulnerable to its most common problem. IAdea provides the fundamental architecture to effectively address this problem, regardless of whether eMMC or traditional flash storage is used.
IAdea's improvement over traditional Android addresses the flash failure problem with the following designs:
- Database replication;
- Overlay file system;
- Improved file system for SD cards;
- Reduction of the write volume.
These are each discussed in detail below.
Important system parameters in the Android operating system are stored in databases that are similar to the "system registry" in Microsoft Windows. While Windows keeps the system registry in the well-secured Windows NTFS-based system partition, Android's databases are in the weaker YAFFS2 file system. If these databases are corrupted due to data loss during the write process in the flash device, the device becomes inoperable and cannot be restarted.
IAdea's technology replicates or creates additional copies of essential system databases. When the system is booted, the technology detects if any important system data is corrupted. If this is the case, it restores the data using the backup copy. This allows the system to operate with the "latest known proper configuration."
Any application that changes system settings or uses its own user preferences (e.g. via the android.content.SharedPreferences API ) is at risk of data corruption; IAdea's database replication mechanism provides protection against this.
Mission-critical systems often require that their core be read-only and that no changes be made so that the behavior of the system is consistent and reliable throughout. When changes must be made, they are placed on a separate "overlay layer" that can be easily undone if necessary. The Microsoft Windows Embedded operating system, a special edition of Windows software for industrial applications, provides such a mechanism via its FBWF (File-Based Write Filter) technology. The traditional Android operating system offers no such design.
IAdea brings the overlay file system architecture to Android. Data writes occur exclusively in the overlay file system, including all configuration changes and software upgrades. A system reset can clean up this layer with ease, and a previous state of the device can be restored. This also protects the system against malware infections. A quick reset puts the device in a clean state so that it is functional again.
Any deployment that needs to be protected against data loss or unplanned changes to the data is guarded by IAdea's overlay file system feature.
Typical Android devices have an integrated flash memory and an SD card-based external flash memory. Application developers often prefer the SD card over the internal memory because the latter is often smaller and serves special purposes. Also, the SD card is easy to replace when it wears out completely, while the internal flash memory is not replaceable. However, due to Android's design, the SD card is poorly protected against data loss. An SD card inserted into an Android device is formatted with the FAT32 file system. this allows good interoperability when the SD card is used alternately with the Android device (e.g. your phone) and a PC or digital camera. However, FAT32 is an outdated technology that offers no protection against data loss. If the power fails while data is being written to the SD card, file errors may occur, eventually rendering an application inoperable. IAdea applies the EXT4 file system to the SD card, which is configured for the flash device in the sense of life extension. EXT4 is the common file system in Linux operating systems and contains some of the most powerful data protection mechanisms against harsh application conditions of all kinds. In the event that a power failure causes data loss, the technology detects and remedies the situation.
Applications that use the SD card for storage are protected by IAdea's enhanced SD card file system.
To save flash memory from its ultimate physical failure due to wear, the number of writes must be reduced. IAdea products are designed to take advantage of the physical structure of flash memory and reduce wear.
Flash memory is organized into "pages" (the smallest unit for read/write operations), and "blocks" (the smallest unit for erase operations) and contains a number of pages. Before data can be written to a page, the block containing it must first be erased. Technically, it is the number of erase operations that limits the life of a flash device.
One can reduce the number of erases by combining the data so that changing multiple pages in a block constitutes only one erase for the block. For example, if data is to be written to four pages within the same block, one option is to (1) perform an erase operation in the block, (2) write to page #1, (3) perform an erase operation in the block, (4) write to page #2, (5) perform an erase operation in the block, (6) write to page #3, (7) perform an erase operation in the block, (8) write to page #4. However, one can also defer the actions and wait for further requests so that the write operations can be combined, thus reducing the operations to (1) one erase operation in the block, (2) one write operation on page #1, (3) one write operation on page #2, (4) one write operation on page #3, and (5) one write operation on page #4. In the first case, four erase operations are required, and in the second, only one. This reduction extends the life of the flash memory by 4 times.
Conventional Android already performs a write volume reduction in a limited way. However, the longer you wait for write requests, the higher the risk of losing the queued requests in case of a power failure. Since Android tends to become inoperable during such events, the extent of write volume reduction is very limited.
IAdea's proprietary technology does an aggressive job of reducing write volume for flash memory, as it is protected from the side effects of data loss, as noted earlier.
IAdea improves the Android operating system by solving problems for industrial applications and provides resilient protection against flash memory-related failures. The improvements allow Android applications to run more reliably 24/7 unattended. Key IAdea benefits:
- Greatly reduced risk of equipment failure due to improper shutdowns and sudden power outages
- Prevention of service interruptions
- Simplified service upgrades
- Reduced deployment and maintenance costs
For information on devices that already take advantage of resilient memory management, please contact IAdea.
The current product series includes the 24/7 Digital Signage Players & Signboards