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
Bayfront Benny

Please keep updating this information as new drives become available on a retail basis. Thanks for your informative articles on this subject (the other article on the XP941 and PX--G256M6e.

Posted on 2014-09-26 19:30:34
Mehmet MUHCI

You have given all of the information that I wonder about M.2 socket.
Thanks a lot for that excellent article.

Posted on 2014-11-02 16:35:19
Siddharth Parmar

Can we use a SSD connected by M.2 as the main drive on which we can install the OS and other necessary software ?

Posted on 2014-11-05 03:26:05

Plextor PX-G256M6e is not as good as the specs indicate. You're better off using a SATA M.2 atm or regular SATA SSD until some "real" performer M.2 PCIe cards come out.

Posted on 2015-02-09 01:36:19

You mean like the Samsung XP941, also mentioned above? We have a couple of additional m.2 articles that cover performance of those drives if you're interested.

Posted on 2015-02-09 01:53:37

Matt, I just want to say 'thanks' for some great articles that you've written (including this one). This is one of the most thorough write-ups on M.2 that I've come across. You explain the pros and cons of M.2 quite well, especially considering the fact it is going to be confusing for many people over the next 2-3 years at least.

Just a thought about one subject you didn't cover: AHCI. While I'd expect most motherboards that come with an M.2 connector to support UEFI, my understanding is that doesn't mean the BIOS will necessarily support NVMe out-of-the-box. And of course depending on your OS, you may or may not find a NVMe driver atm. So, someone could theoretically purchase a mobo with let's say an M.2 M-key socket, and a corresponding SSD, plug them in and get sub-optimal performance relative to their expectations. I see this as one of many reasons why M.2 is going to confuse the heck out of most people in the short term. If peak disk performance is a priority, it's no longer as easy as picking the fastest SATA 3 disk you can find. Those days are gone.

What are your thoughts on running M.2 PCI-e x2 or x4 SSDs over AHCI versus NVMe? Do you think I'm off the mark here? Have you experimented between the two (AHCI vs. NVMe)?

Posted on 2015-06-30 21:46:24

Matt.. separate question/thought.... Doesn't PCI-e 2.x = 5Gb/s per lane? Is that a typo in your chart above (i.e. shouldn't that be 10Gb/s and 20Gb/s for PCI-e 2.x 2x/4x)? Or is the throughput of PCI-e 2.x over M.2 different from a PCI-e card connected directly to a PCI-e slot?

Also, the overhead on PCI-e 2.x is 20% (2/10), but on PCI-e 3.x it is 1.5% (2/130). Unless the PCI-e throughput is slower on M.2 versus a native PCI-e connector, I believe the PCI-3.0 x4 real-world speed should be around 31.5 Gb/s or 3,938 GB/s.

Posted on 2015-07-02 16:15:03
Manny Alonzo

Can a M + B keyed SSD be used upside down on a M-keyed Asus Z97K motherboard?

Posted on 2015-08-05 04:09:37

So if i were to buy the asus z97-a motherboard and this adapter http://www.amazon.com/Lycom-DT... will my m.2 ssd perform at it fullest potential or not?

Posted on 2016-01-05 18:43:29
Adrian Solonari

