Вы ищете оперативную память, которая могла бы работать на высоких скоростях и быть совместимой с множеством платформ? Или, возможно, вам нужна более надёжная память, способная функционировать круглосуточно, семь дней в неделю, и обнаруживать больше ошибок, но в обмен на это приходится жертвовать скоростью?
Модули оперативной памяти являются неотъемлемой частью любой системы, но не все они одинаковы. Помимо ёмкости, частоты и задержки, модули различаются по наличию или отсутствию системы исправления ошибок (ECC).
Разница между ними заключается в том, что память с ECC защищает вашу систему от возможных сбоев, автоматически исправляя любые ошибки в данных. В свою очередь, память без ECC просто игнорирует такие ошибки.
Думайте о памяти без ECC как о памяти, ориентированной на скорость, а ECC – памяти, ориентированной на выносливость и надёжности.
Поскольку не все платформы поддерживают ECC-память, и не каждой системе она нужна, давайте обсудим, что такое ECC-память, как она работает и нужна ли она вам.
Что такое ECC-память
Чтобы понять, как работает память с коррекцией ошибок (ECC), сначала нужно понять, что такое однобитовая ошибка. Потому что это основная проблема, для решения которой была создан ECC.
Однобитовая ошибка – это когда один бит (двоичный 0 или 1) в данных в ОЗУ случайно изменяется на противоположное значение.
Такого рода ошибки незначительны, и компьютер может не распознать их автоматически, что может привести ко многим проблемам.
Вы можете думать об однобитовых ошибках как о метафорических сорняках на лужайке. Ваш газон – это оперативная память, а ECC-часть вашей памяти – это использование гербицида.
Память без ECC не избавит вас от «сорняков». ECC уничтожит все сорняки, но газон будет расти немного медленнее.
Однобитовые ошибки могут возникать из-за магнитных или электрических помех внутри компьютера, присутствующих в каждой системе в виде фонового излучения.
Перенапряжение, колебания температуры, удар по корпусу или даже чтение или запись данных не так, как предполагалось изначально, могут привести к однобитовой ошибке.
Память ECC позаботится об этих ошибках и исправит их до того, как они превратятся в большую проблему.
Память с ECC (Error Correction Code) во многом похожа на обычную память без ECC. Основное различие заключается в том, что память с ECC обычно имеет дополнительный объём памяти, предназначенный исключительно для обеспечения безошибочной работы основной памяти.
ECC представляет собой небольшой чип, расположенный на обычной планке оперативной памяти. Его задача — гарантировать, что каждый бит данных, который поступает и выводится, является именно тем, что он должен быть.
Этот чип работает следующим образом: он создаёт зашифрованный фрагмент кода из данных, которые записываются в основную память, и сохраняет этот код в дополнительном бите памяти. Когда требуется доступ к данным, хранящимся в основной памяти, он создаёт новый код и сравнивает его с ранее сгенерированным.
Если оба кода совпадают, и данные не были изменены, то доступ к данным разрешён. Однако, если новый код отличается от сохранённого, то чип пытается решить проблему, расшифровывая код и точно определяя, в чём заключается ошибка.
Если даже чип не может найти ошибку, то он, по крайней мере, гарантирует, что вы будете знать о проблеме, вместо того чтобы молча продолжать работать.
Это похоже на сравнение хэшей MD5 при загрузке программы, чтобы убедиться, что вы загружаете именно то, что вам действительно нужно, а не другой мошеннический секретный файл.
Вот почему ECC работает немного медленнее – потому что ему приходится создавать эти дополнительные коды.
Согласно исследованиям, вероятность возникновения такой ошибки составляет одна однобитовая ошибка каждые 14-40 часов на гигабит ОЗУ.
Необходимость исправления ошибок на серверах и рабочих станциях
В системе, используемой для повседневного просмотра и игр, исправление ошибок не является необходимостью. Однако, в мире серверов и профессиональных рабочих станций ставки выше.
Если вы ведёте бизнес, специализирующийся на финансах, однобитовая ошибка может привести к сбою сервера, который потенциально может стереть транзакции с вашего сервера.
Такая ошибка памяти также может привести к ошибке транскрипции данных, что может привести к неправильному размещению десятичного разделителя или изменению числа.
Очевидно, что это наносит ущерб честности и надёжности бизнеса. Если бы вы пошли покупать кошке новую игрушку и в итоге заплатили 1000 рублей вместо 100, это было бы довольно трагично.
Если вы посетили своего врача, и счет составил 56 987 рублей вместо 5945 рублей, вы только что стали жертвой компьютерной ошибки, связанной с ECC. И вы, скорее всего, больше никогда не воспользуетесь их услугами.
Потеря времени – ещё одна проблема, которую может предотвратить память ECC. Если вы визуализируете сложные изображения в высоком разрешении или работаете с моделью глубокого обучения, необходимость начинать заново после нескольких недель обработки из-за некоторых ошибок памяти – это огромная трата времени и денег для вашего бизнеса.
Память ECC необходима и в медицинской промышленности. При уходе за пациентом точность записей имеет решающее значение, и ошибка в одном бите может привести к неправильному диагнозу, что может привести к летальному исходу.
Выбор памяти может создать или уничтожить репутацию бизнеса.
Без памяти ECC не только существует вероятность подобных ошибок, но вы также не узнаете, что они произошли, пока кто-нибудь не просмотрит данные и не найдёт ошибку. А иногда это может быть слишком поздно.
Какие платформы поддерживают память ECC
Что касается серверов, то линейки процессоров Intel Xeon и линейки серверов AMD Epyc поддерживают память ECC. Обратите внимание, что для использования памяти ECC и процессор, и используемая материнская плата должны поддерживать память ECC.
Помните аналогию с газоном и гербицидом? Думайте о процессоре и материнской плате как об инструментах, которые вы используете для эффективной работы с ECC. Вам нужны подходящие инструменты для распространения гербицидов на газоне.
На основных платформах, используемых сегодня, большинство процессоров Intel (даже некоторые бюджетные модели Celeron) будут поддерживать память ECC, если вы используете материнскую плату, совместимую с такой памятью.
С AMD все процессоры Ryzen поддерживают память ECC с совместимой материнской платой с набором микросхем X570, тогда как набор микросхем B550 не поддерживает память ECC с процессорами Ryzen 2000. Процессоры Ryzen со встроенной видеокартой или ускоренным процессором (APU), серии 3000 G и серии 4000 G потребуют от вас использования процессора PRO для поддержки ECC.
Недостатки использования памяти ECC
Наиболее распространенная проблема с памятью ECC – совместимость. Несмотря на то, что большинство современных платформ поддерживают её, вы должны убедиться, что конкретная комбинация процессора и материнской платы работает с памятью ECC.
Это менее проблематично в мире серверов, где обычно используется память ECC. Серверное оборудование обычно поддерживает ECC по умолчанию.
Ценник тоже отличается. Модули памяти с ECC дороже, чем модули без ECC из-за дополнительных функций. В зависимости от емкости, которую вы покупаете, разница в цене составляет около 10-20%.
Также наблюдается небольшой спад производительности из-за дополнительного времени, которое требуется памяти ECC для проверки наличия ошибок. По словам Corsair, можно ожидать падения около 2%.
Подводя итоги: нужна ли вам память ECC
Если вы создаёте профессиональную рабочую станцию или сервер, который должен работать круглосуточно и без выходных, память ECC является обязательным атрибутом.
Отказаться от ECC в этом случае было бы равносильно попытке использовать быстроногого скакуна вместо выносливого рабочего коня.
Разница в цене и снижение производительности в данном случае оправданы, поскольку вы не будете переживать о возможности однобитовых ошибок, которые могут привести к значительным проблемам.
Вы ведь не станете перепроверять каждую квитанцию, чтобы убедиться в её достоверности, не так ли? Проявите такую же заботу о своих клиентах и заказчиках.
Однако, если всё, что вы делаете, это играете в игры и используете свой компьютер для других некритичных задач, то, скорее всего, вам не понадобится ECC. В таком случае для вас важнее сохранить эти 2% производительности.