Ddr4 кода коррекции ошибок

Можно ли использовать модули оперативной памяти (ОЗУ) от обычного компьютера в сервере? И наоборот? Чем серверная оперативная память отличается от обычной?

Следует сразу сказать, что не какой-то особой «серверной» памяти. Есть различные виды оперативной памяти, некоторые из которых подходят для серверов, а некоторые – только для обычных персональных компьютеров.

Основное отличия оперативной памяти для серверов в том, что последняя должна поддерживать технологию ECC (Error Correction Code), кода коррекции ошибок. Эта память способна обнаруживать и исправлять возникающие ошибки данных в битах памяти. Для обычных пользовательских компьютеров распознавание и автоматическая коррекция ошибок некритичны, поскольку нагрузка серверов и обычных компьютеров несравнимы между собой по объёму потоков данных, поэтому битовые сбои в обычных компьютерах происходят гораздо реже, чем в серверах.

Есть и другие отличия серверной памяти, например, буферизованная и не буферизованная память, но эти различия больше относятся к различным видам серверной памяти как таковой.

ECC

Поддержка ЕСС (Error Correction Code) – главная особенность серверной памяти, которая значительно удорожает на 10-30% цену памяти для серверов. Бывают системные администраторы, которые, желая сэкономить деньги компании, ставят в сервер память для обычного десктопа, и сервер при этом иногда работает. Но обычно это случается, во-первых, лишь для серверов начального класса, а во-вторых, возможность сбоев работы сервера значительно возрастает.

ECC даёт возможность исправлять ошибок одиночных битов в оперативной памяти. Если для обычных десктопов такие ошибки не очно критичны, то для серверов, с высокой интенсивностью вычислений, такие ошибки могут приводить к серьёзным сбоям бизнес-процессов и к убыткам предприятий.

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

Рис. 1. Принцип работы ЕСС.

Рис. 1. Принцип работы ЕСС.

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

Некоторые системные платы и процессоры для менее критичных приложений могут не поддерживать использование памяти ЕСС, и их цена может быть ниже. Некоторые системы могут поддерживать не буферизованные модули памяти ECC, но при этом могут также работать и с не-ЕСС памятью. В этом случае, функционал ECC обеспечивается системным встроенным ПО (firmware) и такие системы могут стоить дороже.

Модули памяти с ЕСС предназначены для обеспечения большей стабильности, чем обычные модули памяти. Однако, у них есть и некоторые недостатки.

Во-первых, не каждый компьютер может поддерживать память ECC. Большинство серверов и рабочих станций поддерживает ЕСС, но мало какие обычные пользовательские компьютеры её поддерживают. Либо, они вообще с такой память не будут работать, либо функционал ECC не будет задействован.

Во-вторых, вследствие наличие дополнительного чипа ЕСС, и вообще более сложной структуры памяти ЕСС, она стоит дороже, чем обычная, на 10-30%.

В-третьих, ECC RAM немного медленнее, чем не-ЕСС, однако, ненамного, в среднем на 2-5%.

Рис. 2. Модули память ЕСС и не-ЕСС.

Рис. 2. Модули память ЕСС и не-ЕСС.

Итак, наличие ЕСС – основное отличие серверной оперативной памяти от обычной. Чтобы понять, чем они ещё отличаются, рассмотрим подробнее, какие вообще бывают виды оперативной памяти ОЗУ, или RAM (Random Access Memory), и какие виды, где используются.

Буферизованная и небуферизованная память

Есть два основных типа оперативной памяти ОЗУ – буферизованная (buffered) и небуферизованная (unbuffered). В буферизованной памяти есть т.н. уровень повышения мощности обработки (processing power), который ускоряет процессы записи и считывания. В такой памяти модули памяти – 4-битовые, в отличие от 8-16 битовых в небуферизованной памяти.

Основное отличие буферизованной памяти – наличие чипа буфера, который обрабатывает информацию, получаемую от процессора (CPU). Буферный чип затем посылает эту информацию в другие чипы модуля ОЗУ. Такая буферизация позволяет централизовать посылку информации из CPU в чипы ОЗУ. Например, популярный модуль ОЗУ PC3-10600 имеет 18 микросхем памяти, поэтому буферизация для взаимодействия с CPU значительно упрощает работу последнего.

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

В серверах используются, в основном, буферизованные ОЗУ.

Различные типы буферизованной памяти

Регистровая память (Registered Memory, RDIMM, DIMM – Dual In-line Memory Module) – имеет дополнительный чип, который выполняет промежуточные операции между CPU и чипами модулей ОЗУ. Он уменьшает количество сигналов, передаваемых между ОЗУ и CPU. Регистровая память RDIMM, в отличие от небуферизованной UDIMM (Inbuffered DIMM), снижает электрическую нагрузку на компоненты системы, однако, немного снижает производительность. Однако, при этом система может иметь более широкое адресное пространство, чем в небуферизованной памяти. Почти все типы регистровой памяти поддерживают код коррекцию ошибок ECC. Регистровую и небуферизованную память нельзя совмещать в одной системе, даже если она поддерживает оба типа.