So, b+m will work on every m.2 slot?
Because I have one and I plugged it in my m.2 slot in laptop ( wich is looking like it's for M key) and it is not recognized by pc.
The problem is in conmector or I should search other things?

Posted on 2016-02-10 12:50:12
Muneer Jallouq

Is there a difference between these two form factors, 2260 and 2260DS? Will it matter when I try to install it? I know the double sided is a little thicker but my spec sheet says nothing about supporting 2260DS form factor. I cant seem to find much information online about this topic.

Posted on 2016-03-31 22:15:13

A 2260DS will just be a bit thicker due to there being chips on both sides. The M.2 connection itself should be identical, so the only thing that might be a problem is if there is enough clearance under the M.2 slot so that the card wouldn't physically hit something. I don't think I've ever seen a situation where it would be a problem (maybe in a compact laptop/ultrabook) so I doubt you will run into any issues, but there is a possibility unless you can tell if there is enough clearance.

Posted on 2016-03-31 22:43:20

This was very helpful, thank you. I was confused when my Drive came keyed for Both B+M, and thought it wouldn't be compatible, but this article helped a ton!

Posted on 2016-08-15 15:12:47
Trent Watson

M.2 2280 PCI-Express 3.0 x4 Internal SSD backwards compatable with PCI-Express 2.0 x4

Posted on 2016-09-23 05:11:38
Trent Watson

that is can i put an m2 2280 3.0 x4 on my predator HLHH 2.0x4 adapter and get it to run ... should not get full speed of the 3.0 but still work at 2.0 speeds ?

Posted on 2016-09-23 05:13:30
Trent Watson

i get 1330 reads & 768 writes now on my ssd ...... so with the newer m2 pci 3.0 x 4 the speed goes up to 2500 reads and 1300 writes however the 2.0 lane could theoretically reach 1500 read and about 1000 write with a 3.0 m2 ssd as long as it is really backwards compatable .. also the m2 3.0x4 ssd's are cheaper that the m2 2.0 x4 so I could get a 960gb ssd for around 300 bucks and it would be smoking fast even in m old pc ... right now it is super fast with the older m2 2.0 x4 on the predator BUT thats only a 256 gb drive m2 2.0 x 4 if i could get the writes and reads bumped up another 20% or so and get the 960 gb capacity then it would be pretty awesome ..... anyone tech savy have anyfeedback ????

Posted on 2016-09-23 05:20:11
Peter John

Great information - thank you.

I found an error:
What is interesting to see is that a M.2 drive using PCI-E 2.0 x2 only has a 25% potential speed increase over SATA III.
Your math is off:
SATA III 6.0 Gb/s (750 MB/s) ---> PCI-E 2.0 x2 8 Gb/s (1 GB/s) = 33% increase - not a 25% increase.

Posted on 2016-10-05 12:03:46

I have a Toshiba Z30-c1320 that came with a B+M keyed sata M.2 ssd. Would it be possible to upgrade to a PCI-E based SSD, and would a M connector work on a B+M board? Thanks in advance.

Posted on 2016-11-13 17:12:34
left shin

The image used to describe the keys is incorrect. You'll notice that the B key has 6 pins but is shown on the right instead of the left like in the picture of the actual SSD. There is a mock up of how the image should look on wikiwand in the M.2 article. I've also reposted on an image host for simplicity. http://imgur.com/a/PQZNM

Posted on 2016-12-04 09:17:48
Jakob Schmidt Rasmussen

Hmm thx for the info..(are little uncertain, since I couldnt get my new M.2 256GB drive intel P600 to fit in my (USB3 M.2 NGFF memorystick) it looks like it would fit from close to identical pin placement, if you turn it around, but there is like an mm of an edge so very tight and dont wanne temp my faith.

But after reading up on the net and your info here and the pictures, i can conclude there is two plug versions for m.2 there is the Bkey and the M-key, and would reckon this P600 Intel is Mkey and the usb3 stickdrive says Bkey.(but damn these pins look much a like, if you just turn it up side down.)

Is my presumption correct, that there is no chance that an Mkey SSD would work in a bkey plug ewen thow you would fit it with some pressure and the pins where align, and more likely my new SSD m.2 card decide to share a cigarette with me with some magic smoke.

bummer if the Bkey plug cant be used for an 2280 P600SSD-card, will see if i can optain an M-key adapter for secondary-use ewen thow it will limited it (purchase the drive along with black friday offers here in DK)

Posted on 2016-12-06 23:01:59
Jakob Schmidt Rasmussen

Hmm. Im starting to get the impression that M'key-plug-format aint compatible at all for either USB3 adapters or sata adapters, only plain pin PCI 4x interface, while B-key M.2 is compatible both for sata and USB3 since there is an bunch of cheap sata or USB3 m.2 Bkey-adapters, lurking around.

can it be due to the 4x M-key standard' hence 2x on B-key M.2 formats, but aint these useally backcompatible, like 4x also is open for 2x that seems to be in play for the B-key formats.

Posted on 2016-12-07 23:48:50
James Scott

Your speed comparison chart is a bit off for PCI express. The speeds that you list as the theoretical max is actually the real speed. PCI Express 2.0 lanes operate at 5 Gt/s, so 5,000,000,000, now consider that PCI express uses 8b/10b encoding, which means you lose 20% of bandwidth to overhead. You would get a formula like this 5,000,000,000 * 0.80 = 4,000,000,000 bits/s / 8 = 500,000,000 bytes/s * 2 lanes = 1,000,000,000 bytes/s = 1GB/s of throughput in the real world. A x4 lane would be 2GB/s. This yields a 66.6% increase in bandwidth from SATA 3 to M.2 using PCI Express 2.0 with 2 lanes. Which would mean a PCI Express 2.0 with 4 lanes yields a 333.33% increase. PCI Express 3.0 operates at 8 Gt/s, and uses 128b/130b. So 8,000,000,000 * 0.9846 = 7,876,800,000 bits/s /8 = 984,600,000 bytes/s * 4 lanes = 3,938,400,000 bytes = 3.9 GB/s, which you have correct.

Posted on 2017-04-28 17:46:11