What Is the M.2 Solid State Drive Interface?
New Interface and Form Factor for Compact SSD Drives in Laptops and Desktops
As computers, particularly laptops, continue to get smaller, components such as storage drives needed to also get correspondingly smaller. With the introduction of solid state drives, it became a bit easier to place them in ever thinner designs like Ultrabooks but the problem then was continuing to use the industry standard SATA interface. Eventually, the mSATA interface was designed to create a thin profile card that could still interact with the SATA interface.
The problem now is that the SATA 3.0 standards are limiting the performance of SSDs. In order to correct these issues, a new form of compact card interface needed to be developed. Originally called the NGFF (Next Generation Form Factor), the new interface has finally be standardized into the new M.2 interface under the SATA version 3.2 specifications.
While size is of course a factor in developing the new interface, speed of the drives is just as critical. The SATA 3.0 specifications restricted real world bandwidth of a SSD on the drive interface to around 600MB/s, something that many drives have now reached. The SATA 3.2 specifications introduced a new mixed approach for the M.2 interface just like it did with SATA Express. In essence, a new M.2 card can use either the existing SATA 3.0 specifications and be restricted to the 600MB/s or it could instead elect to use PCI-Express that provides a bandwidth of 1GB/s under the current PCI-Express 3.0 standards.
Now that 1GB/s speed is for a single PCI-Express lane. It is possible to use multiple lanes and under the M.2 specifications, up to four lanes can be used. Using two lanes would provide 2.0GB/s while four lanes can provide up to 4.0GB/s. With the eventual release of PCI-Express 4.0, these speeds would double.
Now not all systems are going to achieve these speeds. The M.2 drive and interface on the computer have to be setup in the same mode. The M.2 interface is designed to use either legacy SATA mode or the newer PCI-Express modes but the drive will pick which one to use. For instance, a M.2 drive designed with SATA legacy mode will be restricted to that 600MB/s speed. Now, the M.2 drive can be compatible with PCI-Express up to 4 lanes (x4) but the computer only uses a two lanes (x2). This would result in maximum speeds of just 2.0GB/s. So to get the most speed possible, you will need to check both what the drive and the computer or motherboard support.
Smaller and Larger Sizes
One of the goals of the M.2 design was to reduce the overall size of the storage device. This is achieved in one of several different ways. First, they did make the cards narrower than the previous mSATA form factor. M.2 cards are just 22mm wide compared to the 30mm of mSATA. The cards can also be shorted as just 30mm long compared to the 50mm of mSATA. The difference is that the M.2 cards also support longer lengths of up to 110mm which means that it can actually be bigger which provides more space for chips and thus higher capacities.
In addition to the length and width of the cards, there is also the option for either single sided or double sided M.2 boards. Why the two different thicknesses? Well, single sided boards provide a very thin profile and are useful for ultrathin laptops. A double sided board on the other hand allows for twice as many chips to be installed on an M.2 board for greater storage capacities which is useful for compact desktop applications where space isn’t as critical. The problem is that you need to be aware of what kind of M.2 connector is on the computer in addition to the space for the length of the card. Most laptops will only use a single sided connector which means that they cannot use double sided M.2 cards.
For more than a decade, SATA has made storage for computers plug and play. This is thanks to the very simple to use interface but also because of the AHCI (Advanced Host Controller Interface) command structure. This is a way that the computer can communicate instructions with the storage devices. It is built into all of the modern operating systems and thus not require any additional drivers be installed into the operating system when we add new drives. It has worked great but it was developed in the era of hard drives that have a limited ability to process instructions because of the physical nature of the drive heads and platters. A single command queue with 32 commands was sufficient. The problem is that solid state drives can do so much more but are restricted by the AHCI drivers.
To help eliminate this bottleneck and improve performance, the NVMe (Non-Volatile Memory Express) command structure and drivers were developed as a means to eliminate this problem for solid state drives. Rather than using a single command queue, it provides up to 65,536 command queues with up the 65,536 commands per queue. This allows for more parallel processing of the storage read and write requests which will help boost performance over the AHCI command structure.
While this is great, there is a bit of a problem.AHCI is built into all modern operating systems but NVMe is not. In order to get the most potential out of the drives, drivers must be installed on top of the existing operating systems to use this new command mode. That is a problem for many people on older operating systems. Thankfully the M.2 specification allows either of the two modes to be used. This makes adoption of the new interface easier with existing computers and technologies by using the AHCI command structure. Then as this the support for the NVMe command structure gets improved into the software, the same drives can be used with this new command mode. Just be warned that switching between the two modes will require that the drives be reformatted.
Improved Power Consumption
Mobile computers have limited running times based upon the size of their batteries and the power drawn by the various components. Solid state drives provided some significant reductions in the energy consumption of the storage component such that they have improved battery life but there is room for improvement. Since the M.2 interface is part of the SATA 3.2 specifications, it also includes some other features beyond just the interface. This includes a new feature called DevSleep. As more and more systems are designed to go into a sleep mode when closed or turned off rather than powering completely down, there is a constant draw on the battery to keep some data active for quick recovery when the devices is woken up. DevSleep reduces the amount of power used by devices like M.2 SSDs by creating a new lower power state. This should help extend the running time for those systems put to sleep rather than powered down between uses.
The M.2 interface is a great addition for computer storage and the ability to improve the performance of our computers. There is a slight problem with the early implementation of it though. To get the best performance from the new interface, the computer must use the PCI-Express bus, otherwise it runs just the same as any existing SATA 3.0 drive. This doesn’t seem like a big deal but it actually is a problem with many of the first few motherboards that use the feature. SSD drives offer the best experience when they are used as the root or boot drive. The problem is that the existing Windows software has an issue with many drives booting from the PCI-Express bus rather than from SATA. This means that having an M.2 drive using PCI-Express while fast won’t be the primary drive where the operating system or programs are installed. The result is a fast data drive but not the boot drive.
Not all computers and operating systems have this issue. For instance, Apple has developed OS X to use the PCI-Express bus for root partitions. This is because Apple switched their SSD drives to PCI-Express in the 2013 MacBook Air before the M.2 specifications were finalized. Microsoft has updated Windows 10 to fully support the new PCI-Express and NVMe drives if the hardware it is running on can as well. Older versions of Windows may be able to if the hardware is supported and external drivers are installed.
How Using M.2 Can Remove Other Features
Another area of concern particularly with desktop motherboards pertains to how the M.2 interface is connected into the rest of the system. You see there are a limited number of PCI-Express lanes between the processor and the rest of the computer. In order to use a PCI-Express compatible M.2 card slot, the motherboard manufacturer must take those PCI-Express lanes away from other components on the system. How those PCI-Express lanes are divided up between the devices on the boards is a major concern. For instance, some manufacturers share the PCI-Express lanes with SATA ports. Thus, using the M.2 slot may take away upwards of four SATA slots. In other cases. the M.2 may share those lanes with other PCI-Express expansion slots. Be sure to check how the board is designed to make sure using the M.2 will not interfere with the potential use of other SATA hard drives, DVD or Blu-ray drives or other expansion cards.