Summary: Flash memory is used for easy and fast information storage in such devices as digital cameras, embedded microcontroller, and other electronic equipment.
You may be familiar with many kinds of memory like hard drives, CDs, or RAM. The most basic kind of memory is something like RAM. RAM can be read and written to as long as the power is turned on. When the power is turned off, the RAM loses all of its data. Because data is lost when the memory loses power, this type of memory is called volatile. A hard disk can also be read and written as long as the power is turned on, but it will not lose any data when the power is turned off. Because the hard drive does not lose data when the power is turned off, it can be called non-volatile. A flash memory is also solid-state, meaning it has no moving parts. Flash memory is another type of non-volatile memory, but it has special limitations on when it can be written to.
Flash memory can be read as long as it has power and it is not writing; and it will keep data even when the power is turned off. Writing a flash can be performed when the power is on, but only as long as the section of flash memory has been erased first. In a “normal” memory system, a write operation can change a bit of memory from a 1 to a 0 or vice versa; however, a write operation to a flash memory bit can only change a 1 to a 0 but not back again. In order to change a flash memory bit from 0 to 1, a time-consuming erasure process must occur. The erase command takes much longer than the write process; and, for manufacturing reasons, flash memory chips are not made with the ability to erase individual bits or bytes. Only large sections of memory (usually 512 bytes or more) can be erased at a time.
Because of its limitations, flash memories are not useful for access that requires frequent erasure. Flash memory is useful for storing execution code that is not expected to change often because reading a flash memory is much faster than reading a hard drive. For all these reasons flash memory is a good choice for embedded microcontroller code memory, motherboard BIOS, digital camera memory, and memory cards.
To ameliorate the disadvantages of flash memories, flash memory chips have a controller to mediate between other parts and the internal memory array. While all memories have some form of control logic, flash memories have more complicated lists of commands that they can execute. Some flash chips have buffers to improve performance. A buffer is a small, fast memory used to improve the performance of a larger, slower memory.