EEPROM vs Flash: Uthållighet, granularitet och skrivtid
Båda lagrar data utan ström. Skillnaden är hur ofta du kan skriva, hur mycket du måste radera åt gången och hur lång tid skrivningen tar — och de tre avgör vilken som hör hemma i din design.
Snabbsvar
- EEPROM: byte-skrivbar, 1M+ cykler, millisekunder per byte, låg densitet. Konfiguration och kalibrering.
- NOR-flash: sektorradering (4 KB), ~100k cykler, sid skrivningar på under en millisekund. Firmware och måttlig loggning.
- NAND flash: blockradering (stor), lägre uthållighet, kräver ECC och hantering av dåliga block. Massdata.
- FRAM / MRAM: i praktiken obegränsat antal skrivningar, snabb, dyr. Högfrekventa räknare och loggar.
1. De tre axlarna
| Typ | Uthållighet | Raderingsenhet | Skrivtid |
|---|---|---|---|
| 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. Raderingsgranularitet är den strukturella skillnaden
Flash kan inte skriva över en byte på plats: hela sektorn raderas och skrivs sedan om. Det innebär att en liten uppdatering blir en läs–ändra–skriv-cykel, och den effektiva uthålligheten för den byten divideras med antalet byte i sektorn. EEPROM undviker detta på bekostnad av densitet och pris.
NOR och NAND skiljer sig åt i hur de hanterar detta. NOR exponerar ett random-access-gränssnitt och tillåter execute-in-place, vilket är anledningen till att firmware ligger där. NAND är organiserat i sidor och block, kräver ECC och hanterar defekta block – billigare per bit, men styrenheten måste göra mer arbete.
3. Beräkning av uthållighet
1M cykler vid 1 skrivning/s = 11.6 dagar 1M cykler vid 1 skrivning/min = 1.9 år 1M cykler vid 1 skrivning/10min = 19 år 100k cykler (NOR) vid 1 skrivning/min = 69 dagar
Det är beräkningen som avgör komponentvalet. En räknare som uppdateras en gång per sekund behöver FRAM eller wear leveling; ett konfigurationsblock som skrivs vid ändring fungerar bra i EEPROM; firmware som skrivs vid produktion fungerar bra i NOR.
| Skrivmönster | Effektiv livslängd | Åtgärd |
|---|---|---|
| 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 |
Skrivtiden har betydelse för beteendet vid strömförlust: en sektorradering på 300 ms som avbryts kan lämna sektorn ogiltig. Planera för en journal eller en andra sektor, inte för "att den kommer att bli klar".
4. Att välja efter arbetsbelastning
| Arbetsbelastning | Bästa matchning | Varför |
|---|---|---|
| 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 |
För seriell flash-sidan i en design, denW25Q32 layoutguidetäcker gränssnittet och avkopplingen; för uthållighetsaspekten av ett EOL-beslut,PCN/EOL-guideomfattar sista inköp.
4b. Gränssnitt och kapsling
| Gränssnitt | Typisk användning |
|---|---|
| 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. Checklista
- Uppskatta skrivningar per dag och produktens livslängd i år.
- Dela uthålligheten med sektorstorleken om uppdateringen är mindre än raderingsenheten.
- Kontrollera skriv- och raderingstiden mot strategin för strömförlust.
- Bekräfta gränssnittet (I2C, SPI, QSPI, parallellt) och antalet pinnar.
- För NAND bör du räkna med ECC och hantering av dåliga block.
- Kontrollera datahållbarheten vid högsta driftstemperatur.
6. FAQ
Kan jag använda flash som EEPROM?
Endast med slitagespridning och ett läs-ändra-skriv-schema. Det går inte att skriva en byte till flash utan att radera sektorn.
Hur många skrivningar tål en EEPROM egentligen?
1M–4M cykler är typiskt, men uthålligheten anges per byte och vid en temperatur. Kontrollera databladets villkor.
Varför slits mitt flash så snabbt?
Eftersom varje liten uppdatering skriver om en hel sektor. Effektiv uthållighet är de angivna cyklerna delat med antalet byte som delar den sektorn.
Är FRAM värt kostnaden?
När skrivfrekvensen är hög eller strömmen kan försvinna när som helst, ja. Det tar bort raderingscykeln och slitfrågan helt.
Behöver jag ECC på NOR?
Vanligtvis inte för firmware; för långlivad loggning vid hög temperatur är en enkel ECC eller kontrollsumma en billig försäkring.
Vad händer om strömmen försvinner under en skrivning?
En byteskrivning till EEPROM är tillräckligt atomär för de flesta konstruktioner; en sektorradering i flash är det inte. Använd en journal eller två alternerande sektorer om data måste överleva ett oväntat strömavbrott.
Kan jag lagra data i 20 år?
Lagringstiden anges vanligtvis till 10–20 år vid 85 °C. Vid högre temperaturer ska du deratera och verifiera med leverantören.
7. Källor
- Minnesdatablad — uthållighet, retention, sid-/sektor-/blockstorlek, skriv- och raderingstider.
- Applikationsnoter om wear leveling och strömavbrottssäker loggning (leverantörs- och MCU-dokumentation).
- JEDEC-standarder för minneskvalificering och retentionstestning.
Välja minne?
Skicka skrivhastigheten, datastorleken och livslängden. Vi säger till dig vilket av EEPROM, NOR, NAND eller FRAM som är det billigare svaret.