Kas ir ECC atmiņa?

click fraud protection

Daža RAM jeb brīvpiekļuves atmiņa tiek reklamēta kā ECC atmiņa. ECC nozīmē kļūdu labošanas kods un ir process, kas ļauj identificēt un labot kļūdas atmiņā. Kļūdas RAM var izraisīt datu bojājumus vai izmaiņas, kas var izraisīt ierīces avārijas un pat drošības ievainojamības. ECC operatīvā atmiņa parasti nav saderīga ar patērētāju līmeņa datoru aparatūru.

Kas ir atmiņas kļūdas?

Atmiņas kļūdas ir problēma, ja tiek mainīta atmiņā saglabātā vērtība. Dati RAM tiek saglabāti bināri ar vērtībām 1 vai 0. Ja 1 vērtība tiek pārslēgta uz 0 vai otrādi, procesā, ko sauc par “bitu pārvēršanu”, RAM glabātie dati mainās.

Piemēram, mainīto bitu var izmantot, lai saglabātu vērtību izklājlapā. Šajā gadījumā vērtību izklājlapā var mainīt uz pilnīgi citu skaitli, kas ietekmētu jebkuru aprēķinu rezultātu, piemēram, mainot a) ekonomiskās prognozes Bizness. Citos gadījumos mainītais bits var atspējot drošības līdzekli vai radīt drukas kļūdu, kas maina programmas darbības veidu. Šos divus piemērus ir ārkārtīgi grūti noteikt un atrisināt, neizmantojot ECC atmiņu. Ārkārtējā gadījumā viens bits, kas tiek pagriezts, var izraisīt katastrofālu kļūdu, kas izraisa sistēmas avāriju.

Bitu maiņai ir daudzi iespējamie cēloņi, visizplatītākais iemesls ir fona starojuma rezultāts, ko galvenokārt izraisa neitroni, ko rada kosmiskā starojuma notikumi. Kosmiskais stars ir lielas enerģijas daļiņa, parasti protons, kas pārvietojas gandrīz ar gaismas ātrumu. Tos izstaro zvaigžņu ķermeņi, tostarp Saule un citi augstas enerģijas astronomiskie objekti. Kad kosmiskais stars ietriecas atomā, rodas neitronu un citu subatomisku daļiņu duša, pēc tam šiem neitroniem notiek sekundāra mijiedarbība.

Tiek uzskatīts, ka šīs sekundārās neitronu mijiedarbības ir galvenais bitu maiņas kļūdu avots. Kosmiskie stari ir biežāk sastopami lielākos augstumos — 3,5 reizes palielinās 1,5 km virs jūras līmeņa un 300 reizes palielinās lidmašīnu kreisēšanas augstumā. Šis paaugstinātais risks augstumā prasa papildu uzticamības pasākumus.

Cik izplatītas ir atmiņas kļūdas?

Lielākā daļa cilvēku katru dienu neredz, ka viņu datori avarē, tāpēc būtu viegli domāt, ka tas galvenokārt ir teorētisks risks. Hipermēroga datu centru pētījumi ir izmantoti, lai analizētu bitu maiņas gadījumu biežumu. Google veiktie pētījumi savos datu centros liecina, ka kļūdu līmenis ir aptuveni 1 viena bita kļūda uz gigabaitu RAM ik pēc 1,8 stundām.

NASA Cassini-Huygens misija, kas tika uzsākta 1997. gadā, lai dotos uz Saturnu, tika konfigurēta ar diviem identiskiem lidojuma datoriem, katrs ar 2,5 Gb RAM. Pirmajos divarpus gados kosmosa kuģis novēroja konsekventas 280 viena bita kļūdas dienā. Vienas dienas laikā, kad Cassini-Huygens atradās saules uzliesmojuma ceļā, bits palielinājās četras reizes tika novērotas kļūdas, sniedzot papildu pierādījumus tam, ka Saule ir lielākās daļas bitu maiņas cēlonis jautājumiem.

Pastāvēja bažas, ka RAM moduļu blīvuma nepārtrauktais pieaugums novedīs pie tā, ka jaunākās RAM versijas kļūst arvien neaizsargātākas pret bitu pārmaiņām. Jaunākie pētījumi ir parādījuši, ka patiesībā ir pretējais, jo kļūdu skaits ir samazinājies, samazinoties procesa ģeometrijai.

Kā ECC atmiņa aizsargā pret kļūdām?

ECC atmiņa izmanto kļūdu labošanas kodus, piemēram, Haminga kodus, lai labotu viena bita kļūdas RAM. Divu bitu kļūdas var atklāt, bet tās nevar labot. Hamming kļūdu labošanas kodi darbojas, izmantojot paritātes bitu masīvu. Kopā šos paritātes bitus var izmantot, lai noteiktu, vai datu biti ir mainījušies. Ja tiek identificēts, ka bits ir apgriezts, tas tiek automātiski mainīts atpakaļ.

Padoms. Viena bita kļūda ir bitu maiņas gadījums, kad tiek pagriezts tikai viens bits. Double0bit kļūdu gadījumā tiek apgriezti divi biti. Divi biti nav jāapgriež vienā un tajā pašā incidentā, otrajam bitam ir jānotiek tikai pirms pirmā apgrieztā bita labošanas.

Haminga kļūdu labošanas kodos ir iekļauts vēl viens paritātes bits, nekā nepieciešams. Šis papildu paritātes bits dod kodam iespēju noteikt dubultbitu kļūdu rašanos, taču šīs kļūdas nevar labot.

Kļūdu noteikšanas un labošanas process tiek veikts RAM zibatmiņas zibatmiņas diskā esošajā atmiņas kontrollerī.

Patērētāju pieejamība un atbalsts

Lielākā daļa patērētāju klases datoru aparatūras neatbalsta ECC atmiņu. Tas daļēji ir veids, kā mākslīgi atšķirt servera aparatūru no patērētāju aparatūras. Tomēr ECC RAM maksā vairāk un darbojas nedaudz lēnāk. Turklāt papildu stabilitāte, ko tas nodrošinātu mājas patērētājiem, ir minimāla, jo bitu maiņas kļūdas nav galvenais sistēmas avāriju cēlonis.

Neviens no Intel patērētāju un entuziastu līmeņa CPU neatbalsta ECC atmiņu, to atbalsta tikai tā servera līmeņa CPU, piemēram, Xeon sērijas CPU. AMD patērētāju līmeņa CPU neatbalsta ECC, tomēr to darbstaciju un servera līmeņa CPU, attiecīgi Threadripper un EPYC, atbalsta ECC atmiņu.