Šta je ECC memorija? Šta je ECC RAM? Baferovana RAM memorija - šta je to? ecc-omogućena memorija

Na pitanje Objasnite šta je "ECC podrška" na RAM-u, dato od autora Alyonka najbolji odgovor je to je funkcija ispravljanja grešaka. takva memorija se stavlja na servere, jer je nemoguće da zaostaju, isključe se ili preopterećuju zbog grešaka. za kućni računar to nije neophodna stvar, iako je korisna. ako odlučite da ga instalirate za sebe, uvjerite se da vaša matična ploča podržava ovu vrstu RAM-a s ECC-om.
Izvor: ku

Odgovor od Rainswept[guru]
ECC (Error Correct Code) - otkrivanje i ispravljanje grešaka (moguće su i druge interpretacije iste skraćenice) - algoritam koji je zamijenio "provjeru pariteta". Za razliku od potonjeg, svaki bit je uključen u više od jedne kontrolne sume, što omogućava, u slučaju greške u jednom bitu, da se adresa greške vrati i ispravi. Po pravilu se otkrivaju i greške u dva bita, iako se ne ispravljaju. Za implementaciju ovih mogućnosti, dodatni memorijski čip se instalira na modul i on postaje 72-bitni, za razliku od 64 bita podataka konvencionalnog modula. ECC podržavaju sve moderne matične ploče dizajnirane za serverska rješenja, kao i neki skupovi čipova "opće namjene". Neke vrste memorije (registrovane, pune baferovane) dostupne su samo u ECC verziji. Treba napomenuti da ECC nije lijek za neispravnu memoriju i koristi se za ispravljanje nasumičnih grešaka, smanjujući rizik od kvarova računala zbog slučajnih promjena u sadržaju memorijskih ćelija uzrokovanih vanjskim faktorima kao što je pozadinsko zračenje.
Registrirani memorijski moduli se preporučuju za korištenje u sistemima koji zahtijevaju (ili podržavaju) 4 GB ili više RAM-a. Oni su uvijek 72-bitni, odnosno ECC moduli, i sadrže dodatne registarske čipove za djelomično baferovanje.
PLL-Phase Locked Loop - kolo za automatsko podešavanje frekvencije i faze signala, služi za smanjenje električnog opterećenja na memorijskom kontroleru i povećanje stabilnosti pri korištenju velikog broja memorijskih čipova, koristi se u svim baferiranim memorijskim modulima.
Buffered - baferirani modul. Zbog visokog ukupnog električnog kapaciteta današnjih memorijskih modula, njihova duga vremena "punjenja" rezultiraju dugotrajnim operacijama pisanja. Da bi se to izbjeglo, neki moduli (obično 168-pinski DIMM) opremljeni su posebnim čipom (baferom) koji relativno brzo pohranjuje dolazne podatke, što oslobađa kontroler. Baferovani DIMM-ovi generalno nisu kompatibilni sa nebaferisanim. Delimično baferovani moduli se takođe nazivaju "registrovani" moduli, a potpuno baferovani moduli se nazivaju "FB-DIMM". U ovom slučaju, "nebaferovani" se odnosi na obične memorijske module bez mogućnosti za baferovanje.
Paritet - paritet, moduli sa paritetom, takođe paritet. Prilično stari princip provjere integriteta podataka. Suština metode je da se za bajt podataka u fazi snimanja izračunava kontrolna suma, koja se pohranjuje kao poseban paritetni bit u zasebnom čipu. Kada se podaci pročitaju, kontrolna suma se ponovo izračunava i upoređuje sa bitom parnosti. Ako se podudaraju, podaci se smatraju autentičnim, u suprotnom se generira poruka o grešci pariteta (koja obično rezultira zaustavljanjem sistema). Očigledni nedostaci metode uključuju visoku cijenu memorije potrebne za pohranjivanje dodatnih bitova parnosti, ranjivost na dvostruke greške (kao i lažne pozitivne rezultate u slučaju greške u bitu parnosti), gašenje sistema čak i uz manju grešku (recimo, u video okviru). Trenutno nije primjenjivo.
SPD - čip na DIMM memorijskom modulu koji sadrži sve podatke o njemu (posebno informacije o brzini) potrebne za pružanje normalan rad. Ovi podaci se čitaju u fazi samotestiranja računara, mnogo pre nego što se operativni sistem učita, i omogućavaju vam da konfigurišete postavke pristupa memoriji čak i ako u sistemu postoje različiti memorijski moduli u isto vreme. Neke matične ploče odbijaju da rade sa modulima koji nemaju SPD čip, ali takvi moduli su sada veoma retki i uglavnom su PC-66 moduli.


Odgovor od Mowgley[guru]
provjera memorije za greške

