Developed by the PCI-SIG consortium in response to SSD's increasing demands on data throughput, M.2, formerly known as Next Generation Form Factor (NGFF) is a new specification for expansion modules in systems with space limitations.
Slimmer and more flexible than the current Mini PCI Express (mPCIe)/Mini-SATA (mSATA) standard, M.2 does not introduce new signaling systems but rather allows for increased data throughput via multi-lane PCI Express (PCIe), and backward compatibility via SATA and USB signals. While driven by the demand for high-speed, high-capacity storage in ultrabooks, tablets and portable devices, M.2's space-efficient form factor, backward compatibility, and flexibility mean it will have an impact on the embedded sector as well.
The unique needs and requirements of embedded customers make the adoption of M.2 a more complicated decision in this space than on the consumer side, but understanding the background of the technology, its specifications, and benefits can help embedded OEMs and system designers make the right choices now and prepare for the future.
The current generation of small form factor expansion modules for both storage and general peripherals uses a common 30 mm x 50.95 mm mPCIe card form factor (Figure 1). Designed originally for the notebook market as an evolution of MiniPCI, mPCIe is a physical and electrical specification for expansion cards allowing Wi-Fi, Wireless Wide Area Network (WWAN), and other add-on functionality via a miniaturized PCIe connector. mPCIe's widespread adoption in consumer applications, small form factor and its use of the familiar PCIe bus meant it naturally became a convenient and space-efficient way to add functionality to industrial and embedded systems.
As demand for SSDs in notebooks and mobile devices grew, in 2009, the mSATA format was introduced as a small form factor for storage, utilizing the same physical form factor and connector as mPCIe with a miniaturized SATA interface. While physically similar to mPCIe in both form factor and connector, mSATA cards are electrically different from mPCIe and require mSATA host support to function. Being based on the tried and true SATA storage protocol, mSATA made it easy for manufacturers to implement small form factor storage and it was rapidly adopted in the client space. These same factors have made mSATA attractive for embedded system storage and today it is one of the most popular small form factor SSD formats in both consumer and industrial markets.
As the client and enterprise markets pursue higher capacity SSDs and higher throughputs to match, the performance bottleneck for top-end SSDs has become the SATA protocol which is limited to 600 MBps. With increased capacities on SSDs, speeds go up as well and even the 600 MBps offered by SATA III is not enough for high-performance applications. At the same time, the mPCIe form factor on which mSATA was based physically limited how much flash could be put on one mSATA card.
The potential of M.2
Driven by client SSD performance needs, M.2 was developed as a forward-looking small form factor to resolve the issues mSATA was running into with higher-end SSDs. Unlike mSATA, which used an existing physical standard, M.2 was designed from the ground up with flash storage in mind. With a thinner z-height and smaller footprint with less wasted board area, M.2 is more space efficient than mSATA. M.2 modules can be a range of lengths from 42 mm up to 110 mm and in either single- or double-sided versions. The flexibility of this physical specification allows for space-efficient M.2 add-on cards and M.2 SSDs with higher NAND capacities than mSATA would allow.
To address the bandwidth needs of performance SSDs, multi-lane PCIe was chosen as a high-end storage connectivity option. SATA III is currently limited to 600 MBps speeds and a single lane while PCI Express scales up to four lanes with M.2. At current PCI Express 2.0 speeds of 500 MBps a lane that means 2 GBps speeds are potentially possible with four-lane M.2 SSDs or even more with the new PCI Express 3.0. At the same time, M.2 still supports SATA as well as USB. This backward compatibility with existing signals eases migration to M.2 as it simplifies implementation of first-generation M.2 SSDs (running SATA) and peripheral cards such as Wi-Fi, GPS, and WWAN.
The physical interface
The M.2 specification defines three sockets for expansion modules. Socket 1 is for Wi-Fi, Socket 2 is for SATA or PCIe x2 SSD as well as general expansion cards, and Socket 3 is for SATA or high-speed PCIe x4 SSDs. The female socket connectors physically limit which M.2 cards can be installed. The M.2 cards themselves have connectors notched or "keyed" to their respective functionality (Figure 2). PCIe x2 SSDs can be keyed to fit both Socket 2 and Socket 3 connectors but will run at PCIe x2 speeds.
The host controller interface
To take full advantage of M.2's multi-lane PCIe speed rather than running SATA over an M.2 physical interface, a new storage interface protocol is needed. As an industry standard, Advanced Host Controller Interface (AHCI) enjoys wide support at the operating system and controller level but is tied to SATA and its performance limitations. To get around this, client and enterprise SSD manufacturers so far have created custom drivers to unlock the bandwidth potential of multi-lane PCIe, but for the industrial market this is unfeasible from a cost and compatibility standpoint.
With the aim of allowing high-speed access to solid-state storage with PCIe over a standard protocol, a working group of more than 80 companies has developed NVM Express (NVMe). Whereas AHCI was designed in the era of rotating media and associated high latencies, NVMe has been optimized for the random access nature of SSDs and today's multicore processors. A streamlined storage stack allows for higher throughput, lower latencies, better Input/Output Operations Per Second (IOPS), and lower power consumption as better performance allows the storage device to spend more time at idle.
NVMe's benefits, open specification, and industry support indicate it will likely become the client storage protocol of the future, but adoption is taking time even in the client space. As a completely new storage protocol, NVMe is not compatible with AHCI and requires support at the system and software levels. As a standard for efficient access to SSDs, NVMe allows for non-proprietary solid-state storage that runs at native PCIe speeds, but until that sea change happens SATA/AHCI will continue to offer the optimal combination of reliability, performance, and compatibility for embedded applications.
M.2 in the embedded space
M.2's strength as a small form factor lies not just in its potential for the next generation of high-performance SSDs, but also in its backward compatibility. While supporting high-performance SSDs over multi-lane PCIe, M.2 also supports SATA, USB, and single-lane PCIe. As NVMe awaits adoption in the marketplace, SATA-based first-generation M.2 storage cards and M.2 peripheral cards can allow space-constrained systems to benefit from the smaller and more flexible form factor with the reliability and compatibility of SATA.
For general embedded applications, mSATA and mPCIe are not going anywhere soon. Industrial applications have modest performance needs, emphasizing reliability and consistency instead. Even for performance-driven systems, the near-term value proposition is tenuous as the full performance benefits of M.2 SSDs require either NVMe support or proprietary drivers to realize native PCIe speeds. It will take time for the storage environment to support NVMe before embedded applications will be able to enjoy this level of performance, so current-generation M.2 SSDs may be a hard sell over mSATA modules in the embedded space. Meanwhile, mPCIe currently offers more than enough bandwidth for general embedded peripherals such as graphics cards or Wi-Fi modules.
The embedded future of M.2
The immediate benefits of M.2 in terms of size and capacity and the potential benefits in power consumption and performance with NVMe mean embedded OEMs and system designers need to be aware of this emerging format, but until the M.2 ecosystem matures, its current impact on the embedded and industrial market will be limited to the most space-constrained applications. Following more widespread adoption of the M.2 physical interface and NVMe host controller interface support, M.2 will affect performance-sensitive embedded applications next, but the reliability and robustness requirements of most industrial embedded systems mean mSATA/mPCIe will remain the small form factor of choice in the majority of industrial solutions for years to come.