Полностью буферизованная память (Fully Buffered Memory, FBDIMM) – это более старая версия регистровой памяти. В DDR3 такая память не используется. Полностью буферизованная память DDR2 и небуферизованная память DDR2 имели различные типоразмеры, чтобы не спутать их при установке.

Память со сниженной нагрузкой (Load Reduced Memory, LRDIMM) – более новая версия буферизованной памяти, где используется чип буфера, ещё более снижающий электрическую нагрузку. При этом снижаются или даже полностью устраняются проблемы с рангами памяти (о чем ниже), что позволяет использовать модули памяти высокой ёмкости без снижения производительности системы (или по крайней мере, снизить этот эффект). Кроме того, LRDIMM даёт возможность не стараться обязательно заполнить все гнёзда на системной плате модулями памяти. Однако, LRDIMM, также как UDIMM и RDIMM, не может сочетаться с другими стандартами в одной системе.

Ранги памяти

Ранг – это число 64-битных областей памяти. Модули памяти могут быть одно-, двух-, четырёх- и восьми-ранговые. Большого влияния на обычные компьютеры это разделение не имеет, однако, для регистровой памяти в серверах они приводят к некоторым ограничениям.

Рис. 3. Виды модулей памяти.

Рис. 3. Виды модулей памяти.

Модули с высшими рангами могут иметь ограничения на то, сколько модулей может быть установлено. Например, если в системе – шесть гнёзд для модулей DIMM, то для 4-ранговых модулей можно занимать только 4 гнезда. Можно ли занимать остальные два гнезда, например, 2- или 1-ранговыми модулями DIMM – зависит от параметров системы. Иногда так делать можно, но следует использовать только определённые гнезда для таких целей. Использование модулей высоких рангов иногда приводит к снижению производительности системы. Таким образом, использование того или иного ранга модулей – часто бывает вопросом компромисса между объёмом ОЗУ и производительностью системы. С одной стороны – чем выше ёмкость ОЗУ, тем выше производительность, с другой стороны, чем выше ранг (и, следовательно, больше объём ОЗУ) тем производительность может быть ниже.

Конструктивные отличия серверной памяти

Серверная память, в особенности, RDIMM и LRDIMM, может отличаться по типоразмерам от памяти для рабочих компьютеров. Кроме того, что модулях серверной памяти бывает напаяно больше компонентов, там могут ещё устанавливаться и теплоотводы, поскольку при работе памяти в сервер выделяется больше тепла, как процессором, так и памятью. Для серверных модулей памяти может также понадобиться больше пространства над ними, для отведения тепловых потоков. Иногда, это обстоятельство вынуждает приобретать специальные низкопрофильные модули VLP (Very Low Profile). Многие пользователи именно такие модули и стараются приобретать, поскольку они в любом случае обеспечивают лучший теплоотвод.

Выводы

Как видим, память серверов имеет некоторые особенности по сравнению с памятью для обычных компьютеров. Прежде всего, это необходимость использования кодов коррекции ошибок ЕСС. Если использовать для сервера обычную память без ЕСС, то либо такая система не заработает, либо её работа будет связана с рисками сбоев, что в корпоративных ИТ-системах недопустимо.

Кроме того, для серверов обычно используется буферизованная память, которая оснащена дополнительным чипом для выполнения промежуточных операции между CPU и чипами модулей DIMM.

Иногда серверная память может иметь и конструктивные особенности, например, размещаться в низкопрофильных DIMM для лучшего теплоотвода внутри корпуса сервера.

В продолжение рубрики «конспект админа» хотелось бы разобраться в нюансах технологий ОЗУ современного железа: в регистровой памяти, рангах, банках памяти и прочем. Подробнее коснемся надежности хранения данных в памяти и тех технологий, которые несчетное число раз на дню избавляют администраторов от печалей BSOD.

Старые песни про новые типы

Сегодня на рынке представлены, в основном, модули с памятью DDR SDRAM: DDR2, DDR3, DDR4. Разные поколения отличаются между собой рядом характеристик — в целом, каждое следующее поколение «быстрее, выше, сильнее», а для любознательных вот табличка:

image alt text

Для подбора правильной памяти больший интерес представляют сами модули:

  • RDIMM — регистровая (буферизованная) память. Удобна для установки большого объема оперативной памяти по сравнению с небуферизованными модулями. Из минусов — более низкая производительность;

  • UDIMM (unregistered DRAM) — нерегистровая или небуферизованная память — это оперативная память, которая не содержит никаких буферов или регистров;

  • LRDIMM — эти модули обеспечивают более высокие скорости при большей емкости по сравнению с двухранговыми или четырехранговыми модулями RDIMM, за счёт использования дополнительных микросхем буфера памяти;

  • HDIMM (HyperCloud DIMM, HCDIMM) — модули с виртуальными рангами, которые имеют большую плотность и обеспечивают более высокую скорость работы. Например, 4 физических ранга в таких модулях могут быть представлены для контроллера как 2 виртуальных;

  • FBDIMM — полностью буферизованная DIMM с высокой надежностью, скоростью и плотностью размещения.

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