Koliko ja razumem, njegovi argumenti su sledeći:

  1. Google nije koristio ECC kada je napravio svoje servere 1999. godine.
  2. Većina RAM grešaka su sistematske greške, a ne slučajne.
  3. RAM greške su rijetke jer Hardver poboljšano.
  4. Da je ECC memorija zaista važna, onda bi se koristila svuda, ne samo na serverima. Plaćanje za ovu vrstu opcionog materijala je očigledno previše sumnjivo.
Prođimo kroz ove argumente jedan po jedan:

1. Google nije koristio ECC 1999. godine

Ako radite nešto samo zato što je Google to jednom učinio, pokušajte:

O. Postavite svoje servere u transportne kontejnere.

Danas i dalje pišu članke da je to odlična ideja, iako je Google upravo proveo eksperiment koji je ocijenjen kao neuspjeh. Ispostavilo se da čak ni Googleovi eksperimenti ne uspiju uvijek. Zapravo, njihova ozloglašena sklonost "probojnim projektima" ("loonshots") znači da imaju više neuspjelih eksperimenata od većine kompanija. Po mom mišljenju, to je za njih značajna konkurentska prednost. Nemojte ovu prednost učiniti većom nego što jeste slijepim kopiranjem neuspjelih eksperimenata.

B. Zapalite požare u vlastitim podatkovnim centrima.

Deo Atwoodovog posta govori o tome koliko su ovi serveri bili neverovatni:

Neki će možda pogledati ove rane Google servere i vidjeti neprofesionalizam u pogledu opasnosti od požara. Ne ja. Vidim ovdje vizionarsko razumijevanje o tome kako će jeftin hardver koji se prodaje na polici oblikovati moderni internet.

Poslednji deo rečenog je istina. Ali u prvom dijelu ima istine. Kada je Google počeo dizajnirati svoje ploče, jedna generacija njih imala je problem "rasta" ( ) koji je uzrokovao broj požara različit od nule.

Usput, ako odete na Jeffov post i pogledate fotografiju navedenu u citatu, vidjet ćete da na pločama ima puno kratkospojnih kablova. To je izazvalo probleme i ispravljeno je u sljedećoj generaciji hardvera. Također možete vidjeti prilično neuredno kabliranje, što je dodatno stvaralo probleme i također je brzo popravljeno. Bilo je i drugih problema, ali ću ih ostaviti kao vežbu za čitaoca.

C. Kreirajte servere koji ozljeđuju vaše zaposlenike

Oštre ivice generacije Google servera stekle su im reputaciju kao "žilet i mržnja".

D. Kreirajte vlastitu vremensku prognozu u vašim data centrima

Nakon razgovora sa zaposlenima mnogih velikih tehnoloških kompanija, čini se da je većina kompanija bila toliko kontrolirana klimom da su se u njihovim centrima podataka stvarali oblaci ili magla. Mogli biste to nazvati Googleovim proračunatim i lukavim planom da ponovi vrijeme u Seattleu kako bi ulovio zaposlenike Microsofta. Alternativno, to bi mogao biti plan za stvaranje doslovno "računarstva u oblaku". Ili možda ne.

Imajte na umu da je sve što je naznačio Google isprobano, a zatim promijenjeno. Pravljenje grešaka, a zatim njihovo ispravljanje uobičajeno je u svakoj uspješnoj razvojnoj organizaciji. Ako idolizirate inženjersku praksu, onda se trebate držati barem moderne prakse, a ne onoga što je urađeno 1999. godine.

Kada je Google koristio ne-ECC servere 1999. godine, oni su pokazali niz simptoma za koje je na kraju otkriveno da su oštećenje memorije. Uključujući indeks pretraživanja koji je vratio gotovo nasumične rezultate u upitima. Stvarni način kvara ovdje je poučan. Često čujem da se ECC može zanemariti na ovim mašinama jer su greške u pojedinačnim rezultatima prihvatljive. Ali čak i ako smatrate da su slučajne greške prihvatljive, njihovo ignorisanje znači da postoji opasnost od potpunog oštećenja podataka, osim ako se ne izvrši pažljiva analiza kako bi se osiguralo da jedna greška može samo malo iskriviti jedan rezultat.

U studijama sprovedenim na sistem datoteka ah, više puta se pokazalo da je, uprkos herojskim pokušajima da se stvore sistemi otporni na jednu grešku, to izuzetno teško učiniti. U suštini, svaki teško testirani sistem datoteka može imati veliki kvar zbog jedne greške (). Neću napadati programere sistema datoteka. Oni su bolji u ovoj vrsti analize od 99,9% programera. Samo što se više puta pokazalo da je problem toliko težak da ljudi ne mogu razumno raspravljati o njemu, a automatizirani alat za takvu analizu još uvijek je daleko od jednostavnog pritiska na dugme. U svom Warehouse Computer Handbook-u, Google raspravlja o otkrivanju i ispravljanju grešaka, a ECC memorija se smatra najboljom opcijom kada je očigledno da se mora koristiti ispravljanje hardverske greške ( ).

