Акселерация памяти

Инициативы Samsung, призванные улучшить про­из­во­ди­тель­ность опе­ра­тив­ной па­мя­ти, со­звуч­ны со­вре­мен­ным кон­цеп­ци­ям вы­пол­нять об­ра­бот­ку дан­ных в мес­тах их хра­не­ния. Мо­ду­ли Ac­ce­le­ra­tion DIMM (AXDIMM) мож­но рас­смат­ри­вать как один из при­ме­ров де­цен­тра­ли­за­ции вы­чис­ле­ний. Со­глас­но пресс-ре­ли­зу Sam­sung, уст­рой­ст­во обо­ру­ду­ет­ся ав­то­ном­ным про­цес­со­ром (по дру­гим дан­ным — про­грам­ми­ру­е­мой ло­ги­кой Xilinx Zynq), спо­соб­ным вы­пол­нять об­ра­бот­ку со­дер­жи­мо­го DRAM в пре­де­лах мо­ду­ля. По за­мыс­лу раз­ра­бот­чи­ков это дол­ж­но умень­шить тра­фик меж­ду цен­траль­ным про­цес­со­ром и опе­ра­тив­ной па­мя­тью и, в те­о­рии, — по­вы­сить про­из­во­ди­тель­ность и энер­го­эф­фек­тив­ность вы­чис­ли­тель­ных плат­форм. Раз­би­ра­ем­ся, что в рас­прост­ра­нен­ном анон­се де­кла­ра­ция о на­ме­ре­ни­ях, а что мо­жет стать ос­но­вой для эво­лю­ции DIMM-мо­ду­лей.

В модуле Acceleration DIMM локальное вычислительное устройство входит в состав буферной микросхемы, ко­то­рая от­де­ля­ет его внутреннюю локальную шину от шины оперативной памяти. Эта микросхема не­об­хо­ди­ма для ус­той­чи­вой пе­ре­да­чи ин­фор­ма­ции, с учетом нагрузочной способности фор­ми­ро­ва­те­лей и других элек­т­ро­фи­зи­че­ских ха­рак­те­рис­тик сигнальных цепей. Заметим, что у Samsung есть и аль­тер­на­тив­ные ре­ше­ния — раз­ме­ще­ние вы­чис­ли­тель­ных мо­ду­лей на крис­тал­ле DRAM или в составе мно­го­крис­таль­ных конст­рук­ций.

Сравнение концепции Acceleration DIMM с классической организацией модуля памяти в представлении компании Samsung

 

Судя по представленному компанией Samsung слайду, ускорение обмена с оперативной памятью возможно за счет ор­га­ни­за­ции па­рал­лель­ной обработки данных, использующей наличие на модуле DIMM двух фи­зи­че­ских банков — так называемых ранков. Согласно блок-схеме AXDIMM Data Movement, каждый из ранков под­клю­чен к от­дель­но­му вы­чис­ли­те­лю (AXB). В соответствии с параметрами, принятыми в индустрии это долж­но оз­на­чать наличие 128-бит­ной ло­каль­ной ши­ны данных в пределах модуля. Для совместимости с сис­тем­ной пла­той используется клас­си­че­ская 64-бит­ная ши­на, отделенная от локальной шины модуля уст­рой­ст­вом со­пря­же­ния (PHY).

Иллюстрация слева (Normal Data Movement) показывает организацию обычного модуля, где линии данных обо­их ран­ков под­клю­че­ны к буферу (Buffer) и поразрядно объединяются в общую 64-битную шину, на которой в каж­дый мо­мент вре­ме­ни об­мен мо­жет происходить только с одним из ранков.

Иллюстрация справа (AXDIMM SW Stack) показывает организацию программного стека для управления вы­чис­ли­те­ля­ми. На ди­а­грам­ме можно выделить приложение-клиент, использующее AXDIMM Python API, биб­ли­о­те­ку функ­ций (AX­DIMM Lib) и драй­вер уст­рой­ст­ва (AX­DIMM De­vice Driver). Логично предположить, что опе­ра­ция должна состоять из трех фаз:

  1. CPU отправляет модулю DIMM команду, указывая тип операции и расположение обрабатываемого блока.
  2. Модуль выполняет обработку.
  3. Модуль сообщает CPU о завершении обработки и готовности данных.

К сожалению, о физическом методе доставки команд и статусной информации не сообщается. Можно пред­по­ла­гать два ва­ри­ан­та реализации: либо по шине DRAM, либо с использованием управляющей шины System Man­age­ment Bus. Воз­мо­жен и уп­ро­щен­ный вариант, допускающий лишь тривиальные виды вычислений — выполнение внутренним вычислителем модуля операций над перемещаемыми данными непосредственно во время циклов чтения или записи памяти, инициируемых центральным процессором.

О разрядности каналов и модулей

В модулях памяти DDR5, к появлению которых уже всё готово, 64-битная шина данных разделяется на два от­но­си­те­ль­но не­за­ви­си­мых 32-битных канала, иногда называемые sub channels. Такая «двух­ка­наль­ность в пре­де­лах мо­ду­ля» при­зва­на по­вы­сить эф­фек­тив­ность работы памяти при обращении к фраг­мен­ти­ро­ван­ным дан­ным. На слайдах Sam­sung показан консервативный вариант, когда разрядности каналов и модулей со­впа­да­ют и равны 64 бита. В свою оче­редь, для DDR5 следует учитывать наличие sub channels, помня о воз­мож­но­с­ти разночтений.

Примечание. Разрядности шин указаны без учета ECC.

Архитектура DRAM в свете новаций

Набор сигналов, используемый модулями оперативной памяти, жестко определяется схе­мо­тех­ни­кой DRAM. Ини­ци­а­ти­вы, связанные с подключением к такой шине устройств, не являющихся DRAM, вызывают большое ко­ли­че­ст­во не­у­доб­ных вопросов. В частности, не предусмотрен стандартный протокол когерентности кэш-па­мя­ти, что в дан­ном слу­чае до­ста­точ­но кри­тич­но, так как информация внутри модуля мо­ди­фи­ци­ру­ет­ся внут­рен­ним акселератором и, если не принять специальных мер, CPU может использовать устаревшую ко­пию этой информации из внутренней кэш-памяти, «не замечая» результатов работы акселератора, ос­та­ю­щих­ся вну­три модуля DIMM.

Логично предположить, что решением станет программная очистка кэш-памяти. В этой связи концепцию com­putational storage device на основе протокола CXL можно считать примером более основательного под­хо­да, устраняющим данное про­ти­во­ре­чие на аппаратном уровне.

Многоканальный доступ, предполагающий отображение модулей в адресном пространстве платформы с ис­поль­зо­ва­ни­ем че­ре­до­ва­ния (интерливинга) на первый взгляд невозможен для AXDIMM, ведь акселератор, об­ра­ба­ты­ва­ю­щий блок ин­фор­ма­ции дол­жен иметь доступ ко всему блоку, а если один модуль DIMM хранит чет­ные фрагменты, а вто­рой — не­чет­ные, то это условие не соблюдается. Впрочем, для алгоритмов, до­пус­ка­ю­щих раздельную обработку фраг­мен­тов, — это не пре­пят­ст­вие.

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

 

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