Для всех типов памяти SDRAM есть общий набор базовых характеристик, влияющий на объем и производительность:

  • частота и режим работы;

  • ранг;

  • тайминги.

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

Частота и режим работы

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

Режимы работы можно условно разделить на четыре группы:

  • Single Mode — одноканальный или ассиметричный. Включается, когда в системе установлен только один модуль памяти или все модули отличаются друг от друга. Фактически, означает отсутствие многоканального доступа;

  • Dual Mode — двухканальный или симметричный. Слоты памяти группируются по каналам, в каждом из которых устанавливается одинаковый объем памяти. Это позволяет увеличить скорость работы на 5-10% в играх, и до 70% в тяжелых графических приложениях. Модули памяти необходимо устанавливать парами на разные каналы. Производители материнских плат обычно выделяют парные слоты одним цветом;

  • Triple Mode — трехканальный режим работы. Модули устанавливаются группами по три штуки — на каждый из трех каналов. Аналогично работают и последующие режимы: четырехканальные (quad-channel), восьмиканальные (8-channel memory) и т.п.

  • Flex Mode — позволяет увеличить производительность оперативной памяти при установке двух модулей различного объема, но с одинаковой частотой.

  • Для максимального быстродействия лучше устанавливать одинаковые модули с максимально возможной для системы частотой. При этом используйте установку парами или группами — в зависимости от доступного многоканального режима работы.

Ранги для памяти

Ранг (rank) — область памяти из нескольких чипов памяти в 64 бита (72 бита при наличии ECC, о чем поговорим позже). В зависимости от конструкции модуль может содержать один, два или четыре ранга.

Узнать этот параметр можно из маркировки на модуле памяти. Например уKingston число рангов легко вычислить по одной из трех букв в середине маркировки: S (Single — одногоранговая), D (Dual — двухранговая), Q (Quad — четырехранговая).

Пример полной расшифровки маркировки на модулях Kingston:

image alt text

Серверные материнские платы ограничены суммарным числом рангов памяти, с которыми могут работать. Например, если максимально может быть установлено восемь рангов при уже установленных четырех двухранговых модулях, то в свободные слоты память добавить не получится.

Перед покупкой модулей есть смысл уточнить, какие типы памяти поддерживает процессор сервера. Например, Xeon E5/E5 v2 поддерживают одно-, двух- и четырехранговые регистровые модули DIMM (RDIMM), LRDIMM и не буферизированные ECC DIMM (ECC UDIMM) DDR3. А процессоры Xeon E5 v3 поддерживают одно- и двухранговые регистровые модули DIMM, а также LRDIMM DDR4.

Немного про скучные аббревиатуры таймингов

Тайминги или латентность памяти (CAS Latency, CL) — величина задержки в тактах от поступления команды до ее исполнения. Числа таймингов указывают параметры следующих операций:

  • CL (CAS Latency) — время, которое проходит между запросом процессора некоторых данных из памяти и моментом выдачи этих данных памятью;

  • tRCD (задержка от RAS до CAS) — время, которое должно пройти с момента обращения к строке матрицы (RAS) до обращения к столбцу матрицы (CAS) с нужными данными;

  • tRP (RAS Precharge) — интервал от закрытия доступа к одной строке матрицы, и до начала доступа к другой;

  • tRAS — пауза для возврата памяти в состояние ожидания следующего запроса;

  • CMD (Command Rate) — время от активации чипа памяти до обращения к ней с первой командой.

Разумеется, чем меньше тайминги — тем лучше для скорости. Но за низкую латентность придется заплатить тактовой частотой: чем ниже тайминги, тем меньше допустимая для памяти тактовая частота. Поэтому правильным выбором будет «золотая середина».

Существуют и специальные более дорогие модули с пометкой «Low Latency», которые могут работать на более высокой частоте при низких таймингах. При расширении памяти желательно подбирать модули с таймингами, аналогичными уже установленным.

RAID для оперативной памяти

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

Для коррекции нерегулярных ошибок применяется ECC-память, которая содержит дополнительную микросхему для обнаружения и исправления ошибок в отдельных битах.

Метод коррекции ошибок работает следующим образом:

  1. При записи 64 бит данных в ячейку памяти происходит подсчет контрольной суммы, составляющей 8 бит.

  2. Когда процессор считывает данные, то выполняется расчет контрольной суммы полученных данных и сравнение с исходным значением. Если суммы не совпадают — это ошибка.

  3. Если ошибка однобитовая, то неправильный бит исправляется автоматически. Если двухбитовая — передается соответствующее сообщение для операционной системы.

Технология Advanced ECC способна исправлять многобитовые ошибки в одной микросхеме, и с ней возможно восстановление данных даже при отказе всего модуля DRAM.