Google ima odličnu infrastrukturu. Prema onome što sam čuo o infrastrukturi u drugim velikim tehnološkim kompanijama, čini se da je Google najbolji na svijetu. Ali to ne znači da treba da kopirate sve što oni rade. Čak i ako se uzmu u obzir samo njihove dobre ideje, nema smisla da ih većina kompanija kopira. Napravili su zamjenu za Linux planer zakačivanja zadataka koji koristi i informacije o hardverskom vremenu izvođenja i statičke tragove kako bi im omogućio da iskoriste prednosti novog hardvera u Intelovim serverskim procesorima, omogućavajući dinamičko particioniranje keša između jezgara. Ako ovo koristite na svom hardveru, Google će uštedjeti više novca za nedelju dana nego što je Stack Exchange potrošio na sve svoje mašine u svojoj istoriji. Znači li to da morate kopirati Google? Ne, osim ako ste već bili pogođeni manom nebeskom, kao što je vaša osnovna infrastruktura napisana na visoko optimizovanom C++, a ne na Javi ili (ne daj Bože) Rubyju. A činjenica je da je za veliku većinu kompanija pisanje programa na jeziku koji podrazumijeva 20-struko smanjenje produktivnosti savršeno razumna odluka.

2. Većina RAM grešaka su sistematske greške

Argument protiv ECC-a reproducira sljedeći dio studije DRAM greške (naglasak dodao Jeff):
Naša studija ima nekoliko glavnih rezultata. Prvo, otkrili smo da je otprilike 70% kvarova DRAM-a ponavljajući (npr. trajni) kvarovi, dok su samo 30% povremeni (povremeni) kvarovi. Drugo, otkrili smo da veliki višebitni kvarovi, kao što su kvarovi koji utiču na cijeli red, stupac ili blok, čine preko 40% svih kvarova DRAM-a. Treće, otkrili smo da skoro 5% kvarova DRAM-a utiče na kola na nivou ploče, kao što su linije podataka (DQ) ili kapija (DQS). Konačno, otkrili smo da je funkcija Chipkill smanjila učestalost kvarova sistema uzrokovanih kvarovima DRAM-a za faktor 36.

Citat izgleda pomalo ironično, jer se čini da nije argument protiv ECC-a, već argument za Chipkill - određenu ECC klasu. Ako to ostavimo po strani, Džefov post ukazuje da su sistematske greške dvostruko češće od slučajnih grešaka. U postu se zatim kaže da pokreću memtest na svojim mašinama kada se pojave sistematske greške.

Prvo, omjer 2:1 nije dovoljno velik da jednostavno ignoriše slučajne greške. Drugo, post implicira Jeffovo uvjerenje da su sistematske greške u suštini nepromjenjive i da se ne mogu pojaviti nakon nekog vremena. Ovo nije istina. Elektronika se troši na isti način na koji se troše mehanički uređaji. Mehanizmi su različiti, ali efekti su slični. Zaista, ako uporedimo analizu pouzdanosti čipa sa drugim tipovima analize pouzdanosti, možemo vidjeti da često koriste iste porodice distribucija za modeliranje kvarova. Treće, Jeffova linija razmišljanja implicira da ECC ne može pomoći u otkrivanju ili ispravljanju grešaka, što ne samo da je pogrešno, već je i direktno u suprotnosti s citatom.

Dakle, koliko često ćete pokrenuti memtest na svojim mašinama u pokušaju da uhvatite ove sistemske greške i koliki gubitak podataka ste spremni da trpite? Jedna od ključnih upotreba ECC-a nije ispravljanje grešaka, već signaliziranje grešaka kako bi se hardver mogao zamijeniti prije nego što dođe do „tihe korupcije“. Ko bi pristao da zatvori sve na mašini svaki dan da bi pokrenuo memtest? To bi bilo mnogo skuplje od kupovine ECC memorije. Čak i kada biste me mogli uvjeriti da pokrenem test memorije, memtest ne bi pronašao toliko grešaka koliko ECC može.

