Это один из введенных IBM стандартов, в соответствии с которым информация в банках памяти хранится фрагментами по 9 бит, причем восемь из них (составляющих один байт) предназначены собственно для данных, а девятый является битом четности. Использование девятого бита позволяет схемам управления памятью на аппаратном уровне контролировать целостность каждого байта данных. Если обнаруживается ошибка, работа компьютера останавливается, а на экран выводится сообщение о неисправности. Если вы работаете на компьютере под управлением Windows или OS/2, то при возникновении ошибки контроля четности сообщение, возможно, не появится, а просто произойдет блокировка системы. После перезагрузки система BIOS должна идентифицировать ошибку и выдать соответствующее сообщение.
Модули SIMM и DIMM поставляются как с поддержкой битов четности, так и без нее. Первые ПК использовали память с контролем четности для регулировки точности осуществляемых операций. Начиная с 1994 года на рынке ПК стала развиваться тревожная тенденция. Большинство компаний начали предлагать компьютеры с памятью без контроля четности и вообще без каких бы то ни было средств определения или исправления ошибок. Применение модулей SIMM без контроля четности сокращало стоимость памяти на 10–15%. В свою очередь, память с контролем четности обходилась дороже за счет применения дополнительных битов четности. Технология контроля четности не позволяет исправлять системные ошибки, однако предоставляет пользователю компьютера возможность их обнаружить, что имеет следующие преимущества:
Для реализации поддержки памяти с контролем четности или без него не требуется особых усилий. В частности, внедрить поддержку контроля четности для системной платы не составит труда. Основные затраты внедрения связаны со стоимостью самих модулей памяти с контролем четности. Если покупатели готовы пойти на дополнительные затраты для повышения надежности заказываемых систем, производители компьютеров могут предоставить им такую возможность.
К сожалению, даже некоторые крупные производители компьютерных систем перестали использовать модули памяти с контролем четности для снижения стоимости своей продукции, при этом особо не афишируя тот факт, так что в компьютерах низшей ценовой категории наличие памяти с контролем четности уже перестало быть стандартом. Эта тенденция наметилась в 1994 и 1995 годах и прослеживается до сих пор, причем довольно мало кто понимает возможные последствия. После того как крупные производители переключились на выпуск компьютеров с отсутствием контроля четности в памяти, остальные сборщики систем также были вынуждены пойти на этот шаг, чтобы выстоять в конкурентной борьбе.
Поскольку никому не было выгодно распространять эту информацию, довольно длительное время факт отсутствия контроля четности просто умалчивался. Если в заказе покупатель четко указывал на необходимость контроля четности в памяти, он получал такую систему, однако в стандартных конфигурациях данная память уже отсутствовала. Разумеется, некомпетентный пользователь чаще всего принимал решение о покупке на 10–15% более дешевой модели. Однако настоящей бомбой стал выпуск компанией Intel набора микросхем Triton 430FX для процессоров Pentium, в котором вообще отсутствовала поддержка проверки четности. К сожалению, этот набор микросхем стал довольно популярным, в результате чего подавляющее большинство материнских плат для процессора Pentium, выпущенных в 1995 году, не поддерживали проверку четности. Эта настораживающая тенденция сохранялась еще в течение нескольких лет. Проверку четности не поддерживали все наборы микросхем от Intel для Pentium, выпущенные после 430FX Triton, за исключением разве что 430 FX Triton II.
К счастью, с тех пор Intel и прочие производители наборов микросхем системной логики восстановили поддержку контроля четности и ECC в большинстве своих продуктов (особенно в наборах микросхем, ориентированных на рынок высокопроизводительных серверов). В то же время наборы микросхем низшей ценовой категории, как правило, не поддерживают эти технологии. Пользователям, требовательным к надежности выполняемых приложений, следует обращать особое внимание на поддержку контроля четности и ECC.
В следующем разделе рассматривается принцип выполнения контроля четности и ECC, который позволяет не только обнаруживать, но и автоматически корректировать ошибки памяти.