/flæʃ/

noun … “Non-volatile memory with electrical erase and write.”

Flash is a type of non-volatile memory that can be electrically erased and reprogrammed. Unlike traditional ROM, Flash supports multiple write and erase cycles, making it suitable for storage devices like SSDs, USB drives, and embedded systems. It combines the speed of semiconductor memory with persistent data retention, bridging the gap between volatile RAM and slower mechanical storage.

Key characteristics of Flash memory include:

  • Non-volatility: retains data without power.
  • Block-based erase: memory is erased in large blocks before being rewritten.
  • Limited write endurance: each cell can endure a finite number of program/erase cycles, requiring wear-leveling strategies.
  • Fast read operations: often much quicker than mechanical storage, though slower than SRAM or DRAM.
  • Integration: used in SSDs, microcontrollers, smartphones, and other embedded devices.

Workflow example: Writing data to an SSD using Flash:

function write_flash(address, data) {
    if block at address not empty:
        erase_block(address)
    program_block(address, data)
}

Here, a block must be erased before new data is programmed, reflecting the block-oriented nature of Flash. Wear-leveling algorithms distribute writes to maximize lifespan.

Conceptually, Flash is like a reusable sticky note: you can write, erase, and rewrite information repeatedly, and it retains the latest note even when the power is off.

See ROM, Memory, SSD, Wear Leveling, EEPROM.