Поделиться через


Переходы U1 и U2

В этом разделе сначала описывается начальная настройка, выполняемая программным обеспечением для включения переходов U1 и U2, а затем описывается, как эти переходы происходят на оборудовании.

Начальная настройка по программному обеспечению

В этом разделе описывается, как программное обеспечение перечисляет устройство.

Для перехода U1 или U2 программное обеспечение выполняет следующие действия во время перечисления устройства.

  1. Программное обеспечение обменивается сведениями о задержке выхода U1 или U2 с устройством во время процесса перечисления. В первой части этого обмена задержки для конкретного устройства заполняются устройством в полях bU1DevExitLat и wU2DevExitLat возможностей USB-устройства SuperSpeed (определено в разделе 9.6.2.2 спецификации USB 3.0). В качестве второй части обмена узел информирует устройство об общей задержке выхода для устройства, отправляя SET_SEL передачу управления в соответствии с разделом 9.4.12 спецификации USB 3.0. Сведения о задержке включают задержки, связанные с вышестоящий каналами и контроллером.

  2. Для порта DS, к которому подключено устройство, программное обеспечение настраивает два значения: PORT_U1_TIMEOUT и PORT_U2_TIMEOUT. При выборе этих значений программное обеспечение учитывает характеристики устройства (например, тип конечных точек) и задержки, связанные с возвратом устройства из U1 или U2 в U0. В следующей таблице описаны значения времени ожидания.

    Таблица 1. значения PORT_U1_TIMEOUT и PORT_U2_TIMEOUT

    Значение Описание
    01H-FEH Порт DS должен инициировать переходы после периода бездействия. Точный период является производным от значения времени ожидания. Порт должен принимать переходы, инициированные партнером по каналу, если нет ожидающего трафика.
    FFH Порт DS не должен инициировать переходы, но должен принимать переходы, инициированные партнером по каналу, если нет ожидающего трафика.
    0 Порт DS не должен инициировать переходы и не должен принимать переходы, инициированные партнером по каналу.
  3. Если значение PORT_U2_TIMEOUT находится в диапазоне от 01H-FEH, в оборудовании в результате шага 2 выполняется дополнительный шаг. Порт DS сообщает партнеру по ссылке об этом значении. Важность этого шага описана в разделе "Прямой переход с U1 на U2".

  4. Для каждого устройства или концентратора программное обеспечение настраивает два значения: U1_ENABLE и U2_ENABLE путем отправки SET_FEATURE (U1_ENABLE/U2_ENABLE) управления. Эти значения описаны в следующей таблице.

    Таблица 2. значения U1_ENABLE и U2_ENABLE

    Значение Описание
    Активировано Порт США может инициировать переходы и принимать переходы, инициированные партнером по каналу, если это разрешено политикой устройства.
    Выключено Порт США не должен инициировать переходы, но может принимать переходы, инициированные партнером по каналу.

Аппаратные переходы

В этом разделе описывается переход оборудования на U1 и U2.

После начальной настройки программным обеспечением оборудование переходит на U1 и u2 автономно без дальнейшего вмешательства со стороны программного обеспечения.

Ссылка находится в рабочем состоянии (U0), если она активно передает пакеты. Ссылка считается неактивной, если пакеты не передаются. В состоянии простоя любой партнер по каналу может инициировать переход на U1 или U2. Другой партнер по ссылке может принять или отклонить переход. Если партнер по ссылке принимает переход, ссылка перемещается в этот штат U. Если он отклоняет переход, ссылка остается в U0.

Переходы, инициированные портом DS

Порт DS реализует механизм таймера, который отслеживает бездействие порта. Таймер сбрасывается всякий раз, когда этот порт отправляет или получает пакет. Таймер также сбрасывается, когда программное обеспечение задает новые значения времени ожидания. Если программное обеспечение запрограммировало порт DS для запуска только переходов U1 или U2, порт DS запускает таймер при первом входе в U0. Значение таймера основано на значении времени ожидания U1 (или U2), которое было запрограммировано программным обеспечением. Если ссылка находится в U0 по истечении срока действия таймера, порт DS инициирует переход U1 (или U2).

Партнер по каналу портов в США может отклонить переход, если устройство знает, что переход может повлиять на способность устройства соответствовать требованиям к производительности или задержке. Например, если устройство отправило уведомление ERDY и ожидает запроса на передачу от узла, устройство может отклонить переходы состояния U1 или U2 в это же время.

Если программное обеспечение запрограммировало порт DS для запуска переходов U1 и U2, порт DS сначала инициирует переход U1 на основе таймера (описано ранее в этом разделе). Переход с U1 на U2 описан в этом разделе в разделе Прямой переход с U1 на U2.

Если связь находится в U1 или U2, порт DS может вернуть порт в U0 при получении трафика для устройства, подключенного к порту.

Переходы, инициированные устройством (порт США)

