Insyde Software обеспечит поддержку масштабируемых систем

25 Июл 2017

Insyde Software обеспечит поддержку масштабируемых систем

Стремительное увеличение количества вычислительных ядер, а также пе­ре­нос ряда экстремальных решений, ранее характерных толь­ко для спе­ци­а­ли­зи­ро­ван­ных сопроцессоров-ускорителей Xeon Phi в мир цен­т­раль­ных процессоров, потребовали ра­ди­каль­ных из­ме­не­ний в ар­хи­те­к­ту­ре низ­коу­ров­не­во­го про­г­рам­мно­го обес­пе­че­ния. Под­твер­ж­де­ни­ем то­му анонс про­дук­та от Insyde Soft­ware для мас­шта­би­ру­емых сис­тем. Про­ана­ли­зи­руем ключевые свойства вычислительных платформ на основе Intel Xeon Scalable Processors, а так­же Intel Bootable Xeon Phi Processors, потребовавшие модернизации firmware. В центре внимания технологии Fabric on pack­age и Memory on package, в том числе связанные с ними системные объекты UEFI и ACPI.

Два вида firmware

Сегодня многие системные платы оборудованы дополнительным процессором-микроконтроллером Board Mana­ge­ment Controller (BMC) выполняющим собственное встроенное программное обеспечение.

Контроллер способен функционировать в режиме «дежурного питания» при отключенном центральном про­цес­со­ре, реализуя ряд сервисных функций. Этот факт нашел свое отражение в структуре низкоуровневого про­грам­мно­го обеспечения Insyde Software. Разработка представлена в виде двух обособленных модулей: несколько ста­ро­мод­ным термином BIOS обозначено UEFI firmware, исполняемое центральным процессором, в свою очередь Sys­tem Management Firmware включает программное обеспечение для BMC.

Mesh: топология на основе ячеек

Одним из интересных решений Intel Xeon Scalable Processors является интерконнект вычислительных ядер на ос­но­ве сети ячеек 2D mesh.

Блок-схема центрального процессора на основе mesh-топологии
Рис 1. Блок-схема центрального процессора на основе mesh-топологии
(эта
и три последующие иллюстрации из документа Knights Landing Intel Xeon Phi CPU:
Path to Parallelism with General Purpose Programming, Avinash
Sodani)

Отметим, что каждая ячейка сети (Рис 1), определяемая термином Tile, может содержать более одного про­цес­сор­но­го ядра, в типовом случае два. Допускается разделение сети на кластеры, вместе с тем, принцип такого раз­де­ле­ния на основе технологии Fabric on package существенно отличается от топологии Cluster-on-Die и за­слу­жи­ва­ет от­дель­ной статьи.

Multi-Channel DRAM

Массив, содержащий десятки, а в перспективе и сотни вычислительных ядер требует интенсивного обмена с опе­ра­тив­ной памятью. Задача решается совместным применением двух компонентов:

  1. Классическая DRAM-подсистема включает до шести каналов оперативной памяти, реализованных в виде двух контроллеров Integrated Memory Controller (IMC), каждый из которых в типовом случае может со­дер­жать до трех каналов.
  2. Опционально присутствующая подсистема Multi-Channel DRAM (MCDRAM или Memory on package), фи­зи­че­ски ре­а­ли­зо­ва­на в виде микросборок в корпусе CPU. В конфигурации, показанной на Рис 1, про­цес­сор снабжен во­се­мью каналами MCDRAM общим объемом до 16 гигабайт. Количество каналов и вы­со­кие рабочие частоты, обу­слов­лен­ные размещением компонентов в корпусе CPU, обеспечивают тра­фик, не­об­ходимый для эффективной ра­бо­ты дан­­но­­го количества вычислительных ядер.

Характеристики MCDRAM

Согласно оценке, приведенной в документе для процессоров класса Intel Xeon Phi (Knights Landing), пропускная спо­соб­ность восьмиканальной подсистемы MCDRAM составляет около 450 гигабайт в секунду. Для сравнения, классический шестиканальный DRAM-контроллер в составе того же процессора обеспечивает около 90 гигабайт в секунду.

