Co to jest pamięć EOS?

Pamięć EOS (ang. Error Correcting code-On-Single in-line memory module memory) to rodzaj modułu pamięci o dostępie swobodnym (RAM), który zawiera wbudowane urządzenie do sprawdzania błędów. Przypomina to trochę inny maleńki procesor umieszczony na samych chipach RAM, którego jedynym obowiązkiem jest zapewnienie integralności danych przesyłanych do iz pamięci RAM komputera. Pamięć EOS działa, obliczając sumę kontrolną dla każdego bitu danych w pamięci. Porównanie znanej prawidłowej sumy kontrolnej z sumą kontrolną, gdy dane opuszczają pamięć EOS, pozwala modułom pamięci dowiedzieć się, czy dane zostały uszkodzone.

Kluczowym punktem zrozumienia działania pamięci EOS jest suma kontrolna. Suma kontrolna jest albo siedmiobitową — dla 32-bitowych ścieżek danych — albo ośmiobitową — dla 64-bitowych ścieżek danych — sekwencją walidacji, generowaną przez pamięć EOS, gdy dane są po raz pierwszy odbierane w pamięci. Jest generowany na podstawie sekwencji binarnej w bajtach danych, tworząc unikalną sekwencję znaków reprezentującą tę konkretną część danych.

Dopóki dane znajdują się w pamięci EOS, obok niej przechowywana jest wartość sumy kontrolnej. Pamięć EOS przechowuje je tam, dopóki dane nie zostaną wywołane przez program lub system operacyjny. W tym momencie ponownie generuje sumę kontrolną na podstawie przechowywanych informacji, porównując ją ze znaną prawidłową sumą kontrolną. Jeśli te dwie wartości są zgodne, moduł pamięci wie, że dane nie zostały uszkodzone podczas przechowywania. Ale jeśli nie, moduł pamięci wie, że coś się stało z danymi.

Jeśli dane w module pamięci zostały uszkodzone — innymi słowy, jeśli sumy kontrolne nie są już zgodne — moduł pamięci może spróbować samodzielnie poprawić dane. Pamięć EOS jest w stanie samodzielnie korygować błędy nie większe niż jeden bit na słowo. Chociaż może wykryć błędy większe niż pojedynczy bit, nie może ich naprawić samodzielnie; w takim przypadku zazwyczaj generowany jest komunikat o błędzie, stwierdzający, że dane są uszkodzone i ostrzegający użytkownika komputera o możliwym problemie ze sprzętem lub oprogramowaniem w systemie.

Główną wadą korzystania z tego typu pamięci jest to, że przechowywanie wartości sumy kontrolnej wymaga nieco dodatkowego narzutu w module pamięci. Oznacza to, że podczas przechowywania na przykład jednego megabajta danych w pamięci RAM komputer faktycznie przechowuje jeden megabajt plus wartość sumy kontrolnej. Chociaż w większości przypadków ma to minimalny wpływ, oznacza to, że z każdym nowym bitem danych – i każdą nową zapisaną sumą kontrolną – ilość dostępnej pamięci RAM jest powoli kanibalizowana przez mechanizm sprawdzania błędów.