Puget Systems print logo
Read this article at https://www.pugetsystems.com/guides/586
Article Thumbnail

Overview of M.2 SSDs

Written on August 15, 2014 by Matt Bach


When it comes to the "snappiness" of a system, the hard drive is one of the most important hardware components in a PC. The faster the drive, the faster the system boots into the OS, the faster programs launch, and the faster files save. The introduction of SSDs a number of years ago was a major step forward from traditional platter drives, but SSDs have recently hit a performance wall with the existing SATA III protocol where they simply cannot run any faster. 

M.2 is a new form of connectivity that allows a SSD to connect directly to the PCI-E bus rather than going through a SATA controller. By bypassing the SATA controller a M.2 drive is only limited by the speed of the drive itself and the generation/number of PCI-E lanes it uses. By using just four PCI-E 2.0 lanes, a M.2 drive can theoretically have a maximum throughput as high as 2GB/s. To put this into perspective, that is over three times faster than the SATA III limitation of 600MB/s!

However, not everything is quite so rosy with M.2. Unlike SATA drives - where every drive is the same physical size and uses the same cables - M.2 allows for a variety of physical dimensions, connectors, and even multiple logical interfaces. To help our customers understand the nuances of M.2 drives we decided to publish this overview of the current M.2 specifications.

Physical size and connectors

Unlike SATA drives, M.2 allows for a variety of physical sizes. Right now, all M.2 drives that are intended for use in PCs are 22mm wide, but they come in a variety of lengths. To make it easier to tell which drives can be mounted on a motherboard or PCI-E card, the width and height of both the drive and slot is usually expressed in a single number that combines the two dimensions. For example, a drive that is 22mm wide and 80mm long would be listed as being a 2280 (22mm x 80mm). Common lengths for M.2 drives and mounting right now are 30mm (2230), 42mm (2242), 60mm (2260), 80mm (2280), and 110mm (22110).

In addition, there are two types of sockets for M.2: one with a "B key" and one with a "M key".

M.2 to PCI-E x4 adapter that can take multiple lengths of drives

M.2 socket types

B+M keyed drive (left) and a M keyed drive (right)

The different keys are what indicated the maximum number of PCI-E lanes the socket can use and physically limit what drives can be installed into the socket.. A "B key" can utilize up to two PCI-E lanes while a "M key" can use up to four PCI-E lanes. Right now, however, the majority of M.2 sockets use a "M key" even if the socket only uses two PCI-E lanes. As for the drives, most PCI-E x2 drives are keyed for B+M (so they can work with any socket) and PCI-E x4 drives are keyed just for M. 

This is confusing at first since it is much more complicated than SATA, but all of this information should be listed in the specs of both the drive and motherboard/PCI-E card. For example, the ASUS Z97-A lists the M.2 slot as "M.2 Socket 3, with M Key, type 2260/2280" so it supports drives that are 22mm wide and either 60mm or 80mm long with a M key.

M.2 logical interfaces

In addition to the different physical sizes, M.2 drives are further complicated by the fact that different M.2 drives connect to the system through three different kinds of logical interfaces. Currently, M.2 drives can connect through either the SATA controller or through the PCI-E bus in either x2 or x4 mode. The nice thing is that all M.2 drives (at least at the time of this article) are all backwards compatible with SATA so any M.2 drive should work in a M.2 socket that uses SATA - although they will be limited to SATA speeds. At the same time, not all M.2 sockets will be compatible with both SATA and PCI-E - some are either one or the other. So if you try to use a PCI-E drive in a SATA-only M.2 slot (or vice-versa) it will not function correctly.

M.2 PCI-E drives should really be used in a socket that supports the same number of PCI-E lanes as the drive for maximum performance, although any M.2 PCI-E drive will work in either a PCI-E x2 or PCI-E x4 socket provided they have the same key. However, if you install a PCI-E x4 drive into a PCI-E x2 socket it will be limited to PCI-E x2 speeds. At the same time, installing a PCI-E x2 drive into a PCI-E x4 socket will not give you any better performance than installing it into a PCI-E x2 socket.

Basically, what it comes down to is that even if a M.2 drive physically fits into a M.2 socket, you also need to make sure that the M.2 socket supports the type of M.2 drive you have. In truth, the only time a M.2 drive shouldn't work at all even through the keying matches is if you try to use a M.2 SATA drive in a M.2 PCI-E only socket.

Performance Range

Since this article is about M.2 drives in general, we are not going to give any specific benchmark numbers but rather talk in general, theoretical terms of what is possible with M.2. If you are looking for benchmarks, we recommend reading our Samsung XP941 & Plextor PX-G256M6e M.2 Qualification article.

Since M.2 drives right now come in three tiers (SATA, PCI-E x2, and PCI-E x4), there are also three tiers of possible performance. However, due to the flexible nature of PCI-E, future M.2 drives may come in an even wider range of speeds.

M.2 Drive Throughput
by Connection
Maximum Throughput
Est. Real-World
Maximum Throughput
SATA III 6.0 Gb/s (750 MB/s) 4.8 Gb/s (600 MB/s)
PCI-E 2.0 x2 8 Gb/s (1 GB/s) 6.4 Gb/s (800 MB/s)
PCI-E 2.0 x4 16 Gb/s (2 GB/s) 12.8 Gb/s (1.6 GB/s)
PCI-E 3.0 x4 32 Gb/s (4 GB/s) 31.5 Gb/s (3.9 GB/s)

