USB-шина в архитектуре микро-серверов

09 Дек 2013

USB-шина в архитектуре микро-серверов

Недавний прогноз интернет-издания «Журнал сетевых ре­ше­ний» отмечает важные тенденции современного сер­ве­ро­строения: энергоэффективность и оптимизацию под кон­кретные задачи. Говорят о гиперконвергенции ком­пью­тер­ных ресурсов и ожидаемом массовом внедрении в малом и среднем бизнесе соответствующих реализаций. Что это оз­начает на практике?

В рамках «обкатки» и первых испытаний концепт-плат­форм становится очевидным следствием появление ма­ло­фор­матных серверных решений и обеспечение их уни­вер­саль­ным интерфейсом взаимодействия, место которого уже много лет занимает USB-шина. Исследуем ее функциональность на примере Tyan S5533 с тем, чтобы составить впечатление о готовности такого рода систем. Ведь по прогнозам в наступающем 2014 году микро-серверы станут трендом у большинства производителей.

Контроллеры, порты и устройства

Архитектура универсальной последовательной шины, как долгожителя сервисных интерфейсов, показательна для оценки оснащенности серверной платформы, потому что ее реализация является одним из основных ньюс­мей­ке­ров в IT-индустрии. Сравнивая периферийные контроллеры из системной логики нескольких поколений, легко убедиться в том, что наибольшее количество изменений приходится именно на USB. При этом набор воз­мож­но­стей, декларированных в спецификации Extensible Host Controller Interface, реализован далеко не полностью даже в новейших платформах.

Исследование системной платы Tyan S5533 мы решили начать с запуска информационно-диагностической ути­ли­ты USB.EXE, бета-версия которой доступна на сайте IC Book Labs.



Рис.1Результат сканирования конфигурационного пространства: обнаружен один контроллер USB 3.0 XHCI и два контроллера USB 2.0 EHCI.


Рис.2Результат сканирования шины USB: обнаружены два концентратора Rate Matching Hub (устройства 8087:8008 и 8087:8000) и концентратор American Megatrends Inc. Virtual Hub, задействованный в подсистеме дистанционного управления платформой.

Примечание: К внешним портам подключены USB Flash накопитель Kingston DataTraveler 3.0, клавиатура Logitech USB Keyboard, устройства UTLite USB Host Tester и Silicon Labs CP2102 USB to UART Bridge Controller

Очевидно, конфигурация типична для платформ рассматриваемого поколения. USB-подсистема реализована с использованием xHCI-контроллера USB 3.0 и двух EHCI-контроллеров USB 2.0. Каждый из  два-нольных контроллеров оборудован отладочным Debug-портом и Rate Matching Hub концентратором, обеспечивающим совместимость с USB 1.1  и низкоскоростные режимы Low Speed и Full Speed.

На плате имеется два порта USB 3.0, разъемы которых выведены на заднюю панель и два внутренних порта USB 2.0. По сегодняшним меркам, это, конечно мало и возможности набора системной логики реализованы не полностью, но по оценкам разработчиков платы (и здесь мы можем с ними согласиться) для функционирования серверной платформы такого количества портов достаточно.

Из неофициальных источников известно, что первоначальный замысел вообще не предполагал на плате установку коннектора для подключения косички внутренних портов. В процессе работы над разводкой PCB инженеры Tyan  изыскали возможность установки одного разъема для двух портов USB 2.0. С учетом того, что ряд устройств, например USB-to-COM адаптеры, существуют в вариантах для внутреннего подключения, такое решение можно приветствовать.

Тест на совместимость пройден

Как видно из нашего эксперимента, устройства, подключенные к портам USB 3.0, по умолчанию коммутируются на контроллер USB 2.0 EHCI. Таким образом, констатируем отсутствие проблем совместимости с программным обеспечением, не поддерживающим контроллер USB 3.0, что, разумеется, не мешает современной операционной системе выполнить переключение и использовать режим Super Speed. Не зафиксировано проблем и в реализации протокола EHCI Ownership, обеспечивающего передачу прав на использование контроллера USB от firmware платформы к операционной системе.

Практикум для хакеров: проверяем 64-bit addressing capability

Одним из критериев, отличающих «истинно 64-битную» платформу является поддержка 64-битной адресации не только центральным процессором, но и bus-master устройствами, взаимодействующими с оперативной памятью самостоятельно. При отсутствии такой поддержки, оперативная память, расположенная выше границы 4GB не может быть использована для обмена данными с такими устройствами. Для серверов и рабочих станций, указанное обстоятельство особенно актуально. Проверим, выполнен ли этот критерий для контроллеров USB 2.0 EHCI и USB 3.0 xHCI, входящих в состав USB подсистемы исследуемой платформы, для этого, определим значение бита 0 (64-bit addressing capability) регистра Host Controller Capability Parameters.


Рис.3. Бит 0 регистра EHCI HCCPARAMS (64-bit Addressing Capability) определяет поддержку 64-битной адресации:
0=не поддерживается, 1=поддерживается


Рис.4. Бит 0 регистра xHCI HCCPARAMS (AC64) определяет поддержку 64-битной адресации:
0=не поддерживается, 1=поддерживается

Используя базовые адреса (рис.1) просматриваем дамп memory-mapped регистров контроллера и получаем такие результаты:


Рис.5. Дамп регистров первого контроллера USB 2.0 EHCI

Для первого контроллера USB 2.0 EHCI: Адрес регистра HCCPARAMS = Base+8 = F7514000h+8=F7514008h Значение младшего байта регистра = 081h = 1000.0001b Бит 0 = 1, поддерживается 64-битная адресация


Рис.6Дамп регистров второго контроллера USB 2.0 EHCI

Для второго контроллера USB 2.0 EHCI: Адрес регистра HCCPARAMS = Base+8 = F7513000h+8=F7513008h Значение младшего байта регистра = 081h = 1000.0001b Бит 0 = 1, поддерживается 64-битная адресация


Рис.7. Дамп регистров контроллера USB 3.0 xHCI.

Для контроллера USB 3.0 xHCI:

  • Адрес регистра HCCPARAMS = Base+10h = F7500000h+10h=F7500010h
  • Значение младшего байта регистра = 0С1h = 1100.0001b
  • Бит 0 = 1, поддерживается 64-битная адресация

Резюме

Как мог заметить внимательный читатель, на каждом этапе исследований мы акцентировали внимание на поиске проблем, типичных для платформ переходного периода от USB 2.0 к USB 3.0. Сегодня мы таких проблем не об­на­ру­жи­ли. Возможно, переходной период закончился?

Может быть, одним из следующих шагов компании Intel будет интеграция в подсистему USB  технологии вир­ту­а­ли­за­ции SR-IOV, поддержка которой анонсирована в спецификации USB 3.0 xHCI, ибо чипсет Denlow с платформ-хабом (в прежних терминах – южным мостом) Lynx Point такой функциональностью пока не обладает.

Теги: