Memories mainly fall into two main categories: Volatile and Non-volatile.
Volatile memories (SRAM & DRAM)
Volatile memories (SRAM & DRAM) are typically used in applications that perform large amounts of data processing, usually with a high end CPU or an FPGA, e.g. Video Imaging, Graphics etc. These memories are used as areas of short term storage where the CPU or FPGA puts some data while performing an algorithm, think of it as a sort of note pad for the processor. It can also be used as areas where the program is actually run from because SRAM & DRAM memory are typically quite fast to read from and to write to (much faster than Non-Volatile memories), which is what the processor needs in order to work quickly. These memories are called volatile memories simply because they lose their contents when power is removed, hence why they are not used for long term storage of program code or data.
DRAM or Dynamic Random Access Memory is the main volatile memory technology available today. It offers much higher densities and much lower power consumption than the older SRAM or Static Random Access Memory technology. We see all the major memory manufacturers developing newer DRAM devices. DRAM is in all computers and phones today.
Non-volatile memories (Flash: (NOR, Serial NOR, NAND/eMMC,) FRAM, E2PROM) on the other hand retain their contents once power is removed. They are therefore typically used to store programs for the MCU/CPU while the unit is switched off, as well as being used to store data. For example: data in a smart meter, or music/photographs/videos on your phone are all stored in Flash. Flash is the memory found in USB Sticks, µSD cards, Solid State Drives SSD’s etc. Flash memory tends to also be the main-stay non-volatile memory technology with all the big memory manufactures; Samsung, Toshiba, Micron etc. very actively developing new technologies.
There are two main types of Flash, though inside they all work in exactly the same way, these are NAND Flash and NOR Flash. Both NAND & NOR Flash each break down it to sub types. In NAND we have RAW NAND e.g. SLC NAND and we have managed NAND for example eMMC. In NOR we have (Parallel) NOR & Serial or SPI NOR.
SLC NAND is the cheapest form of NAND however it’s more complicated to use. The devices need to be “managed” by the host processor in the system, taking care of any error detection and correction. In eMMC, on the other hand all this error handling and much more is taken care of automatically. All eMMC devices have a built in processor to manage the memory device itself to ensure it works properly and maximise its reliability. eMMC is therefore slightly more expensive than SLC NAND but it’s extremely easy to use and offers much higher densities. Furthermore it’s built to an industry wide standard (JEDEC) meaning it’s very easy to swap from one manufacturer to another or upgrade to a newer device since the standard is backwards compatible and future version of the JEDEDC eMMC standard are a super set of previous Standards.
eMMC NAND has another “trick up its sleeve”, it has the capability unlike all other memory technologies to store more than one bit of data per cell. In fact it can store up to 3 bits per cell in today’s devices. This means a huge increase in capacity can be achieved making eMMC ideal for large long term storage applications. USB sticks, µSD cards the storage in your phone, camera, mp3 player, solid State Drives SSD’s these are all eMMC devices.
SLC or Single Level Cell devices store one bit of data per memory cell. MLC however means Multi Level Cell and stores two bits per memory Cell. TLC or Triple Level Cell stores 3 bits per cell and therefore gives the highest memory density. The advantage in storing 2 or 3 bits per cell is clear, much higher densities can be achieved however the trade-off is shorter life. Programing and erasing NAND flash cells physically wears them out. SLC NAND generally can be programmed and erased many more times than MLC or TLC before the cell eventually fails. In NAND devices a key parameter is the number of times the device can be programmed and erased before they Fail this is called the write/erase cycles.
NOR devices are, more often than not, used as program storage for processors i.e. the device the processor would boot from. There are two types Parallel NOR (usually just referred to as NOR and Serial NOR more often called SPI-NOR). The only difference between these two types is the interface the device has. Parallel NOR (the older of the two) has a parallel interface while SPI-NOR has a Serial- Peripheral-Interface (SPI) to connect to the CPU through its (SPI). SPI NOR is becoming increasingly more popular as it has considerably fewer pins and upgrading the design to use a larger device does not affect the pin out and thus the board layout. Conversely upgrading to a larger Parallel NOR would most likely require a board redesign to accommodate a physically larger device. Serial NAND is also being developed where like Serial NOR the device interfaces to the host through a SPI port but instead of NOR Flash inside the device, we have NAND flash offering the flexibility of a SPI-NOR but with higher storage densities.
FRAM and E2PROM
FRAM and E2PROM devices have been around for a few years now and offer some other advantages. FRAM‘s key differentiator is reliability. FRAM basically never wears out unlike Flash. It is also relatively fast to write to and is immune to radiation, meaning that being exposed to radiation will not corrupt the data it stores. FRAM though has extra process steps in its manufacture as well as being manufactured using relatively large processes (geometries) and so it’s not as cheap to make as traditional FLASH.
E2PROM like FRAM tend to be relatively small in capacity compared to flash and therefore are more expensive to manufacture however they often offer Byte re-programmability compared to FLASH’s page programmability and therefore can be more flexible when the application needs smaller memories.