Kada sam radio za kompaniju sa flotom od oko hiljadu mašina, primetili smo da imamo čudne greške u proveri integriteta podataka, a nakon otprilike šest meseci, shvatili smo da su kvarovi na nekim mašinama verovatniji od drugih. Ovi promašaji su bili prilično rijetki (možda nekoliko puta sedmično u prosjeku), tako da je trebalo dosta vremena da se akumuliraju informacije i shvati šta se dešava. Bez poznavanja uzroka, raščlanjivanje dnevnika da se vidi da li su greške uzrokovane pojedinačnim okretanjem bita (sa velikom vjerovatnoćom) takođe nije bilo trivijalno. Imali smo sreću da su, kao nuspojava procesa koji smo koristili, kontrolne sume izračunate u zasebnom procesu na drugoj mašini u različito vrijeme, tako da greška nije mogla pokvariti rezultat i proširiti ovu korupciju na kontrolnu sumu.

Ako se samo pokušavate zaštititi kontrolnim zbrojima u memoriji, postoji velika šansa da ćete izvesti operaciju kontrolne sume na već oštećenim podacima i dobiti ispravnu kontrolnu sumu loših podataka, osim ako ne radite neke stvarno otmjene proračune koji daju svoje kontrolne sume. A ako ozbiljno razmišljate o ispravljanju grešaka, onda vjerovatno još uvijek koristite ECC.

U svakom slučaju, nakon završetka analize, otkrili smo da memtest nije mogao otkriti nikakve probleme, ali je zamjena RAM-a na lošim mašinama dovela do smanjenja stope greške za jedan do dva reda veličine. Većina usluga nema onu vrstu kontrolnih suma kao što smo imali; ove usluge će samo tiho pisati oštećene podatke u trajnu memoriju i neće vidjeti problem dok se klijent ne požali.

3. Zbog razvoja hardvera, greške su postale vrlo rijetke.

Podaci u objavi nisu dovoljni za takvu izjavu. Imajte na umu da kako se upotreba RAM-a povećava i nastavlja eksponencijalno da raste, kvarovi RAM-a moraju se smanjivati ​​većom eksponencijalnom brzinom kako bi se zapravo smanjila učestalost oštećenja podataka. Takođe, kako čipovi postaju sve manji, ćelije postaju sve manje, čineći pitanja habanja o kojima se raspravlja u drugoj tački još relevantnijim. Na primjer, s 20nm tehnologijom, DRAM kondenzator može akumulirati negdje oko 50 elektrona, a ovaj broj će biti manji za sljedeću generaciju DRAM-a, dok će se nastaviti smanjivati.

Još jedna napomena: kada plaćate ECC, ne plaćate samo ECC memoriju - plaćate dijelove (procesore, ploče) koji su kvalitetniji. To se lako može vidjeti sa stopama kvarova na pogonu, a čuo sam da su mnogi ljudi to primijetili u svojim ličnim zapažanjima.

Da citiram javno dostupno istraživanje, koliko se sjećam, Andrea i Ramseyeva grupa su prije nekoliko godina objavili rad SIGMETRICS, koji je pokazao da je 4 puta veća vjerovatnoća da će SATA disk ne uspjeti čitati nego SCSI disk, i 10 puta veća vjerovatnoća imati skrivene oštećenje podataka. . Ovaj omjer je zadržan čak i kada se koriste diskovi istog proizvođača. Nema posebnog razloga da se misli da bi SCSI interfejs trebalo da bude pouzdaniji od SATA interfejsa, ali nije reč o interfejsu. Govorimo o kupovini visoko pouzdanih serverskih komponenti u odnosu na klijentske. Možda niste posebno zainteresirani za pouzdanost diska, jer imate sve na kontrolnim sumama, a oštećenja se lako pronalaze, ali postoje neke vrste kršenja koje je teže otkriti.

4. Da je ECC memorija zaista važna, onda bi se koristila svuda, ne samo na serverima.

Da malo parafraziramo ovaj argument, možemo reći da "ako je ova karakteristika zaista važna za servere, onda bi se koristila i na ne-serverima." Ovaj argument možete primijeniti na dosta serverskog hardvera. U stvari, ovo je jedan od najfrustrirajućih problema s kojima se suočavaju veliki provajderi oblaka.

Imaju dovoljno snage da nabave većinu komponenti po pravoj cijeni. Ali pregovaranje će funkcionirati samo tamo gdje postoji više od jednog održivog dobavljača.

Jedna od rijetkih oblasti u kojoj nema održive konkurencije je proizvodnja centralnih procesorskih jedinica i video akceleratora. Srećom za velike dobavljače, obično im ne trebaju video akceleratori, potrebni su im procesori, dosta - to je već odavno slučaj. Bilo je nekoliko pokušaja dobavljača procesora da uđu na tržište servera, ali svaki takav pokušaj je od samog početka uvijek imao fatalne mane, zbog čega je bilo očigledno da je osuđen na propast (a to su često projekti za koje je potrebno najmanje 5 godina, tj. bilo je potrebno provesti mnogo vremena bez povjerenja u uspjeh).

