
Контроль четности и коды коррекции ошибок (ecc)
Ошибки при хранении информации в памяти неизбежны. Они обычно классифицируются как отказы и нерегулярные ошибки (сбои). Если нормально функционирующая микросхема вследствие, например, физического повреждения начинает работать неправильно, то все происходящее и называется постоянным отказом. Чтобы устранить этот тип отказа, обычно требуется заменить некоторую часть аппаратных средств памяти, например неисправную микросхему SIMM или DIMM.
Другой, более коварный тип отказа нерегулярная ошибка (сбой). Это непостоянный отказ, который не происходит при повторении условий функционирования или через регулярные интервалы.
Приблизительно 20 лет назад сотрудники Intel установили, что причиной сбоев являются альфа-частицы. Поскольку альфа-частицы не могут проникнуть даже через тонкий лист бумаги, выяснилось, что их источником служит вещество, используемое в полупроводниках. При исследовании были обнаружены частицы тория и урана в пластмассовых и керамических корпусах микросхем, применявшихся в те годы. Изменив технологический процесс, производители памяти избавились от этих примесей.
В настоящее время производители памяти почти полностью устранили источники альфа-частиц. И многие стали думать, что проверка четности не нужна вовсе. Например, сбои в памяти емкостью 16 Мбайт из-за альфа-частиц случаются в среднем только один раз за 16 лет! Однако сбои памяти происходят значительно чаще.
Сегодня самая главная причина нерегулярных ошибок космические лучи. Поскольку они имеют очень большую проникающую способность, от них практически нельзя защититься с помощью экранирования.
К сожалению, производители персональных компьютеров не признали это причиной погрешностей памяти; случайную природу сбоя намного легче оправдать разрядом электростатического электричества, большими выбросами мощности или неустойчивой работой программного обеспечения (например, использованием новой версии операционной системы или большой прикладной программы).
Хотя космические лучи и радиация являются причиной большинства программных ошибок памяти, существуют и другие факторы.
Скачки в энергопотреблении или шум на линии. Причиной может быть неисправный блок питания или настенная розетка.
Использование неверного типа или параметра быстродействия памяти. Тип памяти должен поддерживаться конкретным набором микросхем и обладать определенной этим набором скоростью доступа.
Радиочастотная интерференция. Связана с расположением радиопередатчиков рядом с компьютером, что иногда приводит к генерированию паразитных электрических сигналов в монтажных соединениях и схемах компьютера. Беспроводные сети, мыши и клавиатуры увеличивают риск появления радиочастотной интерференции.
Статические разряды. Вызывают моментальные скачки в энергоснабжении, что может повлиять на целостность данных.
Ошибки синхронизации. Не поступившие своевременно данные могут стать причиной появления программных ошибок. Зачастую причина заключается в неверных параметрах BIOS, оперативной памяти, быстродействие которой ниже, чем требуется системой, "разогнанных" процессорах и прочих ситемных компонентах.
Большинство системных проблем не приводят к прекращению работы микросхем памяти, однако могут повлиять на хранимые данные.
Игнорирование сбоев, конечно, не лучший способ борьбы с ними. К сожалению, именно этот способ сегодня выбрали многие производители компьютеров. Лучше было бы увеличить отказоустойчивость систем. Для этого необходимы механизмы обнаружения и, возможно, исправления ошибок в памяти персонального компьютера. В основном для повышения отказоустойчивости в современных компьютерах применяются следующие методы:
контроль четности;
коды коррекции ошибок (ECC).