Медлительна ли память с коррекцией ошибок?

ССЫЛКА НА ИСТОЧНИК>> 

На сегодняшний день существует мнение, что коррекция ошибок сильно замедляет память, а следовательно и ЦП. Но мало кто это проверял на деле на современных процессорах.

Сегодня мы разберемся в этом вопросе и сравним производительность серверного процессора с обоими типами памяти.

Для чего необходима коррекция? И почему в работе памяти возникают ошибки?

Разделим ошибки на два типа: аппаратные и случайные.

Причиной появления аппаратных ошибок является дефектная микросхема 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% дороже, что, в целом, не позволяет их сравнивать в силу существенно большей стоимости последней. Но почему же тогда такой вопрос возникает при сборке рабочей станции? Все просто – необходимо смотреть на данный вопрос шире, а именно – смотреть на общую стоимость рабочей станции.

 

Cама ECC-память стоит заметно дороже обычной (на 30-35%), но в общей стоимости рабочей станции данная статья затрат является несущественной, и переплата не превысит 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 В);

ОС: Windows 8.1 Pro 64-bit.

 

В рамках тестирования были произведены замеры производительности как при одноканальном режиме работы ИКП, так и при двухканальном. Суммарный объем ОЗУ составил 8 (один модуль) и 16 Гбайт (два модуля) соответственно.

 

Тестовый пакет 3DMark содержит подтесты как для процессора, так и для графической карты. Здесь и кроется самое интересное – давно известно, что встроенному видеоядру не хватает существующей ПСП в 25.6 Гбайт/с, поэтому именно в графических подтестах можно выявить негативное влияние коррекции ошибок, если оно вообще есть,…

 

Ни процессор, ни интегрированное ядро никак не реагируют на замену обычной памяти на DDR с коррекцией ошибок – результаты одинаковы в рамках погрешности. Среднеарифметическая разница составила 0.02% в пользу ECC-памяти для одноканального режима и 1.6% для двухканального режима.

 

При этом нельзя сказать, что встроенная видеокарта P4600 не зависит от скорости ОЗУ – при одноканальном доступе общий результат почти на 30% ниже, чем при двухканальном. Другими словами, скорость ОЗУ критична для графического ядра, но сами по себе «ECC-версии» не влияют ни на скорость ОЗУ, ни на видеокарту.

 

Архиваторы, как известно, чувствительны к памяти, поэтому, возможно, здесь получится зафиксировать влияние типа памяти на производительность.

 

Ситуация с архивацией неоднозначная: с одной стороны – в одноканальном режиме (как при распаковке, так и при сжатии) ECC-память уверенно оказывается медленнее на 2%; с другой – в двухканальном режиме при сжатии ECC-память уверенно быстрее, а при распаковке – медленнее, а среднее арифметическое – быстрее на 0.65%.

 

Скорее всего, причина в следующем – пропускной способности памяти при одноканальном доступе процессору явно недостаточно, и поэтому чуть большая латентность ECC-памяти сказывается на производительности; а при двухканальном доступе ПСП полностью покрывает нужды CPU и поэтому чуть большая латентность памяти с коррекцией ошибок не сказывается на производительности. В любом случае зафиксировать существенного влияния на скорость архивации не получилось.

 

GPGPU-вычисления все больше и больше набирают обороты и здесь (AIDA64 GPGPU Benchmark) будет интересно посмотреть на влияние ECC-памяти на них.

 

А разницы нет. Более того стоит заметить, что видеоядро также не показывает зависимости от ПСП. То есть при графической нагрузке видеокарта показывает зависимость от ПСП и при переходе с одноканального доступа на двухканальный поднимает свою производительность на 15-30%, а при вычислительной ей хватает и одного канала памяти. По крайней мере, это касается P4600.

 

Выполнение GPGPU-теста на процессоре не показывает влияния типа памяти на его производительность, с другой стороны, и ПСП также не влияет на нее в данном тесте.

Итак, среднеарифметическая разница по всем тестам для одноканального режима составила 0.29% в пользу обычной памяти, а для двухканального – 0.06% в пользу ECC-памяти. Таким образом, тип памяти не влияет на производительность как процессора, так и встроенного графического ядра.

 

И если выбор стоит между обычной памятью и ECC, а важным критерием является производительность рабочей станции, то лучше взять память с коррекцией ошибок. Такой вариант незначительно скажется на общем ценнике, но при этом предоставит большую надежность.


 

 

 

 

 

 

 

 

 

компьютерная техника, программное обеспечение 

ООО Экселент Групп, г. Минск, ул.Мирная , д.45-3, каб.3,

тел/факс: (017) 239-22-46, (017) 334-16-49: E-mail: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.