Talking about SSD, eMMC, UFS

Time:2020-11-21   Visits:1049

At this time, posting this article will inevitably be suspected of rubbing hot spots. But as a graduate student of computer architecture, my curiosity couldn't be restrained when these terms were flying in the sky, and I wanted to find out the true nature of these technologies. This article does not comment on a specific event, only analyzes and compares these three technologies from a technical perspective. Even as your own technical reserve + popular science.

First of all, these three technologies belong to different types of flash memory. The difference lies in the controller, interface standards, and lower-level Flash chip standards. Their main role in systems such as computers/mobile phones is to serve as storage/file systems. (Note that although they are also called memory, they are completely different from the stored memory)

In the past, the main storage device in the computer system was a mechanical disk, which had slow access speed, large volume, high power consumption, and was very sensitive to vibration, so it was difficult to use in miniaturized mobile devices. After the emergence of Flash Memory, because there are no moving parts, it almost perfectly solves the various problems of the above mechanical hard disks, so it will soon be widely used in various mobile devices. (Of course, Flash write operation and lifespan issues are also more complicated, but this is not the focus of this article) And Flash-based SSD hard disk performance is generally better than traditional mechanical hard disk, so it has become the mainstream storage device of PC/server.

So since SSD, eMMC, UFS are all Flash, what is the difference between them?

To understand their differences, we must first understand the problems they solve.

The main function of SSD is to replace HDD hard disk on PC/server, it needs:

Large capacity (100GB~TB level)

Extremely high parallelism to improve performance

Not sensitive to power consumption, volume and other requirements

Compatible with existing interface technologies (SATA, PCI, etc.)

Both eMMC and UFS were mainly invented for mobile devices. They need:

Proper capacity

Proper performance

Extremely sensitive to power consumption and volume requirements

Only need to follow certain interface standards (explained later)

In order to feel the difference intuitively, I just found a PCIe SSD, as shown in the figure below, the black chip above is Flash:

I disassembled another mobile phone. The Flash chip in it looks like this (the biggest black chip in the middle):


Do you see the difference? (The articles I wrote before were stolen and reposted, so I had to code the pictures, forgive me)

An SSD, in order to meet the requirements of high parallelism and high performance, has multiple Flash chips, so that independent read and write operations can be performed on each chip, and parallelism can improve the throughput of the hard disk, and it can also increase redundant backup. In order to save space and power consumption in mobile phones, there is usually only a high-density Flash chip.

The strategy for managing a Flash chip and managing multiple Flash chips is definitely different, so their controllers are completely different. And the PC needs to be compatible with SATA or PCIe or m2 interface, so that when your computer's hard drive is broken, you can unplug it and replace it with another hard drive with the same interface and it can still be used. And most of the Flash chips on mobile phones are directly soldered on the motherboard, and there is basically no need to consider the issue of replacement, so as long as they comply with a specific standard, it is good to be able to communicate with the CPU normally. Therefore, the interface difference is also one of the important differences between SSD, eMMC and UFS.

Okay, the difference between SSD and (eMMC, UFS) is finished, let's talk about the difference between eMMC and UFS that many people may be concerned about.

Both eMMC and UFS are standards for mobile-side Flash. The difference is that their interface technologies are quite different.

eMMC is an earlier technology, its full name is embedded MultiMedia Card. Why is e in lowercase? Because of the existing MMC. The so-called MMC, you may not have heard of it, but you may have seen it. It is used more in the camera and looks very similar to the SD card (the previous picture is wrong, thank you for your reminder in the comments).


Embedded in front of MMC is mainly to highlight that the device is now embedded on the circuit board. eMMC, like MMC, uses an 8-bit parallel interface. In an era when the transmission rate is not high, this interface is sufficient. However, as devices require higher and higher interface bandwidth, it is becoming more and more difficult to increase the speed of parallel interfaces. The theoretical maximum value of the latest 5.1 standard of eMMC can reach up to 400 MB/s. It is not impossible to increase the frequency further, but it may not be cost-effective.

Fortunately, the tide of interface serialization has been vigorous in recent years. The so-called interface serialization, in simple terms, is that engineers found that instead of using a relatively wide parallel interface to transmit at a lower rate, it seems more cost-effective to use a serial interface to transmit at a very high rate (bandwidth, power, cost) Comprehensive consideration of all aspects). So UFS came into being at this time, replacing the parallel interface with a high-speed serial interface, and it was full-duplex, that is, read and write at the same time. Therefore, compared with eMMC, the theoretical performance of UFS is improved a lot, and it can even reach the level of some SSDs. You can feel it intuitively in the picture below. The blue one is UFS and the red one is eMMC. Of course, the higher the better:


(Picture quoted from [1] Micron's document)

Finally, there is a question that everyone may be more concerned about: I designed a system that uses UFS, and then sadly discovered that UFS is not available. Can I directly replace it with eMMC?

The answer is no, because UFS and eMMC interfaces are completely incompatible, and the controller is not universal. The following two diagrams are the interfaces of eMMC and UFS respectively (picture quoted from [2][3] JEDEC standard).


Even if it is a schematic diagram, the obvious difference between the two can be seen. eMMC has two buses, which transmit instruction data input and output respectively, and because it is a parallel bus, there is an additional data strobe. And UFS has two differential data lanes, and both commands and data are sent in the form of packets. Not to mention the electrical characteristics of the two signal lines are also very different. These will directly lead to very different SoC controller and circuit design on the control side (CPU side).

Therefore, the SoC and circuit board of a system must be redesigned before UFS can be replaced with eMMC. This is not as simple as changing a Flash chip on the production line. It has to be designed and tested for a longer period of time. Otherwise, if you want to quickly come up with an alternative plan, I am afraid that you will have to design compatible two sets of plans from the beginning, eh.


[1] UFS is here, and it’s very fast!

[2] JEDEC-JESD84-B51


Remarks: transferred from Zhihu


Preview mobile cloud website