EEPROM vs Flash: resistenza, granularità e tempo di scrittura
Entrambe memorizzano dati senza alimentazione. La differenza sta in quanto spesso puoi scrivere, quanto devi cancellare in una volta e quanto dura la scrittura: e questi tre aspetti decidono quale appartiene al tuo progetto.
Risposta rapida
- EEPROM: scrivibile per byte, oltre 1M di cicli, millisecondi per byte, densità ridotta. Configurazione e calibrazione.
- NOR flash: cancellazione per settore (4 KB), ~100k cicli, scritture di pagina inferiori al millisecondo. Firmware e logging moderato.
- NAND flash: cancellazione a blocchi (ampia), durata inferiore, richiede ECC e gestione dei blocchi difettosi. Dati di massa.
- FRAM / MRAM: scritture effettivamente illimitate, veloci, dal costo elevato. Contatori e registrazioni ad alta frequenza.
1. I tre assi
| Tipo | Resistenza | Unità di cancellazione | Tempo di scrittura |
|---|---|---|---|
| EEPROM | 1M–4M cycles | Byte/page | ≈ 5 ms per write |
| NOR flash | ≈ 100k cycles | 4 KB sector | Page < 1 ms, erase 50–400 ms |
| NAND flash | 1k–3k (MLC/TLC) | 128 KB block | Page ≈ 0.3 ms, block ≈ 2 ms |
| FRAM / MRAM | 10^12+ | Byte | Microseconds |
2. La granularità di cancellazione è la differenza strutturale
La flash non può sovrascrivere un byte sul posto: cancella un intero settore, poi lo riscrive. Ciò significa che un piccolo aggiornamento diventa un ciclo di lettura-modifica-scrittura, e la resistenza effettiva di quel byte viene divisa per il numero di byte nel settore. La EEPROM evita questo al costo di densità e prezzo.
NOR e NAND differiscono nel modo in cui gestiscono questo aspetto. NOR espone un'interfaccia ad accesso casuale e consente l'esecuzione in-place, motivo per cui il firmware risiede lì. NAND è organizzata in pagine e blocchi, richiede ECC e gestisce i blocchi difettosi — più economica per bit, ma il controller deve svolgere più lavoro.
3. Calcolo dell'endurance
1M cicli a 1 scrittura/s = 11.6 giorni 1M cicli a 1 scrittura/min = 1.9 anni 1M cicli a 1 scrittura/10min = 19 anni 100k cicli (NOR) a 1 scrittura/min = 69 giorni
È questo il calcolo che decide il componente. Un contatore aggiornato una volta al secondo richiede FRAM o wear leveling; un blocco di configurazione scritto alla modifica va bene in EEPROM; il firmware scritto in produzione va bene in NOR.
| Schema di scrittura | Vita utile | Soluzione |
|---|---|---|
| 1 byte/s into EEPROM | 11.6 days at 1M | FRAM, or buffer + periodic write |
| 1 write/min into NOR | 69 days at 100k | Wear leveling across sectors |
| Config on change | Decades | No action |
| Firmware at production | Effectively unlimited | Sector erase is fine |
Il tempo di scrittura è importante per il comportamento in caso di perdita di alimentazione: una cancellazione di settore da 300 ms interrotta può lasciare il settore non valido. Prevedere un journal o un secondo settore, non contare sul fatto che "finirà".
4. Scelta in base al carico di lavoro
| Carico di lavoro | Soluzione ottimale | Perché |
|---|---|---|
| Config, calibration, serial number | EEPROM | Byte writes, high endurance |
| Firmware, bootloader | NOR flash | Execute-in-place, sector update |
| Counter, event log, energy meter | FRAM / MRAM | Unlimited writes, no erase |
| Audio, images, bulk records | NAND | Density per dollar, with ECC |
Per il lato serial-flash di un progetto, ilGuida al layout W25Q32copre l'interfaccia e il disaccoppiamento; per il lato endurance di una decisione EOL, laguida PCN/EOLcopre gli acquisti last-time.
4b. Interfaccia e package
| Interfaccia | Uso tipico |
|---|---|
| I2C EEPROM | Small config, 2-wire bus, many devices |
| SPI EEPROM | Faster byte writes, small density |
| SPI/QSPI NOR | Firmware, execute-in-place, larger density |
| Parallel NOR | Legacy, fast random access, many pins |
| NAND (raw or managed) | Bulk storage; managed parts hide ECC/bad blocks |
5. Lista di controllo
- Stimare le scritture al giorno e la durata del prodotto in anni.
- Dividere la durabilità per la dimensione del settore se l'aggiornamento è più piccolo dell'unità di cancellazione.
- Verificare i tempi di scrittura e cancellazione rispetto alla strategia di perdita di alimentazione.
- Confermare l'interfaccia (I2C, SPI, QSPI, parallela) e il numero di pin.
- Per la NAND, prevedere ECC e gestione dei blocchi difettosi.
- Verificare la ritenzione dei dati alla temperatura operativa massima.
6. FAQ
Posso usare la flash come una EEPROM?
Solo con wear leveling e uno schema read-modify-write. Non è possibile scrivere un byte in flash senza cancellare il settore.
Quante scritture può davvero sopportare una EEPROM?
1M–4M cicli è tipico, ma la durata è specificata per byte e a una temperatura. Verificare le condizioni riportate nel datasheet.
Perché la mia flash si usura così in fretta?
Perché ogni piccola modifica riscrive un intero settore. La durata effettiva è pari ai cicli nominali divisi per il numero di byte che condividono quel settore.
La FRAM vale il suo costo?
Quando la frequenza di scrittura è elevata o l'alimentazione può mancare in qualsiasi momento, sì. Elimina del tutto il ciclo di cancellazione e il problema dell'usura.
Serve l'ECC sulla NOR?
Di solito non per il firmware; per la registrazione di dati a lunga durata ad alta temperatura, un ECC leggero o un checksum è un'assicurazione a basso costo.
Cosa succede se l'alimentazione viene a mancare durante una scrittura?
La scrittura di un byte in EEPROM è sufficientemente atomica per la maggior parte dei progetti; la cancellazione di un settore flash non lo è. Usare un journal o due settori alternati se i dati devono sopravvivere a una perdita di alimentazione imprevista.
Posso conservare i dati per 20 anni?
La ritenzione dei dati è specificata tipicamente a 10–20 anni a 85 °C. A temperature più elevate, applicare un derating e verificare con il fornitore.
7. Fonti
- Schede tecniche di memoria — endurance, retention, dimensione di pagina/settore/blocco, tempi di scrittura e cancellazione.
- Note applicative su wear leveling e logging sicuro in caso di perdita di alimentazione (documentazione del fornitore e dell'MCU).
- Standard JEDEC per la qualificazione della memoria e i test di retention.
Selezionare una memoria?
Invia la frequenza di scrittura, la dimensione dei dati e la vita utile. Ti diremo se la soluzione più economica è EEPROM, NOR, NAND o FRAM.