Dlaczego komputery PC nie używają pamięci RAM do korekcji błędów? „Ponieważ Intel” – mówi Linus

Enlarge / Od kilku lat cieszymy się milszym, delikatniejszym Linusem Torvaldsem .. . ale to nie znaczy, że przestał mieć opinie.

W ten poniedziałek Linus Torvalds, twórca jądra Linuksa, wygłosił frustrację na temat braku pamięci RAM do korekcji sum kontrolnych (ECC) w komputerach osobistych i laptopy.

… błędna polityka „konsumenci nie potrzebują ECC”, rynek pamięci ECC zniknął.

Argumenty przeciwko ECC były zawsze kompletne i kompletne. Teraz nawet producenci pamięci zaczynają robić ECC wewnętrznie, ponieważ w końcu przyznali się, że absolutnie muszą.

Jeśli nie jesteś zaznajomiony z pamięcią RAM ECC, prawdopodobnie dzieje się tak dlatego, że nie budujesz ani nie specyfikujesz serwerów dedykowanych przy użyciu procesorów i płyt głównych klasy serwerowej – co niestety dotyczy jedyne miejsce, w którym faktycznie znajdziesz ECC. Krótko mówiąc, ECC RAM zawiera niewielką ilość dodatkowej pamięci używanej do wykrywania i korygowania błędów.

Błędy pamięci i prawdopodobieństwo

W większości nowoczesnych implementacji oznacza to każde 64- słowo bitowe przechowywane w pamięci RAM, jest osiem bitów kontrolnych. Pojedynczy błąd bitowy – 0 zamienione na 1 lub 1 odwrócone na 0 – może być zarówno wykryty, jak i automatycznie poprawiony. Można wykryć dwa bity odwrócone w tym samym słowie, ale nie można ich poprawić. Prawdopodobnie zostaną wykryte trzy lub więcej bitów odwróconych w tym samym słowie, ale wykrycie nie jest gwarantowane.

Przerzuty bitów mogą się zdarzyć z wielu powodów, zaczynając od uderzenia promieni kosmicznych lub prostej awarii sprzętu. Zakrojone na szeroką skalę badanie serwerów Google wykazało, że około 32 procent wszystkich serwerów (i 8 procent wszystkich modułów DIMM) we flocie Google napotyka co najmniej jeden błąd pamięci rocznie. Jednak zdecydowana większość z nich to błędy jednobitowe. a ponieważ Google korzysta z procesorów serwerowych i pamięci RAM ECC, oznacza to, że omawiane maszyny nadal pracują na ciężarówkach.

Zobacz więcej

Na komputerach konsumenckich nawet te błędy jednobitowe – które według danych Google są ponad 40 razy bardziej prawdopodobne niż błędy wielobitowe – pozostają niewykryte i mogą powodować niestabilność systemów i uszkodzenie danych.

Przerzuty bitów nie zawsze są przypadkowe

Nie każdy błąd pamięci RAM jest wynikiem awarii sprzętu lub niezamierzonego problemu z EMF. W ostatnich latach naukowcy opracowali coraz bardziej praktyczne ataki kanału bocznego oparte na fizyce, wykorzystujące kontrolowane, szybkie przerzucanie bitów w obszarach pamięci RAM dostępnych dla jednej aplikacji, aby wywnioskować lub zmodyfikować wartości danych w sąsiednich obszarach pamięci RAM, których nie powinni być w stanie .

Chociaż pamięć ECC RAM nie może złagodzić ataków typu RAMBleed, które polegają na dedukcji wartości sąsiedniej pamięci, ogólnie może powstrzymać ataki Rowhammera – w których gwałtowne przerzucanie bitów w jednym obszarze pamięci RAM powoduje zmianę bitów w sąsiednim obszarze.

Nawet jeśli ECC nie może aktywnie zapobiec wpływowi ataku Rowhammera na system – na przykład, gdy przerzuca wiele bitów w jednym słowie – może przynajmniej ostrzec system o problemie i W większości przypadków należy zapobiec wykonaniu przez atak Rowhammera czegokolwiek innego niż spowodowanie przestojów (większość systemów ECC jest skonfigurowanych tak, aby zatrzymać całą maszynę w przypadku wykrycia niemożliwego do naprawienia błędu).

Torvalds obwinia Intel.

A producenci pamięci c laim to z powodu ekonomii i niższej władzy. I kłamią dranie – jeszcze raz wskażę na to, jak te problemy istniały już od kilku pokoleń, ale ci skurwiele szczęśliwie sprzedawali zepsuty sprzęt konsumentom i twierdzili, że był to „atak”, kiedy zawsze był „idziemy na skróty”.

Ile razy zdarzyło się, że uderzenie młotkiem w stylu bit-flip zdarzyło się po prostu przez czysty pech w przypadku rzeczywistych obciążeń bez ataku? Nigdy się nie dowiemy. Ponieważ Intel naciskał dla konsumentów.

Torvalds przyjmuje odważne stanowisko, że brak pamięci RAM ECC w technologii konsumenckiej jest winą Intela ze względu na politykę firmy dotyczącą sztucznych segmentacja rynku. Intel ma żywotny interes w popychaniu bardziej zagospodarowanych firm w kierunku droższych – i dochodowych – procesorów serwerowych, zamiast pozwalać tym podmiotom efektywnie korzystać z koniecznie niższych marż części konsumenckich.

Usuwanie wsparcia dla ECC RAM z procesorów, które nie są skierowane bezpośrednio do świata serwerów, jest jednym ze sposobów, w jaki Intel je zachował rynki silnie podzielone na segmenty. Argumentem Torvaldsa jest to, że odmowa obsługi przez firmę Intel obsługi pamięci RAM ECC w częściach przeznaczonych dla konsumentów – wraz z faktycznym niemal monopolem w tej przestrzeni – jest prawdziwym powodem, dla którego ECC jest prawie niedostępne poza przestrzenią serwera.

Reklama

Zwykły spór o to, dlaczego ECC nie jest obecny w technologii konsumenckiej, obraca się wokół kosztów, ale podejrzewamy, że Torvalds ma do tego prawo. Pomimo tego, że pamięć RAM z ECC jest zasadniczo trudną do znalezienia częścią specjalną, zwykle kosztuje tylko około 20 procent więcej na DIMM niż bez ECC w sprzedaży detalicznej. Prawdziwym problemem jest to, że bez płyt głównych i procesorów, które ją obsługują, nie da rady jesteś dobry.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *