Очередное, третье по счету поколение стандарта универсальной последовательной шины, наряду с увеличением производительности от 480 Mbps до 5 Gbps, отмечено радикальными изменениями, как в аппаратном интерфейсе, так и в программной модели хост-контроллера. Поддержка режима SuperSpeed (5 Gbps), а в перспективе — и SuperSpeed+ (10 Gbps), потребовала расширения набора интерфейсных сигналов двумя высокочастотными дифференциальными парами. Ими стали SSTX и SSRX для передачи и приема информации по USB 3.0, конструктивно обособленные в геометрии разъема.

Четыре новые линии получили в качестве экрана-разделителя еще и GND-копию из ранее существовавшего классического набора из других четырех линий (+5V, Data-, Data+, GND). Рудимент шины USB 2.0, использующий одну дифференциальную пару для передачи в обоих направлениях, также был сохранен для совместимости. Всего в разъеме USB 3.0 поместилось 9 контактов, а его конструкция приобрела отличительную черту — как, правило, стала выполняться из синего пластика.

Впрочем, если посмотреть на кабель USB 3.0 в разрезе, мы обнаружим там не девять, а десять проводников — каждая витая дифференциальная пара SSTX и SSRX в качестве дополнительного экранирования содержит копию «земляной» шины.
Посмотрев внимательнее, находим и одиннадцатый проводник — металлический корпус разъема и оплетку внешнего экрана. Здесь важно вспомнить об увеличившейся пропускной способности интерфейса: передача данных в гигабитном темпе и необходимость учета затухания сигналов, при наличии импульсных помех в гигагерцовом диапазоне, определяет дизайн кабельного хозяйства. Точки схемы, разделенные отрезком проводника, принимаемые тождественными при анализе по постоянному току, не являются таковыми по ВЧ, поскольку вступают в действие индуктивность соединительной цепи и емкость диэлектрической изоляции.
Фактор интеллекта
Наряду с кратным увеличением скорости передачи информации, важным фактором роста производительности в третьей версии интерфейса является интеллектуализация обмена. Технология сортировки очереди команд, не утратившая свою актуальность с распространением SSD, поддерживается в рамках Stream Protocol.

Протокол определен в спецификации USB 3.0, детали его реализации заложены в архитектуре контроллера xHCI. Согласно Stream Protocol, обмен данными представляется в виде параллельно функционирующих потоков, а динамический выбор обслуживаемого потока в каждый момент времени осуществляет mass storage устройство, оптимизируя этот выбор в соответствии с внутренним состоянием. Таким состоянием для магнитного диска может быть номер цилиндра, на который в данный момент спозиционированы головки. Для NAND-устройства это может быть номер активированного в данный момент банка запоминающей матрицы.
Триединый xHCI-контроллер
Разработка архитектуры eXtensible Host Controller Interface — контроллера USB 3.0, шедшего на смену компаньонам EHCI (USB 2.0) и UHCI/OHCI (USB 1.1), ставила задачи в духе времени. Инженерам-проектировщикам стало очевидно: пригодность его программной модели к аппаратной виртуализации должна лежать в основе дизайна. Поэтому сегодня USB 3.0 xHCI оптимизирован для представления одного USB хост-контроллера в виде набора виртуальных функций, поступающих в распоряжение нескольких гостевых ОС. При этом набор USB-устройств, подключенных к одному физическому USB-контроллеру, может быть произвольным образом разделен на группы, каждая из которых передается в распоряжение одной из гостевых ОС.
Реализация подобного класса возможностей требует сложного набора программируемых регистровых полей, описывающих привязку каждого из виртуальных агентов (контроллеров и устройств) к требуемой гостевой ОС. Разумеется, такая функциональность является лишь опцией. Реализации xHCI полностью «в железе» раскрывающие потенциал, заложенный в спецификации, встретить достаточно сложно, если не сказать проблематично. Тем не менее, готовность к рассмотренным операционным сценариям, даже при отсутствии поддержки этих сценариев конкретными реализациями контроллеров, привела к значительному усложнению программной модели.
Более практичным и востребованным свойством xHCI является поддержка одним контроллером всех скоростных режимов, определенных в рамках трех поколений шины. Теоретически, это обстоятельство должно было сделать ненужными контроллеры-компаньоны. На практике, в силу сложной архитектуры xHCI, ряда радикальных нововведений, коснувшихся не только контроллера, но и принципов его интеграции в платформу, полноценная программная поддержка xHCI существующими на тот момент ОС, сильно запаздывала. Это мотивировало разработчиков, в целях совместимости, включать в состав системной логики контроллеры предыдущих поколений, в частности USB1 OHCI и USB2 EHCI наряду с USB3 xHCI.

Так, ситуация с AMD Bolton FCH находится на грани анекдотичной. Вместо устранения контроллеров-компаньонов, классификация их типов расширилась с двух до трех.

Конкурент решал аналогичную проблему одновременным присутствием EHCI, RMH и xHCI. Но надо признать на сегодня указанные трудности роста можно считать пройденными. Типовые реализции системной логики включают в себя лишь контроллеры xHCI, успешно справляющиеся с поддержкой многочисленных скоростных режимов всех трех поколений шины.

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