image alt text

Исправление ошибок нужно отдельно включить в BIOS

Большинство серверных модулей памяти являются регистровыми (буферизованными) — они содержат регистры контроля передачи данных.

Регистры также позволяют устанавливать большие объемы памяти, но из-за них образуются дополнительные задержки в работе. Дело в том, что каждое чтение и запись буферизуются в регистре на один такт, прежде чем попадут с шины памяти в чип DRAM, поэтому регистровая память оказывается медленнее не регистровой на один такт.

image alt text

Источник — nix.ru

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

Многопроцессорные системы и память

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

Если пришлось поставить в сервер модули с меньшей частотой, чем требуется материнской плате — нужно включить в BIOS дополнительные циклы ожидания при работе процессора с памятью.

Для автоматического учета всех правил и рекомендаций по установке модулей можно использовать специальные утилиты от вендора. Например, у HP есть Online DDR4 (DDR3) Memory Configuration Tool.

Итого

Вместо пространственного заключения приведу общие рекомендации по выбору памяти:

  • Для многопроцессорных серверов HP рекомендуется использовать только регистровую память c функцией коррекции ошибок (ECC RDIMM), а для однопроцессорных — небуферизированную с ECC (UDIMM). Планки UDIMM для серверов HP лучше выбирать от этого же производителя, чтобы избежать самопроизвольных перезагрузок.

  • В случае с RDIMM лучше выбирать одно- и двухранговые модули (1rx4, 2rx4). Для оптимальной производительности используйте двухранговые модули памяти в конфигурациях 1 или 2 DIMM на канал. Создание конфигурации из 3 DIMM с установкой модулей в третий банк памяти значительно снижает производительность.

  • Из тех же соображений максимальной скорости желательно избегать использования четырехранговой памяти RDIMM, поскольку она снижает частоту до 1066 МГц в конфигурациях с одним модулем на канал, и до 800 МГц — в конфигурациях с двумя модулями на канал. Справедливо для серверов на базе Intel Xeon 5600 и Xeon E5/E5 v2.

Список короткий, но здесь все самое необходимое и наименее очевидное. Конечно же, старый как мир принцип RTFM никто не отменял.

Время на прочтение
6 мин

Количество просмотров 66K

image alt text

В продолжение рубрики «конспект админа» хотелось бы разобраться в нюансах технологий ОЗУ современного железа: в регистровой памяти, рангах, банках памяти и прочем. Подробнее коснемся надежности хранения данных в памяти и тех технологий, которые несчетное число раз на дню избавляют администраторов от печалей BSOD.

Старые песни про новые типы

Сегодня на рынке представлены, в основном, модули с памятью DDR SDRAM: DDR2, DDR3, DDR4. Разные поколения отличаются между собой рядом характеристик – в целом, каждое следующее поколение «быстрее, выше, сильнее», а для любознательных вот табличка:

image alt text

Для подбора правильной памяти больший интерес представляют сами модули:

  • RDIMM — регистровая (буферизованная) память. Удобна для установки большого объема оперативной памяти по сравнению с небуферизованными модулями. Из минусов – более низкая производительность;

  • UDIMM (unregistered DRAM) — нерегистровая или небуферизованная память — это оперативная память, которая не содержит никаких буферов или регистров;

  • LRDIMM — эти модули обеспечивают более высокие скорости при большей емкости по сравнению с двухранговыми или четырехранговыми модулями RDIMM, за счёт использования дополнительных микросхем буфера памяти;

  • HDIMM (HyperCloud DIMM, HCDIMM) — модули с виртуальными рангами, которые имеют большую плотность и обеспечивают более высокую скорость работы. Например, 4 физических ранга в таких модулях могут быть представлены для контроллера как 2 виртуальных;

  • FBDIMM — полностью буферизованная DIMM с высокой надежностью, скоростью и плотностью размещения.

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

Для всех типов памяти SDRAM есть общий набор базовых характеристик, влияющий на объем и производительность:

  • частота и режим работы;

  • ранг;

  • тайминги.

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

Частота и режим работы

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

Режимы работы можно условно разделить на четыре группы:

  • Single Mode — одноканальный или ассиметричный. Включается, когда в системе установлен только один модуль памяти или все модули отличаются друг от друга. Фактически, означает отсутствие многоканального доступа;

  • Dual Mode — двухканальный или симметричный. Слоты памяти группируются по каналам, в каждом из которых устанавливается одинаковый объем памяти. Это позволяет увеличить скорость работы на 5-10 % в играх, и до 70 % в тяжелых графических приложениях. Модули памяти необходимо устанавливать парами на разные каналы. Производители материнских плат обычно выделяют парные слоты одним цветом;

  • Triple Mode — трехканальный режим работы. Модули устанавливаются группами по три штуки — на каждый из трех каналов. Аналогично работают и последующие режимы: четырехканальные (quad-channel), восьмиканальные (8-channel memory) и т.п.

  • Flex Mode – позволяет увеличить производительность оперативной памяти при установке двух модулей различного объема, но с одинаковой частотой.

