Raw Flash compared to eMMC and UFS / What is Managed NAND
Both eMMC NAND and UFS memory are great examples of "managed NAND." These mass storage devices contain NAND flash memory along with other related controller and interface circuits. In the comparison below, we will refer to Raw Flash when speaking of non-managed NAND.
NOR and NAND flash memory did not originally require a separate hardware flash controller, and a circuit design could hand this functionality off to software. One of the primary features of a hardware flash controller is Error Correction and Coding (ECC). A software controller solution can only reasonably handle a few bits of correction and detection, which is far short of the 20 or more bits required by newer MLC NAND flash. Newer designs with NAND flash often require a hardware flash controller.
One problem system designers encounter is matching the hardware flash controller capabilities to the requirements of the NAND flash. This problem is exacerbated by changes to the bill of materials – newer replacement flash parts often require more bits of ECC. This can mean more alterations to the design, modifications to the media interface routines and increased risk of failures.
Both eMMC and UFS contain a built-in controller module, and by design it can handle the ECC requirements of the underlying NAND. Firmware to handle the ECC strategies (how often to retry, when to mark a block bad, and the like) is built in to eMMC and UFS media; this must be provided in the software layer for raw flash.
A minor point with possible performance implications is the error traffic. With a separate controller, any Flash media errors will be transmitted over a longer circuit path and involve the main processor in decisions; both eMMC and UFS handle this internally with a dedicated processor. There is also a variety of raw flash media with built-in error correction, based on the ONFI EZ-NAND specification. Brand names include Micron's ClearNAND and Toshiba's SmartNAND. In these parts, the wear leveling is provided by an external software solution.
Both NOR and NAND flash memory are available from a wide variety of manufacturers. The exact form factors and pin-outs vary widely, which can give a second source headache to an embedded system designer. The current designs of eMMC and UFS media are available in a few standard form factors and across all vendors.
One additional form factor, with a smaller more rugged pin count, is industrial eMMC. There is an equivalent in raw flash – SPI NOR and NAND. These smaller packages are easier to design into small board space, and give up little to no performance.
Raw flash memory often had a vendor-specific feature set, along with common interface routines. The vendor specific commands often provided additional performance or special features to the designer, at the cost of limiting second sources somewhat.
The access routines of eMMC and UFS are standardized through a common Command interface, so a basic driver could read, write and erase the part. Like raw flash, the vendors have a large list of optional Jedec specification features to implement, and relying on this implementation can also restrict the list of second sources. Additionally, the firmware performance is not specified, and varies across the vendors.