Устройство может инициировать переход с U0 на U1 или U0 на U2, если эта возможность включена программным обеспечением. Если устройство переходит по ссылке на U1, она может перейти на U2 непосредственно на основе таймера U2 порта DS (описано в разделе "Прямой переход с U1 на U2". Однако если таймер U2 не задан, устройство не может инициировать прямой переход с U1 на U2 самостоятельно. В этом случае устройство должно вернуть ссылку на U0, прежде чем инициировать переход на U2.

При принятии решения о том, когда следует инициировать эти переходы, устройство должно учитывать задержки выхода и требования к производительности. Чтобы помочь устройству принимать обоснованные решения о том, насколько агрессивно оно может инициировать переходы, программное обеспечение также предоставляет различные значения задержки выхода, как описано ранее в этом документе в разделе "Начальная настройка программного обеспечения".

Если связь находится в U1 или U2, порт США может в любой момент вернуть порт в U0. Как правило, порт США инициирует переход на U0, когда он знает, что он будет отправлять какие-либо пакеты на узел, или если он ожидает пакет от узла.

Преимущества инициируемого устройством LPM

Значения таймера, заданные программным обеспечением для портов DS, основаны на общей эвристики. При выборе этих значений таймера программное обеспечение гарантирует, что производительность устройства не будет снижена. Для поддержания производительности устройства программное обеспечение не может выбирать слишком маленькие значения. Так как переходы, инициированные портом DS, основаны на таймерах и не учитывают точное состояние устройства, этот механизм не может воспользоваться всеми возможными возможностями отправки устройства в состояние U1 или U2.

Устройство, с другой стороны, имеет точные знания о его характеристиках и текущем состоянии. Таким образом, он может сделать разумное предположение о том, когда будет происходить следующая передача. На основе этих сведений устройство может (и должно) активно инициировать эти переходы, не влияя на производительность.

Например, устройство отправило уведомление NRDY на одну из своих конечных точек и знает, что трафик не будет в течение некоторого времени. В этом случае устройство может немедленно инициировать переход на U1 или U2. Непосредственно перед отправкой уведомления ERDY устройство может вернуть ссылку на U0 в рамках подготовки к отправке данных. Дополнительные сведения об этом процессе см. в разделе C.3.1 спецификации USB 3.0.

Прямой переход с U1 на U2

Если ссылка находится в U1, возможно, что она может напрямую перейти на U2 без ввода U0 между ними. Это может произойти независимо от того, какой партнер по каналу инициировал переход на U1. Однако переход из U1 в U2 может происходить только в том случае, если время ожидания U2 на порту DS связи установлено в диапазоне от 01H до FEH.

В разделе "Начальная настройка по программному обеспечению" описывается дополнительный шаг, позволяющий порту DS передавать значение времени ожидания своему партнеру по каналу. После того как ссылка перейдет в U1, оба партнера по каналу запускают таймер, используя значение времени ожидания, заданное в соответствии со значением времени ожидания U2 порта DS. Если таймер не сброшен из-за трафика и истекает, оба партнера связи автоматически переходят на U2 без каких-либо явных сообщений между ними.

Переходы с U1 или U2 на U3

Переходы на U1 или U2 инициируются на оборудовании автономно, но переход на U3 инициируется программным обеспечением. Так как переход U3 инициируется только после периода бездействия, вполне вероятно, что ссылка находилась в U1 или U2 (а не U0) перед переходом.

Спецификация USB 3.0 не определяет прямые переходы с U1 или U2 на U3. Родительский концентратор или контроллер отвечает за автоматический переход ссылки на U0, а затем переход на U3.

Переходы U1 или U2 для концентраторов

Спецификация USB 3.0 содержит конкретные рекомендации для концентраторов о том, когда следует инициировать переходы состояния U через порт в США. Если все порты DS находятся в состоянии соединения U1 или ниже, концентратор должен инициировать переход U1 на свой порт в США, предполагая, что программное обеспечение позволило концентратору инициировать переход U1.

Аналогичным образом, если все порты DS находятся в состоянии соединения U2 или ниже, концентратор должен инициировать переход U2 на свой порт в США, при условии, что программное обеспечение включило концентратор для запуска перехода U2.

Примечание

Если устройство не подключено к порту DS, состояние порта — Rx.Detect, что ниже U2. Таким образом, если нет подключенных устройств, концентратор должен отправить свой порт США в U2. Кроме того, если все порты DS изначально находились в U1 или ниже и переходили на U2 или ниже, концентратор должен перевести порт США с U1 на U2. Так как этот переход не основан на таймере действий U2, концентратор должен перенести свой порт США в U0, а затем отправить его в U2.

Отсрочка пакетов

Спецификация USB 3.0 описывает механизм, известный как отсрочка пакетов (см. раздел C.1.2.2). Механизм используется для минимизации влияния LPM на использование шины.

Если узел отправляет запрос на передачу на устройство, вышестоящий канал которого находится в U1 или U2, узел может в конечном итоге тратить пропускную способность шины, ожидая, пока ссылка вернется в U0, а затем устройство отреагирует. Чтобы избежать этого ожидания, родительский центр отвечает от имени устройства, отправляя отложенный заголовок пакета обратно на узел. Узел обрабатывает заголовок отложенного пакета аналогично NRDY, а затем может инициировать передачу с другими конечными точками. Параллельно концентратор инициирует переход U0 по каналу, а затем информирует устройство об отложенном пакете. Затем устройство отправляет ERDY на узел, чтобы указать, что устройство готово к передаче. Затем узел может перепланировать передачу на устройство.

Важной обязанностью устройства является то, что после отправки ERDY устройство отвечает за сохранение связи в U0 до тех пор, пока узел не отправит ответ на ERDY или до истечения времени tERDYTimeout (500 миллисекунда). В течение этого времени устройство не должно инициировать переход U1 или U2, а также отклонять любой переход, инициированный его партнером по компоновке.