ECC-minne

Fra Wikipedia, den frie encyklopedi
Hopp til: navigasjon, søk
ECC DIMMer har vanligvis ni minne-chipper på hver side, en mer enn ikke-ECC DIMMer.[1]

Error-correcting code memory eller ECC-minne (på norsk: Feilkorrigerende kode minne) er en type dataminne som kan oppdage og rette vanlige feil som oppstår i minne, og som ellers kunne ha forårsaket datakorrupsjon. ECC-minne blir brukt i datamaskiner hvor datakorrupsjon ikke kan bli tolerert, som for eksempel vitenskapelig forskning eller finansregning.

ECC-minne gjør et system nærmest immunt mot en-bitsfeil, hvor en enkel bit forandrer seg uten grunn. Det meste av ikke-ECC-minne kan ikke oppdage slike feil, men visse typer kan oppdage de men ikke rette de.

Bakgrunn for bruk[rediger | rediger kilde]

Elektriske eller magnetiske forstyrrelser kan forårsake at en enkelt bit kan bytte fra 0 til 1 eller 1 til 0 innenfor systemets minne. Tidligere var det trodd at dette var på grunn av alfapartikler som kom fra prosessorens pakkemateriale, men forskning[2] viste senere at de fleste av slike feil kommer fra bakgrunnsstrålingen eller annen kosmisk stråling, som kan forstyrre med minnebrikkene når de enten skriver til dem eller leser av dem.

Som et eksempel, romsonden Cassini-Huygens, som ble skutt opp i 1997, har to identiske opptakere, med 2,5 gigabyte minne hver. Takket være den innebygde EDAC-funksjonaliteten viser telemetri til sonden antallet en-bitsfeil. Under sine første to og et halvt år, rapporterte sonden rundt 280 feil om dagen. Den første dagen den var i rommet var mengden feil fire ganger større, dette var på grunn av en liten solstorm som ble oppdaget av satellitten GOES 9.[3]

Det var noe bekymring rundt at mens RAM for høyere og høyere tetthet, og komponentene på minnebrikkene blir mindre, og minnebrikkene bruker lavere spenninger og mindre strøm, så kan DRAM-brikker bli påvirket av slik stråling oftere, siden partikler med lavere energi kan da forandre på en minnecelles status. På den andre siden, så er slike mindre minneceller mindre mål for slike partikler, så det er mindre sannsynlig at en slik partikkel kan treffe minnecellen. Ny forskning[4] viser at slike feil å grunn av kosmisk stråling har sunket dramatisk.

Konsekvensene fra minnefeil er avhengig av systemet. I systemer uten ECC-minne, kan en feil forårsake en krasj eller korrupsjon av data, i større skala er minnefeil den vanligste årsaken til systemkrasj.[5] Minnefeil kan også forårsake sikkerhetssårbarheter.[5] En minnefeil har ingen konsekvenser hvis den forandrer en bit som ikke skaper noen observerbar feil eller data som ikke blir lagret eller brukt i regning. En studie fra 2010 viste at for en nettleser så var bare en liten del av minnefeil som kunne skape korrupsjon av data.[1]

Hurtigminne[rediger | rediger kilde]

Noen prosessorer bruker ECC-prosesser på hurtigminner på prosessoren, blant annet Intels Itanium prosessor, AMD Athlon og Opteron prosessorer, og DEC Alpha 21264.[6][7]

Fordeler og ulemper[rediger | rediger kilde]

ECC-minne er som regel dyrere enn ikke-ECC-minne. Hovedkort og prosessorer som støtter ECC-minne er som regel også dyrere en sine ikke-ECC-kompatible motstykker.

ECC-minne beskytter mot datakorrupsjon som ikke har blitt oppdaget, og blir brukt i datamaskiner hvor slike datafeil ikke kan tolereres. ECC-minne reduserer også mengden systemkrasjer, spesielt på systemer med flere brukere. De fleste prosessorer og hovedkort støtter ikke ECC-minne for å senke prisen. Noen ECC-kompatible hovedkort kan også bruke vanlig ikke-ECC-minne, men ikke alltid.

ECC-minne kan senke ytelse på noen systemer med rundt 2–3 %, avhengig av brukt og implementering, grunnet den ekstra tiden ECC-minne bruker på å kontrollere dataene.[8] Noen moderne systemer integrerer ECC-testing i prosessoren, slik at det ikke blir noen forsinkelser for å teste dataene.[1][9]

Referanser[rediger | rediger kilde]

  1. ^ a b c Werner Fischer. «RAM Revealed». Besøkt 20. oktober 2014. 
  2. ^ Single Event Upset at Ground Level, Eugene Normand, Member, IEEE, Boeing Defense & Space Group, Seattle, WA 98124-2499
  3. ^ Gary M. Swift and Steven M. Guertin. «In-Flight Observations of Multiple-Bit Upset in DRAMs». Jet Propulsion Laboratory
  4. ^ Borucki, «Comparison of Accelerated DRAM Soft Error Rates Measured at Component and System Level», 46th Annual International Reliability Physics Symposium, Phoenix, 2008, pp. 482–487
  5. ^ a b Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich (2009). «DRAM Errors in the Wild: A Large-Scale Field Study» (PDF). SIGMETRICS/Performance. ACM. ISBN 978-1-60558-511-6. 
  6. ^ Jangwoo Kim; Nikos Hardavellas; Ken Mai; Babak Falsafi; James C. Hoe.
  7. ^ Doe Hyun Yoon; Mattan Erez.
  8. ^ «Discussion of ECC on pcguide». Pcguide.com. 17. april 2001. Besøkt 23. november 2011. 
  9. ^ Benchmark of AMD-762/Athlon platform with and without ECC Arkivert 15. juni 2013 hos Wayback Machine.