Для максимального быстродействия лучше устанавливать одинаковые модули с максимально возможной для системы частотой. При этом используйте установку парами или группами — в зависимости от доступного многоканального режима работы.

Ранги для памяти

Ранг (rank) — область памяти из нескольких чипов памяти в 64 бита (72 бита при наличии ECC, о чем поговорим позже). В зависимости от конструкции модуль может содержать один, два или четыре ранга.

Узнать этот параметр можно из маркировки на модуле памяти. Например уKingston число рангов легко вычислить по одной из трех букв в середине маркировки: S (Single — одногоранговая), D (Dual — двухранговая), Q (Quad — четырехранговая).

Пример полной расшифровки маркировки на модулях Kingston:

image alt text

Серверные материнские платы ограничены суммарным числом рангов памяти, с которыми могут работать. Например, если максимально может быть установлено восемь рангов при уже установленных четырех двухранговых модулях, то в свободные слоты память добавить не получится.

Перед покупкой модулей есть смысл уточнить, какие типы памяти поддерживает процессор сервера. Например, Xeon E5/E5 v2 поддерживают одно-, двух- и четырехранговые регистровые модули DIMM (RDIMM), LRDIMM и не буферизированные ECC DIMM (ECC UDIMM) DDR3. А процессоры Xeon E5 v3 поддерживают одно- и двухранговые регистровые модули DIMM, а также LRDIMM DDR4.

Немного про скучные аббревиатуры таймингов

Тайминги или латентность памяти (CAS Latency, CL) — величина задержки в тактах от поступления команды до ее исполнения. Числа таймингов указывают параметры следующих операций:

  • CL (CAS Latency) – время, которое проходит между запросом процессора некоторых данных из памяти и моментом выдачи этих данных памятью;

  • tRCD (задержка от RAS до CAS) – время, которое должно пройти с момента обращения к строке матрицы (RAS) до обращения к столбцу матрицы (CAS) с нужными данными;

  • tRP (RAS Precharge) – интервал от закрытия доступа к одной строке матрицы, и до начала доступа к другой;

  • tRAS – пауза для возврата памяти в состояние ожидания следующего запроса;

  • CMD (Command Rate) – время от активации чипа памяти до обращения к ней с первой командой.

Разумеется, чем меньше тайминги – тем лучше для скорости. Но за низкую латентность придется заплатить тактовой частотой: чем ниже тайминги, тем меньше допустимая для памяти тактовая частота. Поэтому правильным выбором будет «золотая середина».

Существуют и специальные более дорогие модули с пометкой «Low Latency», которые могут работать на более высокой частоте при низких таймингах. При расширении памяти желательно подбирать модули с таймингами, аналогичными уже установленным.

RAID для оперативной памяти

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

Для коррекции нерегулярных ошибок применяется ECC-память, которая содержит дополнительную микросхему для обнаружения и исправления ошибок в отдельных битах.

Метод коррекции ошибок работает следующим образом:

  1. При записи 64 бит данных в ячейку памяти происходит подсчет контрольной суммы, составляющей 8 бит.

  2. Когда процессор считывает данные, то выполняется расчет контрольной суммы полученных данных и сравнение с исходным значением. Если суммы не совпадают – это ошибка.

  3. Если ошибка однобитовая, то неправильный бит исправляется автоматически. Если двухбитовая – передается соответствующее сообщение для операционной системы.

Технология Advanced ECC способна исправлять многобитовые ошибки в одной микросхеме, и с ней возможно восстановление данных даже при отказе всего модуля DRAM.

image alt text

Исправление ошибок нужно отдельно включить в BIOS

Большинство серверных модулей памяти являются регистровыми (буферизованными) – они содержат регистры контроля передачи данных.

Регистры также позволяют устанавливать большие объемы памяти, но из-за них образуются дополнительные задержки в работе. Дело в том, что каждое чтение и запись буферизуются в регистре на один такт, прежде чем попадут с шины памяти в чип DRAM, поэтому регистровая память оказывается медленнее не регистровой на один такт.

image alt text

Источник — nix.ru

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

Многопроцессорные системы и память

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

Если пришлось поставить в сервер модули с меньшей частотой, чем требуется материнской плате – нужно включить в BIOS дополнительные циклы ожидания при работе процессора с памятью.

Для автоматического учета всех правил и рекомендаций по установке модулей можно использовать специальные утилиты от вендора. Например, у HP есть Online DDR4 (DDR3) Memory Configuration Tool.

Итого