Qualcommovi napori su izazvali veliku buku, ali kada razgovaram sa svojim kontaktima u Qualcommu, svi mi kažu da je čip koji se trenutno pravi u suštini za testiranje. To se dogodilo zato što je Qualcomm trebao naučiti kako napraviti serverski čip od svih ljudi koje je ulovio od IBM-a, i da će sljedeći čip biti prvi koji bi, nadamo se, mogao biti konkurentan. Polažem velike nade u Qualcomm, kao i u ARM-ove napore da napravi dobre serverske komponente, ali ti napori još nisu dali željeni rezultat.

Gotovo potpuna neprikladnost trenutnih ARM (i POWER) opcija (osim hipotetičkih opcija za Appleov impresivni ARM čip) za većinu opterećenja servera u smislu performansi po dolaru ukupnih troškova vlasništva (TCO) je tema koja je malo utabana , pa ću to ostaviti za sada, druga publikacija. Ali poenta je u tome da Intel ima poziciju na tržištu koja može primorati ljude da dodatno plate za karakteristike servera. I Intel to radi. Takođe, neke karakteristike su zaista važnije za servere nego za mobilnih uređaja sa nekoliko gigabajta RAM-a i energetskim budžetom od nekoliko vati, mobilni uređaji za koje se i dalje očekuje da će se povremeno rušiti i ponovo pokrenuti.

Zaključak

Da li da kupim ECC RAM? Zavisi od mnogo stvari. Za servere, ovo je vjerovatno dobra opcija s obzirom na troškove. Međutim, zaista je teško napraviti analizu troškova i koristi, jer je prilično teško odrediti cijenu latentnog oštećenja podataka ili cijenu rizika od gubitka pola godine vremena programera na praćenje povremenih padova, samo da bi se otkrilo da su uzrokovani ne-ECC korištenje memorije.

Za desktop računare takođe podržavam ECC. Ali ako ne pravite redovne sigurnosne kopije, tada vam je korisnije ulagati u redovne sigurnosne kopije nego u ECC memoriju. I ako jesi rezervne kopije bez ECC-a, tada možete lako pisati oštećene podatke u glavnu memoriju i replicirati ove oštećene podatke u rezervnu kopiju.

Hvala Prabhakar Ragda, Tom Murphy, Jay Weiskopf, Leah Hanson, Joe Wilder i Ralph Corderoy za diskusiju/komentare/ispravke. Također, hvala (ili možda ne hvala) Leah što me je uvjerila da napišem ovu usmenu improvizaciju kao post na blogu. Izvinjavamo se za sve greške, nedostatak referenci i uzvišenu prozu; ovo je u suštini snimak polovine diskusije, a ja nisam objašnjavao pojmove, davao linkove ili proveravao činjenice do nivoa detalja koji obično radim.

Jedan smiješan primjer je (barem za mene) magična topljiva veza koja se samoiscjeljuje. Iako postoji mnogo implementacija, zamislite topljivu vezu na čipu kao neku vrstu otpornika. Ako kroz njega prođete neku struju, trebali biste dobiti vezu. Ako je struja previsoka, otpornik će se zagrijati i na kraju puknuti. Ovo se obično koristi za onemogućavanje elemenata na čipovima ili za aktivnosti kao što je podešavanje brzine takta. Osnovni princip je da nakon što skakač izgori, nema načina da se vrati u prvobitno stanje.

Davno je postojao proizvođač poluprovodnika koji je bio malo prenagljen sa svojim proizvodnim procesom i donekle previše smanjio tolerancije u određenoj generaciji tehnologije. Nakon nekoliko mjeseci (ili godina), veza između dva kraja takvog skakača mogla se ponovo pojaviti i obnoviti ga. Ako budete imali sreće, takav džamper će biti nešto poput najznačajnijeg bita množitelja takta, koji će, ako se promijeni, onesposobiti čip. Ako nemate sreće, to će dovesti do oštećenja skrivenih podataka.

Čuo sam od mnogo ljudi u različitim kompanijama o problemima u ovoj tehnološkoj generaciji ovog proizvođača, tako da to nisu usamljeni slučajevi. Kad kažem da je smiješno, mislim da je smiješno čuti ovu priču u baru. Manje je smiješno otkriti nakon godinu dana testiranja da neki od vaših čipova ne rade jer su njihove postavke kratkospojnika besmislene i morate prepraviti svoj čip i odgoditi izdavanje za 3 mjeseca. Usput, ova situacija oporavka fuzibilne veze je još jedan primjer klase grešaka koje se mogu ublažiti pomoću ECC-a.

