La memoria non volatile è una forma di archiviazione dati persistente che conserva i dati mentre non è collegata a una fonte di alimentazione. A differenza della RAM o di qualsiasi altro tipo di memoria principale, che è strettamente collegata all'unità di elaborazione centrale, la memoria non volatile (NVM) non ha un percorso diretto alla CPU. È molto più lento della memoria principale, ma memorizza più dati. Se i dati sono in esecuzione nella memoria principale di un computer, vengono elaborati immediatamente, ma nel momento in cui il computer si spegne, tutta la memoria immediata è sparita. La memoria non volatile è molto più lenta e rimane sull'hardware corrispondente a tempo indefinito senza richiedere una connessione alla potenza di calcolo.
Esistono due tipi di memoria non volatile: indirizzata elettricamente e indirizzata meccanicamente. Uno degli esempi più popolari di sistemi NVM con indirizzamento elettrico è la memoria flash. La memoria flash salva grandi quantità di dati senza bisogno di una connessione costante all'alimentazione. Le unità flash utilizzano la memoria flash; si connettono a un altro dispositivo utilizzando una porta USB e memorizzano e modificano i dati. Le unità flash sono molto convenienti perché le porte USB si collegano a più dispositivi e possono memorizzare un gran numero di file. Esempi di archiviazione NVM indirizzata meccanicamente includono unità disco e nastri magnetici.
La differenza tra memoria non volatile e NVMe
NVMe (Non-Volatile Memory Express) utilizza un bus PCI Express per leggere le unità a stato solido e fornire loro un accesso molto più vicino alla CPU, avvicinando i dati memorizzati alla memoria principale. NVMe è stato creato da esperti di tecnologia che volevano accelerare l'uso della memoria non volatile. NVMe ha più linee attraverso le quali i dati possono spostarsi dall'archiviazione alla memoria principale, il che consente a più dati di attraversare quel percorso contemporaneamente. Sebbene NVMe sia una forma di memoria non volatile, è solo un tipo ed è progettato per funzionare su unità a stato solido, non su altro hardware.