Режимы работы MCDRAM

Выбор метода применения MCDRAM находится под контролем UEFI firmware. Рассмотрим доступные опции.

Использование интегрированной памяти MCDRAM в качестве дополнительной кэш-памяти без прямого включения в адресное пространство
Рис 2. Использование интегрированной памяти MCDRAM в качестве дополнительной кэш-памяти без прямого включения в адресное пространство

Режим Cache Mode (Рис 2) позволяет использовать MCDRAM в качестве дополнительного уровня кэширования. При этом минимизирована роль программного обеспечения в оптимизации производительности. Аппаратно реализованный кэш-контроллер ведет статистику обращений к основной оперативной памяти и обеспечивает поддержание в быстродействующем буфере (каковым является MCDRAM) той информации, с которой в данный момент времени интенсивно работает процессор. В этом режиме, в соответствии с канонами функционирования кэш-памяти, за MCDRAM не закреплен диапазон физического адресного пространства.

Включение интегрированной памяти MCDRAM в адресное пространство
Рис 3. Включение интегрированной памяти MCDRAM в адресное пространство

Flat Mode (Рис 3) антагонистичен по отношению к выше рассмотренному Cache Mode. В этом режиме, в адресном пространстве выделяется диапазон, закрепленный за подсистемой (подсистемами) MCDRAM а забота о том, чтобы информация, критичная с точки зрения производительности располагалась в быстродействующих блоках, воз­ла­га­ет­ся на программное обеспечение. Очевидно, ОС и приложения, обладая «стратегическими» знаниями об использовании памяти способны выполнить оптимизацию более эффективно, в то время как аппаратный кэш-контроллер, оперируя статистикой обращений к ОЗУ, действует исключительно «тактически». В то же время, такая модель требует явной поддержки со стороны программного обеспечения, в том числе UEFI, о чем пойдет речь ниже.

Гибридное применение интегрированной памяти MCDRAM
Рис 4. Гибридное применение интегрированной памяти MCDRAM

Hybrid Mode (Рис 4) как видно из диаграммы, совмещает оба выше описанных режима, разделяя ресурсы MCDRAM на две части, используемые для аппаратно-управляемого кэша (Cache Mode) и программно-управляемого быстро­дей­ству­ю­щего ОЗУ (Flat Mode).

Детально о роли UEFI

Рассмотрим системные объекты, необходимые для коммуникации между UEFI и ОС. В центре внимания две за­да­чи, решаемые в рамках интерфейса ACPI:

1) NUMA-топология.

Проблематике NUMA в контексте PC-совместимых систем уже более десятилетия, но для полноты изложения, на­пом­ним суть вопроса. С момента интеграции контроллера оперативной памяти в состав CPU, платформа, рас­по­ла­га­ю­щая несколькими физическими процессорами, содержит такое же количество подсистем DRAM. При этом, про­тя­жен­ность маршрута от инициатора доступа к памяти (процессорного ядра) до исполнителя (подсистемы DRAM) зависит от их топологического расположения. Для оптимизации работы программного обеспечения, особенности таких платформ декларируются с помощью ACPI-таблиц System Resource Affinity Table (SRAT), перечисляющей до­ме­ны вычислительных ядер и блоков памяти а также System Locality Distance Information Table (SLIT), со­дер­жа­щей чис­ло­вые значения, пропорциональные топологическим дистанциям.

2) MCDRAM или многоканальная оперативная память в составе процессора.

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


Рис 5. Принцип декларирования топологии платформы, использующей несколько NUMA-узлов с неоднородным доступом к памяти а также несколько видов оперативной памяти, имеющих различную производительность (из документа Advanced Configuration and Power Interface Specification. Version 6.2)

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

Что нового в firmware?

Декларация перечисленных свойств, ассоциированных с диапазонами физического адресного пространства вы­чи­сли­тель­ной платформы, осуществляется посредством специального системного объекта — ACPI-таблицы Hete­ro­ge­neous Memory Attribute Table (HMAT), определение которой впервые появилось в спецификации ACPI 6.2, уви­дев­шей свет в мае этого года.

Теги: