When SATA was introduced a bit over a decade ago, it provided major advantages over the old PATA interface. Not only was it faster and more power efficient thanks to the better signaling protocol, but the cabling was no longer big and clumsy with very limited length. It was no wonder that the industry quickly adopted SATA as the new interface for client storage and it has held its position throughout the years.

Since hard drives were the dominant storage media, SATA provided everything that the industry needed. The first generation SATA 1.5Gbps was already fast enough for the vast majority of use cases but about two years after the initial release of SATA, the second generation SATA was ready for prime time, doubling the throughput to 3Gbps. Even today's fastest hard drives can't fully saturate SATA 3Gbps, so there was obviously no rush to improve the interface as it already met the industry's needs. But that changed quickly around 2008.

The reason wasn't a sudden improvement in hard drive technology, but an emerging new technology that was based on non-volatile memory. We're talking about SSDs of course. The non-volatile memory part wasn't actually anything new as NAND has been around since the late 80s, but it was the first time NAND was being used in a PC form factor. Previously NAND had mainly been the choice for ultra mobile devices like MP3 players and phones but it was realized that the technology had the potential to be used in all computer-like devices, including PCs and servers. Since NAND was a solid-state semiconductor and it didn't have to rely on mechanical rotation, it allowed for much, much greater speeds. It's simply much faster to move electrons around a silicon chip than it is to rotate a heavy metal disk.

Obviously the first generation SSDs weren't all that fast and in many cases a traditional hard drive would still provide better sequential performance (although SSDs would destroy hard drives in a random IO workload). However, as the SSD companies learned to manage NAND and its characteristics better, the performance went up significantly. In 2009 we were already at a point where SATA 3Gbps was bottlenecking drives and a faster interface was needed to unleash the performance of NAND. Fortunately the Serial ATA International Organization (SATA-IO) had already released the standard for third generation SATA, which would again double the bandwidth to 6Gbps.

Crucial's C300

In 2010 we saw the first SATA 6Gbps SSD, Crucial's C300, make its appearance. Back then SATA 6Gbps wasn't integrated into chipsets yet and users had to buy a SATA 6Gbps PCIe card (or a motherboard with a third party SATA 6Gbps controller) to utilize the drive's full performance, but as soon as Intel was ready with their 6-series chipsets with native SATA 6Gbps support, every man and his dog came out with a SATA 6Gbps SSD.

But there was a problem. SATA 6Gbps still wasn't fast enough to meet the needs of SSD manufacturers as they were already able to saturate it. SATA-IO was given a difficult task: they would have to come up with a new standard with drastically better performance only a few years after the previous strandard had been announced. Not only would it have to be faster, but it also needed to be cost and power efficient. Instead of developing the SATA protocol further, which would have been expensive and time consuming, SATA-IO decided to utilize an existing interface found in every mainstream computer: PCI Express.

To allow backwards compatibility with the SATA interface, SATA-IO came up with two standards: SATA Express and M.2 (formerly NGFF). The idea behind SATA Express is that it routes PCIe and SATA 6Gbps signals to a single connector, which can then be used to connect either PCIe or SATA devices depending on the drive. It's mainly aimed at the desktop crowd and we did an extensive review of it just a while ago. M.2 on the other hand is the successor of mSATA and is electrically very similar to SATA Express. It also supports both PCIe and SATA 6Gbps signals, although ultimately it's up to the PC OEM to choose whether it will route both to the slot (i.e. you can have an M.2 slot with just PCIe or just SATA functionality).