В современных персональных платформах,USB-контроллер традиционно входит в состав системной логики. Но вспоминая, как происходило внедрение новых поколений универсальной последовательной шины, от стандарта USB ревизии 2.0 до 3.0, нельзя не обратить внимание на характерный момент – поддержка новых скоростных USB-режимов в микросхемах чипсета всегда появляется с некоторым запаздыванием. Разработчики платформ, желая как можно раньше вывести на рынок передовые продукты, предлагают дискретные контроллеры, подключаемые к различным внутренним шинам системной платы. Начавшееся внедрение стандарта USB3.1, реализующего передачу данных в режиме SuperSpeedPlus со скоростью 10 гигабит в секунду не является исключением. Возникает вполне закономерный вопрос: как влияет такое решение на производительность подсистемы USB?
Попробуем пойти от частного к общему и рассмотрим конкретный пример с подключением контроллера Asmedia ASM1142, обеспечивающего два порта SuperSpeedPlus, к интерфейсу PCI Express Gen2 x2.
О производительности PCI express
Производительность PCI Express соединения, как в общем-то и любой другой шины определяется произведением количества информационных линий на пропускную способность одной линии, определяемую тактовой частотой при передаче сигналов. Для второго поколения шины PCI Express (Gen2) каждая сигнальная линия, а точнее дифференциальная пара, обеспечивает пропускную способность 5 гигабит в секунду.
Так как в нашем примере используется две линии (x2), умножаем на 2 и получаем 10 гигабит в секунду. Для обеспечения устойчивой передачи информации применяется избыточное кодирование, для Gen2 это режим 8b/10b при котором 10 бит, физически переданные по линии несут 8 полезных бит, поэтому реальная пропускная способность будет равна 8 гигабит в секунду.
Интерфейс PCI Express использует раздельные линии для приема и передачи информации, называемые Rx (Receive) и Tx (Transmit) соответственно. Таким образом, в нашем примере контроллер располагает каналами приема и передачи данных пропускной способностью по 8 гигабит в секунду каждый.
Рис 1. Принципы кодирования 8b/10b
О производительности USB 3.1
Режим SuperSpeedPlus предполагает передачу данных со скоростью 10 гигабит в секунду. Напомним, по сравнению с протоколом USB3.0 пропускная способность удвоилась. Применяется избыточное кодирование в режиме 128b/132b, это означает, что 132 бита, физически переданные по линии несут 128 полезных бит. Получаем 10*(128/132) = 9.6 гигабит в секунду.
Как и в случае PCI Express, для приема и передачи данных используются физически раздельные линии. Данное нововведение шина USB приобрела, начиная с поколения 3.0. Таким образом, один USB3.1 порт потенциально может создавать трафик около 9.6 гигабит полезных данных в секунду в каждом направлении. Хотя здесь уместно вспомнить, что типовые периферийные устройства, такие как жесткий диск или Flash-накопитель, не способны выполнять чтение и запись информации одновременно.
Рис 2. Блок-схема формирователя сигнала данных USB3.1
Резюме
Итак, сравним потребности и возможности:
- Два порта USB3.1 это около 9.6 * 2 = 19.2 гигабит в секунду, или 19.2 / 8 = 2.4 гигабайта в секунду суммарно для двух портов.
- Соединение PCI Express Gen2 x2 это около 8 гигабит в секунду, или 8 / 8 = 1.0 гигабайт в секунду.