Платформа Intel X299 снимает ограничения

26 Июн 2017

Платформа Intel X299 снимает ограничения

Интеграция системных компонентов в CPU давно стала одним из ос­нов­ных трендов. События развиваются в порядке убывания про­пуск­ной спо­соб­нос­ти шин: после контроллера оперативной памяти и дис­крет­но­го ви­део ада­п­те­ра пришла очередь подсистемы хранения данных. В ре­зуль­та­те свет уви­де­ла концепция VROC (Virtual RAID on CPU), оп­ре­де­ля­ю­щая под­клю­че­ние массивов высокопроизводительных PCIe- и NVMe-на­ко­пи­те­лей не­по­сред­ствен­но к процессору, минуя системную логику. Рассмотрим архитектуру платформ на основе чипсета Intel X299, пред­став­лен­ных компанией ASUS.

Диалектика новых возможностей

Реализация высокопроизводительной шины ввода-вывода для NVMe-устройств на интерфейсе PCI Express, встро­ен­ном в процессор, не нова. Ее преимущества очевидны: оптимизация трафика между накопителем и CPU с мак­си­маль­ным сокращением маршрута передачи данных между mass storage подсистемой и оперативной памятью. Ар­хи­тек­ту­ра серверных платформ, когда дело касается подключения отдельных SSD-дисков, давно использу­ет та­кие схемные решения. А вот непосредственная организация массивов хранения на базе ресурсов центрального про­цес­со­ра до появления X-платформ была под вопросом.

Блок-схема платформы на основе процессоров Intel Skylake-X (Kaby Lake-X) и системной логики Intel X299
Рис 1. Блок-схема платформы на основе процессоров Intel Skylake-X (Kaby Lake-X) и системной логики Intel X299

Решить поставленную задачу призвана технология VROC (Virtual RAID on CPU). Ее реализация стала возможна бла­го­да­ря наличию в центральных процессорах X-серии до 44 конфигурируемых PCIe-линий. Теперь кроме не­сколь­ких ди­ск­рет­ных видео адаптеров можно подключать PCIe/NVMe SSD-накопители непосредственно к про­цес­со­ру, увеличивая пропускную способность и снижая латентность подсистемы хранения данных.

Теоретически, подключение к процессорным PCIe-портам любых устройств, отличных от видео адаптеров не про­ти­во­ре­чит спецификации PCI Express и, как уже говорилось, не является новшеством платформы Intel X299. На практике, в «домашних» платформах такие конфигурации не всегда были работоспособны. Одна из причин – использование трюков для поддержки на сегодня уже безнадежно устаревших ресурсов Legacy VGA адаптера (в частности, обслуживание диапазона доступа к видео памяти по адресам A0000h-BFFFFh).

Меню установок UEFI BIOS на платформе ASUS информирует о наличии аппаратного ключа Premium для выполнения загрузки с VROC-массива, подключенного к одному из VMD-контроллеров
Рис 2. Меню установок UEFI BIOS на платформе ASUS информирует о наличии аппаратного ключа Premium для выполнения загрузки с VROC-массива, подключенного к одному из VMD-контроллеров

В серверах и высокоуровневых рабочих станциях для эффективной работы дисковых массивов, содержащих большое количество накопителей, mass storage подсистема может быть изолирована от PCIe-топологии с вы­де­ле­ни­ем в отдельный шинный сегмент с помощью устройства VMD (Volume Management Device), реализованного в составе процессоров Intel X-серии. Напомним, согласно канонам PCI-архитектуры, верхним уровнем в иерархии segment, bus, device, function является именно сегмент (другими словами – domain).

Статус всех Volume Management Device доступен для мониторинга в UEFI BIOS платформы ASUS
Рис 3. Статус всех Volume Management Device доступен для мониторинга в UEFI BIOS платформы ASUS

Volume Management Device снимает ограничение в 256 логических шин, имеющее место в системах с одним до­ме­ном, что актуально для высокоуровневых серверов. Для NVMe-устройств, поддерживающих репликацию средствами SR-IOV и размещающих в адресном пространстве множество логических копий одного физического ресурса, исчерпание этого лимита может наступить при значительно меньшем количестве накопителей. Ло­каль­ная (в рамках VMD-топологии) обработка событий, связанных с «горячим подключением» и вос­ста­нов­ле­ни­ем после ошибок позитивно влияет на стабильность подсистемы хранения данных и платформы в це­лом.

Обработка многочисленных асинхронных событий NVMe-мас­си­ва может быть организована с управляемой привязкой заданных групп источников событий к заданным ло­ги­че­ским процессорам посредством расширенного механизма передачи прерываний сообщениями MSI-X. В рамках модели аппаратной виртуализации VT-d, обмен информацией между NVMe устройствами массива и опе­ра­тив­ной па­мя­тью может находиться под контролем блока IOMMU (Input-Output Memory Management Unit), об­слу­жи­ва­ю­ще­го DMA-операции, инициируемые устройствами VMD-домена. Основное назначение блока IOMMU — тран­с­ля­ция виртуальных адресов в физические.

Практикум от ASUS

Перечислим три класса задач, решение которых можно констатировать в рамках концепции VROC:

  1. Ревизия архитектуры PCI Express и устранение нерегулярности, обусловленной адресацией Legacy-ресурсов;
  2. Аппаратная поддержка ряда функций по управлению RAID-массивами силами процессора в виде устройства Volume Management Device;
  3. Программная поддержка со стороны UEFI и драйверов ОС (слово «Virtual» в аббревиатуре VROC означает делегирование существенной части работы программному обеспечению) — для выполнения загрузки с дис­ко­во­го массива он должен поддерживаться силами UEFI до старта ОС.