Ovo nije Google problem; Ovo spominjem samo zato što su mnogi ljudi s kojima razgovaram iznenađeni kako hardver može pokvariti.

Ako ne želite da kopate po cijeloj knjizi, evo isječka:

U sistemu koji može izdržati niz kvarova na softverskom nivou, minimalni zahtjev za hardverski dio je da se kvarovi ovog dijela uvijek otkrivaju i prijavljuju. softver dovoljno blagovremeno da omogući softverskoj infrastrukturi da ih zadrži i poduzmu odgovarajuće mjere oporavka. Nije neophodno da hardver eksplicitno obrađuje sve kvarove. To ne znači da hardver za takve sisteme treba biti dizajniran bez mogućnosti ispravljanja grešaka. Kad god se funkcionalnost popravljanja grešaka može ponuditi po razumnoj cijeni ili složenosti, podrška se često isplati. To znači da ako je ispravljanje hardverskih grešaka bilo izuzetno skupo, onda bi sistem mogao koristiti jeftiniju verziju koja je pružala samo mogućnosti otkrivanja. Trenutni DRAM sistemi su dobar primer situacije u kojoj se moćno ispravljanje grešaka može obezbediti uz veoma niske dodatne troškove. Međutim, ublažavanje zahtjeva za otkrivanjem hardverskih grešaka bilo bi mnogo teže, jer bi to značilo da bi svaka softverska komponenta bila opterećena potrebom da provjeri vlastito ispravno izvršenje. U početnoj fazi svog google historija Morao sam da se nosim sa serverima gde DRAM nije imao čak ni paritet. Kreiranje indeksa web pretraživanja u suštini se sastoji od veoma velike operacije sortiranja/spajanja koristeći više mašina u dužini. Godine 2000., jedno od Google-ovih mjesečnih ažuriranja web indeksa nije uspjelo pred-validaciju kada je otkriveno da podskup testiranih upita vraća dokumente, očigledno nasumično. Nakon nekog istraživanja, u novim indeksnim datotekama pronađena je situacija koja je odgovarala fiksiranju bita na nulu na određenom mjestu u strukturama podataka, što je bila negativna nuspojava strujanja velike količine podataka kroz neispravan DRAM čip. Provjere konzistentnosti su dodane u strukture podataka indeksa kako bi se minimizirala mogućnost da se ovaj problem ponovi i nije bilo daljnjih problema ove prirode. Međutim, treba napomenuti da ova metoda ne jamči 100% otkrivanje greške u prolazu indeksiranja, budući da nisu provjerene sve memorijske pozicije - instrukcije, na primjer, ostaju neprovjerene. Ovo je funkcionisalo jer su indeksne strukture podataka bile toliko veće od svih ostalih podataka uključenih u izračunavanje da je prisustvo ovih struktura podataka za samokontrolisanje učinilo vrlo verovatnim da će mašine sa neispravnim DRAM-om biti identifikovane i isključene iz klastera. Sledeća generacija mašina u Google-u je već uključivala detekciju pariteta memorije, a kada je cena ECC memorije pala na konkurentske nivoe, sve sledeće generacije su koristile ECC-DRAM.

Oznake: Dodajte oznake

Također, ECC šeme zaštite podataka mogu se primijeniti na memoriju ugrađenu u mikroprocesore: keš memorija, registarski fajl. Ponekad se kompjuterskim krugovima dodaje i kontrola.

Opis problema

Postoji zabrinutost da će trend ka manjim fizičkim dimenzijama memorijskih modula dovesti do povećanja stope grešaka zbog činjenice da će čestice manje energije moći promijeniti bit. S druge strane, kompaktna veličina memorije smanjuje mogućnost ulaska čestica u nju. Osim toga, prelazak na tehnologije kao što je silicijum na izolatoru može učiniti memoriju stabilnijom.

Studija sprovedena na velikom broju Google servera pokazala je da broj grešaka može biti u rasponu od 25.000 do 70.000 grešaka po milijardu radnih sati (eng. uređaj sati) po megabitu (odnosno 2,5-7,0 × 10 − 11 grešaka / bit sat).

Tehnologija

Jedno rješenje za ovaj problem je parnost - korištenje dodatnog bita koji bilježi parnost ostalih bitova. Ovaj pristup vam omogućava da otkrijete greške, ali vam ne dozvoljava da ih ispravite. Dakle, kada se otkrije greška, možete samo prekinuti izvršavanje programa.

Pouzdaniji pristup je onaj koji koristi kodove za ispravljanje grešaka. Najčešće korišteni kod za ispravljanje grešaka je Hammingov kod. Većina memorija za ispravljanje grešaka koje se koriste u modernim računarima mogu ispraviti jednu bitnu grešku u jednoj 64-bitnoj mašinskoj riječi i otkriti, ali ne i ispraviti, dvobitnu grešku u jednoj 64-bitnoj riječi.

