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.
@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 – 2015-08-27T19:25:22.363
1@Alpha2k I think booting from a USB3 SSD has too much overhead to be faster than eMMC. – jiggunjer – 2015-11-03T23:04:33.143
1Indeed. 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 – 2015-11-04T11:41:42.750
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 – 2013-05-11T18:34:41.360