Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!
Подтверждая отправку данной формы, Вы даете Согласие на обработку персональных данных в соответствии с Политикой обработки персональных данных

Модули памяти. Влияние космических лучей.

Модули памяти. Влияние космических лучей.

Статистическая вероятность возникновения ошибок памяти в современных настольных компьютерах составляет примерно одну ошибку в несколько месяцев. При этом количество ошибок зависит от объема и типа используемой памяти. Подобный уровень ошибок может быть приемлемым для обычных компьютеров, не используемых для работы с важными приложениями. Ошибки памяти вполне могут стать причиной серьезных проблем, например, представьте себе указание неверного значения суммы в банковском счете. Ошибки в работе оперативной памяти серверных систем зачастую приводят к “зависанию” последних и отключению всех клиентских компьютеров, соединенных с серверами по локальной сети.

Ошибки при хранении информации в памяти неизбежны, они обычно классифицируются как отказы и нерегулярные ошибки (сбои). Если нормально функционирующая микросхема вследствие, например, физического повреждения начинает работать неправильно, то все происходящее и называется постоянным отказом. Чтобы устранить этот тип отказа, обычно требуется заменить некоторую часть аппаратных средств памяти, например неисправную микросхему памяти, или устранить обрыв соединения. Нерегулярная ошибка (или сбой) - так называют непостоянный отказ, который не происходит при повторении условий функционирования или через регулярные интервалы (причиной сбоев раньше были как правило альфа-частицы, а их источником служило вещество, используемое в полупроводниках и керамических корпусах микросхем, применявшихся ранее, но изменив технологический процесс, производители памяти избавились от этих примесей). В настоящее время производители памяти почти полностью устранили источники альфа-частиц, и сбои в памяти емкостью 16 Мбайт из-за альфа-частиц случаются в среднем только один раз за 18 лет.

Но по другим причинам сбои памяти происходят значительно чаще и самая главная причина сбоев это космические лучи. Они имеют очень большую проникающую способность, от них практически нельзя защититься с помощью экранирования. В среднестатистическом условном компьютере появление программной ошибки по этой причине в памяти бывает примерно раз в полугодие. Но в серверных системах или мощных рабочих станциях с большим объемом установленной оперативной памяти подобная ошибка в работе памяти возникает почти каждый месяц. Защита от влияния космических лучей возможна (при работе оперативной памяти в убежище на глубине более 16 метров каменной породы, программные ошибки в работе памяти вообще не были зафиксированы). Исследования вредного влияния космических лучей показали, что доля таких программных ошибок в 30 раз больше, чем аппаратных (и это неудивительно, учитывая вредное влияние космических лучей). Количество ошибок зависит от числа установленных модулей памяти и их объема. Программные ошибки могут случаться и раз в месяц, и несколько раз в неделю, и даже чаще.

Хотя космические лучи и радиация являются причиной большинства программных ошибок памяти, существуют и другие факторы.

Скачки в энергопотреблении или шум на линии. Причиной может быть неисправный блок питания или настенная розетка.

Использование неверного типа или параметра быстродействия памяти. Тип памяти должен поддерживаться конкретным набором микросхем и обладать определенной этим набором скоростью доступа.

Электромагнитные помехи. Возникают при расположении радиопередатчиков рядом с компьютером, что иногда приводит к генерированию паразитных электрических сигналов в монтажных соединениях и схемах компьютера.

Беспроводные сети, мыши и клавиатуры увеличивают риск появления электромагнитных помех.

Статические разряды. Вызывают моментальные скачки в энергоснабжении, что может повлиять на целостность данных.

Ошибки синхронизации. Не поступившие своевременно данные могут стать причиной появления программных ошибок. Зачастую причина заключается в неверных параметрах BIOS, оперативной памяти, быстродействие которой ниже, чем требуется системой, на «разогнанных» процессорах и прочих системных компонентах.

Большинство описанных проблем не приводят к прекращению работы микросхем памяти (хотя некачественное энергоснабжение или статическое электричество могут физически повредить микросхемы), однако могут повлиять на хранимые данные.

В основном для повышения отказоустойчивости в обычных современных компьютерах применяются следующие методы:

- контроль четности;

- коды коррекции ошибок (ECC).

