|Ⅰ What is UFS?|
|Ⅱ Storage development|
|Ⅲ Why is UFS so fast?|
UFS (Universal flash storage) has two meanings, one refers to the mobile phone storage interface protocol, similar to SATA, PCIe/NVMe. The other is storage devices that use this protocol.
The specification is supported by several market leaders in consumer electronics, including Nokia, Sony Mobile Communications, Texas Instruments, STMicroelectronics, Samsung, Micron, SK Hynix, etc. UFS card is the replacement of embedded MultiMediaCard (eMMC) and SD card. UFS uses the M-PHY physical layer developed by the MIPI Alliance. It has a speed of 2.9Gbps per thread to 5.8Gbps per thread. UFS implements a full-duplex LVDS serial port, which has a wider bandwidth than eMMC with 8 parallel threads.
The biggest difference between UFS and eMMC is that the parallel signal is changed to a more advanced serial signal, which can quickly increase the frequency. At the same time, half-duplex is changed to full-duplex. UFS is based on the small computer system interface SCSI Architectural model and supports SCSI Tagged Command Queuing. The Linux kernel already supports the UFS format.
We know that our computer consists of three major parts: CPU, memory, and hard drive. Calculation and control are carried out by the CPU. The memory temporarily stores the data needed when the program is running. And the hard drive can store data for a long time.
The history of the UFS protocol
Every day, we use a mobile phone, which is effectively a little computer with three key components: a CPU, memory, and storage devices. The storage device is equivalent to a computer's hard drive, which is used to store data on the phone for a long time, such as videos, photos, music, and system data.
Computer hard drives include mechanical hard drives (HDD) and solid-state drives (SSD). The storage medium is a magnetic disk, whereas the former is a mechanical storage device. The latter is an electronic storage device with flash memory as the storage media. Because it is impossible to fit a mechanical device into a small mobile phone, the storage device on the phone must be electronic, and the storage medium must be flash memory.
As a result, people's expectations for mobile phones are increasing: the speed should be quick, the capacity should be vast, the operation should be smooth and not stuck...
To make mobile phones faster, mobile phone manufacturers use methods, including more and faster CPUs, larger system memory, and faster storage devices. Among CPU, memory, and storage devices, the slowest one is the storage device. The fast pace of CPU and memory makes the storage device also need to work hard to keep up. Otherwise, no matter how fast the CPU and no matter how large the memory is, your mobile phone will still make you feel uncomfortable.
In recent years, flash memory technology has advanced to the point that it is now faster than ever, whether it is a hard disk on a computer or a storage device in a mobile phone.
On computers, from HDD to SSD, from SATA SSD to PCIe SSD, hard drives are getting faster and faster.
Memory cards in mobile phones are getting faster and faster, from SD cards to eMMC cards to UFS cards.
First, it uses differential serial transmission for data signal transmission. This is the basis of the speed of UFS. All high-speed transmission buses, such as SATA, PCIe, and SAS, are serial differential signals. Serial transmission can use a faster clock (clock information can be embedded in the data stream). The differential signal is the level difference between two signal lines that represent 0 or 1. The differential signal transmission offers a higher anti-interference capability and can give a broader bandwidth than single-ended signal transmission.
Assume that the difference in level between two signal lines is utilized to represent 0 and 1. Specifically, if the difference is greater than 0, it means 1, and if the difference is less than 0, it means 0. If there is interference during the transmission, the interference level of almost the same magnitude is added to the two lines. And the two are subtracted, and the difference is almost unchanged. However, it is extremely susceptible to interference while transmitting single-ended signals. Because the anti-interference ability is high, data can be transferred at a quicker rate, allowing for a larger bandwidth.
The predecessor of UFS is eMMC, which uses parallel data transmission. The biggest problem with parallelism is that the speed cannot be increased. It is because once the clock goes up, the interference becomes larger and the signal integrity cannot be guaranteed.
Second, UFS, like PCIe, offers multi-channel data transmission, with up to two channels currently supported. Multi-channel allows UFS to make trade-offs between cost, power consumption, and performance.
Also, UFS’s working mode is a full-duplex, that is, reading and writing can be parallel. The working mode of eMMC is half-duplex. Reading and writing cannot be performed at the same time.
To make UFS fast, these infrastructures are necessary. But to make full use of the low-level high-speed data transmission channel, the cooperation of the upper-level data transmission protocol is also required. It's like we now have a spacious and flat highway, and we need a high-speed car to drive on it.
UFS supports command queues, that is, the host can send many commands at a time. And UFS devices support parallel and out-of-order execution. Whoever completes first returns to the state first. Asynchronous command processing is the name for this method of command processing. However, eMMC does not support command queues. Commands are executed one by one, or one package per package (each package contains several commands). If the previous commands are not executed, the subsequent commands cannot be sent. Synchronous command processing is the name given to this form of command processing.
Let's compare the "full-duplex + asynchronous command processing" and "half-duplex + synchronous command processing" command processing methodologies and command execution efficiency.
The host sends a write command W1 to the device, and then the host writes the data to the device. The command processing is done one by one because it is in the synchronous transmission mode. So before sending the read command R2, you must wait for the previous write command W1 to complete. Also, before sending the write command W3, you must wait for the completion of the R2 command.
As it supports the command queue, the host can send several commands to the device at once. As shown in the figure above, the host sends a write command W1 and a read command R2 to the device at once. The device can process these two commands in parallel. Because the protocol enables full-duplex operation, the device can also return the data of the read command R2 to the host as the host transmits the data of the write command W1. The following commands R3, R4, W5... are handled in a similar way.
Today's mobile phones have very rich applications and require multi-threaded operations. The efficiency of UFS processing commands is substantially improved due to the presence of full-duplex and command queues, providing users with a fantastic experience.
We have made a few comparisons between UFS and eMMC, but I seem to have forgotten to explain what eMMC is.
Embedded Multi Media Card (eMMC) is also a mobile storage protocol which is UFS's previous generation protocol standard.
In 2015, eMMC5.1 was released. It has a maximum speed of 400MB/s, is the most recent eMMC standard. JEDEC already released UFS, not sure if it will release a new eMMC standard. After all, physical signals limit parallel transmission of eMMC, thus expecting a qualitative improvement in speed is unrealistic.
If the mobile phone's HDD is eMMC, then the mobile phone's SSD is UFS. There is little doubt that UFS has supplanted eMMC as the primary storage protocol for mobile phones. However, there is another obstacle on the road to UFS's dominance, and that is NVMe. Some people say that NVMe is not a protocol standard for SSD? Yes, but I want to remind everyone that the storage protocol in Apple's mobile phones now is NVMe instead of UFS. UFS and NVMe will be available on Android and Apple phones in the near future. We'll have to wait and see whether UFS and NVMe are dichotomous or integrated in the long term