/nɒn ˈvɑːlətɪl ˈmɛməri/

noun … “Memory that retains data without power.”

Non-Volatile Memory (NVM) is a type of memory that preserves stored information even when the system loses power. Unlike volatile memory such as RAM, which requires constant power to maintain data, non-volatile memory maintains content permanently or until explicitly overwritten. This property makes NVM essential for storage devices, firmware, and persistent configuration in embedded systems.

Key characteristics of Non-Volatile Memory include:

  • Persistence: data remains intact without electrical power.
  • Write endurance: limited number of program/erase cycles in devices like Flash or EEPROM.
  • Access speed: generally slower than volatile memory, but modern technologies like NVDIMM and 3D XPoint bridge this gap.
  • Integration with controllers: often requires wear leveling, ECC, or bad block management for reliability.
  • Applications: used in SSDs, BIOS storage, firmware, and persistent logs.

Workflow example: Writing configuration to non-volatile memory:

function save_config(config_data) {
    nv_memory.erase_sector(sector_address)
    nv_memory.write(sector_address, config_data)
}

Here, the data is stored in NVM such as EEPROM or Flash, ensuring it remains available after power loss.

Conceptually, Non-Volatile Memory is like a chalkboard etched in stone: once written, the information stays indefinitely, unlike a whiteboard that disappears when the power or environment changes.

See Memory, Flash, EEPROM, ROM, SSD.