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!
6 thoughts on “What is the Difference Between NVMe and SATA?”
Hi Glenn, thanks for your nice write-up.
It is important to understand that the same limitations of hardware and protocols do not only happen on physical machines but also virtual machines as well. It has benefits, with a small tradeoff for resizing partitions live, to use NvME in VMware instead of LSI SAS or other.
Very unfortunately, the default controller in VMWare 7.0 U2/U3 is still LSI SAS, I suppose for compatibility reasons, as for a boot device it needs UEFI boot. Data disks have no such restriction.
Another benefit: Windows OS will recognize the virtual disk as SSD which has positive effects on housekeeping and features, including defrag will then be able to trim the volume helping to free up space on thin provisioned volumes, even more when these located on VMFS6 which also has a housekeeping for reclaiming unused space.
Hyper-V though offers no NvME controller options yet.
Of course, it depends on the usecase and underlying storage in some terms, yet the latency improvements are notably even on usual use. This led us to convert most of VMs starting with Windows Server 2019, to use NvME over LSI and accept the limitation. Maybe you find time to test it from your scope as an SQL expert.
Looking forward to read from you and see if you can confirm the findings of Thomas Krenn.
Thanks for your kind words and comment. You make some good points about virtualized storage. I will have to read Thomas’s post. Thanks!
Nice article, it really helps clear the air on the different types and interfaces of hard drives.
On a side note, like with many articles on hard drives, it omits the grandfather hard drives, The IBM “fixed disk drive” and the original 5MB MFM (Multi-Frequency Modulation) hard drive.
Believe it or not, I have a client that is still using a DOS based program on an old Seagate ST-225 20MB MFM drive. It seems that I am the only one in the county and surrounding counties that knows how to work on them.
NVMe drives have an architecture that gives them a significant advantage over traditional SATA and SAS protocols, allowing them to improve the efficiency and performance of existing applications. Because videographers frequently work with high-performance programs and applications, this is very important.