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

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

Основное отличия оперативной памяти для серверов в том, что последняя должна поддерживать технологию 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 для лучшего теплоотвода внутри корпуса сервера.