eMMCs are everywhere! If your product is constantly reading or writing data that is small in size but large in quantity, eMMC can be a great embedded file storage solution.
What is eMMC?
The term eMMC is short for “embedded Multi-Media Card”, an embedded memory standard defined by the MMC Association, primarily for smartphones and tablets.
eMMC, to put it in simple words, is an embedded storage solution that integrates a controller in addition to the conventional memory and provides a unified standard interface.
Composition of eMMC:
eMMC consists of at least three components: MMC interface, NAND Flash, and FLASH controller.
The structure diagram shows the key signal lines of an eMMC:
8-bit data line DAT[7:0], 1 clock line CLK, 1 reset signal, and 1 command CMD. The control of mass storage devices is completed with minimum wiring, which greatly reduces the difficulty of hardware design.
The structure diagram also shows the definition of the Control Register.
OCR: The 32-bit operation conditions register stores the voltage profile of the card, the access mode indication. the busy flag, etc.
CID: The 128-bit card identification register contains the identification information of the device. Each device has a unique identification number.
CSD: The 128-bit card-specific data register contains information about accessing the device contents. The CSD register defines the data format, error correction type, maximum data access time, and data transfer speed, etc.
CSD: The 4096-byte extended card-specific data register defines device properties and selection modes. The upper 320 bytes make the property segment. This segment defines device capabilities and cannot be modified by the host. The lower 192 bytes make the mode field. The mode field defines the configuration in which the device is working. The host revises the mode field with the SWITCH command.
CA: The 16-bit relative device address register stores the device address assigned by the host.
SR: The 16-bit drive level register configures the output drive of the device.
Basic eMMC Commands
The eMMC standardizes some basic commands to allow convenient operations of the registers and other related functions of the eMMC.
There are 4 types of commands, namely:
Broadcast command without response
Broadcast command with response
Point-to-point command without data transfer
Point-to-point command with data transfer
The 48-bit commands are divided into 12 categories. There are also some basic commands, such as CMD4 for setting the status register DSR and CMD12 for controlling the eMMC stop transmit.
eMMC Speed Performance
Sandisk eMMC's at same capacities perform at least 3.3x better for reading and 2.4x faster for writing operations.
R/W speed is vital for FLASH. eMMC FLASH has a range of different transfer modes (transfer speeds). We can see that the total bus width can be configured and selected. If the bus width is not configured in ECSD, it will be polled at 8 bits, 4 bits, and 1 bit. The speed mode of the bus starts at the legacy mode with power on and then polls from the high speed of HS400 to the low HS200. As long as the most basic driver configuration of eMMC is completed, the device is available for use. This can greatly reduce the workload of the driver and the subsequent compatibility issues. We advise new designs to follow the HS400 standard for its higher R/W speeds.
Advantages of eMMC
After a brief look at the number of wires, registers, and commands, we may find many advantages of eMMC.
1) Simplified system storage design and reduced development complexity.
There are many manufacturers of Nand Flash, including Samsung, Hynix, micron, etc. As the technical features of each product are slightly different, so we need to do compatible development for these features, which can be extremely complicated. While the eMMC provides a unified protocol interface that allows us to deliver products that can be compatible with eMMC products made by various manufacturers only if we develop products according to the protocol, and the development process is greatly simplified.
2) Faster updates
As the upgrade of the Nand Flash manufacturing process continues, the Flash Controller and FTL of the main control also need to be constantly updated to support the new Nand Flash. The eMMC packages the Flash Controller and Nand Flash together, shielding the differences due to the Nand Flash process, and the controller and driver of the master control are supported without much modification.
3) Better R/W speed performance
eMMC incorporates Cache, Memory array, and other technologies on basis of the Nand Flash to greatly improve its R/W speed performance.
Simple wiring, convenient control, and automatic polling configuration help to avoid too much-related management on the flash by the master control.
What are your experiences with developing boards with eMMC storage? Did you face any problems with development? Let us know in the comments!
Head of Electronics Engineering @ NexPCB. Give this man a breadboard and a box of electronics and he will make magic (not to be confused with magic smoke). Almost all the Raspberry Pi's in the office are his.