so the underlying technology with SSD, eMMC, SD, USB Flash etc... is NAND flash correct? So is the difference between all of them just the way controllers are implemented? Or are the technologies different all together?

From what I know, I think SSDs are for desktops and eMMCs are for mobile devices, but is there some intricate difference between all of these storage technologies?


NAND stands for Negated AND. It often refers to the way the a logic gate is build from silicon.

Flash memory is also built from silicon chips and uses NAND gates. This leads to the term NAND flash. I suspect that this is the NAND you refer to, but for completeness sake I wanted to mention the background.

You can build storage with NAND flash, but you will need some way to access it.

E.g. you can put a NAND flash chip on a PCB, add a controller chip and some USB logic and you get a USB pen drive. Or you can add a SD controller and put it in this format and you get a SD card.

enter image description here

Both of these are relative simple devices and when you store information on them you will write to a fixed location. This is a bad thing, because the number of writes to NAND flash is limited.

You can add a controller to the device which makes sure that all writes are spread evenly across the NAND, while providing a consistent image to the computer. This requires a lot more intelligence on the device part and is done in SSDs. (SSDs are supposed to replace mechanical harddisks and thus are expected to get a lot of writes).

Is the difference between all of them just the way controllers are implemented?

For SD/USB pendive: mostly the same, just with a different interface.
For SSDs: completely different controllers.

Or are the technologies different all together?

There are several ways to implement nand storage. The main implemented differences seem to come down to:

  • Single cells in which you can store a high voltage or a low one (SLC, or Single level). Basically either 'on' or 'off', or '1' or '0'.
  • chips which allow multiple levels of power. (off, slightly charged, mostly charged, fully charged. Compare it to signaling with a stereo. SLC would be music on or music off. MLC would be 'off, soft music, loud music, and extra-deaf-mode).

That leaves eMMC.

I never heard of it before, but according to Wikipedia it is a a flash memory memory card standard.

  • Very concise and clear explanation Hennes, thank you. I believe eMMC is used mostly in mobile devices (e.g. Android devices use eMMC storage, so basically it's an embedded SD Card of some sort). – Alistair May 11 '13 at 18:34
  • @Hennes The next Intel compute stick has improved eMMC storage and USB3, do u think that an OS would run faster on an SSD through USB3 than on the own motherboard with eMMC storage? – Alpha2k Aug 27 '15 at 19:25
  • 1
    @Alpha2k I think booting from a USB3 SSD has too much overhead to be faster than eMMC. – jiggunjer Nov 3 '15 at 23:04
  • 1
    Indeed. USB3 does add needless overhead. So an equally fast disk via a direct interface can/should be faster than the same disk over USB3. This assumes equal capable flash and controllers. If one of the disk is a few years more modern it is likely to be faster. – Hennes Nov 4 '15 at 11:41

NAND - raw flash memory

Raw flash uses its own protocol, and this protocol includes reading pages, writing pages, and erasing blocks. It does not work like disks - disks are able to read blocks and write blocks, flash is able to read and write pages - and a set of pages called a block must be erased before you can write new data. You can only erase a limited number of times before the block wears out and won't fully erase anymore.

SD - "Secure Digital"

It's a memory card format. SD cards contain a tiny microcontroller and NAND. The microcontroller implements a FTL (Flash Translation Layer) that takes disk-like block accesses and translates it into meaningful NAND operations, as well as performing wear-leveling and block sparing. SD cards use the SPI protocol on the "host" side. USB SD card readers convert from USB mass storage commands to SPI SD commands.

eMMC - embedded MMC

This refers to basically what you can think of as an SD card that's built into a motherboard (SD and MMC standards are very similar - enough that SD card readers can typically read MMC cards) - typically soldered in and non-removeable. Typically it is connected to the rest of the hardware via an internal SPI bus. Cell phones and ARM hardware, and other embedded-type devices (i.e. routers) may have this. UPDATE: Some newer value-priced Windows netbooks are starting to have these too. SD cards and eMMC are slower than SSDs because the SPI bus is not as fast as the SATA bus.

SSD - "Solid State Drive"

A controller + a bunch of NAND placed into a hard drive case. The controller implements a FTL (Flash Translation Layer) that takes disk-like block accesses and translates it into meaningful NAND operations, as well as performing wear-leveling and block sparing. Some controller types like "Sandforce", etc. are well known. SSDs use the SATA protocol and connector on the "host" side.

If you are in a situation where you are dealing with raw NAND, such as the Guruplug, you are responsible for doing wear leveling and block sparing. Linux filesystems like jffs2 and such do this, but aren't needed where a FTL does that work like on most SD cards, USB cards, etc.

  • 7
    This is a great answer. One comment: while MMC/eMMC/SD cards use a synchronous serial interface for communication, this interface is not SPI, so I wouldn't use that term. It's confusing because most MMC/SD cards also support SPI as an alternative, low-speed interface for deep embedded (MCU-based) systems. The SPI mode isn't used on x86 or ARM application processor systems, though. – Jay Carlson Sep 12 '15 at 0:30
  • NAND is quite restrictive with the limited re-writes. Why is it used at all? Price? – Ciro Santilli TRUMP BAN IS BAD Sep 15 '16 at 13:04
  • FTLs and block sparing mitigate the limited re-writes very effectively. A lot of fear of wearing out SSDs prematurely is exaggerated. – LawrenceC Sep 15 '16 at 13:42
  • Also should clarify that SSDs, SD cards, eMMC flash memory are all using NAND as a "backend." They each do not allow the system access to raw flash but have a microcontroller accepting commands and implementing a FTL. – LawrenceC Jul 4 '17 at 16:51
  • Very useful. I was hoping eMMC would be faster like m2SATA since on the board itself so to speak, but not the case. Thanks – James Campbell Jun 28 '18 at 14:03

Note that those are all non-volatile memory, that retains data without power:

  • Flash - Storage medium of Non-volatile memory.

  • NAND - Type of Flash memory chip.

  • SSD - Contains a number of NAND chips.

Just to distinct Flash from RAM (Random Access Memory) type:

  • SDRAM / DDR - Volatile memory chips, where the data is lost when power is lost.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.