Системы без контроля четности вообще не обеспечивают отказоустойчивости данных. Единственная причина, по которой они используются, — их минимальная базовая стоимость. При этом, в отличие от других технологий (ECC и контроль четности), не требуется дополнительная оперативная память. Отследить причину возникновения проблем в компьютерах, не поддерживающих контроль четности или код ECC, крайне сложно. Последние технологии по крайней мере однозначно укажут на оперативную память как на источник проблемы, тем самым экономя время и усилия системных администраторов и ремонтного персонала.

Технология контроля четности не позволяет исправлять системные ошибки, однако дает возможность их обнаружить. Контроль четности оберегает от последствий проведения неверных вычислений на базе некорректных данных, контроль четности точно указывает на источник возникновения ошибок, помогая разобраться с проблемой и улучшая степень эксплутационной надежности компьютера.

Компания Intel и другие производители наборов микросхем системной логики внедрили поддержку контроля четности и кода ECC в большинстве своих продуктов (особенно в наборах микросхем, ориентированных на рынок высокопроизводительных серверов). В то же время наборы микросхем низшей ценовой категории, как правило, не поддерживают эти технологии. Пользователям, требовательным к надежности выполняемых приложений, следует обращать особое внимание на поддержку контроля четности и ECC (а код ECC позволяет не только обнаруживать, но и автоматически корректировать ошибки памяти).

При обнаружении ошибки схема контроля четности на системной плате формирует немаскируемое прерывание (NMI), по которому основная работа прекращается и инициируется специальная процедура, записанная в BIOS. В результате ее выполнения экран очищается и в левом верхнем углу выводится сообщение об ошибке. Текст сообщения зависит от типа компьютера. В большинстве компьютеров в случае ошибки четности процессор не зависает и пользователю предоставляется возможность либо перезагрузить компьютер, либо продолжить работу как будто ничего не случилось.

Коды коррекции ошибок (ECC) позволяют не только обнаружить ошибку, но и исправить ее в одном разряде. Поэтому компьютер, в котором используются подобные коды, в случае ошибки в одном разряде может работать без прерывания, причем данные не будут искажены. Коды коррекции ошибок в большинстве ПК позволяют только обнаруживать, но не исправлять ошибки в двух разрядах. Но приблизительно 98% сбоев памяти вызвано именно ошибкой в одном разряде, т.е. она успешно исправляется с помощью данного типа кодов. В кодах коррекции ошибок этого типа для каждых 32 бит требуется дополнительно семь контрольных разрядов при 4-байтовой, и восемь — при 8-байтовой организации (64-разрядные процессоры Athlon/Pentium и др.). Реализация кода коррекции ошибок при 4-байтовой организации, очевидно, дороже реализации проверки нечетности или четности, но при 8-байтовой организации стоимость реализации кода коррекции ошибок не превышает стоимости реализации проверки четности.

Для использования кодов коррекции ошибок необходим контроллер памяти, вычисляющий контрольные разряды при операции записи в память. При чтении из памяти такой контроллер сравнивает прочитанные и вычисленные значения контрольных разрядов и при необходимости исправляет испорченный бит (или биты). Стоимость дополнительных логических схем для реализации кода коррекции ошибок в контроллере памяти не очень высока, но это может значительно снизить быстродействие памяти при операциях записи. Это происходит потому, что при операциях записи и чтения необходимо ждать, когда завершится вычисление контрольных разрядов. При записи части слова вначале следует прочитать полное слово, затем перезаписать изменяемые байты и только после этого — новые вычисленные контрольные разряды.

В большинстве случаев сбой памяти происходит в одном разряде, и потому такие ошибки успешно исправляются кодом коррекции ошибок, поэтому использование отказоустойчивой памяти обеспечивает высокую надежность компьютера. Память с кодом ECC предназначена для серверов, рабочих станций или приложений, для которых последствия потенциальных ошибок памяти крайне нежелательны. Если данные имеют особое значение и компьютеры применяются для решения важных задач, без памяти ECC не обойтись.

Обычные пользователи конечно имеют возможность выбора между системами без контроля четности, с контролем четности и с ECC, т.е. между желательным уровнем отказоустойчивости компьютера и степенью ценности используемых данных.

 


Лицензия