The "theoretical maximum throughput" is the number that a lot of vendors and manufactures like to use when talking about SATA or PCI-E, but there is a certain amount of overhead when transferring data that prevents a drive from ever hitting this theoretical throughput. Taking the overhead due to encoding into account gives us the "estimated real-world maximum throughput". This does not mean that every M.2 PCI-E 2.0 x4 drive can reach speeds of ~1.6 GB/s, but simply that this is roughly the best possible speed any M.2 PCI-E 2.0 x4 drive can achieve.

What is interesting to see is that a M.2 drive using PCI-E 2.0 x2 only has a 33% potential speed increase over SATA III. This is still notable, but is not exactly revolutionary. Where M.2 gets exciting is with PCI-E 2.0 x4 which has a real-world maximum throughput of 1.6 GB/s. To put this into perspective, that is only a hair less than three times the throughput of SATA III. You would need three SATA III SSD drives in RAID 0 to get the same potential performance of a single M.2 PCI-E 2.0 x4 drive!

Since M.2 drives use the PCI-E bus, the maximum throughput will not always be limited to PCI-E 2.0 x4. While there are not any PCI-E 3.0 x4 M.2 drives right now, as with all technology it is really only a matter of time before they are developed. When that happens, we may eventually see M.2 drives that can run at almost 4GB/s! Current storage technology isn't quite up to this task yet, but in a few years it very well might be.

Update Dec 2015: PCI-E 3.0 x4 drives such as the Samsung 950 Pro are now available. This drive has ~1.5GB/s write performance and 2.5GB/s read performance. 

PCI-E lane complications

Even this early in M.2 development, there are already M.2 drives like the Samsung XP941 that have read speeds that are twice as fast as any SATA-based SSD. However, there is a very finite number of PCI-E lanes in a system and a M.2 PCI-E drive will need to use a certain number of them. This means that instead of checking to make sure your motherboard has enough SATA ports, you instead have to check that you have enough PCI-E slots and lanes. Many motherboards have plenty of PCI-E x16 slots, but it becomes a problem when you realize that usually very few of those slots can actually run at x16 speeds.

Asus Z97-A PCI-E slots

For example, say you have a Asus Z97-A and want to install a M.2 x4 drive using a PCI-E adapter. That motherboard has two PCI-E x1 slots and three physical PCI-E x16 slots. The two PCI-E x1 slots don't have the necessary number of PCI-E lanes for a M.2 drive so they cannot be used. For the x16 slots, it turns out that the bottom PCI-E x16 slot is actually only capable of x2 speeds, so that slot will not allow for the full speed of a M.2 x4 drive. The primary x16 slot is likely needed for the GPU so it is also not available to be used. Finally, the second x16 slot is capable of x8 speeds so it will work for the M.2 x4 drive, but using that slot will actually reduce the primary slot (and thus the GPU) to x8 speeds. We've shown in the past that modern GPUs do not show any performance loss by running at x8 speeds, but it still is not ideal. And remember, this is just to add a single M.2 x4 drive and doesn't take into account other PCI-E devices you might have like sound cards or wireless cards. If you want to add a second M.2 x4 drive, you are pretty much out of luck until someone releases a M.2 to PCI-E adapter that can handle multiple drives in a single slot.

The PCI-E lane issue is less of a problem on X79 or Xeon E5 systems since the CPU (and thus the motherboard) has more PCI-E lanes available, but you still need to plan it out ahead of time to make sure you don't run into any surprises. Hopefully future Intel CPUs will add more PCI-E lanes to make this less of an issue, but for now this is the biggest limitation we see in terms of M.2 adoption.

M.2: drives of the future?

While this article is mostly about M.2 SSDs, our excitement about M.2 is not just limited to just that. Since M.2 is essentially just a PCI-E interface, M.2 can be used for almost anything including WiFi, Bluetooth and GPS. Imagine a laptop where instead of multiple connectors for different devices, a laptop could just have four M.2 slots and that's it. Do you want to install two M.2 drives, a WiFi card and a GPS card? No problem. Or maybe you would rather make a mobile file server and use four M.2 drives in RAID. The point is that you can put any M.2 device in any M.2 slot and it would just work. 

As for SSDs, the complication of PCI-E lanes and physical compatibility makes M.2 a bit more complicated than SATA, but M.2 adds so much performance potential that we believe they will soon become a staple in any high-performance system. The price of mid-range M.2 drives like the Plextor PX-G256M6e is already very comparable to SATA-based SSDs so it doesn't cost much to easily boost performance over SATA drives. High performance drives like the Samsung XP941 are more expensive right now, but we expect them to come down in price as the technology matures and demand increases.

Overall, M.2 is a technology that we at Puget Systems are making sure to stay on top of. Hard drives have long been one of the biggest bottlenecks in the average PC, but M.2 has the potential to finally change that. Over 1.2GB/s read performance with an early edition M.2 drive is simply amazing, and makes us very excited to see what M.2 drives will be capable of in the future.

Update Dec 2015: PCI-E 3.0 x4 drives such as the Samsung 950 Pro are now available. This drive has ~1.5GB/s write performance and 2.5GB/s read performance. 

Recommended Reading

If you are interested in M.2 drives, we have a number of other articles you may be interested in:

Tags: m.2, SSD