Введение
Проверка чётности оперативной памяти — это хранение дополнительного бита чётности, представляющего чётность (нечётную или чётную) небольшого объёма компьютерных данных (обычно одного байта), хранящихся в памяти с произвольным доступом, и последующее сравнение сохранённого и вычисленного битов чётности для обнаружения ошибки данных. Изначально биты чётности хранились в отдельных микросхемах памяти; с появлением модулей DIMM, SIMM и т. п. они стали доступны в исполнениях без чётности и с чётностью (с дополнительным битом на байт, хранящим 9 бит на каждые 8 бит полезных данных).
История
Ранние компьютеры иногда требовали использования оперативной памяти с контролем четности, и проверку четности нельзя было отключить. Ошибка четности обычно приводила к остановке работы компьютера с потерей несохраненных данных; это, как правило, предпочтительнее, чем сохранение поврежденных данных. Логическая оперативная память с контролем четности, также известная как псевдо-паритетная оперативная память, представляет собой непаритетную оперативную память, которую можно использовать в компьютерах, требующих паритетной оперативной памяти. Логическая оперативная память с контролем четности пересчитывает всегда корректный бит четности каждый раз при чтении байта из памяти, вместо того чтобы сохранять бит четности при записи в память; вычисленный бит четности, который не позволит обнаружить повреждение данных (отсюда и название "псевдо-паритет"), передается логике проверки четности. Это способ использования более дешевой 8-битной оперативной памяти в системе, рассчитанной на использование только 9-битной паритетной оперативной памяти.
Ошибки памяти
В 1970-х – 1980-х годах надежность оперативной памяти часто была далека от идеала; в частности, DRAM 4116, являвшиеся отраслевым стандартом с 1975 по 1983 год, имели значительный процент отказов из-за использования тройного напряжения (5, +5 и +12 В), что приводило к высоким рабочим температурам. К середине 1980-х годов их сменили однонапряжённые DRAM, такие как 4164 и 41256, что повысило надежность. Однако современные стандарты надежности оперативной памяти были достигнуты только в 1990-х годах. С тех пор ошибки стали менее заметными, поскольку простая оперативная память с контролем четности вышла из употребления; либо они остаются незамеченными, поскольку не обнаруживаются, либо невидимо корректируются с помощью ECC RAM. Современная оперативная память считается, и это вполне обоснованно, надежной, а память с обнаружением ошибок в значительной степени перестала использоваться в некритичных приложениях. К середине 1990-х годов большинство DRAM отказались от проверки четности, поскольку производители были уверены, что она больше не нужна. Некоторые системы, поддерживающие контроль четности или ECC, позволяют включать или отключать проверку в BIOS, что дает возможность использовать более дешевую память без контроля четности. Если используется память с контролем четности, чипсет обычно использует ее для коррекции ошибок, а не останавливает систему при ошибке четности в одном бите. Однако, как обсуждается в статье о памяти ECC, ошибки, хотя и не происходят ежедневно, не являются пренебрежимо редкими. Даже при отсутствии производственных дефектов, естественная радиация вызывает случайные ошибки; тесты на многочисленных серверах Google показали, что ошибки памяти не были редкостью, а частота ошибок памяти и диапазон частот ошибок в различных модулях DIMM оказались значительно выше, чем сообщалось ранее.
Исправление ошибок
Простая проверка чётности типа "годен/не годен" требует наличия в памяти дополнительных, избыточных битов, помимо тех, что необходимы для хранения данных; но если дополнительные биты доступны, их можно использовать не только для обнаружения, но и для исправления ошибок. Ранние типы памяти, используемые, например, в IBM PC/AT (FPM и EDO память), выпускались в версиях с поддержкой либо без проверки, либо с проверкой чётности (в более ранних компьютерах, использовавших отдельные микросхемы RAM вместо модулей DIMM или SIMM, дополнительные микросхемы использовались для хранения битов чётности); если компьютер обнаруживал ошибку чётности, он отображал соответствующее сообщение и прекращал работу. Модули SDRAM и DDR, пришедшие на смену более ранним типам, обычно доступны либо без проверки ошибок, либо с ECC (полной коррекцией, а не только проверкой чётности). В ответ на это модули SIMM с тремя микросхемами вместо девяти отдельных микросхем на бит стали популярными, поскольку считалось, что они не нарушают патентные права. Однако переход от SIMM с девятью микросхемами к SIMM с тремя микросхемами вызвал некоторые проблемы совместимости. Год спустя, в 1992 году, компания Wang также подала в суд на Mitsubishi, но в конечном итоге не выиграла, поскольку суды установили в 1997 году, что действует лицензионное соглашение. В конечном итоге, к концу 1990-х годов, DIMM вытеснили SIMM с рынка, и DIMM не были объектом судебных исков со стороны Wang.