A brief overview of some important SSD terminology - Formfactors, Buses, and Protocols
Jan 21, 2021
- Benjamin Wachman
Tags:
#Terminology
#Overview
#SSD
#NVMe
#SATA
So far I’ve stayed away from the “teaching tech” side of things on this site, but terminology is important. Through no small contribution of the various standards committees, the proliferation of ever more technical standards have lead to no end of confusion for non-technical users. I’ve seen various tech outlets big and small, established or green make mistakes with some of these terms potentially further muddying the waters. To help with the clarity of this article I’ll try to explain some of the terms I’m going to be throwing around in my posts.
Serial ATA (SATA) is a bit of an older storage bus used for connecting hard drives and more recently SSDs in both desktops and laptops using a relatively slim cable. Technically on its 3rd iteration (SATA III), I’m going to simply refer to it as “SATA” throughout this article as majority of SSDs have used this latest iteration beginning with the introduction of consumer SATA III drives in 2011. SATA drives generally communicate using the AHCI protocol, but can be run in less advanced compatibility mode on older systems or for specific usecases. Notably “SATA III” is NOT refered to as “SATA 3”. The original SATA (retroactively “SATA I”) provides 1.5Gb/s (gigabits, not gigabytes) of gross bandwidth before overhead. SATA II doubles this to 3.0Gb/s. SATA III doubles this again to 6.0GB/s. Due to a bit of a quirk with naming conventions vs specifications III vs 3 can cause some confusion with the Roman numeral generally referring to the SATA generation and Arabic numerals referring to the bandwidth. Generally, SATA SSDs are in the traditional 2.5” laptop-size HDD formfactor.
The newer competing SSD standard is a bit of a terminology salad. You’ll often see these drives refered to as “M.2”, “PCIe”, or “NVMe” — sometimes interchangeably — but each of those terms actually describes a separate aspect of a drive and the presence of one of those terms on a spec sheet does not (always) necessitate that the any or all of the others will also be present. M.2 is a formfactor — the roughly stick-shaped card with the connector on one end. M.2 is both interesting and sometimes confusing because it actually has several different pin-outs that allow it to connect to several different types of system buses. For example, an M.2 drive can connect to a SATA bus or a PCIe bus but any one drive will only one or the other and never both. “M.2” and “2.5” drive” refer to the same aspect of a drive and are mutually exclusive (though you can buy adapters that let you put a SATA M.2 drive into a 2.5” enclosure and then attach it with standard SATA cables).
We’ve already covered SATA, but PCIe is an entirely different beast. If you’re familiar with Graphics Cards (GPUs) you’ve probably already heard the term PCIe (or PCI-E) which is an abbreviation for PCI-Express. PCIe is a high speed, general purpose bus for connecting various components to a system. PCIe is generally used for internal connections, though Thunderbolt allows for use of PCIe externally. Similarly, PCIe devices are generally expansion cards, except for the notable exception of Thunderbolt and U.2 devices. As of this writing, PCIe has reached its 4th iteration (PCIe 4.0) with 5th generation (PCIe 5.0) not too far off. In the terminology salad, SATA and PCIe refer to the same aspect of the drive — the bus the drive connects to which dictates its maximum transfer rate between the drive and the rest of the computer.
Finally, NVMe is the protocol that most modern PCIe drives use for their signaling over the PCIe bus. Early PCIe drives actually used AHCI, but since that protocol was designed for spinning disks on SATA, performance was hampered in some situations. NVMe was specifically designed for PCIe and Solid State storage and thus alleviated the shortcomings of AHCI for SSDs that utilize the PCIe bus. Although you could theoretically use the NVMe protocol on another bus, to the best of my knowledge this isn’t done. As such, NVMe is often used to indicate that a given SSD is PCIe rather than SATA — a particularly important distinction when discussing M.2 SSDs as M.2 (by itself) could mean either SATA or PCIe.
Hopefully this extremely brief overview has shown how “M.2”, “PCIe”, or “NVMe” have distinct meanings and will help further better understanding of articles having to do with SSDs.