Полное руководство по Citrix MetaFrame XP

         

Надежность памяти: понимание проверки и исправления ошибок


Скорость - не единственное важное соображение при выборе памяти. Вы хотите, чтобы ваша память была точной, причем больше, чем вы хотите, чтобы она была быстрой. Почему она может быть неточной? Вспомните, что DRAM/SDRAM должны непрерывно освежать хранимые в себе данные каждые 4 ms. Данные хранятся в виде электрических зарядов, которые принимают значения либо 1 (есть) или 0 (нет). 1 регистрируется как электрический импульс, скажем, 5 вольт. Просто, правда? Если напряжение 5V, то это 1, а если 0V - то 0. Неприятность состоит в том, что напряжение не работает по принципу "все или ничего", как обычный выключатель лампочки, имеющий состояние вкл./выкл. Скорее, оно похоже на лампочку с регулятором освещенности, который имеет диапазон между "полный накал" и "выкл.". Если вы покрутите выключатель в сторону ослабления света, то вскоре затруднитесь сказать - есть свет или нет. Если датчик, читающий память, обнаруживает напряжение 4.9V, он предполагет, что это 1. Но если датчик обнаруживает более низкое напряжение, скажем, 1V, то даже если бит действительно должен быть 1, датчик может прочитать его как 0.

В двоичной системе замена 0 на 1 имеет большое различие. В качестве простого примера подумайте об адресе IP. Как вы знаете, адреса IP для удобства записывают в точечной нотации, но компьютер считает адрес IP строкой из 1 и 0. Перевернутый бит в последней четверке может изменить адрес IP 12.45.93.121 на 12.45.93.105. Это приведет только к неверной маршрутизации, но подумайте о перевернутом бите в команде, приказывающей вашему компьютеру отформтировать жесткий диск.

Перевороты битов могут случаться из-за тяжелых ошибок (hard errors) или нерегулярных ошибок (soft errors). Тяжелые ошибки означают, что аппарные средства повреждены и требуют замены. Нерегулярные ошибки могут быть вызваны самыми разными причинами: незначительным повреждением, статическим электричеством, проблемой с таймингом, блуждающими полтергейстами в системной плате... Продолжите сами. Нерегулярная ошибка может повториться, а может и нет. Это означает, что вы можете легко принять нерегулярные ошибки за ошибки в программном обеспечении. Ошибки в программном обеспечении действительно вызывают проблемы, но очевидно, что ошибки в аппаратных средствах также могут их взывать.

Для избежания проблем такого рода, вы можете достать память с обнаружением или исправлением ошибок. Есть три основных класса памяти. Память без контроля четности имеет достаточный размер для хранения данных, но не более. (8 бит для 1 байта данных). Память с контролем четности добавляет дополнительный бит четности так, что хранение 1 байта данных занимает 9 бит. Когда DRAM посылает данные в шину памяти, бит четности действует как своего рода индикатор правильности. Проверка четности обнаруживают ошибку в одном бите, но не обрабатывает несколько бит и не исправляет саму ошибку в памяти.

Поэтому если вам необходимо не только обнаруживать, но и исправлять ошибки, есть другой вариант.

Улучшенный тип памяти с контролем четности под названием код исправления ошибок (ECC) может не только обнаруживать ошибки памяти, но и устранять их на компьютерах с набором микросхем, поддерживающим ECC (вам надо проверить, поддерживают ли ваши аппаратные средства ECC). ECC может обнаружить ошибки как в одном бите, так и в нескольких, и может исправить ошибки с одним битом. ECC дороже, чем память без контроля четности. Существуют особые модули памяти ECC, предназначенные специально для использования в режиме ECC, но самые современные системные платы, которые поддерживают ECC, будут поддерживать контроль четности и с обычными модулями памяти. Вы будете должны включить поддержку ECC в BIOS. Хотя ECC несколько замедляет скорость памяти, ее способность обрабатывать ошибки стоит того, чтобы использовать ее на серверах MetaFrame.



Содержание раздела