poniedziałek,
Pamięć ECC
Pamięć RAM (random-access memory) jest podstawowym rodzajem pamięci komputerowej, jej komórki mogą być wielokrotnie odczytywane i zapisywane. Jest to pamięć ulotna, dane znikają po wyłączeniu zasilania. W pamięci RAM przechowywane są dane aktualnie uruchomionych programów, w tym także systemu operacyjnego. Bezbłędne działanie RAM ma kluczowe znaczenie dla stabilności systemu i poprawności obliczeń. Błędy możemy podzielić na dwa rodzaje, fizyczne oraz logiczne. Uszkodzenie fizyczne wymaga wymiany modułu na nowy, błędy logiczne mogą wynikać z różnych innych powodów.
Pamięć ECC (Error Checking and Correction, Error Correction Code) to pamięć RAM, która stosuje system kodowania korekcyjnego. Dzięki rozszerzonej szynie danych obok właściwych danych, przesyłane są nadmiarowe dane kontrolne, pozwalające na korekcję przekłamań jednobitowych (single-error-correcting) w czasie rzeczywistym oraz na wykrycie przekłamania dwóch bitów. W przypadku standardowej pamięci RAM (nazywanej non-ECC) i błędu logicznego, komputer otrzyma błędny bit danych i program, a nawet system, straci stabilność. Pamięć ECC stosowana jest w komputerach, których praca musi być niezawodna, np. w serwerach.
Łatwo się domyślić, że pamięć ECC jest rozwiązaniem droższym niż standardowe. Stosowanie korekcji błędów ECC wymaga nie tylko specjalnych modułów pamięci, ale także płyty głównej, BIOSU i procesora wspierających tę technologię. W dłuższej perspektywie czasowej przy zastosowaniach profesjonalnych inwestycja powinna zwrócić się z nawiązką. Korekcja błędów ECC wiąże się z pewnym narzutem czasowym, jednak we współczesnych komputerach kontroler pamięci RAM jest zintegrowany z procesorem i testy ECC nie wpływają odczuwalnie na wydajność. Korekcja pamięci ECC najczęściej działa na podstawie kodu Hamminga. Richard Hamming był pracownikiem Bell Labs, zirytowany błędami występującymi podczas przetwarzania kart perforowanych, opracował własne rozwiązanie tego problemu, które opublikował w 1950 roku.
Kodowanie korekcyjne (ECC – error correction coding) jest stosowane w wielu przypadkach transmitowanych cyfrowo informacji. Dotyczy to m.in. takich technologii jak CD, DVD, Blu-ray, pamięci Flash, macierze RAID, telewizja cyfrowa, sieci komputerowe.