Evolution in computer technology is a certainty, but perhaps the segment that has been evolving the most has been storage, and more specifically has been solid state drives. In fact, until the release of SSD, improvements in storage technologies were almost entirely based on increases in capacity with little to no advances in performance. This all changed with the introduction of solid state drives based on NAND memory rather than spinning disks. The first drives were put into a 2.5” form factor to look like a hard drive and connected to the SATA III bus just like a spinning disk. This made integration and compatibility a snap since all PCs new or old had SATA connectors. The problem however was that SSD drives were ultimately limited by the SATA interface and the AHCI communication protocol which supported a maximum 600MB/s transfer rate, far lower than what an SSD was capable of delivering. With this limitation, SATA was unable to keep pace with the speed of SSD drives, resulting in similar performance benchmarks for nearly all SATA based SSD.
This bottleneck has however been solved with the introduction of NVMe drives or Non Volatile Memory Express. NVMe is a specification that was designed specifically for flash memory communication and allows solid state drives to connect to the system using the PCIe bus giving these types of Solid State drives the ability to reach their true throughput potential. With reduced latency, increased IOPS, and even lower power consumption NVMe SSD can perform up to three times faster than SATA SSD.
There are several types of NVMe SSD drives designed to take advantage of the PCIe bus, but perhaps the most common, particularly for desktop client systems and notebooks, is M.2. M.2 is an internally mounted mini expansion card that connects to the PCIe3.0 x2 or PCIe 3.0 x4 bus through an M.2 slot located on the motherboard. M.2 can be a little tricky because the cards themselves come in several sizes and the slot has different key positions, so it’s important to match these characteristics on your SSD and motherboard to ensure compatibility.
First in terms of the dimensions, M.2 cards are available in different lengths and while some systems have mounts (Clip or Screw position) that will accommodate different size cards which give you more options, some are limited to supporting just one card length. Common terms for identifying the dimensions of M.2 cards include 22x42, 22x60, 22x80 or 22x110 where 22 refers to the width of the card measured as 22mm (Standard for all M.2 cards) and the second number refers to the length of the card also in mm.
As mentioned, the big advantage offered by M.2 is that these SSD devices utilize the PCI-E bus rather than a SATA III connection which allows for significantly better performance as a result of the increased throughput capacity. The overall performance however is determined by the number of PCI-E lanes used by the M.2 device which can be PCI-E 3.0 x2 or PCI-E 3.0 x4. The decision to do PCI-E 3.0 x2 or PCI-E 3.0 x4 is determined by the motherboard or mobile device manufacture so in addition to selecting an M.2 card length that is supported by the device, you also need to select a card with an edge connector or keying type that is compatible.
There are two M.2 Key types for the socket and three possible key types for the M.2 card. A “B” Keying supports PCI-E 3.0 x 2 for up to 10Gbits/sec while an “M” keying supports PCI-E 3.0 x4 for up to 20Gbits/sec which is both significantly higher than the theoretical maximum of 6Gbits/sec of SATA III.
M.2 SSD cards are available in three different key types which include “B” keying, “M” keying and “B+M” keying. While “B” keying and “M” keying cards can only work in a similar socket, the “B+M” keying card can work in either a “B” keying or “M” keying connector so it is the most versatile in terms of compatibility. It is however important to note that “B+M” keying cards use PCI-E 3.0 x2 so if they are installed in a “M” keying connector with PCI-E 3.0 x4 their maximum throughput will be 10Gbits/sec for PCI-E 3.0 x2 performance, not 20Gbit/sec which is possible with PCI-E 3.0 x4. For customers that are pushing the performance envelop, you want to make sure you have a device that uses an “M” keying connector that uses PCI-E 3.0 x4 and an “M” keying M.2 card.