What's the difference between SATA, mSATA, eSATA, SATA Express, SATA III, NVMe, M.2, and PCIe?

I have looked for the answer, and while many website explain the difference between some of these terms, there is none that clearly explains the relation between all of these things together (or at least, none that I have found). Moreover, there seems to be different versions of all these technologies, which only left me in more confusion.

Here's what I know:

There are two things here, the physical ports on the motherboard, and the underlying data transfer channels.

SATA is an older data channel technology made for hard disk drives.

SATA is also the name of a physical port on the motherboard.

PCIe is a physical port for graphics cards, not a data channel.

M.2 is a physical port, nothing else.

NVMe is something I still don't understand.

Am I right or wrong?

Also if I may add, Why do some SSDs say they support NVMe, while some say they support SATA ( I thought SATA is for hard disks only)?

To simplify my question, what kind of SSD is faster, and how much?

A message to the moderators, I understand that this post may seem like a duplicate, but it really probably isn't. I have seen posts that discuss the relation between some of these terms, but not all of them in a single post, and not in a clear way. So I ask them to keep this post open until it gets at least a few answers. Thanks for understanding.


2 Answers 2


Am I right or wrong?

  • SATA is indeed a computer bus interface typically used to connect storage and optical devices.
  • PCIe is indeed a high-speed serial computer expansion bus standard typically used to connect graphic cards, sound cards, Ethernet cards, and other expansion cards. It does transfer data.
  • M.2 is indeed an expansion card specification standard.
  • NVMe is a transfer protocol standard that is used to connect devices directly to the PCIe bus. NVMe can be used to connect SSDs, due to the fact the transfer speeds of PCIe bus is significantly faster then the SATA bus NVMe SSDs outperform SATA SSDs several times over.

Why do some SSDs say they support NVMe, while some say they support SATA

An SSD is either a SATA SSD or an NVMe SSD. An SSD can't support both standards.

To simplify my question, what kind of SSD is faster, and how much?

  • A SATA 3 SSD has the potential performance of 600 MB/s
  • A PCIe 3 NVMe SSD has the potential performance of 8 GB
  • A PCIe 4 NVMe SSD has the potential performance 16 GB/s


  • Thanks for answering. It helps. So I guess SATA SSDs are a no-go for me. By the way, is there any possibility that M.2 or PCIe SSDs are somehow using SATA protocol under all that?
    – user1153411
    Commented Mar 25, 2020 at 8:38
  • Is it possible that PCIe SSDs are using SATA? No; That’s not possible; You need to do more research on SATA if your asking that question. Is it possible for a SATA M.2 drive to use SATA; Yes
    – Ramhound
    Commented Mar 25, 2020 at 11:48
  • @NewbKing - I don't answer questions submitted as a comment. You should do more research on PCIe based on your last question.
    – Ramhound
    Commented Mar 28, 2020 at 3:41

The confusion partially is a result of the immense complexity of the M.2 standard. It defines the physical size of the card and the number and placement of the possible pins in the connector. But the actual signals carried over these pins can vary widely. In order to avoid the socket provide a different signal to the card, the M.2 socket has so called keys. This is again a physical thing, is a piece of plastic "bumper" replacing some pins. An M.2 device then will have one or more cut outs according to these keys so it can only be placed in the matching socket. It physically just can't fit in the wrong key. This is a key M socket:

M.2 key M socket

You can fit this key Mcard:

enter image description here

But you can not fit this key A+E card:

enter image description here

So now to your question:

  1. PCI Express is a protocol. It defines how we represent zeros and ones over a pair of receive and transmit wires (such a pair is called a lane), how devices should report themselves when connecting to a PCIe bus and how should they transmit data. It is also the name of a connector found on most computer motherboards for extension cards, most commonly graphics cards. Mini PCI Express is a very similar connector just smaller (duh) but serves the same surpose in laptops. Most M.2 keys will have some pins dedicated to PCI Express: key A and E will have one lane, key B will have two and key M will have four.

  2. SATA is a protocol, again it defines how we represent zeros and ones over a piece of wire and and also what does zeros and ones mean. This is not as versatile as PCI Express, this is used to talk to storage devices only. This signal can be delivered over a connector also named SATA (confusing!) which is a 7 pin connector found on almost all hard drives made in the last 15 years and most SSDs in the same physical size will sport this connector too. mSATA is a trick to deliver SATA signals over the Mini PCI Express connector. Make no mistake: it is not using PCI Express signals, it just uses the pins in the Mini PCI Express connector. eSATA is yet another connector which can deliver SATA signals -- the e stands for external. This is how you could connect a SATA drive natively (not through USB) to a host computer. Finally, M.2 is another connector which can deliver SATA signals. The key B version dedicates some pins to SATA signals. (SATA III is a faster version of the original protocol, the number is dropped as everything is SATA III in the last ten or so years.)

  3. SATA Express is an abandoned mess. It is yet again a protocol-connector pair as we are used to by now, one that is compatible with SATA drives but when used with a SATA Express drive, then it can deliver PCI Express signals.

  4. NVMe -- if you look back at the PCI Express definition, it didn't define what is actually carried over those pair of wires. It defines how the format of the data but not the contents. This makes sense. You might want a sound card, a video card, a network card etc. NVMe is how newer storage cards talk to the host over the PCI Express bus. However, we have seen there are many different connectors over which PCI Express data can be communicated over. Almost all NVMe devices are using either the original PCI Express card connector or the M.2 key M connector. (In servers, other connectors are used and are their own mess which should be the topic of another post.)

  • Thanks for the answer. I am now a little more knowledgeable about SSD terminology than before. So I am going to buy an NVMe SSD with an M.2 or PCIe connector, but not a SATA SSD with either M.2 or the classic SATA connector.
    – user1153411
    Commented Mar 25, 2020 at 8:44
  • P.S. Can I, for practical purposes, consider NVMe and PCIe as same things?
    – user1153411
    Commented Mar 25, 2020 at 8:45
  • No, NVMe is the contents of the packages travelling on the PCIe bus. If you really badly want to, you could consider it a limited subset of PCIe.
    – chx
    Commented Mar 26, 2020 at 8:03
  • I have another question: say, I have two SSDs on hand, one with SATA M.2, another with NVMe M.2; while the motherboard has a single M.2 connector. When connected one at a time, will the first SSD use SATA bus, while the second will use NVMe? Or does a single M.2 connector on a motherboard can only support one data standard and never any other?
    – user1153411
    Commented Mar 28, 2020 at 2:23
  • You can only plug one card in a single slot so I am very confused by your question. If you manage to plug one, the other tomorrow, then sure, the slot might support different modes, depending on keying.
    – chx
    Commented Mar 28, 2020 at 17:51

You must log in to answer this question.