Результат можно оценить на примере устройства ASUS Hyper M.2 x16. Плата, к слову снабженная системой ох­лаж­де­ния, устанавливается в разъем PCI Express x16, подключенный к CPU, неся на борту до четырех накопите­лей в формате NVMe M.2:

Адаптеры ASUS Hyper M.2 x16 на персональной платформе позволяют реализовать функциональность VROC
Рис 4. Адаптеры ASUS Hyper M.2 x16 на персональной платформе позволяют реализовать функциональность VROC

Прокомментируем один из приведенных в обзоре результатов теста CrystalDiskMark: скорость линейного чтения составляет 11697 мегабайт в секунду.

Две теоретических величины для сравнения (напомним, речь о трафике между твердотельным накопителем или массивом накопителей и оперативной памятью; дуплекс не учитывается):

  • При подключении к портам системной логики имеет место ограничение порядка 4 гигабайт в секунду. Это пропускная способность шины DMI 3.0 (Direct Media Interface), связывающей микросхемы CPU и PCH, функ­ци­о­наль­но соответствующей PCIe Gen3 x4. В расчетах сделано допущение, что весь трафик CPU-PCH принадлежит mass storage подсистеме, на практике это не так, значит, реальный результат будет ниже.
  • Максимальный трафик порта PCIe Gen3 x16 составляет порядка 16 гигабайт в секунду.

Системная логика Intel X299 и SATA-подсистема

Архитектура PCH не претерпела радикальных изменений. Концепция VROC оставляет в компетенции чипсета от­но­си­тель­но медленные интерфейсы, что, возможно, и обусловило консервативность дизайна системной логики на основе DMI 3.0.

Обзор функциональности набора системной логики X299
Рис 5. Обзор функциональности набора системной логики X299

На фоне тенденций перевода высокопроизводительных интерфейсов в компетенцию CPU реализована и Legacy-подсистема хранения данных на основе унифицированной архитектуры SATA AHCI. Она дополнена про­при­е­тар­ным механизмом, оптимальным для NAND-накопителей небольшого объема, с подключением к PCH по PCIe-ин­тер­фей­су, применяемых для кэширования традиционных HDD. Также могут быть подключены устройства Intel Optane. Функциональность управляется одним из Vendor-Specific регистров микросхемы PCH (Рис 6).

Регистр Vendor-Specific Capabilities Register обеспечивает доступ к ресурсам NAND в диапазоне регистров контроллера AHCI
Рис 6. Регистр Vendor-Specific Capabilities Register обеспечивает доступ к ресурсам NAND в диапазоне регистров контроллера AHCI

Поля NVM Remapped Register Offset, Memory Space Limit задают соответственно базовый адрес и размер фрагмента адресного пространства, используемого для доступа к ресурсам твердотельного накопителя. Бит PCIe NAND Me­mo­ry BAR Remapped Enable разрешает (1) или запрещает (0) доступ. BAR здесь означает Base Address Register. Для фи­зи­че­ско­го доступа к регистрам выделяется часть диапазона, используемого Legacy контроллером SATA AHCI согласно канонам PCI PnP.

Логически, добавляемая часть диапазона является самостоятельным устройством, на которое в общем случае не накладываются ограничения, присущие устаревшему протоколу AHCI, разработанному еще во времена магнитных дисков. Инициализация регистра, включая выбор диапазонов AHCI и NVM, обеспечивающих бесконфликтное со­су­ще­ство­ва­ние двух физически объединенных, но логически обособленных подсистем, находится в зоне от­вет­ствен­но­сти UEFI Firmware.

Вместо послесловия: о неочевидных свойствах RAID0

Попытки создания высокопроизводительных mass storage подсистем методом объединения двух и более SSD в массив RAID0 практиковались с момента появления первых твердотельных дисков с интерфейсом SATA, при­об­ре­тая некий «са­краль­ный оттенок» среди компьютерных энтузиастов, часто в силу высокой стоимости. Вместе с тем, пропускная способность подобных решений, в случае их реализации средствами системной логики, ограничена возможностями шины DMI, а сравнительно высокая латентность доступа обусловлена топологической дис­тан­ци­ей между микросхемой PCH и оперативной памятью (Рис 1). Не последнюю роль играет и фактор арбитража, ведь DMI обслуживает не только mass storage подсистему, но и все виды трафика между CPU и PCH.

Концепция VROC, реализованная на PCI Express портах процессора исключает DMI и PCH из маршрута передачи данных между накопителем и оперативной памятью, снимая указанные ограничения. Однако, есть проблема. Для эффективного функционирования SSD необходима технология trim, создающая коммуникацию между ОС и на­ко­пи­те­лем, с целью информирования последнего о блоках, относящихся к удаленным файлам, а следовательно до­ступ­ных для записи новых данных. Коммуникация между уровнями программного стека необходима, поскольку тре­бу­е­мая информация порождается на верхнем уровне (файловые операции ОС), а используется на нижнем (процессы записи и стирания NAND матрицы).

Поскольку в RAID0, блоки чередуются между накопителями, область, декларируемая командой trim, должна быть разделена на части, в соответствии с правилами адресации массива. После этого, каждому из накопителей мас­си­ва должна быть отправлена отдельная команда trim, декларирующая участок освобождаемой области, при­над­ле­жа­щий только этому накопителю.

Теоретически, задача может быть решена средствами встроенного программного обеспечения RAID контроллера или его драйвера в ОС. На практике, в силу исторических причин, этого как правило не происходит, вследствие чего может отсутствовать поддержка trim в RAID0. Таким образом, экзаменом на интеллектуальность для новых платформ, как впрочем и аргументом в споре о будущем (псевдо)аппаратных RAID массивов, может стать решение этой задачи или ее игнорирование грандами индустрии…

Теги: