
Вряд ли кто мог предположить, что презентация легкого и тонкого ноутбука ASUS Zenbook 3 окажется событием с таким количеством сюрпризов. Главным ньюсмейкером предполагался процессор Kaby Lake — им оснащена мобильная платформа. Неожиданности возникли, «откуда не ждали». Для того чтобы разобраться в ситуации, пришлось даже взять на вооружение Read Universal — «инструмент хакера».
Особенности интегрированной графики
Видеоадаптер ноутбука ASUS Zenbook 3 подключен к главной или «корневой» PCI-шине Bus 0, без использования PCIe-мостов и дочерних шин, но при этом имеет статус PCI Express подключения. Это следует из наличия регистрового поля PCIe Capability в блоке конфигурационных регистров адаптера, расположенного в нашем примере с адреса 0070h.
Рис.1 Список PCI-устройств, полученный с помощью утилиты Read Universal в среде UEFI x64
Рис.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, да и в реальности это один-единственный девайс).
Рис.3 Список PCI-устройств, полученный с помощью утилиты AIDA64 в среде Windows x64
Что не так? Может AIDA64 ошибается? Проверим себя, запустив информационную утилиту другого производителя. На сей раз воспользуемся услугами ASTRA32.
Рис.4 Твердотельный NVMe-накопитель Toshiba в показаниях утилиты ASTRA32
Ошибки нет: устройство клонировано четыре раза. Это характерно для устройств, поддерживающих SR-IOV, одну из технологий аппаратной виртуализации.
Проверим нашу гипотезу, воспользовавшись методикой, ранее разработанной для платформ AMD. Исследовав с ее помощью конфигурационные регистры NVMe-накопителя, получаем следующий список регистровых полей:
Рис.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 Interpretation (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 Virtualization in Enterprise SSDs, позволяет предположить то же самое, но уже более уверенно.