Что такое память ECC?

click fraud protection

Некоторая RAM или память с произвольным доступом объявляются памятью ECC. ECC означает код исправления ошибок и представляет собой процесс выявления и исправления ошибок в памяти. Ошибки в ОЗУ могут вызвать повреждение или изменение данных, что может привести к сбоям устройства и даже уязвимостям безопасности. ОЗУ ECC обычно несовместимо с аппаратным обеспечением ПК потребительского уровня.

Что такое ошибки памяти?

Ошибки памяти - это проблема, при которой значение, хранящееся в памяти, изменяется. Данные в ОЗУ хранятся в двоичном формате со значениями 1 или 0. Если значение 1 переключается на 0 или наоборот, в процессе, называемом «переворотом битов», данные, которые хранятся в ОЗУ, изменяются.

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

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

Эти вторичные нейтронные взаимодействия считаются основным источником ошибок переключения битов. Космические лучи чаще встречаются на больших высотах с увеличением в 3,5 раза на высоте 1,5 км над уровнем моря и в 300 раз на высоте полета авиалайнеров. Этот повышенный риск на высоте требует дополнительных мер надежности.

Насколько распространены ошибки памяти?

Большинство людей не видят, как их компьютеры выходят из строя каждый день, поэтому можно легко подумать, что это в первую очередь теоретический риск. Исследования гипермасштабируемых центров обработки данных использовались для анализа частоты инцидентов с переворотом битов. Исследования, проведенные Google в ее центрах обработки данных, показали, что частота ошибок составляет примерно 1 однобитную ошибку на гигабайт ОЗУ каждые 1,8 часа.

Миссия НАСА "Кассини-Гюйгенс", которая была запущена в 1997 году для полета к Сатурну, была оснащена двумя идентичными бортовыми компьютерами, каждый с 2,5 Гб оперативной памяти. В течение первых двух с половиной лет своего путешествия космический корабль наблюдал 280 однобитовых ошибок в день. За один день, когда «Кассини-Гюйгенс» находился на пути солнечной вспышки, наблюдалось четырехкратное увеличение были обнаружены ошибки, что дало дополнительные доказательства того, что Солнце является причиной большинства переворотов битов. вопросы.

Были опасения, что продолжающееся увеличение плотности модулей ОЗУ приведет к тому, что более поздние версии ОЗУ будут все более и более уязвимыми для переворотов битов. Более поздние исследования показали, что на самом деле все обстоит наоборот, поскольку ошибки уменьшались по мере уменьшения геометрии процесса.

Как память ECC защищает от ошибок?

В памяти ECC используются коды исправления ошибок, такие как коды Хэмминга, для исправления однобитовых ошибок в ОЗУ. Двойные битовые ошибки могут быть обнаружены, но не исправлены. Коды с исправлением ошибок Хэмминга работают с использованием массива битов четности. Вместе эти биты четности могут использоваться для обнаружения каких-либо изменений битов данных. Если определяется, что бит перевернулся, он автоматически возвращается обратно.

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

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

Процесс обнаружения и исправления ошибок выполняется контроллером памяти на плате RAM.

Доступность для потребителей и поддержка

Большинство компьютерного оборудования потребительского уровня не поддерживает память ECC. Частично это является методом искусственного отличия серверного оборудования от потребительского оборудования. ECC RAM, однако, стоит дороже и работает немного медленнее. Кроме того, дополнительная стабильность, которую он может обеспечить домашним потребителям, минимальна, поскольку ошибки переключения битов не являются основной причиной сбоев системы.

Ни один из процессоров Intel для потребителей и энтузиастов не поддерживает память ECC, только ее серверные процессоры, такие как процессоры серии Xeon. Процессоры AMD потребительского уровня не поддерживают ECC, однако их рабочие станции и процессоры серверного уровня, Threadripper и EPYC соответственно, поддерживают память ECC.