Вместо пространственного заключения приведу общие рекомендации по выбору памяти:

  • Для многопроцессорных серверов HP рекомендуется использовать только регистровую память c функцией коррекции ошибок (ECC RDIMM), а для однопроцессорных — небуферизированную с ECC (UDIMM). Планки UDIMM для серверов HP лучше выбирать от этого же производителя, чтобы избежать самопроизвольных перезагрузок.

  • В случае с RDIMM лучше выбирать одно- и двухранговые модули (1rx4, 2rx4). Для оптимальной производительности используйте двухранговые модули памяти в конфигурациях 1 или 2 DIMM на канал. Создание конфигурации из 3 DIMM с установкой модулей в третий банк памяти значительно снижает производительность.

  • Из тех же соображений максимальной скорости желательно избегать использования четырехранговой памяти RDIMM, поскольку она снижает частоту до 1066 МГц в конфигурациях с одним модулем на канал, и до 800 МГц – в конфигурациях с двумя модулями на канал. Справедливо для серверов на базе Intel Xeon 5600 и Xeon E5/E5 v2.

Список короткий, но здесь все самое необходимое и наименее очевидное. Конечно же, старый как мир принцип RTFM никто не отменял.

Типы оперативной памяти: буферизированная, ECC, регистровая …

Иногда люди сталкиваются с проблемой несовместимости оперативной памяти с компьютером. Устанавливают память, а она не работает и компьютер не включается. Многие пользователи просто не знают, что существуют несколько типов памяти и какой именно тип подходит к их компьютеру, а какой нет.

Что значит U в маркировке оперативной памяти, что значит E, что значит R, F, L  или U ? Этими буквами обозначается тип памяти — U (Unbuffered, небуферизированная), E (память c коррекцией ошибок, ECC), R (регистровая память, Registered), F (FB-DIMM, Fully Buffered DIMM — полностью буферизованная DIMM) а также напряжение питания. Рассмотрим все эти типы подробнее.

1. Небуферизированная память.

Обычная память для обычных настольных компьютеров, её ещё называют UDIMM. На планке памяти как правило имеется 2, 4, 8 или 16 микросхем памяти с одной или двух сторон. У такой памяти маркировка обычно заканчивается буквой U (Unbuffered) или вообще без буквы, например DDR2 PC-6400, DDR2 PC-6400U, DDR3 PC-8500U или DDR3 PC-10600. А у памяти для ноутбуков маркировка заканчивается буквой S (сокращение от SODIMM), например DDR3 PC3-10600S.

2. Память c коррекцией ошибок (Память с ECC).

Обычная (небуферизованная) память с коррекцией ошибок. Такая память ставится обычно в сервера и рабочие станции и довольно редко в обычные персональные компьютеры. Плюсом этой памяти является её большая надёжность при работе. Большинство ошибок при работе памяти удаётся исправить во время работы, даже если они появляются, не теряя данные. Обычно на каждой планке такой памяти к 9 или 18 микросхемам памяти, добавляется одна или 2 микросхемы. У такой памяти маркировка как правило заканчивается буквой E (ECC), например DDR2 PC-4200E, DDR2 PC-6400E, DDR3 PC-8500E или DDR3 PC-10600E.

3. Регистровая память (Registered).

Это серверный тип памяти. Обычно он всегда выпускается с ECC (коррекцией ошибок) и c микросхемой «Буфером». Микросхема «буфер» позволяет увеличить максимальное количество планок памяти, которые можно подключить к шине не перегружая её, но это уже лишние данные, не будем углубляться в теорию. В последнее время понятия буферизованный и регистровый почти не различают. Если утрировать: регистровая память = буферизованная. Эта память работает ТОЛЬКО на серверных материнских платах способных работать с памятью через микросхему «буфер».

Обычно на планках регистровой памяти с ECC установлено 9, 18 или 36 микросхем памяти и ещё 1, 2 или 4 микросхемы «буфера» (они обычно в центре, отличаются по габаритам от микросхем памяти). У такой памяти маркировка как правило заканчивается буквой R (Registered), например DDR2 PC-4200R, DDR2 PC-6400R, DDR3 PC-8500R или DDR3 PC-10600R. Ещё в маркировке регистровой (серверной) (буферизированной) памяти обычно присутствует сокращение слова Registered — REG.

Помните! Регистровая память с ECC со 100% вероятностью НЕ РАБОТАЕТ на обычных материнских платах. Она работает только на серверах и большинстве моделей рабочих станций!

4. FB-DIMM Fully Buffered DIMM

Полностью буферизованная DIMM — стандарт компьютерной памяти, который используется для повышения надёжности, скорости, и плотности подсистемы памяти. В традиционных стандартах памяти линии данных подключаются от контроллера памяти непосредственно к линиям данных каждого модуля DRAM (иногда через буферные регистры, по одной микросхеме регистра на 1-2 чипа памяти). С увеличением ширины канала или скорости передачи данных, качество сигнала на шине ухудшается, усложняется разводка шины. Это ограничивает скорость и плотность памяти. FB-DIMM использует другой подход для решения этих проблем. Это дальнейшее развитие идеи registered модулей — Advanced Memory Buffer осуществляет буферизацию не только сигналов адреса, но и данных, и использует последовательную шину к контроллеру памяти вместо параллельной.