Najefikasniji pristup ispravljanju grešaka zavisi od vrste očekivanih grešaka. Često se pretpostavlja da se različiti bitovi mijenjaju nezavisno. U ovom slučaju, vjerovatnoća dvije greške u jednoj riječi je zanemarljivo mala. Međutim, ova pretpostavka ne vrijedi savremenih kompjutera. Memorija zasnovana na tehnologiji ispravljanja grešaka Chipkill(IBM), omogućava vam da ispravite nekoliko grešaka, uključujući kada je cijeli memorijski čip oštećen. Druge tehnologije korekcije memorije koje ne pretpostavljaju nezavisnost grešaka u različitim bitovima uključuju Extended ECC(Sun Microsystems), Chipspare(Hewlett-Packard) i SDDC(Intel).

Mnogi stariji sistemi nisu prijavljivali ispravljene greške, samo su prijavljivali greške koje su pronađene i koje nisu mogle biti ispravljene. Moderni sistemi bilježe i ispravljene greške (CE, engleske ispravljive greške) i greške koje se ne mogu ispraviti (UE, engleske nepopravljive greške). To vam omogućava da na vrijeme zamijenite oštećenu memoriju: unatoč činjenici da veliki broj ispravljenih grešaka u nedostatku grešaka koje se ne mogu ispraviti ne utječe na ispravan rad memorije, to može ukazivati ​​na to da je za dati memorijski modul vjerovatnoća nepopravljivih grešaka će se povećati u budućnosti.

Prednosti i nedostaci

Memorija koja ispravlja greške štiti od nepravilnog rada računarskog sistema zbog oštećenja memorije i smanjuje vjerovatnoću fatalnog kvara sistema. Međutim, takva memorija košta više; matična ploča, čipset i procesor koji podržavaju memoriju za ispravljanje grešaka takođe mogu biti skuplji, pa se takva memorija koristi u sistemima gde je važan nesmetan i ispravan rad, kao što su server datoteka, naučne i finansijske aplikacije.

Memorija koja ispravlja greške je 2-3% sporija (često zahtijeva jedan dodatni ciklus memorijskog kontrolera za provjeru suma) od konvencionalne memorije, ovisno o aplikaciji. Dodatna logika koja implementira brojanje, ECC provjeru i ispravljanje grešaka zahtijeva logičke resurse i vrijeme za rad bilo u samom memorijskom kontroleru ili u sučelju između CPU-a i memorijskog kontrolera.

vidi takođe

Bilješke

  1. Werner Fischer. Otkrivena RAM memorija (neodređeno) . admin-magazine.com. Pristupljeno 20. oktobra 2014.
  2. Arhivirana kopija (neodređeno) (nedostupan link). Pristupljeno 20. novembra 2016. Arhivirano iz originala 18. aprila 2016.
  3. Uznemireni pojedinačni događaj na nivou zemlje, Eugene Normand, član, IEEE, Boeing Defense & Space Group, Seattle, WA 98124-2499
  4. "Pregled tehnika za modeliranje i poboljšanje pouzdanosti računarskih sistema", IEEE TPDS, 2015.
  5. Kuznjecov VV Solarno-zemaljska fizika (predavanja za studente fizike). Predavanje 7. Solarna aktivnost. // Solarne oluje. Državni univerzitet Gorno-Altai. 2012
  6. Gary M. Swift i Steven M. Guertin. "Opažanja višebitnih poremećaja u DRAM-u tokom leta". Laboratorija za mlazni pogon
  7. Borucki, "Poređenje ubrzanih stopa soft grešaka DRAM-a izmjerenih na nivou komponenti i sistema", 46. godišnji međunarodni simpozijum fizike o pouzdanosti, Phoenix, 2008., str. 482–487
  8. Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich. DRAM greške u divljini: terenska studija velikih razmjera (neograničeno) // SIGMETRICS/Performance. - ACM, 2009. - ISBN 978-1-60558-511-6.
  9. Korištenje StrongArm SA-1110 u on-board kompjuteru nanosatelita (neodređeno) . Svemirski centar Tsinghua, Univerzitet Tsinghua, Peking. Pristupljeno 16. februara 2009. Arhivirano iz originala 2. oktobra 2011.
  10. Doug Thompson, Mauro Carvalho Chehab. "EDAC - Otkrivanje i ispravljanje grešaka" Arhivirano iz originala 5. septembra 2009. . 2005-2009. "Cilj modula kernela "edac" je da otkrije i prijavi greške koje se javljaju unutar računarskog sistema koji radi pod linuxom."
  11. Diskusija o ECC-u na pcguide-u (neodređeno) . Pcguide.com (17. april 2001.). Pristupljeno 23. novembra 2011.

