Презентация игрового ноутбука ASUS Zephyrus S, которая днями состоялась в Киеве, оживила интерес к USB-шине. Геймерская платформа стала своего рода сенсацией, благодаря внедрению новшества от NVIDIA, — VirtualLink для альтернативной функциональности на базе разъема USB Type-C. Попробуем осмыслить суть и перспективу новинки.
Виновником торжества стала AIDA64. Именно эта утилита позволила оперативно ознакомиться с архитектурой платформы ASUS Zephyrus S (в заводской кодификации — GX531GX). Смотрим на скриншот сохраненного рапорта.

На первый взгляд, ничего необычного в появлении стороннего USB-контроллера на Intel-платформе GX531GX нет. В ситуации, когда процессорный гигант не успевает оснащать системную логикe по последнему слову техники, на помощь приходят fabless-решения. В контексте универсальной последовательной шины на позиции приглашенного гостя привычно используются контроллеры ASMedia. Компания раньше других освоила SuperSpeed+, за что и пользуется заслуженным уважением.
Но в компоновке геймерской платформы ASUS Zephyrus S дополнительный USB-порт реализован графическим чипом NVIDIA Turing TU104. Логично предположить, что в данном случае NVIDIA предлагает Type-C в качестве графического порта (Display Port) реализованного средствами альтернативной функциональности?
За консультациями обратимся к документу «NVIDIA Turing GPU Architecture: Graphics Reinvented». Если верить ему, то USB Type-C Policy Controller обслуживает кастомизованный разъем, в котором вместо привычных четырех контактов USB 2.0 порта, предназначенных для низкочастотных (480Mbps) дифференциальных пар, появился набор из двух высокочастотных (10Gbps) дифференциальных пар USB 3.1. Таким образом, количество высокоскоростных SuperSpeed-портов, реализованных в одном разъеме Type-C, увеличено по сравнению с классической реализацией с двух до трех.

Вся эта конструкция уже защищена торговой маркой VirtualLink, поддержку ей оказывает одноименный консорциум, сайт которого пока выглядит достаточно скромно.
Разумеется, USB-кабель для VirtualLink отличается от классического USB Type-C кабеля. Он должен обеспечить передачу сигналов USB 3.1 по линиям, ранее предназначавшимся только для USB 2.0.
Как и ожидалось, на VirtualLink возлагаются обязанности по передачи видеоконтента с использованием альтернативной функциональности порта USB Type-C. Другими словами, сигналы Display Port могут передаваться по интерфейсу USB. Для этого системная логика должна изменить назначение дифференциальных пар SSTX/SSRX, мультиплексируя их с линиями видеовыхода графического контроллера.

Логично предположить, что решение интегрировать Type-C порт в чип GPU связано не только с некоторой кастомизацией стандарта Type-C, но обусловлено и топологическими соображениями. Ведь если для передачи контента от GPU к внешним устройствам использовать порт USB-C, входящий в состав системной логики, то придется позаботиться об организации весьма значительного трафика между графическим процессором и системной логикой, что как минимум не технологично, как максимум проблематично.
Кроме того, производители системных плат обычно реализуют только часть возможностей USB Type-C, ограничиваясь программной моделью xHCI-контроллера. Вне их поля зрения остается Configuration Channel, альтернативная функциональность и все разнообразие схем питания. Такие ограничения узаконены: декларация частично реализованных возможностей порта Type-C предусмотрена спецификацией ACPI.
Есть еще один довод в пользу реализации USB Type-C в составе GPU. Графический процессор подключается к PCIe-порту, обслуживаемому центральным процессором со встроенным контроллером системного ОЗУ. Это значит, что устройства, использующие GPU-линк, получают в свое распоряжение канал связи, обладающий низкой латентностью и высокой пропускной способностью. Объективные причины, подпитанные известным принципом «Если хочешь сделать что-то хорошо — сделай сам», мотивировали разработчиков устройств виртуальной реальности кастомизировать интерфейс USB Type-C для прямого подключения к GPU.