Details on eMMC Functionality and Partitioning
Embedded multi-media controllers, or eMMCs, are embedded systems that contain a flash memory controller and flash memory on the same die. They are used in mobile devices, laptop computers, and more. eMMCs are similar to solid-state drives, or SSDs, but they are not exactly the same.
When using eMMC, hosts can set up a maximum of four General Purpose Area Partitions. Each of these partitions can have its own attributes. The partitions can be set as General, Enhanced (with pSLC flash memory), or Extended. For more information about Extended Partitions, see the section below regarding wear leveling. The settings for the partitions are a one-time programmable operation, which means that they cannot be edited after they have been set. These facts will help you better understand eMMC functionality and partitioning, so that you can consider if eMMC is the right option for your device. Keep in mind that the initial way you set up your device will have some impact on functionality and partitioning factors.
Power Loss and Flash Technology
Unexpected power loss can lead to data corruption with all flash devices. This is an inherent factor with flash NAND technology. While it doesn’t happen in every instance, this threat is present whenever eMMC or any flash technology is used in environments with an unpredictable power supply, so OEMs and designers should plan accordingly. Fortunately, there are ways of using devices and certain operating states in which devices can be used to decrease the risk of data corruption during a power loss.
In all cases, running in pSLC is the best way to avoid data corruption during a power loss. This is because there is a smaller chance that one voltage cell, as is used with pSLC, will be misinterpreted than there is with two or three voltage cells, as are used with other kinds of flash technology. With pSLC, it is not necessary for the controller to interpret which cell level the charge is in. Instead, it simply has to determine whether the cell has a charge or not.
Other types of flash technology have paired pages that have to be considered. For example, in MLC NAND, there is an upper page and a lower page, so there are two places for charges to be, with two bits of data per cell. To change one of those bits—for instance, a bit in the upper page—it is necessary to use the right voltage to charge the right cell level. If an unanticipated power loss occurs at this point, it may not be possible for the controller to apply the power charge that is required for the bits to be changed. For example, perhaps you need 5V to change the upper page, and the power disruption means that only 3V is available. Because of the lower available charge, the change that you wanted to occur in the top page may occur in the bottom page instead.
When this happens, the stage of the lower page is altered and the information is corrupted, while the programming that you had intended for the upper page is not completed. This kind of situation is even more likely with TLC NAND flash, in which three voltages have to be considered. As such, a power loss is riskier with MLC and TLC than with pSLC or SLC, as pSLC and SLC either program the single page or don’t. If a power failure occurs in this step, then the program would be unsuccessful, but data corruption would not occur.
Reliable Write Commands
While pSLC and SLC are both better options for an eMMC that may encounter a power failure, it doesn’t mean that they will always be able to successfully prevent these issues from happening. Losing power unexpectedly is a critical failure for NAND flash of any kind. However, there are additional commands that can help to prevent data corruption. One such command is Reliable Write.
Reliable Write can be enabled by eMMC hosts in order to make sure that new data are written without causing any corruption to existing data. With Reliable Write, the controller gives each physical address in the NAND a Logical Block Address. It then tracks the label associated with each address. It is important to keep track of timing and what data are relevant in order to keep the important data and discard the unimportant data. However, because this process can affect the drive speed, different controllers and firmware deal with this process differently. Reliable Write is designed to let the host provide the eMMC with the factors of data that will be written upfront. Reliable Write also ensures that the size constraints set by the specification of the host are conformed to.
The controller uses this information to designate a specific space for new data and writes to that location without overwriting the information that it is replacing. When the new data are fully and successfully written, then the address label is changed to the new data location. Because of this sequence of events, old data will not be corrupted by new data that are not successfully written because of a power failure. This can be performed in Enhanced Partitions in pSLC using Enhanced Reliable Write.
Wear leveling algorithms ensure that the space on flash devices is used efficiently. In eMMCs, it is possible for partitions to be given settings to designate them for different kinds of data. There are three general settings that fall into the category of Extended Partition Attributes.
- Default: No extended attribute
- System code: A partition that contains critical system files, like the executable files of a host operating system, so it is rarely updated
- Non-persistent: A partition used for temporary information
With these different settings, the controller decides how data should be managed in each partition, and it then makes decisions about wear leveling accordingly.
Within eMMC, there is also a mechanism for data tagging, so that tags can be placed on data. These tags give the controller information that is necessary to determine how data should be written, in order of importance.
The different options for wear leveling are mutually exclusive. They are each good tools, and different applications do better with different versions. For example, data tagging is only available with default or non-enhanced user area data. Extended Partition Attributes cannot be used with Enhanced Partition Attributes. However, certain areas of the eMMC can be assigned different wear leveling methods.
For more information about eMMC functionality and partitions, contact Delkin. Our team of application engineers and product specialists can explain the different factors involved in finding the best embedded storage option for your device.
ORDER DELKIN INDUSTRIAL FLASH STORAGE TODAY through our distribution partner Newark.