Если вы когда-либо использовали ноутбук с одним или двумя портами USB (к сожалению, это более распространенный случай, чем раньше), вы, вероятно, в конечном итоге подключали все через концентратор или док-станцию USB-C. Подключив монитор, клавиатуру, мышь, блок питания и многое другое, вы, возможно, задались вопросом, действительно ли было хорошей идеей подвергать такой нагрузке один USB-порт. Конечно же, он не предназначен для одновременной работы с таким количеством устройств, верно?
Правда в том, что порты USB могут выдерживать гораздо большую нагрузку, чем вы думаете. Именно благодаря своим рабочим возможностям технология USB так долго оставалась золотым стандартом подключения. Обычная настройка рабочего процесса не создаст проблем для обычного USB-порта. Фактически, теоретический предел количества устройств, которые можно подключить к одному порту, составляет колоссальные 127 на старых USB-портах и до 255 на новых.
Однако тот факт, что USB-порт теоретически может обслуживать сотни устройств, не означает, что у большинства людей на самом деле есть способ сделать это. Другие устройства в этой цепочке в конечном итоге станут настоящим барьером. Итак, вот почему USB-порты теоретически могут обслуживать такое большое количество устройств и почему так сложно достичь этого предела.
USB-порты теоретически могут обслуживать 127 устройств.
Максимальное количество устройств, которые может обрабатывать современный USB-порт, составляет 255. Конечно, вам понадобится несколько USB-концентраторов, соединенных последовательно вместе, чтобы добавить дополнительные порты к базовому порту, и это создает множество других проблем, которые мы обсудим ниже. Компьютеры считают степени двойки (т.е. 1, 2, 4, 8, 16, 32, 64, 128), поэтому 255 может показаться странным числом. Однако реальный предел на самом деле составляет 128, если вы включаете сам исходный порт.
Начиная с USB 3.0 SuperSpeed, протокол USB использует расширяемый интерфейс хост-контроллера (xHCI) для назначения каждому устройству уникального адреса, и каждое устройство может объявить до 31 конечной точки. Начиная с версии xHCI 1.2, выпущенной в 2019 году, эта математика дает 255 распознаваемых USB-устройств, причем сам порт является 256-м.
Однако все это лишь теоретически. Стандарт xHCI позволяет поставщикам определять количество разрешенных устройств. Это означает, что производитель вашей материнской платы, вероятно, наложил ограничения на ваши USB-порты, чтобы вы не могли вызвать неисчислимые проблемы с вашим компьютером, подключая сотни устройств к последовательно подключенным USB-концентраторам. Даже если вы каким-то образом получили порт, который не имеет этих ограничений, существует множество других причин, по которым вы столкнетесь с препятствием задолго до подключения 255 или даже 100 устройств. Это одна из многих причин, по которым вам может понадобиться больше USB-портов на вашем ноутбуке, чем вы думаете.
Почему большинство USB-портов не достигают теоретического предела устройств
Как мы установили, порт USB 3.0 или выше теоретически может работать с подключенными к нему до 255 устройствами. Однако в реальном мире этого не происходит, так как вам придется соединить несколько USB-концентраторов или док-станций последовательно, подключая один концентратор к другому, как бочку обезьян. Мало того, что каждое из этих мостовых устройств будет учитываться при ограничении в 127 устройств, вы также быстро столкнетесь с другой проблемой: максимальное количество уровней USB, которое вы можете иметь, составляет всего семь в зависимости от топологии концентратора.
Сам порт иногда может иметь глубину в несколько слоев еще до того, как вы что-нибудь прикрепите. Но даже в системах, где концентратор и порт сами по себе считаются первым уровнем, все не так просто. Первый подключенный концентратор считается вторым слоем. Вы можете объединить еще три концентратора, чтобы получить пять слоев и так далее. Таким образом, вы быстро достигнете седьмого слоя. Однако, поскольку микросхемы концентраторов обычно имеют только четыре нисходящих порта, эти концентраторы обычно представляют собой несколько последовательно соединенных концентраторов, и все это учитывается в пределе вашего устройства.
Более того, хост-контроллер на многих компьютерах имеет добровольно установленный лимит, часто не превышающий 100 устройств. Даже если бы вы смогли найти способ подключить 127 или 255 устройств к одному USB-порту, вы, скорее всего, увидите всплывающее сообщение об ошибке на компьютере задолго до того, как подключите их все. Если бы этого ограничения не существовало, мощность, необходимая для всех этих устройств, вероятно, стала бы первым узким местом, поскольку большинство компьютеров не имеют достаточного запаса мощности для обеспечения полной нагрузки устройства. Это все нормально, поскольку некоторые устройства все равно не следует подключать к USB-концентратору.