
Экстремальную подсистему хранения данных на основе двух плат расширения 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.
Рис 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, в то время, как право выбора внутренней физической реализации остается за разработчиком электронного прибора.
Рис 2. Определение устройства Switch, применяемого для разветвления топологии PCIe
(фрагмент документа PCI Express Base Specification Revision 4.0)
Установив на плате-адаптере дискретный PCIe-switch, разработчик реализует стандартное устройство PCIe x16, устраняя зависимость от недокументированной способности порта x16 выполнить разделение на четыре порта x4.
VMD в серверном контексте
Для шинной топологии высокоуровневых серверов и рабочих станций применение дополнительных коммутационных устройств является необходимостью, а не опцией.
Рис 3. Топология высокоуровневой мультипроцессорной платформы, использующей коммутаторы для подключения mass storage подсистемы (фрагмент документации IDT 89H64H16G3 64-Lane 16-Port PCIe Gen3 System Interconnect Switch)
Перечислим четыре ситуации, требующие установки дополнительных дискретных компонентов, расширяющих функциональность PCIe-подсистемы.
- Доступное количество дифференциальных пар PCIe физически недостаточно для подключения требуемого количества NVMe-устройств.
- Платформа обладает необходимым количеством дифференциальных пар; бифуркация PCIe-порта обеспечивает подключение заданного количества устройств, но входит в противоречие с требованиями совместимости для платы-адаптера.
- Необходимо обеспечить доступность дискового массива для нескольких процессоров (Рис 3). Рассматривая этот пример, акцентируем внимание на том, что процессоры, совместно использующие фрагмент PCIe-топологии могут быть расположены на разных платформах и не связаны шиной межпроцессорной связи (QPI), создающей обходной путь.
- Геометрические особенности системы (длина соединительных проводников и количество разъемных соединений) требуют восстановления электрофизических характеристик сигналов с помощью ретаймеров и редрайверов.
Вместо послесловия
Повышать себестоимость устройств, одновременно жертвуя производительностью и унифицируя решения в целях совместимости с изделиями конкурентов, — шаг, в современных условиях несколько эксцентричный. А значит, для SOHO экстремальных платформ, приоритет должен принадлежать первому проприетарному варианту, «выжимающему максимум» из расширенных возможностей CPU PCIe-портов.
В то время как для высокоуровневых серверов и рабочих станций, «игрушечные» решения такого рода неприемлемы. Здесь следует ожидать реализаций второго унифицированного варианта, сочетающего функциональность VMD RAID и внешних коммутаторов.