Интерфейс USB 3.0 привлекает к себе большое внимание, т.к. на рынке стали доступны продукты на его базе. Кроме очевидного преимущества этой спецификации — 10-кратного увеличения скорости относительно USB 2.0, имеется ряд других существенных улучшений предыдущей версии стандарта. В статье рассмотрены особенности протокола USB 3.0, позволяющие повысить эффективность использования шины и снизить общее энергопотребление системы, а также вопросы совместимости новой и старой версий стандарта. Статья представляет собой перевод [1].
Спецификация SuperSpeed USB или USB 3.0 — это последняя версия универсальной последовательной шины (USB). Основным отличием USB 3.0 от USB 2.0 является увеличение скорости передачи данных — 5 Гбит/с против 480 Мбит/с. Группа компаний USB 3.0 Promoter Group, продвигающая новую версию стандарта, уделила большое внимание и улучшению других параметров этой спецификации — энергоэффективности шины, совместимости с предыдущими версиями и эффективности пересылки данных.
Меньше энергии для пересылки того же объема данных
Первым ключевым аспектом разработки новой спецификации стало повышение энергоэффективности. Это необходимо для увеличения срока службы батарей портативных приборов. В новой спецификации использовано несколько подходов, которые позволили добиться снижения общего энергопотребления USB-устройств, а также:
– исключения опроса устройств;
– исключения широковещательных пакетов;
– введения промежуточных состояний шины с малым энергопотреблением;
– увеличения скорости передачи в 10 раз.
В спецификации USB 2.0 хост-контроллер непрерывно опрашивает каждое устройство сетевого дерева для проверки, имеют ли они данные, которые нужно переслать в хост-систему. Опрос устройств означает, что все устройства должны быть полностью исправны и способны передавать данные в любой момент времени. Это означает также, что каждое устройство всегда потребляет мощность при передаче отрицательного ответа (NAK) на запрос хост-системы в случае отсутствия данных, которые необходимо переслать. Кроме того, хост-система рассеивает мощность, когда опрашивает устройства для того, чтобы выяснить, есть ли у них какие-либо данные для пересылки.
Еще одно изменение протокола USB связано с типом передачи пакета данных: вместо широковещательной передачи введена направленная передача. Когда хост USB 2.0 имеет данные для пересылки устройству, он осуществляет широковещательную рассылку данных на каждый из своих портов. Каждый концентратор в сетевом дереве должен также ретранслировать пакеты на каждый из своих выходных портов. Кроме того, каждое устройство, подключенное к шине, должно осуществлять обработку данных (потребляя энергию) с тем, чтобы определить, для них ли предназначены передаваемые данные.
В стандарте SuperSpeed USB протокол был изменен таким образом, чтобы направлять пакеты только тому устройству, которому они предназначены. Это потребовало введения дополнительных интеллектуальных функций для хоста. Хост должен точно знать, где в сети находится каждое устройство, в том числе, из какого порта концентратора (или портов, в том случае, когда имеется несколько концентраторов между ним и хостом) передаются данные. Это позволило снизить общее энергопотребление, т.к. только определенный хост и порты концентратора, к которым подсоединено устройство, должны передавать данные, и только целевое устройство должно заниматься их обработкой.
Третье новшество, направленное на улучшение энергоэффективности, состоит в введении двух промежуточных состояний холостого хода шины. В USB 2.0 имеются два состояния шины: активное (active) и состояние ожидания (suspend). В SuperSpeed USB, кроме этих двух состояний — (active — U0) и (suspend — U3), есть еще два: состояние холостого хода с быстрым выходом (fast exit idle — U1) и состояние холостого хода с медленным выходом (slow exit idle — U2). Эти режимы позволяют устройствам снизить потребление мощности, когда они не передают или не принимают данные.
В режиме U1 канал находится в состоянии ожидания, но тактирование устройства продолжается. В режиме U2 как канал, так и тактирование выключены, что требует более длительного времени на подготовку канала к повторной передаче данных. Режимы active и suspend в USB 2.0 и USB 3.0 одинаковы. 10-кратное увеличение скорости передачи также позволяет снизить общее энергопотребление. Речь не идет о том, что 5-Гбит/с трансивер рассеивает меньшую мощность, чем 480-Мбит/с трансивер. 5-Гбит/с трансивер потребляет пиковый ток, который в 2—5 раз превышает ток, потребляемый трансивером для USB 2.0.
В данном случае имеется в виду снижение общего энергопотребления, а не пикового тока, который потребляется в короткие промежутки времени, когда передатчик находится в активном состоянии. Если принять во внимание приблизительно 10-кратное уменьшение периода активного состояния передатчика, то общая величина мощности, требуемой для передачи фиксированного массива данных (например, для пересылки данных из ПК во флэш-память) составляет от 20% (двукратный пиковый ток и 1/10 часть времени) до 50% (пятикратный пиковый ток и 1/10 часть времени) от общей величины мощности, необходимой для передачи того же массива данных по USB 2.0.
В результате сочетания высокой эффективности использования шины (отсутствие широковещательных пакетов и исключение опроса устройств), усовершенствованных режимов питания в состоянии ожидания и более низкой средней мощности передачи, SuperSpeed USB потребляет не более одной трети мощности, требуемой для USB 2.0!
Совместимость с предыдущей версией интерфейса
Важной проблемой была поддержка совместимости с предыдущей версией интерфейса USB, который многие называют наиболее успешным компьютерным интерфейсом за всю историю. В процессе разработки было обнаружено, что кабель и разъем существующей версии интерфейса USB больше не отвечают требованиям по надежности при передаче данных на скорости 5 Гбит/с. Разработчики установили, что передачу сигналов необходимо осуществлять по раздельным проводникам, а не так, как было принято в версии USB 2.0. Они остановились на методе дуплексной дифференциальной передачи сигнала на базе электрических характеристик PCI Express.
Вместе с тем решено было не вводить никаких изменений в принятый в USB 2.0 метод передачи сигналов. Это потребовало бы введения, по крайней мере, двух дополнительных дифференциальных пар к существующим в USB 2.0 одной дифференциальной паре, одной шине питания VBUS и одной шине земли GND. Если учесть еще заземленную экранировку для двух новых высокоскоростных дифференциальных пар, то общее количество проводников в кабеле и контактов в разъеме для USB 3.0 возросло бы до девяти.
Так что же на самом деле означает требование совместимости с предыдущей версией интерфейса USB? Если мы посмотрим на это с точки зрения конечного пользователя, то это будет означать, что все существующие устройства, которые соответствуют спецификации, можно будет без проблем соединять между собой и работать со всеми новыми продуктами, поддерживающими новую спецификацию. Это означает, что существующие кабели (т.е. штекеры) можно будет вставлять в соответствующие новые розетки. Обратный порядок также должен выполняться, т.е. новые кабели должны быть в необходимых случаях совместимы со старыми розетками.
Очевидно, что любой кабель и разъем, которые будут поддерживать новую спецификацию SuperSpeed USB и передачу данных, будут иметь как новые проводники (в кабеле), так и новые контакты (в разъеме, штекере). Кроме того, любые новые розетки также должны содержать новые контакты, чтобы обеспечить требуемое соединение.
Имеется два базовых типа разъема USB. С разъемом (розеткой) типа A мы хорошо знакомы, т.к. он присутствует на каждом компьютере. Розетка типа A предназначена для подключения штекера типа A, который имеется на кабеле мыши или клавиатуры, а также на флэш-накопителе. Розетку типа B можно встретить на периферийных устройствах, причем имеется три размера разъема типа B: стандартный, мини и микро.
Совместимость с предыдущей версией стандарта USB требует, чтобы розетка типа A для SuperSpeed USB имела возможность присоединения как нового (USB 3.0), так и старого (USB 2.0) штекера типа A, а старая розетка типа A для USB 2.0 должна быть совместима с новым штекером типа A для USB 3.0. Очевидно, что если либо штекер, либо розетка являются совместимыми только с USB 2.0, то скорость передачи данных будет ограничена спецификацией USB 2.0. Было реализовано следующее решение: на внутренней стороне существующих штекеров и розеток разместили пять новых контактных проводников. Это обеспечило тот же механический интерфейс, что и в USB 2.0 и, таким образом, полную совместимость с предыдущей версией стандарта (см. рис. 1).
Со стороны периферийных устройств задача обеспечения совместимости, на первый взгляд, выглядит более трудно выполнимой из-за большего числа типов разъемов, однако на самом деле, она является более легкой. Новые штекеры USB 3.0 типа B не должны иметь возможности соединения со старыми розетками USB 2.0 типа B. Нужен только новый штекер типа B (и кабель), если в устройстве предусмотрен интерфейс USB 3.0. Если это устройство является только USB 2.0-совместимым устройством, то достаточного имеющегося кабеля USB 2.0 со старыми штекерами на обоих концах, т.к. другой конец кабеля можно вставить в новое устройство. Новая розетка типа B (независимо от размера) должна быть совместима как со старыми, так и с новыми штекерами типа B. Следовательно, любое изменение форм-фактора не может помешать использованию существующего кабеля USB 2.0.
Теперь рассмотрим три совместимые с USB 2.0 варианта разъема типа B. Наиболее простым является стандартный разъем типа B. Это розетка более крупного формата, который обычно можно увидеть на принтерах, сканерах и других крупноразмерных периферийных устройствах. Чтобы обеспечить совместимость с USB 3.0, разъем типа B дополнили выступом для размещения новых контактов (и проводников) для сигналов SuperSpeed USB. На рисунке 2 показано, как выглядит стандартный штекер и розетка типа B. Розетка допускает подсоединение либо старого штекера USB 2.0, либо нового штекера USB 3.0.
Существующая розетка Micro-B не имеет достаточного пространства для дополнительного размещения еще пяти контактов. Поэтому рабочая группа по разработке новой спецификации предложила решение, в котором розетки Micro-B для USB 2.0 и USB 3.0 расположены рядом друг с другом, как показано на рисунке 3. Наряду с механической совместимостью целью разработки новой версии стандарта USB была поддержка обширной инфраструктуры драйверов устройств. Были сохранены те же типы передачи данных: передача с прерываниями (interrupt transfer), пакетная передача (bulk transfer) и изохронная передача (isochronous transfer). Наконец, этот стандарт сохранил присущее USB удобство в использовании. Таким образом, все существующие устройства USB 2.0 будут работать так же, как и всегда, и на новых устройствах с интерфейсом SuperSpeed USB.
Снижение числа потерянных битов
Четвертой ключевой задачей при разработке новой версии стандарта стало улучшение общей эффективности использования шины. В статье уже был затронут один аспект этой проблемы: исключение опроса устройств. Кроме того, дуплексная архитектура шины SuperSpeed USB допускает одновременный двунаправленный поток данных, в отличие от полудуплексной архитектуры USB 2.0.
Очевидно, что опрос устройств хостом является непроизводительным использованием ресурсов шины, однако вопрос состоит в том, что в действительности означает его исключение. Чтобы разобраться в сути, попробуем использовать аналогию со школьным классом. Если бы класс был системой USB 2.0, то учитель ходил бы по классу и спрашивал по порядку каждого ученика, есть ли у него вопросы? Отвечая на вопросы, учитель продолжал бы движение по классу до тех пор, пока последний ученик не задал бы свой вопрос.
Если мы представим класс в виде системы SuperSpeed USB, то ученик просто поднимал бы руку, когда у него появлялся вопрос, а учитель замечал бы это и при необходимости отвечал. Так работает метод асинхронного уведомления передачи данных. Когда у периферийного устройства появляются данные для пересылки, оно высылает хосту сообщение о готовности оконечного устройства (Endpoint Ready — ERDY). Затем хост высылает периферийному устройству подтверждение (Acknowledge — ACK) в случае его готовности к обработке передачи данных.
В USB 2.0 полудуплексная шина только с одной дифференциальной парой для передачи данных имеет два ограничения, влияющих на эффективность ее работы. Первое ограничение состоит в том, что шина должна полностью переключаться каждый раз, когда направление потока данных меняется. Это означает, что на одном конце соединения должен выключиться передатчик, а на другом — выключиться приемник. Сразу по завершении этого процесса начинается обратный процесс, т.е. приемник включается на первом устройстве, а передатчик — на другом. Это значительно увеличивает простой шины и снижает ее эффективность. Второй проблемой является то, что каждая передача данных должна быть завершена до начала следующей передачи. Это означает, что принимающее устройство должно подтвердить прием данных, а передающее устройство должно получить сообщение ACK до того, как следующую порцию данных можно будет переслать по шине. На рисунке 4 показано, как выглядит последовательность выходной (от хоста к периферии) транзакции в USB 2.0.
В USB 3.0, где имеются две дифференциальные пары на каждом устройстве — одна для передачи, а другая для приема, время простоя при переключении шины исключается. Это позволяет также пересылать дополнительные данные от передающего устройства до того, как придет подтверждение от приемного устройства. Такое изменение потребовало введения в протокол специального интеллектуального механизма на обоих устройствах на случай возникновения ошибок. Может возникнуть ситуация, когда устройству необходимо повторно передать данные, если к нему вернулось подтверждение из-за ошибки в принятых данных. В протоколе фиксируется число разрешений (credits) на передачу пакета данных для того, чтобы определить количество активной полезной информации, которую устройство может иметь единовременно, до тех пор, пока оно больше не сможет передавать/принимать новую информацию раньше, чем будет обработано верное подтверждение ACK.
Фактически, каждый раз, когда пересылаются данные от хоста к периферии (или от периферии к хосту), с «бюджета» периферийного устройства списывается одно разрешение на передачу пакета данных. Когда подтверждение приема ACK успешно первоначально обработано передающим устройством, в «бюджет» этого периферийного устройства повторно поступает одно разрешение на передачу пакета данных. На рисунке 5 показана последовательность выходной транзакции SuperSpeed USB.
Литература
1. Dan Harmon. SuperSpeed USB (USB 3.0): More than just a speed increase//www.eetimes.com.