Ecc память что это
На сегодняшний день на просторах Рунета можно встретить открытые темы на форумах с вопросами – стоит ли брать рабочую станцию с ECC-памятью или можно обойтись обычной? В данных ветках можно прочесть множество противоречивых утверждений, и часть из них говорит о том, что коррекция ошибок сильно замедляет память, а следовательно и ЦП. Но мало кто это проверял на деле на современных процессорах.
реклама
Сегодня мы разберемся в этом вопросе и сравним производительность серверного процессора с обоими типами памяти. Но для начала небольшой экскурс.
Коррекция ошибок
Для чего необходима коррекция? И почему в работе памяти возникают ошибки? Перед ответом на эти вопросы следует разделить ошибки на два типа:
Причиной появления аппаратных ошибок является дефектная микросхема DRAM, а случайные ошибки возникают под воздействием излучения, альфа-частиц, элементарных частиц и прочего. Соответственно, первые в принципе неисправимы – если чип дефектный, то поможет только его замена; а вот вторые могут быть исправлены.
Почему же так необходима коррекция ошибок в рабочих станциях и серверах? Однобитовая ошибка в 64-битном слове меняет содержимое ячейки памяти, а в конечном итоге на жесткий диск может быть записано другое число, другие данные, при этом компьютер не зафиксирует эту подмену. А изменение бита в оперативной памяти может вызвать сбой программы, что для рабочей станции и сервера недопустимо.
Дешевая 3070 Gigabyte Gaming - успей пока не началосьДля обнаружения изменения битов памяти можно использовать метод подсчета контрольной суммы, но он позволяет лишь обнаруживать ошибки без их исправления.
В свое время было предложено много различных способов решения данной проблемы, но на сегодняшний день наибольшее распространение получил метод коррекции ошибок или ECC (Error-Correcting Code). Данный метод позволяет автоматически исправлять однобитовые ошибки в 64-битном слове – SEC (Single Error Correction) и детектировать двухбитовые – DED (Double Error Detection).
Физическая реализация ECC заключается в размещении дополнительной микросхемы памяти на модуле ОЗУ – соответственно, при одностороннем дизайне модуля памяти вместо восьми чипов располагается девять, а при двустороннем вместо шестнадцати – восемнадцать. Таким образом, ширина модуля становится не 64 бита, а 72 бита.
Метод коррекции ошибок работает следующим образом: при записи 64 бит данных в ячейку памяти происходит подсчет контрольной суммы, составляющей 8 бит. Когда процессор обращается к этим данным и производит считывание, проводится повторный подсчет контрольной суммы и сравнение с исходной. Если суммы не совпадают – произошла ошибка. Если она однобитовая, то неправильный бит исправляется автоматически, если двухбитовая – детектируется и сообщается ОС.
Финансовая сторона
реклама
Прежде чем приступить к тестированию, необходимо затронуть финансовый вопрос.
Стоимость обычного модуля памяти DDR3-1600 с напряжением 1.35 В и объемом 8 Гбайт составляет около 3600 рублей, а с коррекцией ошибок – 4800 рублей. На первый взгляд ECC-память выходит на 30-35% дороже, что, в целом, не позволяет их сравнивать в силу существенно большей стоимости последней. Но почему же тогда такой вопрос возникает при сборке рабочей станции? Все просто – необходимо смотреть на данный вопрос шире, а именно – смотреть на общую стоимость рабочей станции.
Ценник однопроцессорной станции на базе четырехъядерного восьмипоточного Xeon (настольные процессоры серий i5 и i7 не поддерживают ECC-память) с 32 Гбайтами памяти, материнской платы с чипсетом C222/С224/С226 (десктопные наборы логики Z87/Z97 и другие также не поддерживают память с коррекцией ошибок) будет превышать 70 000 рублей (при условии, что устанавливаются серверные SSD с повышенным ресурсом). А если включить в эту стоимость и дискретную видеокарту, и прочие сопутствующие компоненты, например, ИБП, то ценник из пятизначного превратится в шестиизначный, перевалив планку в 100 000 рублей.
Покупка 32 Гбайт памяти с коррекцией ошибок потребует дополнительных 4-6 тысяч рублей, что по отношению к общей стоимости рабочей станции не превышает 5%, то есть не является критичным. Также переход от десктопного к серверному железу предоставит и другие преимущества, например: интегрированные графические карты P4600 в процессорах Intel Xeon E3-1200 третьего поколения получили оптимизированные драйверы, которые должны повышать производительность в профессиональных приложениях, например, в CAD; поддержка технологии Intel VT-d, которая позволяет пробрасывать устройства в виртуальную среду, например, видеокарты; прочие серверные технологии – Intel AMT или IPMI, WatchDog и другие, которые также могут оказаться полезными.
Таким образом, хоть и сама ECC-память стоит заметно дороже обычной, в общей стоимости рабочей станции данная статья затрат является несущественной, и переплата не превышает 5%.
Тестовый стенд
Для данного обзора использовалась следующая конфигурация:
- Материнская плата: Supermicro X10SAE (Intel C226, LGA 1150);
- Процессор: Xeon E3-1245V3 (Turbo Boost – off, EIST – off, HT – on);
- Оперативная память:
- 2x Kingston DDR3-1600 ECC 8 Гбайт (KVR16LE11/8 CL11, 1.35 В);
- 2x Kingston DDR3-1600 8 Гбайт (KVR16LN11/8 CL11, 1.35 В);
Методика тестирования
В рамках тестирования были произведены замеры производительности как при одноканальном режиме работы ИКП, так и при двухканальном. Суммарный объем ОЗУ составил 8 (один модуль) и 16 Гбайт (два модуля) соответственно.
- 3DMark 2006 1.2;
- 7Zip 9.20;
- AIDA64 Extreme 5.20.3400;
- Cinebench R15;
- CrystalMark 2004R3;
- Fritz 4.20;
- LinX 0.6.5;
- wPrime 2.10.
Результаты тестирования
Тест памяти
Перед тем, как приступить к тестированию, проведем замер пропускной способности памяти и латентности.
реклама
При изучении результатов можно заключить, что производительность ECC- и non-ECC- памяти находится на одном и том же уровне в рамках погрешности.
Если в предыдущем тесте от замера к замеру выигрывал то один, то другой тип памяти, то при замере латентности ECC-память постоянно показывает большие задержки. Но разница несущественна – всего лишь 1 нс.
Таким образом, замер ПС и латентности памяти не показал особых различий между ECC- и non-ECC-памятью. Посмотрим, повторится ли это в последующих тестах.
3DMark
реклама
Тестовый пакет 3DMark содержит подтесты как для процессора, так и для графической карты. Здесь и кроется самое интересное – давно известно, что встроенному видеоядру не хватает существующей ПСП в 25.6 Гбайт/с, поэтому именно в графических подтестах можно выявить негативное влияние коррекции ошибок, если оно вообще есть,…
. но разницы нет – что ECC, что non-ECC. Ни процессор, ни интегрированное ядро никак не реагируют на замену обычной памяти на DDR с коррекцией ошибок – результаты одинаковы в рамках погрешности. Среднеарифметическая разница составила 0.02% в пользу ECC-памяти для одноканального режима и 1.6% для двухканального режима.
При этом нельзя сказать, что встроенная видеокарта P4600 не зависит от скорости ОЗУ – при одноканальном доступе общий результат почти на 30% ниже, чем при двухканальном. Другими словами, скорость ОЗУ критична для графического ядра, но сами по себе «ECC-версии» не влияют ни на скорость ОЗУ, ни на видеокарту.
реклама
Архиваторы, как известно, чувствительны к памяти, поэтому, возможно, здесь получится зафиксировать влияние типа памяти на производительность.
Ситуация с архивацией неоднозначная: с одной стороны – в одноканальном режиме (как при распаковке, так и при сжатии) ECC-память уверенно оказывается медленнее на 2%; с другой – в двухканальном режиме при сжатии ECC-память уверенно быстрее, а при распаковке – медленнее, а среднее арифметическое – быстрее на 0.65%.
Скорее всего, причина в следующем – пропускной способности памяти при одноканальном доступе процессору явно недостаточно, и поэтому чуть большая латентность ECC-памяти сказывается на производительности; а при двухканальном доступе ПСП полностью покрывает нужды CPU и поэтому чуть большая латентность памяти с коррекцией ошибок не сказывается на производительности. В любом случае зафиксировать существенного влияния на скорость архивации не получилось.
Cinebench
реклама
Тестовый пакет Cinebench содержит подтест как процессора, так и видеокарты.
Но ни первый, ни вторая никак не отреагировали на ECC-память.
Зато налицо явная зависимость видеокарты от ПСП – при одноканальном доступе результат в OpenGL оказался на 25% ниже, чем при двухканальном. Вспоминая результаты 3DMark и смотря на нынешние, можно заключить, что производительность интегрированной видеокарты хоть и зависит от ПСП, но ECC-память не оказывает на нее негативного влияния.
Оперативная память в сокращении может называться ОЗУ. Ее также называют оперативным запоминающим устройством, памятью с произвольным доступом, RAM. ОЗУ также можно ласково назвать «оперативкой». RAM логически состоит из ячеек памяти. Каждая ячейка хранит количество бит, равное степени двойки. 2^3=8 бит, 2^4=16 бит, 2^5=32 бит, 2^6=64 бит. У каждой ячейки памяти есть свой адрес. Адрес ячейки «оперативки» выглядит следующим образом: FFFFFFFFF.
Регистровой памятью (Registered DIMM, RDIMM) называют модули ОЗУ, которые имеют на «борту» отдельный регистр для адресов «оперативки» и команд.
Контроллер ОЗУ в процессоре обращается к регистрам, регистры же направляют информацию в микросхемы памяти. Такая организация «оперативки» позволяет увеличить количество модулей на канал RAM за счет снижения электрической нагрузки на контроллер памяти. Контроллер находится либо в северном мосту материнской платы, либо в процессоре. Также вдвое уменьшается емкость модулей памяти, если модуль содержит два регистра.
Регистровая память отличается от обычной, небуферизованной «оперативки», более высокими задержками при чтени и записи информации в модулях ОЗУ. Это происходит из-за того, что модули содержат дополнительный промежуточный узел — буфер. Чтение/запись производит контроллер памяти в процессоре или северном мосту материнской платы. Работа с этим узлом, естественно, требует дополнительного времени работы. Но при этом отметим то, что уменьшается нагрузка на процессор, так как буфер отвечает за непосредственную работу с банками памяти.
Каждый модуль ОЗУ содержит микросхему SPD (Serial Presence Detect). Данная микросхема содержит прошивку модуля памяти. Эта прошивка определяет работу более простых микросхем.
Регистровая и буферизованная память — одно и то же
Регистровая память — это буферизованная память. Как было обозначено выше — регистр — это буфер для адресов и команд при работе с памятью. Процессор или северный мост материнской платы отправляют данные, адреса ячеек памяти и команды. Регистры выполняют команды по указанным адресам.
Такая память стоит дороже обычной, небуферизованной памяти. Используется она исключительно в серверах, потому что позволяет получить больший объем памяти на один процессор в сервере.
Что такое FB-DIMM
FB-DIMM, Full Buffered Dual Inline Memory Module — полностью буферизованная DIMM — это планки ОЗУ DDR2. Плашки ОЗУ при этом используют последовательный интерфейс передачи данных между модулями памяти и контроллером «оперативки». В отличие от стандартных модулей RAM, они используют не 240-pin, а 96-pin из 240 возможных пинов. Такая организация работы позволяет организовывать с помощью контроллеров памяти большее количество каналов на материнской плате. Вплоть до 6 каналов. Данные модули памяти несовместимы с обычными планками «оперативки».
Последовательный интерфейс — это интерфейс передачи данных, при работе которого данные передаются по одному проводу или дорожке на печатной плате друг за другом. Таких проводов (дорожек) может быть несколько, но принцип передачи данных при этом не меняется.
Advanced Memory Buffer, AMB — микросхема, которая организует работу модулей памяти FB-DIMM. Эта микросхема располагается прямо на планке «оперативки».
В один канал памяти при такой организации работы модулей ОЗУ возможна установка до 8 планок «оперативки». Это позволяет, в случае с RAM DDR2, добиться емкости ОЗУ до 192 Гигабайт на один сервер.
В связи с тем, что микросхема AMB добавляет свои задержки в работу модуля памяти, данные плашки работают несколько медленнее модулей RDIMM, регистровой ОЗУ. Но, так как общее количество памяти в данном случае возрастает, то общая производительность системы также возрастает.
Краткая история оперативной памяти
Ниже приводится краткая история развития типов ОЗУ. Начинаем мы ее со времени выпуска памяти SDRAM. Это произошло в 1996 году. Пропускная способность данной RAM составила 1.1 GBps.
Следующей памятью в таблице указана память RDRAM. Она была выпущена в 1998 году. Это была абсолютно новая архитектура ОЗУ. Совершенно новый стандарт от фирмы Rambus. Было выпущено несколько поколений памяти. Она отличалась более высокими частотами, стабильными таймингами, вот только при этом задержки функционирования памяти были немного выше. К сожалению, данная память не выдержала конкуренции на рынке и вынуждена была сойти со сцены рынка памяти.
Следующими в таблице указаны линейки RAM DDR. Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных. Этот стандарт ОЗУ был выпущен на рынок в 2000 году. Данная память используется и на текущий момент. При этом развивается стандарт для достижения более высоких скоростей функционирования.
Последним типом RAM DDR, выпущенным на рынок, на данный момент является память DDR4.
Для большинства предприятий критически важно устранить случаи повреждения данных, что является целью ECC-памяти (памяти с коррекцией ошибок). ECC — это тип компьютерной памяти, которая обнаруживает и исправляет спонтанно возникшие ошибки битов памяти.
Что является причиной ошибок
Ошибки памяти возникают в результате электрических или магнитных помех внутри компьютера. Эти помехи могут привести к спонтанному изменению одного бита памяти DRAM (динамического ОЗУ) на противоположное состояние. Электромагнитные помехи присутствуют в виде фонового излучения и возрастают по мере увеличения высоты. В частности, вероятность ошибок в космических аппаратах достаточно высока.
Однобитовые ошибки могут быть незаметными, то есть они не оказывают существенного влияния на данные, но поскольку ячейки памяти коррелированы, изменение одного бита может повлиять на работу всей системы.
Как работает ECC-память
ECC-память включает дополнительные биты и контроллеры памяти, которые управляют дополнительными битами в дополнительной микросхеме модуля. ECC-память использует дополнительные биты для хранения зашифрованного кода при записи данных, а код ECC сохраняется одновременно. Во время считывания данных сохраненный код ECC сопоставляется с кодом ECC, сгенерированным при чтении данных. Если считанный код не соответствует сохраненному, его дешифрование битами четности определяет, какой бит содержался в ошибке, после чего этот бит немедленно исправляется. Таблицы синдромов являются математическим способом идентификации этих битовых ошибок и последующего их исправления.
По мере обработки данных ECC-память непрерывно сканирует код, используя специальный алгоритм, обнаруживающий и исправляющий однобитовые ошибки памяти.
Преимущества и недостатки
В таких отраслях, как финансовый сектор и научное сообщество, ECC-память имеет важное значение для обеспечения целостности данных. Большая часть серверной памяти также является ECC-памятью. ECC-память дополнительно уменьшает количество сбоев, что очень важно при работе с многопользовательскими серверными приложениями.
Как правило, ECC-память стоит дороже и может работать немного медленнее по сравнению с памятью других типов. Кроме того, остальные компоненты системы, такие как ЦП и материнская плата, должны быть совместимы с ECC-памятью.
Если от вашей системы требуется целостность данных и максимальная доступность, используйте ECC-память Crucial®. Ознакомьтесь с нашим руководством, чтобы получить дополнительную информацию о различных типах компьютерной памяти.
Очень часто при выборе комплектующих мы сталкиваемся с различными непонятными терминами и понятиями. При выборе оперативной памяти это может быть DDR, DDR2, DDR3, DDR4, RDRAM, RIMM и т.п. Если с основными типами ОЗУ всё более-менее понятно, а поддержка каждого типа указана в описании к материнской плате, то такой параметр, как ECC у многих вызывает некоторые вопросы. Что такое ECC-память? Можно ли использовать ECC оперативку на домашнем компьютере и в чём главное отличие ECC RAM и non-ECC RAM?
Что такое ECC-память?
Это особый вид оперативной памяти со встроенными аппаратными средствами коррекции ошибок. Подобные модули памяти были разработаны специально для серверов, где требования к корректности данных и надёжности их обработки значительно выше чем на персональных компьютерах.
На что способна ECC-память и как это работает?
Алгоритм исправления ошибок основан на коде Хэмминга, но для исправления более одной ошибки применяются прочие алгоритмы. На практике используются модули памяти, где для каждых 8 микросхем памяти добавляется ещё по одной микросхеме, хранящей ECC-коды (8 бит на каждые 64 бита основной памяти).
Почему искажается значение в ячейках памяти RAM?
Как работает память с поддержкой ECC
Для ECC коррекции используется код Хэмминга. ECC защищает компьютерные системы от некорректной работы в связи с порчей памяти и снижает вероятность критического отказа системы. Память с поддержкой ECC работает на 2-3 % медленнее чем non-ECC в зависимости от приложений.
Причины использовать ЕСС-память
Использование оперативки с коррекцией ошибок ECC актуально для сервером и корпоративного сегмента, где требования к отказоустойчивости и надёжности очень высоки, а корректность данных может влиять на результаты вычислений и работу системы в целом.
Читайте также: