ASUS Zenbook 3 и его PCI-шина

04 Окт 2016

Вряд ли кто мог предположить, что презентация легкого и тонкого ноут­бу­ка ASUS Zenbook 3 окажется событием с таким количеством сюр­при­зов. Главным ньюсмейкером предполагался процессор Kaby Lake — им ос­на­щена мобильная платформа. Неожиданности возникли, «от­­ку­да не жда­ли». Для того чтобы разобраться в ситуации, пришлось даже взять на во­ору­же­ние Read Universal — «инструмент хакера».

Особенности интегрированной графики

Видеоадаптер ноутбука ASUS Zenbook 3 подключен к главной или «корневой» PCI-шине Bus 0, без использования PCIe-мостов и дочерних шин, но при этом имеет статус PCI Express подключения. Это следует из наличия регист­ро­во­го поля PCIe Capability в блоке конфигурационных регистров адаптера, расположенного в нашем примере с ад­ре­са 0070h.

Список PCI-устройств, полученный с помощью утилиты Read Universal в среде UEFI x64
Рис.1 Список PCI-устройств, полученный с помощью утилиты Read Universal в среде UEFI x64

Дамп регистров интегрированного видео адаптера Intel
Рис.2 Дамп регистров интегрированного видео адаптера Intel

Примечание для экстремалов: байт со значением 10h идентифицирует поле PCIe Capability ID. Далее в составе этой структуры, по адресу 72h, находится байт со значением 92h = 10010010b. Биты [7-4], интерпретируемые как поле Device/Port Type регистра PCI Express Capabilities, содержат 1001b, что означает тип подключения Root Complex Integrated Endpoint.

Интегрированная графика: выводы

В терминах спецификации PCI Express, интегрированная видео подсистема исследованной мобильной плат­фор­мы, классифицируется как Root Complex Integrated Endpoint. Это означает, что устройство интегрировано в се­вер­ный мост системной логики, который в этом контексте уместно называть Root Complex. Такое решение типично для видео подсистем, реализованных в составе микросхемы CPU.

Менее типично применение регистрового поля PCI Express Capability (Standard Capability ID = 10h) для де­кла­ри­ро­ва­ния такой видео подсистемы. Означает ли это, что решение будет более производительным? Формально — нет, ведь речь идет о механизмах PCI PnP, отрабатывающих однократно при загрузке системы, а не о вычислительных функциях GPU.

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

SSD Toshiba на пути к SR-IOV?

Ожидаемо, в PCI-пространстве находится контроллер твердотельного накопителя Toshiba (Рис.1). С ним все хо­ро­шо и особых замечаний по его работе нет. Правда, в сеансе операционной системы Microsoft Windows 10 можно заметить (Рис. 3), что NVMe-накопитель Toshiba видится уже как четыре устройства (напомним, что предыдущий скриншот получен среде UEFI, да и в реальности это один-единственный девайс).

Список PCI-устройств, полученный с помощью утилиты AIDA64 в среде Windows x64
Рис.3 Список PCI-устройств, полученный с помощью утилиты AIDA64 в среде Windows x64

Что не так? Может AIDA64 ошибается? Проверим себя, запустив информационную утилиту другого про­из­во­ди­те­ля. На сей раз воспользуемся услугами ASTRA32.

Твердотельный NVMe-накопитель Toshiba в показаниях утилиты ASTRA32
Рис.4 Твердотельный NVMe-накопитель Toshiba в показаниях утилиты ASTRA32

Ошибки нет: устройство клонировано четыре раза. Это характерно для устройств, поддерживающих SR-IOV, одну из технологий аппаратной виртуализации.

Проверим нашу гипотезу, воспользовавшись методикой, ранее разработанной для платформ AMD. Исследовав с ее помощью конфигурационные регистры NVMe-накопителя, получаем следующий список регистровых полей:

Дамп регистровых полей PCIe Extended Capabilities NVMe накопителя Toshiba THNSN5512GPU7
Рис.5 Дамп регистровых полей PCIe Extended Capabilities NVMe накопителя Toshiba THNSN5512GPU7

Расшифруем их:

  • ID=0001h , Next address = 0168h  — структура Advanced Error Reporting (AER) декларирует механизм обнаружения ошибок на уровне PCI Express протокола;
  • ID=000Eh , Next address = 0178h  — структура Alternative Routing ID Interpretation (ARI) позволяет переформатировать адресацию конфигурационного пространства (Bus, Device, Function), оптимизировав ее для поддержки технологий аппаратной виртуализации;
  • ID=0019h , Next address = 0198h  — структура Secondary PCI Express Capabilities задает аналоговые характеристики PCIe линка для поддержки режима 8.0 GT/S;
  • ID=0018h , Next address = 01A0h  — структура Latency Tolerance Reporting (LTR) позволяет устройству дифференцировать значения задержек при выполнении операций на шине PCI Express согласно набору энергосберегающих состояний;
  • ID=001Eh , Next address = 0000h (end of list)  — структура L1 Power Management Sub states, дополнительно детализирует набор энергосберегающих состояний линка PCI Express. Каждое из таких состояний является компромиссом между энергопотреблением и временем пробуждения.

SR-IOV для SSD: выводы

Искомое регистровое поле SR-IOV Extended Capability не обнаружено в исследованном NVMe накопителе Toshiba THNSN5512GPU7. Если конкретнее, структура, имеющая Extended Capability ID = 0010h, не найдена в связанном спи­с­ке PCIe Extended Capabilities List. Формально это означает, что технология аппаратного тиражирования ресурсов SR-IOV не поддерживается данным mass storage устройством.

Но считать полученный результат отрицательным мы не будем: найдена структура Alternative Routing ID Inter­pre­ta­tion (ARI, Extended Capability ID=000Eh), которая предназначена для применения в механизме декларирования виртуальных функций SR-IOV. При использовании ARI, классический адрес в конфигурационном пространстве, содержащий номера шины, устройства и функции (Bus, Device, Function), разрядность которых соответственно  8, 5 и 3 бита, переформатируется, так, что 5-битный номер устройства расширяет номер функции. В этом случае, на шине может присутствовать только одно устройство (что и так характерно для линков PCI Express), а количество адресуемых функций увеличивается от 8 до 256, за счет использования номера функции, суммарная разрядность которого равна 3+5=8 бит.

Присутствие вспомогательной функциональности ARI при отсутствии основной технологии SR-IOV позволяет ос­то­рож­но предположить, что производитель готовится к применению технологии SR-IOV, либо она уже при­ме­ня­ет­ся в других моделях того же семейства, и состояние исследованных регистровых полей является результатом уни­фикации (может быть, SR-IOV в данном устройстве и программно разблокировать можно?). Презентация I/O Vir­tu­alization in Enterprise SSDs, позволяет предположить то же самое, но уже более уверенно.

Теги: