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.
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.