29

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?

3 Answers 3

21

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.

4
  • 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, 2013 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, 2015 at 19:25
  • 1
    @Alpha2k I think booting from a USB3 SSD has too much overhead to be faster than eMMC.
    – jiggunjer
    Nov 3, 2015 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, 2015 at 11:41
36

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.

5
  • 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. Sep 12, 2015 at 0:30
  • NAND is quite restrictive with the limited re-writes. Why is it used at all? Price? Sep 15, 2016 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, 2016 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, 2017 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-see
    Jun 28, 2018 at 14:03
-1

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .