Flash memory
This is a special kind of EEPROM (Electrically Erasable Programmable Read-Only Memory) that can be erased and reprogrammed in blocks rather that in one byte chunks. It provides non-volatile storage so that software images can be stored, booted, and rewritten as necessary.