EEPROM vs Flash: Udholdenhed, granularitet og skrivetid
Begge lagrer data uden strøm. Forskellen er, hvor ofte du kan skrive, hvor meget du skal slette ad gangen, og hvor lang tid skrivningen tager — og de tre afgør, hvilken der hører til i dit design.
Kort svar
- EEPROM: byte-skrivbar, 1M+ cyklusser, millisekunder pr. byte, lille densitet. Konfiguration og kalibrering.
- NOR flash: sektor-sletning (4 KB), ~100k cyklusser, side-skrivninger på under et millisekund. Firmware og moderat logning.
- NAND flash: blok-sletning (stor), lavere udholdenhed, kræver ECC og håndtering af dårlige blokke. Bulkdata.
- FRAM / MRAM: reelt set ubegrænsede skrivninger, hurtig, dyr. Højfrekvente tællere og logfiler.
1. De tre akser
| Type | Udholdenhed | Sletteenhed | Skrivetid |
|---|---|---|---|
| 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. Slettegranularitet er den strukturelle forskel
Flash kan ikke overskrive en byte på stedet: det sletter en hel sektor og skriver den derefter igen. Det betyder, at en lille opdatering bliver en læs-modificer-skriv-cyklus, og den effektive udholdenhed for den byte divideres med antallet af bytes i sektoren. EEPROM undgår dette på bekostning af tæthed og pris.
NOR og NAND adskiller sig i, hvordan de håndterer det. NOR eksponerer en random-access-grænseflade og tillader execute-in-place, hvilket er grunden til, at firmware ligger der. NAND er organiseret i sider og blokke, kræver ECC og håndterer dårlige blokke — billigere pr. bit, men controlleren skal udføre mere arbejde.
3. Udholdenhedsberegning
1M cyklusser ved 1 skrivning/s = 11.6 dage 1M cyklusser ved 1 skrivning/min = 1.9 år 1M cyklusser ved 1 skrivning/10min = 19 år 100k cyklusser (NOR) ved 1 skrivning/min = 69 dage
Det er den beregning, der afgør komponentvalget. En tæller, der opdateres én gang i sekundet, kræver FRAM eller wear leveling; en konfigurationsblok, der skrives ved ændring, er fin i EEPROM; firmware, der skrives ved produktion, er fin i NOR.
| Skrivemønster | Effektiv levetid | Løsning |
|---|---|---|
| 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 |
Skrivetid er vigtig for adfærden ved strømtab: en 300 ms sektorsletning, der afbrydes, kan efterlade sektoren ugyldig. Planlæg efter en journal eller en ekstra sektor, ikke efter "det bliver færdigt".
4. Valg efter arbejdsbelastning
| Arbejdsbelastning | Bedst egnet | Hvorfor |
|---|---|---|
| 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 |
På serial-flash-siden af et design,W25Q32-layoutguidedækker grænsefladen og afkoblingen; for endurance-siden af en EOL-beslutning, denPCN/EOL-guidedækker last-time-køb.
4b. Grænseflade og pakke
| Grænseflade | Typisk anvendelse |
|---|---|
| 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. Tjekliste
- Anslå skrivninger pr. dag og produktets levetid i år.
- Divider udholdenheden med sektorstørrelsen, hvis opdateringen er mindre end sletteenheden.
- Kontrollér skrive- og slettetiden i forhold til strategien for strømtab.
- Bekræft grænsefladen (I2C, SPI, QSPI, parallel) og pin-antallet.
- For NAND skal der afsættes budget til ECC og håndtering af dårlige blokke.
- Kontrollér dataholdbarheden ved den maksimale driftstemperatur.
6. FAQ
Kan jeg bruge flash som EEPROM?
Kun med wear leveling og en læs-ændr-skriv-metode. Det er ikke muligt at skrive en byte til flash uden at slette sektoren.
Hvor mange skrivninger kan en EEPROM egentlig tåle?
1M–4M cyklusser er typisk, men udholdenhed er specificeret pr. byte og ved en temperatur. Kontroller betingelserne i databladet.
Hvorfor bliver min flash så hurtigt udslidt?
Fordi hver lille opdatering omskriver en hel sektor. Den effektive udholdenhed er de angivne cyklusser divideret med antallet af bytes, der deler den sektor.
Er FRAM prisen værd?
Når skrivefrekvensen er høj, eller strømmen kan forsvinde når som helst, ja. Det fjerner slettecyklussen og slidspørgsmålet helt.
Har jeg brug for ECC på NOR?
Normalt ikke til firmware; til langtidslogning ved høj temperatur er en let ECC eller kontrolsum billig forsikring.
Hvad sker der, hvis strømmen svigter under en skrivning?
En EEPROM-byte-skrivning er atomar nok til de fleste designs; en flash-sektor-sletning er ikke. Brug en journal eller to skiftende sektorer, hvis dataene skal overleve et uventet strømtab.
Kan jeg lagre data i 20 år?
Lagringstiden er typisk specificeret til 10–20 år ved 85 °C. Ved højere temperaturer skal du reducere specifikationen og verificere med leverandøren.
7. Kilder
- Hukommelsesdatablade — udholdenhed, dataholdbarhed, side-/sektor-/blokstørrelse, skrive- og sletningstider.
- Applikationsnoter om slidudjævning og strømtabsikker logning (leverandør- og MCU-dokumentation).
- JEDEC-standarder for hukommelseskvalificering og dataholdbarhedstestning.
Valg af hukommelse?
Send skrivehyppigheden, datastørrelsen og levetiden. Vi fortæller dig, om EEPROM, NOR, NAND eller FRAM er det billigere valg.