Непростые компромиссы Intel VROC

03 Июл 2017

Непростые компромиссы Intel VROC

Экстремальную подсистему хранения данных на основе двух плат рас­ши­ре­ния ASUS Hyper M.2 x16, обслуживающую в общей сложности во­семь NVMe-устройств, можно рассматривать как первые шаги по ор­га­ни­за­ции VMD RAID-массивов. Потенциал новой архитектуры в пер­спек­ти­ве по­зво­ля­ет го­во­рить о сториджах в десятки и сотни накопителей с прицелом на вы­со­ко­у­ров­не­вые серверы. А потому задача физического подключения и оп­ти­маль­но­го дизайна PCIe-топологии приобретает осо­бую актуальность. Ра­зум­но предположить, что в платформах для эн­ту­зи­ас­тов и серверном сег­мен­те ре­шать­ся она будет по-разному.

ASUS Hyper M.2 x16

Реализация концепции Intel VROC with VMD Technology в устройстве ASUS Hyper M.2 x16 подразумевает под­клю­че­ние размещенных на плате-адаптере четырех NVMe-накопителей к порту PCIe x16. Каждому из накопителей плата Hyper предоставляет линк PCIe Gen3 x4. В условиях минимума официальной информации, попробуем смо­де­ли­ро­вать два варианта развития событий, представляющих компромиссы производительности, совместимости и, ко­неч­но, стоимости новейших решений.

Проприетарное решение на основе CPU PCIe bifurcation

Диаграмма ниже (Рис 1) показывает варианты конфигурации до 44 PCIe-линков процессоров Intel Core X-серии. Порт DMI (Direct Media Interface), используемый для связи CPU и системной логики, не входит в это число и по­ка­зан отдельно (слева), хотя также реализован в виде линка PCIe x4.

Диаграмма показывает поддерживаемые варианты бифуркации до 44 PCIe-линков для процессоров Intel Core X-Series с разделением PCIe-портов x16 и x12 на несколько портов меньшей ширины
Рис 1. Диаграмма показывает поддерживаемые варианты бифуркации до 44 PCIe-линков для процессоров Intel Core X-Series с разделением PCIe-портов x16 и x12 на несколько портов меньшей ширины (фрагмент документации Intel Core X-Series Processor Families)

Очевидно, гибкость конфигурирования ресурсов CPU, в частности, — способность PCIe-портов к бифуркации (раз­де­ле­нию на порты меньшей ширины), упрощает задачу разработчиков платформ, делая ненужными внешние ком­му­та­ци­он­ные элементы, минимизируется как стоимость платы-адаптера, так и латентность доступа к ад­ре­су­е­мым ре­сур­сам.

Вместе с тем, подобное решение оптимально для компонентов, установленных непосредственно на системную плату, топология и функциональность которых заранее известна и не может быть изменена, либо для разделения линков между PCIe-слотами, но не в пределах одного слота.

Строго говоря, разработчик платы-адаптера PCIe x16 не вправе ставить работоспособность устройства в за­ви­си­мость от способности x16-порта к бифуркации, ведь такая способность не нормируется стандартом как обя­за­тель­ная. Это означает, что устройство оптимально использует возможности некоторой частной конфигурации, но его работоспособность зависит от производителя и модели системной платы, процессора и даже используемого слота PCIe.

Стандартное решение на основе PCIe-switch

Согласно спецификации PCI Express, унифицированное решение, обеспечивающее разветвление шины, ос­но­вы­ва­ет­ся на применении PCIe Switch. Такой коммутатор определяется как набор виртуальных мостов PCI-to-PCI. Вир­ту­аль­ность в данном случае означает соблюдение требований программной модели PCI-PCI Bridge, в то время, как право выбора внутренней физической реализации остается за разработчиком электронного прибора.

Определение устройства Switch, применяемого для разветвления топологии PCIe
Рис 2. Определение устройства Switch, применяемого для разветвления топологии PCIe
(фрагмент документа PCI Express Base Specification Revision 4.0)

Установив на плате-адаптере дискретный PCIe-switch, разработчик реализует стандартное устройство PCIe x16, устраняя зависимость от недокументированной способности порта x16 выполнить разделение на четыре порта x4.

VMD в серверном контексте

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

Топология высокоуровневой мультипроцессорной платформы, использующей коммутаторы для подключения mass storage подсистемы
Рис 3. Топология высокоуровневой мультипроцессорной платформы, использующей коммутаторы для подключения mass storage подсистемы (фрагмент документации IDT 89H64H16G3 64-Lane 16-Port PCIe Gen3 System Interconnect Switch)

Перечислим четыре ситуации, требующие установки дополнительных дискретных компонентов, расширяющих функциональность PCIe-подсистемы.

  1. Доступное количество дифференциальных пар PCIe физически недостаточно для подключения требуемого количества NVMe-устройств.
  2. Платформа обладает необходимым количеством дифференциальных пар; бифуркация PCIe-порта обеспечивает подключение заданного количества устройств, но входит в противоречие с требованиями совместимости для платы-адаптера.
  3. Необходимо обеспечить доступность дискового массива для нескольких процессоров (Рис 3). Рассматривая этот пример, акцентируем внимание на том, что процессоры, совместно использующие фрагмент PCIe-топологии могут быть расположены на разных платформах и не связаны шиной межпроцессорной связи (QPI), создающей обходной путь.
  4. Геометрические особенности системы (длина соединительных проводников и количество разъемных соединений) требуют восстановления электрофизических характеристик сигналов с помощью ретаймеров и редрайверов.

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

Повышать себестоимость устройств, одновременно жертвуя производительностью и унифицируя решения в це­лях совместимости с изделиями конкурентов, — шаг, в современных условиях несколько эксцентричный. А значит, для SOHO экстремальных платформ, приоритет должен принадлежать первому проприетарному варианту, «вы­жи­ма­ющему максимум» из расширенных возможностей CPU PCIe-портов.

В то время как для высокоуровневых серверов и рабочих станций, «игрушечные» решения такого рода не­при­ем­ле­мы. Здесь следует ожидать реализаций второго унифицированного варианта, сочетающего функциональность VMD RAID и внешних коммутаторов.

Теги: