ECC hukommelse

ECC-hukommelse ( engelsk  error-correcting code memory , memory with error correction) er en type computerhukommelse , der automatisk genkender og korrigerer spontane ændringer (fejl) i hukommelsesbits . Hukommelse, der ikke understøtter fejlkorrektion, er betegnet som ikke-ECC .

Typisk kan fejlkorrigerende hukommelse rette single-bit ændringer i et enkelt maskinord . Det betyder, at når man læser et maskinord fra hukommelsen, vil den samme værdi blive læst, som tidligere blev skrevet, selvom der i intervallet mellem skrivning og læsning blev ændret en bit ved et uheld (for eksempel under påvirkning af kosmiske stråler ). Almindelig hukommelse er generelt ikke i stand til at fortælle, om der er opstået en fejl, selvom nogle typer af paritetskontrolhukommelse kan fortælle, om der er opstået en fejl, men ikke kan rette den.

Fejlkorrigerende hukommelse bruges på de fleste computere, hvor oppetid er vigtig, inklusive de fleste servere. For at hukommelsen kan fungere i fejlkorrektionstilstand, kræves der support fra RAM-controlleren, som kan være en integreret del af chipsættet eller indlejret i et system på en chip , der er integreret med computerkernerne.

Den mest grundlæggende fejlkorrektionsalgoritme er baseret på Hamming-koden . Der er dog andre algoritmer, der kan rette mere end én fejl.

I praksis er DDR* SDRAM ECC-hukommelse meget udbredt til servere med SECDED-klassekoden (enkelt fejlkorrektion og dobbelt fejldetektion). På hukommelsesmoduler tilføjes en chip mere for hver 8 chips, som gemmer ECC -koder på 8 bits store for hver 64 bit hovedhukommelsen [2] .

ECC-databeskyttelsesordninger kan også anvendes på hukommelsen indbygget i mikroprocessorer: cachehukommelse, registerfil. Nogle gange er kontrol også tilføjet til beregningskredsløb.

Beskrivelse af problemet

Elektromagnetisk interferens i et computersystem kan spontant ændre tilstanden af ​​en computerhukommelsescelle . Den mest almindelige årsag til denne ændring er neutroner fra kosmiske stråler [3] . Derfor stiger fejlraten i computersystemer, når højden stiger . Neutronfluxen er således 3,5 gange større i en højde af 1,5 km og 300 gange større i en højde af 10-12 km (typisk passagerfly flyvehøjde) end ved havoverfladen [4] . Derfor kræver systemer, der opererer i stor højde, mere beskyttelse.

For eksempel har Cassini-Huygens rumfartøjet to identiske optagere, der hver indeholder 2,5 gigabit hukommelse. I løbet af de første 2,5 års flyvning blev der registreret et nogenlunde konstant antal fejl hver dag: cirka 280 fejl om dagen. Inden for en dag (6. november 1997) blev antallet af fejl dog firedoblet. Det menes, at dette skete på grund af en geomagnetisk storm [5] (også en protonstorm ), som blev optaget af GOES 9 -satellitten [6] .

Der er bekymring for, at tendensen til mindre fysiske størrelser af hukommelsesmoduler vil føre til en stigning i fejlraten på grund af det faktum, at partikler med lavere energi vil være i stand til at ændre bit [4] . På den anden side reducerer den kompakte størrelse af hukommelsen chancen for, at partikler kommer ind i den. Derudover kan overgangen til teknologier som silicium på en isolator gøre hukommelsen mere stabil [7] .

En undersøgelse udført på et stort antal Google -servere viste, at antallet af fejl kan være fra 25.000 til 70.000 pr. milliard enhedstimer ( engelsk  device hours ) per megabit (det vil sige 2,5-7,0 × 10 −11 fejl/bittime) [ 8] .

Teknologi

En løsning på problemet er paritet  - ved at bruge en ekstra bit, der registrerer pariteten af ​​de resterende bits. Denne tilgang giver dig mulighed for at opdage fejl, men tillader dig ikke at rette dem, så hvis der opdages en fejl, kan du kun afbryde programafviklingen.

En mere pålidelig tilgang er en, der bruger fejlkorrigerende koder . Den mest almindeligt anvendte fejlretningskode er Hamming-koden . De fleste typer fejlkorrigerende hukommelse, der bruges i moderne computere, kan rette en enkelt bit fejl i et 64-bit maskinord og detektere, men ikke korrigere, en to-bit fejl i et enkelt 64-bit ord [9] .

