This is a frequently asked question that has some confusion as part of its basic premise. NVMe and SATA are commonly used terms for two different types of storage devices that actually refer to two completely different storage device characteristics. Even though the question is flawed, it is a familiar one that I see all the time. So, what is the difference between NVMe and SATA?
I’m going to focus on consumer client storage devices, but these same concepts apply to all storage devices.
Common Storage Device Characteristics
There are three basic storage device characteristics that you should understand.
- Form factor
- Interface (aka physical device interface)
- Protocol (aka logical device interface)
Let’s talk about each one of these, starting with form factor.
The form factor of a storage device is it’s external shape and exact dimensions. Magnetic hard drives are commonly 3.5″, 2.5″, or 1.8″ wide. Many NAND SSDs are 2.5″ wide. These are familiar form factors to most people. Other common form factors include M.2, U.2, and Add-in cards (AIC).
Three common form factors are shown here.
The form factor of a storage device actually has nothing to do with the interface or protocol that the device uses. This is despite the fact that some form factors almost always use a particular interface or protocol. The common usage is so prevalent that certain form factors have become mistakenly confused with the interface or protocol that they typically use.
For example, 2.5″ SSDs almost always use the SATA interface and the AHCI protocol, to the point that people just call them “SATA SSDs”. Another example is M.2 storage devices, which almost always use the PCIe interface and the NVMe protocol. Consequently, most people just call them “NVMe SSDs”.
Even though this is common usage, I think it is more useful to be precise and accurate when you are describing the characteristics of a storage device. Not being precise creates the confusion in the “what is the difference between NVMe and SATA” question. Let’s move on to interface.
The interface of a storage device is how it physically and electrically connects to the host system. There are three common storage interfaces that you have probably heard of.
- Integrated Drive Electronics (IDE), aka Parallel ATA
- Serial ATA (SATA)
- Peripheral Component Interconnect Express (PCIe)
Of these, SATA and PCIe have long supplanted IDE. Modern client computers will usually be using SATA or PCIe storage interfaces, with PCIe becoming ever more prevalent. The physical interface and the version of that interface have huge effect on the performance of the storage device.
For example, a SATA III interface has a theoretical bandwidth limit of 600 MB/sec. This ends up being about 550 MB/sec in real life. An older SATA II interface only has half of that bandwidth.
The PCIe interface has a LOT more bandwidth than SATA, especially with newer generations of PCIe. The theoretical bandwidth has doubled with each PCIe generation so far. PCIe can also use a variable number of electrical lanes, typically between one and sixteen. The number of lanes is indicated with an xnumber description, such as x2 or x4. So x4 means four PCIe lanes.
This means that you might have something like a PCIe 3.0 x4 storage device that can do roughly 3.5 GB/sec in real life. You also might have a PCIe 4.0 x4 storage device that can do roughly 7.0 GB/sec. We will also start seeing PCIe 5.0 x4 storage devices that can do 14.0 GB/sec in the next year or so.
The storage protocol the logical device interface that lets the drive communicate with the host machine. There are two main storage protocols that are commonly used.
AHCI is an older protocol that was originally designed for SATA magnetic hard drives. It is less efficient and capable than the newer NVMe protocol that was designed for modern NAND-based flash storage. AHCI has one command queue with 32 commands per queue, while NVMe has 65535 queues and 65536 commands per queue.
The NVMe protocol also has much lower latency and lower CPU overhead than AHCI. If your system supports it, you want to be using NVMe instead of AHCI.
What is the Difference Between NVMe and SATA?
Literally, NVMe is a protocol (logical device interface), and SATA is a physical device interface. In common parlance, people usually mean something like an M.2 PCIe NVMe storage device vs. a 2.5″ SATA AHCI storage device.
With a recent or brand-new system, you should prefer PCIe NVMe storage if performance is your top priority. The PCIe interface gives you more bandwidth than SATA, while the NVMe protocol also gives you less latency and overhead than AHCI.
You might be surprised to hear that the cost difference between M.2 PCIe NVMe SSD storage and older 2.5″ SATA AHCI SSD storage is pretty minimal. Usually, the difference is in the 5% to 10% range or less. Personally, I have been using nothing but M.2 PCIe NVMe SSD storage in new builds for a while now.
Here is an example of the minimal prices difference (affilliate links).
Now you know why this is a flawed question, but you should also understand why people still ask it using this language.
I have a couple of relevant YouTube videos here, that show you easy ways to measure your storage performance and how to identify exactly what kind of storage you have.
I wrote a post in 2020 called “Some Quick Comparative CrystalDiskMark Results In 2020” that is also relevant.
Whether or not an M.2 PCIe NVMe SSD drive is going to be noticeably better than an older 2.5″ SATA AHCI SSD in real life depends on what you are doing with your machine. Common tasks like booting up and launching applications are not going to be noticeably faster in most cases. Sure, product review benchmarks will show some differences, but most people won’t notice the difference.
Some workloads will benefit from having high-end M.2 PCIe 4.0 NVMe SSDs rather than more common SATA SSDs.
One common mistake that you should avoid is using an M.2 SATA AHCI drive in one of your M.2 slots (instead of an M.2 PCIe NVMe drive). You should also try avoid doing things like installing an PCIe 4.0 drive in a PCIe 3.0 slot.
What do you think? I would love to hear your thoughts on this in the comments.
If you have any questions about this post, please ask me here in the comments or on Twitter. I am pretty active on Twitter as GlennAlanBerry. Thanks for reading!