Parzystość pamięci RAM - RAM parity

Kontrola parzystości pamięci RAM polega na przechowywaniu nadmiarowego bitu parzystości reprezentującego parzystość (nieparzystą lub parzystą) niewielkiej ilości danych komputerowych (zwykle jednego bajtu) przechowywanych w pamięci o dostępie swobodnym , a następnie porównywanie przechowywanej i obliczonej parzystości z wykryć, czy wystąpił błąd danych .

Bit parzystości był pierwotnie przechowywany w dodatkowych pojedynczych układach pamięci; wraz z wprowadzeniem wtykowych modułów DIMM, SIMM itp. stały się one dostępne w wersjach bez parzystości i parzystości (z dodatkowym bitem na bajt , przechowującym 9 bitów na każde 8 bitów rzeczywistych danych).

Historia

30-pinowe moduły pamięci SIMM z 9 jednobitowymi układami pamięci. Dziewiąty chip służy do przechowywania parzystości.

Wczesne komputery czasami wymagały użycia pamięci RAM z kontrolą parzystości, a sprawdzania parzystości nie można było wyłączyć. Błąd parzystości zazwyczaj powodował zatrzymanie maszyny z utratą niezapisanych danych; jest to zwykle lepsza opcja niż zapisywanie uszkodzonych danych. Pamięć RAM z logiczną parzystością , znana również jako fałszywa pamięć RAM z kontrolą parzystości, to pamięć RAM bez kontroli parzystości, która może być używana w komputerach wymagających pamięci RAM z kontrolą parzystości. Logiczna pamięć RAM z parzystością ponownie oblicza zawsze poprawny bit parzystości za każdym razem, gdy bajt jest odczytywany z pamięci, zamiast przechowywać bit parzystości podczas zapisu do pamięci; obliczony bit parzystości, który nie ujawni, czy dane zostały uszkodzone (stąd nazwa „fałszywa parzystość”), jest prezentowany w logice sprawdzania parzystości. Jest to sposób na użycie tańszej 8-bitowej pamięci RAM w systemie zaprojektowanym do używania tylko 9-bitowej pamięci RAM z parzystością.

Błędy pamięci

W latach 70. i 80. niezawodność pamięci RAM często nie była idealna; w szczególności 4116 DRAM, które były standardem branżowym od 1975 do 1983 roku, miały znaczny wskaźnik awaryjności, ponieważ wykorzystywały potrójne napięcia (-5, +5 i +12), co skutkowało wysokimi temperaturami pracy. W połowie lat 80. ustąpiły one miejsca jednonapięciowym pamięciom DRAM, takim jak 4164 i 41256, co spowodowało poprawę niezawodności. Jednak pamięć RAM nie osiągnęła nowoczesnych standardów niezawodności aż do lat 90. XX wieku. Od tego czasu błędy stały się mniej widoczne, ponieważ prosta pamięć RAM z kontrolą parzystości przestała być używana; albo są niewidoczne, ponieważ nie są wykrywane, albo są korygowane niewidocznie za pomocą pamięci ECC RAM. Uważa się, że współczesna pamięć RAM, z dużym uzasadnieniem, jest niezawodna, a pamięć RAM do wykrywania błędów w dużej mierze przestała być używana w aplikacjach niekrytycznych. W połowie lat 90. większość pamięci DRAM zrezygnowała ze sprawdzania parzystości, ponieważ producenci byli pewni, że nie jest to już potrzebne. Niektóre maszyny obsługujące parzystość lub ECC umożliwiają włączanie lub wyłączanie sprawdzania w BIOS - ie , co pozwala na użycie tańszej pamięci RAM bez kontroli parzystości. Jeśli używana jest pamięć parzystości, chipset zwykle używa jej do implementacji korekcji błędów, zamiast zatrzymywać maszynę z powodu jednobitowego błędu parzystości.

Jednak, jak omówiono w artykule poświęconym pamięci ECC , błędy, choć nie są zdarzeniami codziennymi, nie są rzadkością. Nawet przy braku wad produkcyjnych, naturalnie występujące promieniowanie powoduje przypadkowe błędy; testy na wielu serwerach Google wykazały, że błędy pamięci nie są rzadkimi zdarzeniami, a częstość występowania błędów pamięci i zakres wskaźników błędów w różnych modułach DIMM był znacznie wyższy niż wcześniej zgłoszono.