Den mest effektive tilgang til fejlkorrektion afhænger af den type fejl, der forventes. Det antages ofte, at ændringer til forskellige bit sker uafhængigt, i hvilket tilfælde sandsynligheden for to fejl i et ord er ubetydelig. Denne antagelse holder dog ikke for moderne computere. Chipkill ( IBM ) fejlkorrektionsteknologi giver dig mulighed for at rette flere fejl , herunder når hele hukommelseschippen er beskadiget. Andre hukommelseskorrektionsteknologier, der ikke antager bitfejlsuafhængighed, omfatter Extended ECC ( Sun Microsystems ), Chipspare ( Hewlett-Packard ) og SDDC ( Intel ).

Mange ældre systemer rapporterede kun de fejl, de fandt, som ikke kunne rettes, og rapporterede ikke dem, der blev rettet. Moderne systemer registrerer både korrigerbare fejl (CE, eng.  correctable errors ) og ukorrigerbare (UE, eng.  uncorrectable errors ). Dette giver dig mulighed for at erstatte beskadiget hukommelse i tide: på trods af at et stort antal korrigerede fejl i fravær af uoprettelige fejl ikke påvirker den korrekte drift af hukommelsen, kan dette indikere, at for dette hukommelsesmodul er sandsynligheden for forekomst af ukorrigerbare fejl i fremtiden vil stige [10] .

Fordele og ulemper

Fejlkorrigerende hukommelse beskytter mod forkert betjening af et computersystem på grund af hukommelseskorruption og reducerer sandsynligheden for en fatal systemfejl. Men sådan hukommelse koster mere; bundkortet , chipsættet og processoren , der understøtter fejlkorrigerende hukommelse, kan også være dyrere, så en sådan hukommelse bruges normalt kun i systemer, der er kritiske for jævn og korrekt drift, såsom en filserver , videnskabelige og finansielle applikationer.

Kontrol af beløbene kræver ofte en ekstra cyklus af hukommelsescontrolleren. Yderligere logik, der implementerer tælling, ECC-kontrol og fejlkorrektion, kræver logiske ressourcer og tid til at arbejde enten i selve hukommelsescontrolleren eller i grænsefladen mellem CPU'en og hukommelsescontrolleren [11] . Derfor er fejlkorrigerende hukommelse 2-3 % langsommere end konventionel hukommelse, afhængigt af applikationen [12] .

Se også

Noter

  1. Werner Fischer. RAM afsløret . admin store.com . Hentet 20. oktober 2014. Arkiveret fra originalen 20. oktober 2014.
  2. Arkiveret kopi (link ikke tilgængeligt) . Hentet 20. november 2016. Arkiveret fra originalen 18. april 2016. 
  3. Single Event Upset at Ground Level, Eugene Normand, medlem, IEEE, Boeing Defence & Space Group, Seattle, WA 98124-2499
  4. 1 2 " A Survey of Techniques for Modeling and Improving Reliability of Computing Systems ", IEEE TPDS, 2015
  5. Kuznetsov V. V. Solar-terrestrisk fysik (et kursus med forelæsninger for fysikstuderende). Foredrag 7. Solaktivitet. // Solstorme. Gorno-Altai State University. 2012 . Hentet 9. januar 2018. Arkiveret fra originalen 18. september 2017.
  6. Gary M. Swift og Steven M. Guertin. "I-Flight Observationer af Multiple-Bit-forstyrrelser i DRAM'er". Jet Propulsion Laboratory (ikke tilgængeligt link) . Hentet 17. april 2016. Arkiveret fra originalen 3. februar 2015. 
  7. Borucki, "Sammenligning af Accelerated DRAM Soft Error Rates Measured at Component and System Level", 46th Annual International Reliability Physics Symposium, Phoenix, 2008, s. 482-487
  8. Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich. DRAM-fejl i naturen: En storstilet feltundersøgelse  (ubestemt)  // SIGMETRICS/Performance. - ACM, 2009. - ISBN 978-1-60558-511-6 .
  9. Brug af StrongArm SA-1110 i on-board computeren på Nanosatellite . Tsinghua Space Center, Tsinghua University, Beijing. Hentet 16. februar 2009. Arkiveret fra originalen 2. oktober 2011.
  10. Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Arkiveret fra originalen den 5. september 2009. . 2005-2009. "Edac-kernemodulets mål er at opdage og rapportere fejl, der opstår i computersystemet, der kører under linux."
  11. AMD-762™ System Controller Software/BIOS Design Guide, s. 179 . AMD (2002). Hentet 21. november 2016. Arkiveret fra originalen 21. november 2016. "Den ekstra logik til at understøtte ECC-funktionen er dyr i både siliciumfast ejendom og systemtiming. I de ECC-tilstande, der understøtter datakorrektion, skal der bruges et ekstra systemur til at generere de korrigerede data ... AMD Athlon-processor kontrollerer for sine egne fejl"
  12. Diskussion af ECC på pcguide . Pcguide.com (17. april 2001). Hentet 23. november 2011. Arkiveret fra originalen 18. november 2011.

Links