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.
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.
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.