Korekcja błędów

Proste sprawdzanie parzystości typu „ go/no go” wymaga, aby pamięć zawierała dodatkowe, nadmiarowe bity poza tymi, które są potrzebne do przechowywania danych; ale jeśli dostępne są dodatkowe bity, można je wykorzystać do korygowania, a także wykrywania błędów. Wcześniejsze pamięci używane na przykład w IBM PC/AT ( pamięć FPM i EDO ) były dostępne w wersjach obsługujących brak sprawdzania lub sprawdzanie parzystości (we wcześniejszych komputerach, które używały indywidualnych układów RAM zamiast modułów DIMM lub SIMM , dodatkowe układy były używane do przechowywania bitów parzystości); jeśli komputer wykryje błąd parzystości , wyświetli odpowiedni komunikat i zatrzyma się. W SDRAM i DDR moduły, które zastąpiły wcześniejsze typy są zazwyczaj dostępne albo bez sprawdzania błędów ECC (lub z pełną korekcją, nie tylko parzystości).

Przykład błędu jednobitowego, który zostałby zignorowany przez system bez sprawdzania błędów, zatrzymałby maszynę z kontrolą parzystości lub zostałby niewidocznie poprawiony przez ECC: pojedynczy bit jest zablokowany na 1 z powodu wadliwego układu, lub zmienia się na 1 z powodu tła lub promieniowania kosmicznego; załadowany jest arkusz kalkulacyjny przechowujący liczby w formacie ASCII, a liczba „8” jest przechowywana w bajcie, który zawiera zablokowany bit jako jego ósmy bit; następnie wprowadzana jest kolejna zmiana w arkuszu kalkulacyjnym i jest ona przechowywana. Jednak „8” (00111000 binarne) zmieniło się w „9” (00111001).

Jeżeli przechowywana parzystość różni się od parzystości obliczonej na podstawie przechowywanych danych, co najmniej jeden bit musiał zostać zmieniony z powodu uszkodzenia danych. Niewykryte błędy pamięci mogą mieć skutki od niewykrywalnych i bez konsekwencji do trwałego uszkodzenia przechowywanych danych lub awarii komputera. W przypadku komputera domowego, na którym integralność danych jest często postrzegana jako mało istotna — z pewnością dotyczy to na przykład gier i przeglądania stron internetowych, a mniej w przypadku bankowości internetowej i finansów domowych — pamięć bez parzystości jest przystępną cenowo opcją. Jeśli jednak wymagana jest integralność danych, pamięć parzystości zatrzyma komputer i uniemożliwi uszkodzonym danym wpływanie na wyniki lub przechowywane dane, mimo utraty pośrednich niezapisanych danych i uniemożliwienia użycia do czasu wymiany wadliwej pamięci RAM. Kosztem pewnych kosztów obliczeniowych, które mają znikomy wpływ na nowoczesne, szybkie komputery, wykryte błędy można naprawić — ma to coraz większe znaczenie w przypadku maszyn sieciowych obsługujących wielu użytkowników.

RAM typu ECC

Pamięć RAM z ECC lub kodem korekcji błędów może wykrywać i korygować błędy . Podobnie jak w przypadku pamięci RAM z kontrolą parzystości, dodatkowe informacje muszą być przechowywane i należy wykonać więcej przetwarzania, co powoduje, że pamięć RAM ECC jest droższa i nieco wolniejsza niż pamięć RAM bez kontroli parzystości i z kontrolą parzystości. Ten typ pamięci ECC jest szczególnie przydatny w przypadku każdej aplikacji, w której problemem jest czas pracy bez przestojów: uszkodzone bity w słowie pamięci są wykrywane i korygowane w locie bez wpływu na aplikację. Wystąpienie błędu jest zwykle rejestrowane przez system operacyjny do analizy przez zasoby techniczne. W przypadku, gdy błąd jest trwały, można zaplanować przestój serwera w celu wymiany uszkodzonej jednostki pamięci. Ten mechanizm wykrywania i korekcji jest znany jako EEC lub Extended Error Correction .

Zobacz też

Bibliografia