Модуль FB-DIMM имеет 240 контактов и одинаковую длину с другими модулями DDR DIMM, но отличается по форме выступов. Подходит только для серверных платформ.

5. DDR3L (PC3L) и DDR3U

Индексы L и U обозначают пониженное энергопотребление (Low Voltage).
Стандарт DDR3L может работать на напряжении 1.35 V. Примеры маркировки: DDR3L-800 (PC3L-6400), DDR3L-1066 (PC3L-8500), DDR3L-1333 МГц (PC3L-10600), и DDR3L-1600 (PC3L-12800). А модули памяти стандарта DDR3U (DDR3 ультра низкого напряжения) потребляют всего 1.25 V.

Спецификации DDR3L и DDR3U более универсальны, они совместимы с первоначальным стандартом DDR3 и могут работать как на более низком напряжении тока (1.35 V) так и на 1.50 V. В тоже время устройства которые требуют память стандарта именно DDR3L (1.35 V), такие как системы использующие процессоры Intel Core четвертого поколения, не совместимы с памятью DDR3 работающей на 1.50 V.

6. GDDR3

Память GDDR3 (Graphics DDR3), иногда неправильно называемая «DDR3» из-за схожего названия, является совершенно другим стандартом SDRAM, предназначенным для использования в видеокартах.


Частота

Частота — параметр, который отвечает за скорость обработки данных и влияет на производительность в целом. Это время между отправкой команды контроллером памяти и её выполнением. Измеряется в тактах. Чем частота выше, тем лучше. Рабочая частота памяти DDR4 — в диапазоне от 2133 до 4800 МГц и выше, а у DDR3 — от 800 до 2400 МГц.

Чем больше частота памяти тем лучше или нет? Частота ОЗУ условно отображает, сколько происходит операций по пересылке данных за одну секунду. Соответственно чем выше частота, тем лучше.

Но есть нюанс: процессор имеет максимальный порог частоты, на которой он может взаимодействовать с оперативной памятью. Если в процессоре этот порог 1600 МГц, то установка памяти с частотой 2133 МГц ничего не даст. Работать всё будет на частоте 1600 МГц.


Тайминги

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

Тайминги памяти обозначаются группой из трёх или четырёх чисел через тире, например так: 3-4-4-8 или 2-2-2-5 или 17-17-17.
Они описывают скорость чтения, записи и выполнения действия. Четвёртое число указывает на полный цикл выполнения этих операций. Иногда указывают только скорость чтения — CL11 (CAS Latency 11).
Соответственно чем меньше эти числа, тем быстрее память.

На что влияют тайминги? Если кратко — на скорость, с которой считывается информация, и быстроту обмена данными между памятью и процессором. Естественно, это воздействует и на быстроту функционирования компьютера в целом. Чем ниже тайминг, тем выше производительность, тем скорее ЦП получает доступ к банкам памяти.

Какие тайминги лучше? Чем меньше значение тем лучше, причем лучше как в играх, так и в остальных приложениях. Но в повседневной работе и большинстве игр высокие тайминги заметного влияния не оказывают т.к. архитектура современных процессоров подразумевает наличие большого кеша и он не часто обращается к оперативной памяти напрямую. Поэтому эти показатели не играют большой роли в быстродействии. Разницу между 8-8-8-24 и 17-17-17-42 практически нельзя заметить.

В маркировке модуля памяти тайминг может обозначаться буквой после частоты (например: DDR4-2400T или DDR4-2666U). Соответствие буквы значениям таймингов такое:

  • P — 15-15-15
  • R — 16-16-16
  • T — 17-17-17
  • U — 18-18-18
  • V — 19-19-19
  • W — 20-20-20
  • Y — 21-21-21

Расшифровка маркировки

Несколько вариантов для примера:

DDR3 (PC3)
  • PC3-10600U-09-11-B1: [PC3] = DDR3. [10600U] = пиковая скорость передачи 10667Мб/с, эффективная частота 1333 МГц (реальная 667 МГц)
  • PC3L-12800U-11-13-A1: [PC3] = DDR3. [L] = 1.35V. [12800U] = пиковая скорость передачи 12800Мб/с, эффективная частота 1600 МГц (реальная 800 МГц)
DDR4 (PC4)
  • PC4-2400T: [PC4] = DDR4. [2400T] = эффективная частота 2400 МГц + тайминги 17-17-17 (латентность CAS-17).
  • PC4-2666V-R: [PC4] = DDR4. [2666V] = эффективная частота 2666 МГц + тайминги 19-19-19 (CAS-19). R = буферизованная (регистровая)

Что такое многоканальность и зачем она нужна

Современная память отличается высокой пропускной способностью: между процессором и одним модулем ОЗУ передаётся много данных, и для стабильности нужны двухканальные и четырёхканальные режимы — они обеспечивают параллельную работу двух — четырёх модулей памяти. Это называется многоканальностью.

