На сегодняшний день на просторах Рунета можно встретить открытые темы на форумах с вопросами – стоит ли брать рабочую станцию с ECC-памятью или можно обойтись обычной? В данных ветках можно прочесть множество противоречивых утверждений, и часть из них говорит о том, что коррекция ошибок сильно замедляет память, а следовательно и ЦП. Но мало кто это проверял на деле на современных процессорах.
Сегодня мы разберемся в этом вопросе и сравним производительность серверного процессора с обоими типами памяти. Но для начала небольшой экскурс.
Для чего необходима коррекция? И почему в работе памяти возникают ошибки? Перед ответом на эти вопросы следует разделить ошибки на два типа:
Причиной появления аппаратных ошибок является дефектная микросхема DRAM, а случайные ошибки возникают под воздействием излучения, альфа-частиц, элементарных частиц и прочего. Соответственно, первые в принципе неисправимы – если чип дефектный, то поможет только его замена; а вот вторые могут быть исправлены.
Почему же так необходима коррекция ошибок в рабочих станциях и серверах? Однобитовая ошибка в 64-битном слове меняет содержимое ячейки памяти, а в конечном итоге на жесткий диск может быть записано другое число, другие данные, при этом компьютер не зафиксирует эту подмену. А изменение бита в оперативной памяти может вызвать сбой программы, что для рабочей станции и сервера недопустимо.
Для обнаружения изменения битов памяти можно использовать метод подсчета контрольной суммы, но он позволяет лишь обнаруживать ошибки без их исправления.
В свое время было предложено много различных способов решения данной проблемы, но на сегодняшний день наибольшее распространение получил метод коррекции ошибок или 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%.
Для данного обзора использовалась следующая конфигурация:
В рамках тестирования были произведены замеры производительности как при одноканальном режиме работы ИКП, так и при двухканальном. Суммарный объем ОЗУ составил 8 (один модуль) и 16 Гбайт (два модуля) соответственно.
Программное обеспечение:
Перед тем, как приступить к тестированию, проведем замер пропускной способности памяти и латентности.
При изучении результатов можно заключить, что производительность ECC- и non-ECC- памяти находится на одном и том же уровне в рамках погрешности.
Если в предыдущем тесте от замера к замеру выигрывал то один, то другой тип памяти, то при замере латентности ECC-память постоянно показывает большие задержки. Но разница несущественна – всего лишь 1 нс.
Таким образом, замер ПС и латентности памяти не показал особых различий между ECC- и non-ECC-памятью. Посмотрим, повторится ли это в последующих тестах.
Тестовый пакет 3DMark содержит подтесты как для процессора, так и для графической карты. Здесь и кроется самое интересное – давно известно, что встроенному видеоядру не хватает существующей ПСП в 25.6 Гбайт/с, поэтому именно в графических подтестах можно выявить негативное влияние коррекции ошибок, если оно вообще есть,…
... но разницы нет – что ECC, что non-ECC. Ни процессор, ни интегрированное ядро никак не реагируют на замену обычной памяти на DDR с коррекцией ошибок – результаты одинаковы в рамках погрешности. Среднеарифметическая разница составила 0.02% в пользу ECC-памяти для одноканального режима и 1.6% для двухканального режима.
При этом нельзя сказать, что встроенная видеокарта P4600 не зависит от скорости ОЗУ – при одноканальном доступе общий результат почти на 30% ниже, чем при двухканальном. Другими словами, скорость ОЗУ критична для графического ядра, но сами по себе «ECC-версии» не влияют ни на скорость ОЗУ, ни на видеокарту.
Архиваторы, как известно, чувствительны к памяти, поэтому, возможно, здесь получится зафиксировать влияние типа памяти на производительность.
Ситуация с архивацией неоднозначная: с одной стороны – в одноканальном режиме (как при распаковке, так и при сжатии) ECC-память уверенно оказывается медленнее на 2%; с другой – в двухканальном режиме при сжатии ECC-память уверенно быстрее, а при распаковке – медленнее, а среднее арифметическое – быстрее на 0.65%.
Скорее всего, причина в следующем – пропускной способности памяти при одноканальном доступе процессору явно недостаточно, и поэтому чуть большая латентность ECC-памяти сказывается на производительности; а при двухканальном доступе ПСП полностью покрывает нужды CPU и поэтому чуть большая латентность памяти с коррекцией ошибок не сказывается на производительности. В любом случае зафиксировать существенного влияния на скорость архивации не получилось.
Тестовый пакет Cinebench содержит подтест как процессора, так и видеокарты.
Но ни первый, ни вторая никак не отреагировали на ECC-память.
Зато налицо явная зависимость видеокарты от ПСП – при одноканальном доступе результат в OpenGL оказался на 25% ниже, чем при двухканальном. Вспоминая результаты 3DMark и смотря на нынешние, можно заключить, что производительность интегрированной видеокарты хоть и зависит от ПСП, но ECC-память не оказывает на нее негативного влияния.
Хоть тестовый пакет CrystalMark является устаревшим, он позволяет протестировать как процессор, так и память с видеокартой.
Но ни один из шести тестов не показал существенной разницы между ECC- и non-ECC- памятью. Зато зависимость интегрированного графического ядра от пропускной способности памяти снова налицо – в графическом тесте OGL разница составила около 10% в пользу двухканального режима.
В целом, ситуация в Fritz не меняется – коррекция ошибок не накладывает существенных штрафов на производительность процессора.
При одноканальном доступе разница составила 1.27% в пользу обычной памяти, при двухканальном – 0.4% (что по большому счету находится в рамках погрешности самого тестового пакета LinX: от прохода к проходу значение «гигафлопсов» колеблется в этих диапазонах).
Стоит заметить, что одноканальный доступ не позволяет раскрыть весь потенциал стендового процессора – при двухканальном режиме работы ИКП производительность CPU поднимается на 55%. То есть у LinX есть высокая зависимость от ПСП, но при этом ECC не оказывает никакого влияния на производительность ЦП.
Несмотря на многопоточность теста, влияния ПСП на скорость вычислений не наблюдается – если уж wPrime не видит разницы между ПСП в 12.8 и 25.6 Гбайт/с, то что говорить о памяти с коррекцией ошибок и с чуть большей латентностью?
Начнем с основных тестов.
В целом, все повторяется – процессору без разницы с каким типом памяти работать. Зато зависимость от ПСП есть в тесте CPU PhotoWorxx – здесь двухканальный доступ повышает производительность ЦП практически вдвое относительно одноканального. При этом, несмотря на такую сильную зависимость от ПСП на ECC-память реакции нет.
GPGPU-вычисления все больше и больше набирают обороты и здесь (AIDA64 GPGPU Benchmark) будет интересно посмотреть на влияние ECC-памяти на них.
А разницы нет. Более того стоит заметить, что видеоядро также не показывает зависимости от ПСП. То есть при графической нагрузке видеокарта показывает зависимость от ПСП и при переходе с одноканального доступа на двухканальный поднимает свою производительность на 15-30%, а при вычислительной ей хватает и одного канала памяти. По крайней мере, это касается P4600.
Выполнение GPGPU-теста на процессоре не показывает влияния типа памяти на его производительность, с другой стороны, и ПСП также не влияет на нее в данном тесте.
Подводя итог, необходимо сначала привести цифры: среднеарифметическая разница по всем тестам для одноканального режима составила 0.29% в пользу обычной памяти, а для двухканального – 0.06% в пользу ECC-памяти. Таким образом, тип памяти не влияет на производительность как процессора, так и встроенного графического ядра – причем даже в тех тестах, где наблюдается сильная зависимость от ПСП. По крайней мере, данное утверждение верно для ECC-памяти и двухканального контроллера Haswell.
Суммируя все вышесказанное, существенным отличием ECC-памяти от обычной является только ее стоимость. В абсолютных цифрах планка на 8 Гбайт с коррекцией ошибок стоит на 30-35% дороже относительно ОЗУ со схожими характеристиками. Но этот вопрос следует рассматривать в разрезе общей стоимости рабочей станции – тогда покупка памяти с коррекцией ошибок лишь незначительно повышает ее общую стоимость – не более 5%.
И если выбор стоит между обычной памятью и ECC, а важным критерием является производительность рабочей станции, то можно взять, не боясь, память с коррекцией ошибок. Такой вариант незначительно скажется на общем ценнике, но при этом предоставляет большую надежность, что будет полезным.