Strana 1 od 10

Na webu često možete vidjeti pitanja na tematskim forumima u vezi s memorijom za ispravljanje grešaka, odnosno njenog utjecaja na performanse sistema. Današnji test će odgovoriti na ovo pitanje.

Prije čitanja ovog materijala, preporučujemo da se upoznate s materijalima o i platforma LGA1151.

Teorija

Prije testiranja, hajde da razgovaramo o greškama u memoriji.
Greške koje se javljaju u memoriji mogu se podijeliti u dvije vrste - hardverske i nasumične. Razlog za pojavu prvih su neispravni DRAM čipovi. Potonji nastaju zbog utjecaja elektromagnetnih smetnji, zračenja, alfa i elementarnih čestica itd. Shodno tome, hardverske greške se mogu ispraviti samo zamjenom DRAM čipova, a slučajne greške se mogu ispraviti pomoću posebnih tehnologija, na primjer, ECC (Error-Correcting Code). ECC ispravljanje grešaka ima dva metoda u svom arsenalu: SEC (ispravljanje jedne greške) i DED (detekcija dvostruke greške). Prvi ispravlja jednobitne greške u 64-bitnoj riječi, a drugi detektuje dvobitne greške.
Hardverska implementacija ECC-a je da prilagodi dodatne memorijske čipove koji su potrebni za pisanje 8-bitnih kontrolnih suma. Tako će memorijski modul za ispravljanje grešaka jednostranog dizajna imati 9 memorijskih čipova umjesto 8 (kao standardni modul), a s dvostranim - 18 umjesto 16. Istovremeno, širina modul se povećava sa 64 na 72 bita.
Prilikom čitanja podataka iz memorije, kontrolni zbroj se ponovo izračunava i upoređuje s originalnim. Ako je greška u jednom bitu, ispravlja se, ako je u dva, otkriva se.

Vježbajte

U teoriji, sve je u redu - memorija koja ispravlja greške povećava pouzdanost sistema, što je veoma važno pri izgradnji servera ili radne stanice. Ali u praksi postoji i finansijska strana ovog pitanja. Ako server zahtijeva memoriju za ispravljanje grešaka, tada radna stanica može bez ECC-a (mnoge gotove radne stanice različitih proizvođača opremljene su konvencionalnom RAM-om). Koliko je skuplja memorija sa ispravljanjem grešaka?
Tipičan 8GB DDR4-2133 modul košta oko 39 USD, dok ECC modul košta 48 USD (u vrijeme pisanja). Razlika u cijeni je oko 23%, što je na prvi pogled prilično značajno. Ali ako pogledate ukupni trošak radne stanice, ta razlika neće premašiti 5% od toga. Dakle, kupovina memorije sa ECC-om samo neznatno povećava cijenu radne stanice. Jedino pitanje koje ostaje je kako memorija sa ECC utiče na performanse procesora.
Kako bi odgovorili na ovo pitanje, urednici sajta su za testiranje uzeli Samsung DDR4-2133 ECC i Kingston DDR4-2133 memorijske module sa istim tajmingima 15-15-15-36 i 8 GB.

Na Samsung M391A1G43DB0-CPB memorijskim modulima sa ispravljanjem grešaka, 9 čipova je zalemljeno sa svake strane.

Dok na konvencionalnim Kingston KVR21N15D8 / 8 memorijskih modula, 8 čipova je zalemljeno sa svake strane.

Test stalak: Intel Xeon E3-1275v5, Supermicro X11SAE-F, Samsung DDR4-2133 ECC 8GB, Kingston DDR4-2133 non-ECC 8GB

Detailing

Procesor: (HT uključen; TB isključen);
- Matična ploča: ;
- RAM: 2x (M391A1G43DB0-CPB), 2x (KVR21N15D8/8);
- OS: .

Metodologija testiranja

3DMark06 1.21;
- 7zip 15.14;
- AIDA64 5.60;
- Cinebench R15;
- Fritz 4.2;
- Geekbench 3.4.1;
- Lux Mark v3.1;
- MaxxMEMI 1.99;
- Pass Mark v8;
- RealBench v2.43;
- SiSoftware Sandra 2016;
- SVPmark v3.0.3b;
- TrueCrypt 7.1a;
- WinRAR 5.30;
- wPrime 2.10;
- x264 v5.0.1;
- x265 v0.1.4;
- Kraken;
- oktan;
- Oktan 2.0;
- Peacekeeper;
- Sunčev pauk;
- Web XPRT.

mob_info