Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typically refers to storage in semiconductor memory chips, which store data in floating-gate memory cells consisting of floating-gate MOSFETs (metal–oxide–semiconductor field-effect transistors), including flash memory storage such as NAND flash and solid-state drives (SSD). Other examples of non-volatile memory include read-only memory (ROM), EPROM (erasable programmable ROM) and EEPROM (electrically erasable programmable ROM), ferroelectric RAM, most types of computer data storage devices (e.g. disk storage, hard disk drives, optical discs, floppy disks, and magnetic tape), and early computer storage methods such as punched tape and cards. Overview Non-volatile memory is typically used for the task of secondary storage or long-term persistent storage. The most widely used form of primary storage today is a volatile form of random access memory (RAM), meaning that when the computer is shut down, anything contained in RAM is lost. However, most forms of non-volatile memory have limitations that make them unsuitable for use as primary storage. Typically, non-volatile memory costs more, provides lower performance, or has a limited lifetime compared to volatile random access memory. Non-volatile data storage can be categorized into electrically addressed systems (read-only memory) and mechanically addressed systems (hard disks, optical disc, magnetic tape, holographic memory, and such). Generally speaking, electrically addressed systems are expensive, have limited capacity, but are fast, whereas mechanically addressed systems cost less per bit, but are slower. Electrically addressed Electrically addressed semiconductor non-volatile memories can be categorized according to their write mechanism. Read-only and read-mostly devices Mask ROMs are factory programmable only and typically used for large-volume products which are not required to be updated after the memory device is manufactured. Programmable read-only memory (PROM) can be altered once after the memory device is manufactured using a PROM programmer. Programming is often done before the device is installed in its target system, typically an embedded system. The programming is permanent, and further changes require the replacement of the device. Data is stored by physically altering (burning) storage sites in the device. An EPROM is an erasable ROM that can be changed more than once. However, writing new data to an EPROM requires a special programmer circuit. EPROMs have a quartz window that allows them to be erased with ultraviolet light, but