Буфер памяти – основа технологии LRDIMM
Регистровые модули DIMM подключаются напрямую к шине, соединенной с контроллерами памяти процессора. В режиме работы с модулями DIMM контроллер памяти управляет каждой микросхемой DRAM, подключенной к управляющей линии модуля. И чем больше этих микросхем в модуле памяти (так называемые ранги), тем больше электрическая нагрузка на контроллер. Ранг – количество наборов микросхем, подключенных к одной линии выбора микросхемы. Ранг является характеристикой модуля памяти. Ниже показаны двух- и четырехранговый модули памяти.
Двухранговый модуль – это два логических модуля, распаянных на печатной плате и пользующихся поочередно одним и тем же физическим каналом передачи данных. Четырехранговый – аналогичное решение, но уже в четырехкратном масштабе.
RDIMM – это регистровый модуль памяти. Наименование «регистровый» означает, что модули этого типа имеют буферизирующий регистр, который используется для буферизации адресных и командных сигналов.
В случае LRDIMM к шине добавлена специальная микросхема буфера памяти, прикрепленная к каждому модулю. При работе контроллера с модулями LRDIMM управление сводится к отправке пакетной информации (данные и команды) в этот буфер модуля – iMB (Isolation Memory Buffer). В отличие от модулей RDIMM, буферизуются не только сигналы управления, но и данные.
Буфер управляет всеми операциями чтения и записи в DRAM. Через него проходят сигналы данных и команд/адресов – это посредник между контроллером памяти (Host Memory Controller) и DRAM.
При добавлении новых микросхем DRAM (рангов) на регистровые модули DIMM электрическая нагрузка модулей памяти повышается. С увеличением количества рангов на канал памяти снижается быстродействие памяти – скорость её работы. Для модулей RDIMM оптимальной является установка не более двух модулей DIMM на канал, поскольку при использовании третьего банка скорость работы памяти снижается. Канал – это «путь» от модуля памяти к контроллеру, по которому передаются считываемые и записываемые данные.
Модули LRDIMM не имеют таких ограничений, потому что используют микросхемы буфера памяти. При работе с LRDIMM контроллеры памяти в процессорах функционируют в последовательном режиме. Команды и данные передаются в буфер памяти, который управляет всеми операциями чтения и записи в DRAM.
Умножение рангов
Модули LRDIMM значительно снижают электрическую нагрузку микросхем DRAM на шину данных, а благодаря так называемому умножению рангов (Rank Multiplication). Физические ранги DRAM выглядят для контроллера памяти как один логический ранг большей емкости. Ниже показано умножение рангов для трех LRDIMM на канал памяти.
Умножение рангов можно отключить, установить в 2:1 или 4:1 – до 8 физических рангов на LRDIMM. Например, четырехранговые модули LRDIMM преобразуются для контроллера памяти в двухранговые. То есть четырехранговый модуль контроллер воспринимает как двухранговый, а восьмиранговый – как четырехранговый. За счет этого нагрузка многорангового модуля становится в два раза ниже. В результате сервер может поддерживать модули LRDIMM с повышенными скоростями по сравнению с модулями RDIMM.
Уменьшение электрической нагрузки позволяет системе с LRDIMM работать с большей скоростью (тактовой частотой памяти) при той же емкости, или же увеличить емкость ОЗУ, сохранив ту же скорость, что в конфигурации с RDIMM.
Таким образом, на практике LRDIMM можно использовать для увеличения скорости работы памяти и/или увеличения ее емкости. Модули LRDIMM обеспечивают более высокие скорости при большей емкости для пользователей, требованиям которых не удовлетворяют двухранговые модули RDIMM емкостью 16 Гбайт или четырехранговые модули RDIMM емкостью 32 Гбайт.
Например, двух процессорный сервер с двадцатью четырьмя разъемами памяти можно сконфигурировать следующим образом:
- Модули LRDIMM: 32 Гбайта x 24 = 768 Гбайт с частотой 1066 МГц и при напряжении 1,5В и 1,35В.
- Модули RDIMM: 32 Гбайт x 16 = 512 Гбайт с частотой 800 МГц и при напряжении 1,5В.
Еще один пример: Процессоры Intel Xeon E5 v3 содержат четырехканальный контроллер памяти и поддерживают до восьми логических рангов на канал. Всего можно установить максимум восемь четырехранговых модулей по 32 Гбайта на каждый процессор (по два на канал). Емкость памяти на двухпроцессорной плате в этом случае не может превышать 512 Гбайт. Одноранговых или двухранговых модулей можно поставить до трех на канал, но они будут иметь меньшую емкость.
Если использовать четырехранговые модули LRDIMM, которые контроллер памяти воспринимает как двухранговые, то можно установить до 12 модулей по 32 Гбайта на процессор – всего 768 Гбайт памяти, работающей на более высокой частоте. Сейчас появились LRDIMM на 64 и 128 Гигабайт, это позволяет получить фантастический объем памяти на сервере — до 1,5-2Тб!
Заметим, что комбинировать LRDIMM и DIMM нельзя – система просто не запустится.
Особенности LRDIMM
Кроме увеличения емкости оперативной памяти и её быстродействия архитектура LRDIMM обладает рядом других полезных особенностей. iMB, буфер памяти LRDIMM, поддерживает средства тестирования DRAM и LRDIMM, включая прозрачный режим и MemBIST (Memory Built-In Self-Test), VREF (voltage reference) для шины данных (DQ) и команд/адресов (CA), проверку четности для команд, встроенное управление, аналогичное регистру 32882 для RDIMM, опциональный интерфейс SMBus (Serial Management Bus) для регистров конфигурации и состояния LRDIMM, а также интегрированный температурный датчик.
Прозрачный режим (Transparent Mode): используется для тестирования модуля памяти. Модуль работает просто как буфер и передает сигналы и данные на микросхемы DRAM.
MemBIST: для инициализации DRAM и тестирования компонентов память LRDIMM поддерживает функцию MemBIST (Memory Built-In-Self Test). Она служит для полного тестирования DRAM. Тестирование выполняется с рабочей частотой, используется доступ по шине команд/адресов или по SMBus.
VREF: модули LRDIMM могут использовать внешние параметры напряжения для данных (VREFDQ) и команд/адресов (VREFCA) или внутренние, из буфера памяти. Если VREF задается буфером памяти, то уровнем напряжения может управлять хост – контроллер памяти. Для этого используются регистры конфигурации буфера памяти. Программируемые уровни напряжения позволяют поставщикам модулей памяти и системных компонентов гарантировать надежность и устойчивую работу интерфейсов памяти LRDIMM.
Проверка четности: чтобы выявить на шине команд/адресов искаженные команды, для входящих команд в буфере памяти выполняется проверка четности. При ошибке генерируется сигнал ERROUT_n.
Интерфейс SMBus: буфер памяти поддерживает управление по дополнительному последовательному каналу (out-of-band serial management bus). Оно позволяет записывать и читать данные из регистров состояния.
Температурный датчик: он встроен в буфер памяти и обновляется 8 раз в секунду. Обращаться к нему можно через интерфейс SMBus. Для передачи сообщения контроллеру памяти о высокой температуре можно использовать пин EVENT_n буфера.
Как «разогнать» LRDIMM?
Небуферизированная шина данных остается слабым звеном системы памяти RDIMM. Например, четырехранговый модуль DDR3 RDIMM – это четыре электрических нагрузки на шине данных. Поэтому максимальная скорость четырехрангового DDR3 RDIMM – 1066 MT/с (млн. транзакций в сек) в конфигурации «один DIMM на канал» (один DPC) и 800 MT/с в конфигурации «два DIMM на канал» (два DPC). В LRDIMM буфер использует и шину данных, и шину команд/адресов. Это позволяет увеличить скорость передачи данных и плотность памяти.
Ниже показана диаграмма шины данных четырехрангового модуля RDIMM в конфигурации «два DIMM на канал». Она демонстрирует, что при наличии 8 электрических нагрузок на шине данных целостность сигнала в канале памяти серьезно деградирует, что ограничивает частоту. При восьми электрических нагрузках и 1333 MT/с максимальное «окно данных» (data eye) на шине сокращается до 212 пс в идеальной точке VREF и не превышает 115 мВ при максимальном напряжении. «Окно данных» – это период времени, когда контроллер может считать данные, и этот период сокращается при росте частоты, на которой работает память.
Эффект сжатия окна данных означает, что два четырехранговых модуля RDIMM в конфигурации «два DIMM на канал» для работы на скорости 1333 MT/с не подходят. Приходится выбирать компромисс между емкостью памяти и её скоростью.
ниже показана диаграмма окна данных в случае двух четырехранговых модулей LRDIMM в конфигурации «два DIMM на канал». Электрическая нагрузка 8 физических рангов DRAM заменена двумя электрическими нагрузками буфера памяти. Целостность сигнала значительно улучшилась. Хотя условия аналогичны предыдущей иллюстрации, окно данных увеличилось с 212 до 520 пс, а его максимальная высота выросла со 115 до 327 мВ.
Улучшение целостности сигнала означает, что LRDIMM может работать на скорости 1333 MT/с и выше, даже при нескольких модулях LRDIMM на канал. Не нужно будет выбирать между емкостью и пропускной способностью памяти.
Немного о ёмкости системной памяти
Одно из главных преимуществ LRDIMM – это возможность значительно увеличить емкость ОЗУ, не жертвуя скоростью работы памяти. Благодаря электрической изоляции DRAM от шины данных можно добавлять к каждому DIMM дополнительные ранги при сохранении целостности сигнала, устанавливать на каждый канал памяти дополнительные микросхемы DIMM. Распространенный вариант – LRDIMM емкостью 32 Гбайта. Это 4Rx4 модуля по 4 Гбайта, DDP (dual-die package) DRAM. Поскольку каждый LRDIMM представляет для контроллера памяти одну электрическую нагрузку, можно также установить больше DIMM на канал.
Возьмем, к примеру, двухпроцессорный сервер с тремя разъемами памяти DIMM на канал, четырьмя каналами на ЦП. С помощью LRDIMM емкость ОЗУ у него можно увеличить по сравнению с RDIMM в два-три раза. Ниже приведены максимальные емкости RDIMM и LRDIMM для различных скоростей и напряжений.
Например, для памяти 1,5В DDR3 при скорости 800 MT/с у системы с полным комплектом RDIMM емкость ОЗУ при использовании 16GB 2Rx4 RDIMM на канал может достигать 384 Гбайт. Применение модулей LRDIMM позволяет удвоить эту емкость – до 768 Гбайт. Ограничения системной платы (обычно это 8 рангов DRAM на канал) преодолевается умножением рангов LRDIMM. В данном случае получается 12 физических рангов на канал.
При скорости 1066 или 1333 MT/с ограничения целостности сигнала не позволяют использовать в конфигурации с RDIMM более трех DIMM на канал. Для памяти 1,5В DDR3 с быстродействием 1066 или 1333 MT/с максимальная емкость ОЗУ с RDIMM будет 256 Гбайт. У LRDIMM нет таких ограничений, и можно установить три DIMM на канал при 1066 MT/с (или 1333 MT/с). При этом общая емкость ОЗУ составит 768 Гбайта, то есть втрое больше. Для памяти 1,35В DDR3L со скоростью 1333 MT/с преимущество LRDIMM еще значительнее.
А что с энергопотреблением LRDIMM?
Модули памяти LRDIMM не только позволяют увеличить емкость оперативной памяти севера, но и сделать это с минимальными потерями энергоэффективности. Хотя буфер памяти в LRDIMM в конфигурации «один DIMM на канал» потребляет больше, чем RDIMM в той же конфигурации, в конфигурациях высокой плотности – 2 и 3 DIMM на канал – разница нивелируется.
Ниже показано нормализованное энергопотребление на RDIMM или LRDIMM в конфигурациях с одним и с двумя DIMM на канал при различном быстродействии памяти. Поскольку фактическая потребляемая мощность зависит от плотности и используемой технологии DRAM, относительная мощность показана для модулей LRDIMM и RDIMM одного поколения DRAM. Это модули 4Rx4 емкостью 32 Гбайта. Мощность модуля RDIMM при 800 MT/с принята за единицу. Для измерения использовались стандартные тесты с 50% операция записи и 50% операций чтения.
При 800 MT/с в конфигурации «один DIMM на канал» LRDIMM потребляет на 17% больше электроэнергии, чем RDIMM, но в конфигурации «два DIMM на канал» разница составляет всего 3%. При 1066 MT/с это 15%, но в конфигурации «два DIMM на канал» разница также невелика. При 1333 MT/с потребление мощности на LRDIMM в конфигурации «два DIMM на канал» на 28% меньше, чем в конфигурации «один DIMM на канал».
Ниже представлены аналогичные результаты для 100% чтения. Так как LRDIMM используется в основном в системах с высокой плотностью памяти, больший интерес представляет потребление на LRDIMM в конфигурации «два DIMM на канал». Потерь по энергоэффективности в этом случае практически нет.
Большая часть платформ Intel E5 может поддерживать два модуля LRDIMM на канал при частоте 1333 МГц и напряжении 1,5В и три модуля LRDIMM на канал при 1066 МГц, что позволяет использовать конфигурации с двенадцатью модулями LRDIMM на процессор; при использовании четырехранговых модулей RDIMM задействуются только 8 разъемов на процессор и максимальная скорость составляет 800 МГц.
Нужны ли модули LRDIMM?
Как узнать, нужно ли вообще использовать модули LRDIMM? Определите скорость передачи данных памяти для вашего сервера (см. документы вендора, касающиеся производительности). Если вам необходимо более 8 x 32 Гбайта на процессор, то нужны модули LRDIMM, в противном случае достаточно будет четырехранговых модулей RDIMM емкостью 32 Гбайта с частотой 800 МГц. Если необходимы частоты 1066 МГц или 1333 МГц, следует использовать только модули LRDIMM.
Ниже показаны ограничения по рангам и максимальным частотам функционирования памяти на примере двухпроцессорных материнских плат Supermicro X9 (LGA2011) и X10 (LGA2011-3) серий при установке процессоров Intel Xeon E5 2600 серии разных поколений.
Supermicro X10 Series + E5-2600 v3 (Haswell)
Двухпроцессорные платы Supermicro X10 Series не поддерживают небуферизированные модули памяти (UDIMM). Очевидно, что для достижения максимальной емкости оперативной памяти и максимальной скорости ее функционирования необходимы модули типа LRDIMM DDR4.
Hynix HMTA8GL7AHR4C-PBM2: Оперативная память для сервера, емкость памяти: 64 Гбайта, пропускная способность: PC12800, тип: DDR3 LRDIMM.
Kingston KVR16LL114/32 – модуль памяти DDR3L, емкость 32 Гбайта, форм-фактор LRDIMM, 240-контактный, частота 1600 МГц, поддержка ECC, CAS Latency (CL): 11. Средняя цена такого модуля – 28 тыс. руб.
Модуль памяти Samsung DDR4 2133 Registered ECC LRDIMM 32Gb. Средняя цена – около 22 тыс. руб. Это 288-контактный модуль LRDIMM с частотой 2133 МГц. Есть поддержка ECC, CAS Latency (CL): 15.
Модуль памяти Samsung 32GB 288-Pin DDR4 SDRAM DDR4 2133 (PC4 17000) Server Memory Model M386A4G40DM0-CPB, Cas Latency 15.
В целом модули LRDIMM позволяют до 35% повысить пропускную способность оперативной памяти по сравнению со стандартными модулями RDIMM.
Наибольший эффект применение LRDIMM даст для приложений, интенсивно использующих оперативную память, облачных вычислений и задач HPC (high-performance computing), когда надо загружать в ОЗУ и обрабатывать большие объемы данных. В виртуальной среде это дает возможность увеличить «плотность» виртуальных машин. В дата-центрах – повысить энергоэффективность и уменьшить TCO (Total Cost of Ownership).
Альтернатива? LRDIMM на 128Гб!
Технология не стоит на месте и Samsung представила новые модули памяти LRDIMM емкостью 128 Гбайт. В них применяется технология упаковки микросхем под названием TSV (Through Silicon Via) – чипы DRAM соединяются вертикально с помощью электродов, проходящих через микроскопические отверстия, как они сделали на 3D VNAND.
Память TSV DDR4 DRAM в модулях 128GB RDIMM считается настоящим технологическим прорывом. Ее преимущества – удвоенная по сравнению с прежними стандартными модулями емкость, высокая скорость и эффективность. Благодаря 20-нм техпроцессу у памяти 128GB TSV DDR4 на 50% снижено энергопотребление по сравнения с модулями 64GB LRDIMM. Остается прояснить цену вопроса.
Практическая польза
128Гб в сервер с 8 местами под память можно собрать на DDR3 RDIMM по 16Гбх8, то есть 9000 рублей * 8 = 72000 рублей. На LRDIMM – это две планки на 64Гб по 30500р каждая, то есть затраты составят 61000 рублей, что дешевле традиционного решения. Более того, теперь нет особого смысла переплачивать за материнские платы с 16 слотами памяти – 99% серверов можно собрать на 8-слотовых платах. Это выходит 512Гб памяти на стандартную X9DRL.
Пока крупные DDR4 LRDIMM на 64Гб стоят по 75000р за штуку (модуль памяти 64GB PC17000 LR M386A8K40BM1-CPB0Q SAMSUNG в ЭЛКО). Если ставить по 32Гб, то цена LRDIMM DDR4 в 21000р за штуку – это 84000р за 128Гб, что немногим дороже обычной регистровой памяти.
Всё это позволяет нам в HOSTKEY сдавать крупные выделенные сервера ещё дешевле, снижать цену на виртуальные машины и делать частные кластеры ещё надёжнее и за меньшие деньги.
Немного о HOSTKEY
С 2008 года мы сдаём выделенные и виртуальные сервера в аренду, предоставляем услуги размещения серверов в 4 датацентрах Москвы, включая два Тиер-III сертифицированных ЦОД. Мы специализируемся на крупных выделенных серверах и создании частных облаков и кластеров для наших клиентов на их основе.
Для наших читателей у нас есть горячее предложение: Сервера в наличии на базе суперкомпьютеров Т-Платформы и процессоров Intel Xeon E5-2630v2 со скидкой 15% до конца декабря (или пока они не закончатся) при использовании промокода TMW5U0S8SE
Например, для сравнения:
– 2xE5-2630v2 (12x2,6 GHz)/64Gb RAM/1x1Tb SSD+1x1Tb 7,2K HDD = 17000р в месяц, со скидкой 14450.
– 2xE5-2630v2 (12x2,6 GHz)/128Gb RAM/1x2Tb SSD+1x2Tb 7,2K HDD = 25700р в месяц, со скидкой 21800
– 2xE5-2630v2 (12x2,6 GHz)/256Gb RAM/2х2Tb Samsung SSD = 36500р в месяц, со скидкой 31000
– 2xE5-2630v2 (12x2,6 GHz)/32Gb RAM/2х600Gb SAS 10K = 13650р в месяц, со скидкой 11600р
Все цены с НДС, конфигурация возможна практически любая.
Все сервера подключены на гигабитном канале, лимит трафика 10Тб без ограничений. К каждому выделенному серверу предоставляется удаленный доступ через IPMI, возможна организация VLAN на скорости до 10Gbps.
Комментарии (17)
FishDude
01.12.2015 18:06Хочу задать глупый вопрос. И задам:
Может кто-то привести пример, какого рода расчетами обычно заняты такие сервера-монстры?!
Но не выдуманный/гипотетический, пожалуйста, а реальный — кто что видел своими глазами?ULP
01.12.2015 18:13+4В нашем случае это виртуализация и 20 ядерные процессоры. У нас например метрика для KVM виртуалок 10 гиг памяти на физическое ядро. Т.е. если ставим 12 ядер, надо 128Гб памяти. Теперь мы можем поставить в тот же сервер 40 физических ядер и 512Гб памяти. Было 4 сервера, стал один. 3 сервера в минус — 90000р в год экономии только на услугах ЦОД… Или поставить один проц на 20 ядер и на нем сделать 256Гб памяти. выгодно и пользователям дешевле выходит.
kekekeks
01.12.2015 19:41-2выгодно и пользователям дешевле выходит
Пользователи тормозную память получают, а так вам выгоднее, да.ULP
01.12.2015 20:29память работает однако быстрее чем 16Гб планки вставленные в 16 слотовую мать — скорость выше или так же. почитайте статью выше, LRDIMM работают так же или быстрее на больших объемах.
Botkin
02.12.2015 12:30+1Какой у вас коэффициент виртуализации получается? Количество «виртуальных ядер», выделенных виртуальным машинам / Количество «логических ядер», которых 20
(Покуда 20-ядерных процессоров пока в природе не встречал, предположу, что речь идёт о 10-ядерных + HT.)ULP
02.12.2015 15:08да, на 20 ядер только ожидаются. Пока из наличия:
Процессор Intel Xeon E5-2699 v3 OEM Socket 2011-3, 18-ядерный, 2300 МГц, Haswell-EP, Кэш L2 — 4608 Кб, Кэш L3 — 46080 Кб, 22 нм, 145 Вт за 340000р.
Процессор Intel Xeon E5-2690 v3 OEM более доступен, Socket 2011-3, 12-ядерный, 2600 МГц, Haswell-EP, Кэш L2 — 3072 Кб, Кэш L3 — 30720 Кб, 22 нм, 135 Вт за 15000р
Завтра кстати выдадим клиенту сервер с парой E5-2698v3, это 32 ядра. Его альтернатива была 4-х процессорная машина на Intel Xeon E5-4620 v2 OEM (Socket 2011, 8-ядерный, 2600 МГц, Ivy Bridge-EP, Кэш L2 — 2048 Кб, Кэш L3 — 20480 Кб, 22 нм, 95 Вт) за те же деньги. Вероятно клиенту нужно что-то рендерить.Botkin
02.12.2015 15:58Могу ли я таки узнать коэффициент виртуализации в типичной вашей среде при котором вы применяете правило «10 Гб на ядро»?
ULP
02.12.2015 18:25мы обычно считаем от другого. норматив звучит так — сколько памяти надо поставить на 12 ядерную машину что бы процессоры не были загруженны более чем на 50% в обычном режиме и сколько емкости на SSD дисках должно быть в ней. Сейчас это порядка 128-196Гб, около 80-90 виртуалок на ноде работают одновременно. Но это машины не одного клиента, по этому с производительностью по процессору все ровно. При перегрузках — живая миграция на менее занятую ноду.
Есть еще продукт «виртуальные выделенные сервера», там через проксмокс мы просто режем 1 к 1. Но цена выходит уже другая за ядро.
Suncheez
01.12.2015 19:51+2Обсчёт данных геологоразведки, проектирование/планирование работ — 18 нод в кластере, по 128ГБ памяти в каждой, плюс стойка с винтами на 3ПБ в сумме.
Если в каждую ноду засунуть х4 памяти, то хранилище будет требовать меньше замен винтов и дольше проживёт.
vanxant
01.12.2015 22:34+5Базы данных, например, начинают очень сильно тормозить, когда индексы перестают влезать в ОЗУ. Нагрузка на Iops-ы возрастает на порядки. Распараллеливание СУБД по нескольким серверам (репликация, партиционирование, и т.п.) — путь сложный: геморроя много, а эффект далеко не линейный по затраченным деньгам (железо + доработка софта + обслуживание).
С другой стороны, если удается запихнуть основную, «рабочую» часть данных целиком в ОЗУ, то скорость чтения из базы улетает в космос, а СХД работает только на запись.
Eternalko
02.12.2015 01:28Нам к примеру нужно обрабатывать 1М событий (JSON) в секунду и писать в базу. Ну и потом как-то на эти запросы отвечать. Чуть-чуть больше памяти немного помогает процессу, да.
0xd34df00d
02.12.2015 17:51Огромные языковые модели и in-memory-индексы для natural language processing. Сотку гигабайт памяти один инстанс отъедает только так.
DustCn
Непонятно что будет с латентностью памяти при появлении промежуточного регистра на шине данных. Насколько я понимаю она несколько ухудшится, вопрос в том — как сильно…
kekekeks
В любом случае под разного рода кэши использовать всяко лучше чем SSD.
ULP
сейчас есть варианты с m.2 PCIe SSD, но если бюджет не проблема — то собрать сервер с 512Гб памяти и держать все индексы/справочники в ramdisk стало проще. раньше это было нетривиальной задачей на ксеонах серии Е5.