Логичнее всего купить парные модули памяти — две или четыре планки памяти от одного производителя, чтобы оперативка работала стабильно в указанных режимах. Не нужно ставить на материнскую плату сочетание из двух или четырёх разных модулей памяти.

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

Например, если нужно 16 Гбайт, практичнее купить комплект 2×8 Гб. Если необходимо 32 Гб памяти, подойдёт вариант 2×16 Гб или, если ваша материнская плата поддерживает 4-х канальный режим, 4×8 Гб. Во втором случае даже останется запас из двух DIMM-слотов на системной плате, которыми можно в будущем воспользоваться.

Всем привет! Тема сегодняшней публикации — поддержка ECC оперативной памяти: что это такое, как работает данная функция, зависит ли от процессора ее использование на ПК.

Что такое ЕСС память

Аббревиатура происходит от английского названия error correcting code memory, то есть память с коррекцией ошибок кода. Такая ОЗУ распознает и устраняет спонтанно возникающие изменения в битах памяти, которых быть не должно.

Как правило, такая память может исправить изменения в одном бите одного машинного слова. При его чтении будет опознано то же значение, что и было записано, несмотря на возникающие «глюки».

Обычная память, то есть non-ECC, этого делать не умеет.

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

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

Существуют алгоритмы, способные исправлять более одной ошибки, но используются они реже. С технологической точки зрения такая система предполагает использование модулей ОЗУ, в которых на каждые 8 микросхем памяти приходится один компонент, хранящий ЕСС-коды (то есть 8 бит на каждые 64 бита).

Причины появления ошибок в ОЗУ

Главная проблема для любого электронного устройства – невидимые космические лучи, от которых земная атмосфера не защищает должным образом. Элементарные частицы, которые пребывают в этом потоке, способны влиять на работу электроники.серверная ОЗУПод их воздействием физические свойства оперативки могут меняться, что уже ведет к размагничиванию. При смене данных, из единицы (заряженное состояние) на ноль (разряженное) уже появляется искажение.

А так как любой компьютер на самом «глубинном» уровне проводит все вычисления с помощью двоичных кодов, нарушения свойств электронных компонентов и провоцируют ошибки в работе.

Характерно, что чем выше от уровня моря, тем меньше плотность воздуха и соответственно, интенсивнее космическое излучение. Компьютерные системы, которые работают на большой высоте, требуют более эффективной защиты. Советую также почитать «Что такое ОЗУ в компьютере: из чего состоит и для чего служит?»(уже на сайте).

Стоит ли использовать ЕСС память

Объективных причин для использования такой ОЗУ на домашнем ПК нет.

Несмотря на то, что земной диск медленно дрейфует по Космическому океану, покоясь на спинах трех китов, вероятность искажения данных под воздействием вредоносных лучей, на самом-то деле крайне мала. При этом самое страшное, что может случиться при таких неполадках – вылет операционной системы в синий экран.

Впрочем, это может быть действительно страшно – например, в случае, если вы в течение пары часов монтировали видеоролик, забывая сохраняться в процессе, или же у вас последний и решительный бой, от которого зависит судьба клана, в какой-нибудь ММОРПГ.

Такая память работает медленнее обычной – в среднем, на 2-3%, так как для проверки контрольных сумм необходим один дополнительный такт контроллера. Такой режим работы требует больше логических ресурсов.

Как уже сказано выше, в основном такая память почти всегда регистровая (Registered), то есть имеет дополнительный регистр для считывания и хранения двоичных кодов. Существуют модули ECC памяти без регистров (UDIMM), которые можно использовать в домашних ПК.

Однако учтите, что такое удовольствие обойдется дороже, так как цена на такие модули ОЗУ обычно выше. Кроме того, требуется наличие материнской платы, чипсета и процессора (к слову, такие модели есть и у Intel, и у AMD), поддерживающих ЕСС память. Стоят они внезапно тоже, как правило, дороже.

И если вы решили проапгрейдить комп для использования ЕСС памяти, проверьте спецификации упомянутых выше компонентов. Если в описании написано что нет поддержки такого режима, деталь придется менять на более подходящую, что значит дополнительные расходы.

Не исключено, что придется менять и мать, и «камень», и планки оперативки. При сборке нового компьютера несколько проще: можно сразу купить соответствующие компоненты. Однако, на мой взгляд, это уже лишнее – страховка от мнимых сбоев не стоит потери быстродействия.

Также советую на эту тему ознакомиться с публикациями «Влияние тактовой частоты оперативной памяти в компьютере»(уже на блоге) и «Тайминги и частота оперативной памяти: кто важнее и влиятельней?». Буду признателен всем, кто расшарит эту статью в социальных сетях. До завтра!

С уважением, автор блога Андрей Андреев.

Понравилась статья? Поделить с друзьями:
  • Dd игнорировать ошибки чтения
  • Dd wrt ошибки
  • Dcv2 exe ошибка приложения что это
  • Dcscore dll 1c ошибка
  • Dcp l2540dnr ошибка картриджа