null

Выбор конфигурации оперативной памяти для центрального процессора на архитектуре x86-64

Вместо предисловия

К сожалению, некоторая часть людей задействованных в ИТ "ушла" от истоков понимания принципов работы вычислительной техники, выдумывая сказки о необходимости наличия двух планок памяти в канале (один на чтение второй на запись), максимальной набивке каналов модулями памяти меньшего объема (дескать так стопудово быстрее) и прочим несуразным бредом. К сожалению, читать стандарты JEDEC люди не хотят/немогут, а guide's на сервера, где обычно описаны оптимальные конфигурации памяти, им незачем открывать. Это приводит к тому, что компании-потребители выбирают и покупают дорогое неоптимизированное железо, и даже в области HPC(!!!). 

В заметке я опишу один из аспектов по работе оперативной памяти и выбору конфигурации оперативной памяти.

Выбор конфигурации

При увеличении количества модулей и рангов регистровой оперативной памяти RDIMMна канал возможно дискретное снижение частоты синхронизации за счет увеличения электрической нагрузки создаваемой модулями памяти на контроллер. 
Для оценки применения оперативной памяти для процессора необходимо получить такие характеристики центрального процессора как максимальное число каналов (K), максимальная частота оперативной памяти (Tm), максимальная пропускная способность памяти (C).

Так же не следует забывать про такие характеристики ка CAS latency (CL) — характеристика количества тактов от момента запроса на запись/чтение данных в память до момента передачи данных (должно быть минимальным).

 
Исходя из требуемого объема оперативной памяти на процессор, определяется требуемый объем оперативной памяти на канал. Разделив максимальную пропускную способность памяти из характеристик процессора на количество каналов получаем максимальную пропускную способность на канал.
Ck=C/K
Максимальная пропускная способность модуля регистровой памяти определяется как ширина канала данных (D) модуля умноженная на рабочую частоту (Tm).
PC=D*Tm
 

Выбранная память должна соответствовать условиям

  1. PC>=Ck,
  2. CL→ min
  3. рабочая частота не должна быть понижена за счет увеличения нагрузки.
В этом случае в связке элементов системы дорогостоящий процессор/дешевая память, память не будет являться узким местом вычислительной системы, и потенциал процессора будет соответствовать  работе модуля/модулей памяти в мультиканальном режиме.
 

Пример оценки из реальной жизни

Например, рассмотрим процессор Intel® Xeon® Processor E5-2667 v4
DDR4 1600/1866/2133/2400
Макс. число каналов памяти 4
Макс. пропускная способность памяти 76,8 GB/s.
Требование к памяти на процессор определяется из постановки задачи в двупроцессорной конфигурации сервера с центральными процессорами Intel® Xeon® Processor E5-2667 v4:
  • 128 Гб DDR4 ECC 2400MHz
На один процессор в двупроцессорной системе получаем 128/2 = 64ГБ.
В перерасчете на канал 64/4 = 16 ГБ.
 

Возможные варианты реализации:

  1. 4 ГБ — неудовлетворяет условиям установки четырех модулей в канал. Максимальное количество слотов в канале на выбранных серверных платформах— три.
  2. 8ГБ — 2 модуля на канал
    Dell DDR4 PC4-19200 • Single Ranked • x8 based • Registered • ECC • DDR4-2400 • 1.2V 
  3. 16 ГБ — 1 модуль на канал
    Dell DDR4 PC4-19200 • Dual Ranked • x8 based • Registered • ECC • DDR4-2400 • 1.2V
    Supermicro – CT16G4RFD424A DDR4 PC4-19200 • Dual Ranked • x4 based • Registered • ECC • DDR4-2400 • 1.2V 
 
Рассмотренные возможные варианты оперативной памяти, при сохранении рабочей частоты имеют одинаковые характеристики скорости передачи данных (PC).
Расчет максимальной пропускной способности на канал процессора соответствует рассмотренным модулям оперативной памяти и удовлетворяет условию PC>=Ck
Ck=C/K=76.8/4=19,2
 
Но, в случае использования нескольких модулей оперативной памяти на канал,  частота синхронизации будет снижена за счет увеличения электрической нагрузки создаваемой модулями памяти.
Так при использовании нескольких модулей и соответствующему снижении частоты синхронизации контроллером памяти в центральном процессоре пропускная способность будет ниже.
PC=D*Tm=8*2.1333=17.064
Условие PC>=Ck не выполнено.
 

Выводы по приведенному расчету для конкретного примера.:

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

Общий вывод

В спецификациях и guide's на сервера приличных производителей указаны рекомендации по оптимальному использованию памяти в этих серверах, и требуется обращать внимание на описанную информацию до момента покупки и бездумной конфигурации системы.

В противном случае, брать систему на тестирование перед покупкой.

Пример из Dell PowerEdge R730 and R730xd Technical Guide раздела Memory configurations таблицы Memory populations and operating frequencies

Популяция памяти, пример из Dell PowerEdge R730 and R730xd Technical Guide

Так при использовании трех модулей в канале регистровой двуранковой или одноранковой поддерживаемой производителем в этой модели сервера памяти частота(вернее, милионы транзакций в секунду) будет снижена с 2133 до 1866 Mhz (MT/s)