web-dev-qa-db-fra.com

Est-ce qu'un hub USB affecte les performances?

J'ai deux périphériques pour lesquels je souhaite un maximum de débit et de latence avec (par exemple ( MIDI et clavier MIDI)).)

Le fait de connecter les deux sur le même port USB via un concentrateur limiterait-il efficacement le taux de transfert de données maximal à 1/2 pour chacun d'eux?

Je suppose que oui, mais je ne savais pas si les concentrateurs USB disposaient d'un protocole de négociation et d'établissement de priorités disponible (par exemple, laissez d'abord le périphérique avec la mémoire tampon la plus longue accumulée).

22
SwimBikeRun

Oui. Tous les périphériques connectés via un concentrateur USB partagent la bande passante disponible pour ce concentrateur. Pas spécifiquement à 50% chacun cependant. Vous devez utiliser 480 Mbit/s avec chaque concentrateur USB 2.0 de l'ordinateur . Qu'est-ce que je veux dire par là? Eh bien, votre ordinateur est doté de concentrateurs USB. Oui, chaque port n'est pas une entité individuelle. Dans la plupart des cas, lorsque vous voyez deux ports USB empilés l'un sur l'autre, ils se trouvent sur un concentrateur ensemble en interne.

Ceci s'applique également avec deux ports côte à côte sur les ordinateurs portables. Alors, ne pensez pas que vous pouvez simplement connecter deux concentrateurs à des ports USB côte à côte et disposer de BEAUCOUP de ports USB pour brancher des périphériques à taux de transfert de données élevé.

Ce que vous devez VRAIMENT faire est de regarder les taux de transfert de données attendus des appareils que vous avez l'intention de connecter. Je suppose que la batterie MIDI sera considérée comme un taux de transfert faible, alors que le clavier sera un taux de transfert faible ou moyen. Cela serait comparé à quelque chose comme une carte son USB ... dans laquelle vous ne voudriez pas partager un hub avec autre chose.

Avec un concentrateur alimenté, chaque périphérique reçoit la puissance dont il a besoin, tandis qu'avec un concentrateur non alimenté, tous les périphériques partagent la même puissance que le port USB de l'hôte. Donc, il y a cela à considérer également.

Vous le savez probablement déjà, mais pour les problèmes de latence, les pilotes ASIO4ALL résolvent la plupart, sinon tous les problèmes potentiels. Il suffit de mettre ça là-bas.

17
Bon Gart

En fait, je suis surpris que la première réponse soit acceptée et votée sans aucun fait justificatif à l’appui de la déclaration, car c’est très probablement une erreur. La batterie MIDI et le clavier MIDI sont presque certainement des périphériques à faible vitesse. Ils consomment donc moins de 1% de la bande passante d'un concentrateur haute vitesse au plus (2 * 1 Mbit/s/480 Mbit/s * 100% = 0,4%).

En effet, la présence du hub introduira une latence, d’ordre de dizaines de microsecondes pour les hubs à faible vitesse ou des centaines de nanosecondes pour les concentrateurs haute vitesse. Dans ce dernier cas, cette latence disparaîtra une fois que vous aurez ajouté la latence introduite par le logiciel MIDI.

De plus, le protocole USB prend en charge les priorités de transfert (voir Transferts d'interruption ), ce qui permettra aux périphériques MIDI de coexister même avec un disque dur ou un scanner sur le même bus sans trop d’effet sur leur vitesse de transfert ou leur latence. Cependant, je ne ferai aucune déclaration car je ne connais pas particulièrement les périphériques MIDI.

27
Dmitry Grigoryev

La réponse courte est que vous voulez vraiment un concentrateur Multi-TT pour cette application, où au moins deux de vos périphériques USB ont une capacité de 12 Mbit/s. Recherchez "Multi-TT" sur Amazon, Newegg ou d'autres sites pour trouver ces hubs.

Malheureusement, cet important détail technique est rarement mentionné. La plupart des hubs utilisent une conception Single-TT moins chère. Les bons multiples TT sont rarement annoncés comme dotés de cette fonctionnalité, même pas indiqués sur l'emballage. Malheureusement, la plupart des gens n’ont probablement même jamais entendu parler de TT, ce qui explique probablement pourquoi les spécialistes du marketing ne se donnent pas la peine de vous dire quel design ils utilisent.

Vous pouvez vérifier si votre concentrateur dispose de cette fonctionnalité à l'aide du Gestionnaire de périphériques Windows. Recherchez les mots "Le hub a plusieurs TT" dans l'onglet Avancé.

Device Manager screenshot

Sous Linux, le type de hub peut être vérifié avec "lsusb -v | grep TT". Je ne connais aucun moyen simple de vérifier sur Macintosh, à l'exception de l'utilitaire "USB Prober" publié par Apple dans ses outils de développement Xcode.

TT signifie Transaction Translator. Les détails sont complexes et entièrement documentés au chapitre 11 de la spécification USB, téléchargeable gratuitement sur www.usb.org. Mais en un mot, le TT convertit entre 480 Mbit/s de votre PC et les vitesses plus lentes de 12 ou 1,5 Mbit/s.

Normalement, lorsque vous jouez sur ces instruments de musique, leurs contrôleurs génèrent MIDI messages et se placent ensuite dans des mémoires tampons, qui attendent le moment où votre PC demande les données. Lorsque votre PC se connecte directement, il envoie un message appelé jeton IN à votre instrument. Votre instrument peut répondre au jeton IN de deux manières: un paquet de données ou un jeton NAK pour ne pas indiquer de données. Votre PC envoie ces jetons IN très rapidement. Le résultat est une diffusion presque instantanée de vos événements musicaux sous forme de messages MIDI.

Toutefois, lorsque votre périphérique 12 [MB>/MIDI> se connecte via un concentrateur USB 2.0, une communication très différente se produit, le tout à 480 Mbits/s. Votre PC communique réellement avec le Transaction Translator du hub. Il envoie 2 messages. Tout d'abord, le message SSPLIT (Start Split Transaction) est envoyé au TT. Si le TT n'est pas occupé , il envoie un accusé de réception. Ensuite, le TT transmet le jeton IN à votre clavier MIDI à la vitesse inférieure de 12 Mbits/s. Pendant ce temps, votre PC est capable de communiquer avec d'autres appareils à 480 Mbit/s. Votre clavier MIDI ne peut pas dire si le jeton IN est venu directement de votre PC ou du TT d'un concentrateur. Il fait exactement la même chose que s’il était connecté à votre PC. Le TT à l'intérieur du concentrateur reçoit la réponse NAK ou DATA. Pendant ce temps, votre PC commence à envoyer des messages CSPLIT (Complete Split Transaction) au TT du concentrateur. Le TT répond avec un jeton NYET spécial si le TT communique toujours à 12 Mbit/s, ou le NAK ou DATA de votre clavier.

Si vous avez un clavier MIDI et une batterie MIDI connectés, que se passera-t-il si votre PC souhaite envoyer un message SSPLIT demandant au TT de communiquer avec le batterie, mais le TT est déjà en train de communiquer avec le clavier? Avec un seul TT, le concentrateur peut répondre à NYET à une nouvelle demande SSPLIT, car il est occupé à exécuter le paramètre IN + DATA à 12 Mbits/s. Vous ne voulez certainement pas ce scénario!

Plusieurs TT concentrateurs ont un TT dédié sur chaque port en aval (auquel vous branchez des périphériques). Avec plusieurs TT, le concentrateur est toujours en mesure d'accepter une demande SSPLIT, même lorsque les autres TT sont en train de communiquer avec d'autres périphériques en aval. Avec un seul TT, votre PC risque d’attendre, même avec une bande passante abondante de 480 Mbits/s, car le hub a une capacité limitée à convertir plus d’un message à la fois entre les deux. différentes vitesses.

Cette description passe sous silence de nombreux problèmes de synchronisation USB importants traités par les TT, mais le point important est que les concentrateurs USB 2.0 peuvent utiliser deux conceptions distinctement différentes. Vous voulez vraiment éviter les hubs Single-TT moins chers.

Les vitesses USB 3.0 et 3.1 ont été mentionnées ailleurs dans ces réponses. Mais les TT du concentrateur ne convertissent jamais entre les vitesses de 5 ou 10 gigabits et les vitesses de 480, 12 ou 1,5. Au lieu de cela, les hubs USB 3.0 & 3.1 fonctionnent comme une paire de hubs. Les signaux gigabits ont leurs propres broches dédiées dans les nouveaux connecteurs USB, qui se connectent à un concentrateur fonctionnant uniquement à une vitesse de 5 ou 10 Gbit/s. Une communication simultanée à 480 Mbit/s se produit sur les broches d'origine. Par conséquent, les périphériques de 12 et 1,5 Mbit/s sont convertis en 480 Mbit/s par les TT, mais jamais à 5 ou 10 Gbit/s.

On parle également ailleurs de "faible vitesse", ce qui signifie techniquement 1,5 Mbit/s en jargon USB, mais peut signifier 1,5 ou 12 Mbit/s en conversation informelle. 12 Mbit/s est appelé "pleine vitesse" dans la terminologie USB. Le protocole USB MIDI, qui fait techniquement partie de la "spécification de classe audio", utilise le protocole "en vrac" ( et non l'interruption protocole, comme indiqué dans une autre réponse). La spécification USB n'autorise pas le protocole de transfert en masse pour une vitesse de 1,5 Mbit/s. Ainsi, sauf si un périphérique USB MIDI viole de manière très flagrante la vitesse USB, il aura toujours une vitesse d'au moins 12 Mbit/s. USB MIDI peut avoir une vitesse de 480 Mbit/s, auquel cas les TT ne s'appliquent pas. Mais la grande majorité des produits USB MIDI ont encore une vitesse de 12 Mbit/s.

Donc, vous voulez vraiment vous assurer que vos concentrateurs USB sont du type Multi-TT, si vous prévoyez d’optimiser les performances.

14
Paul Stoffregen

De manière réaliste, le partage d'un seul port USB à l'aide d'un concentrateur pour augmenter le nombre de périphériques que vous connectez n'aura probablement pas trop d'importance, même si vous utilisez tous les périphériques connectés simultanément. La plupart des appareils n'utilisent pas beaucoup du transfert de données à la fois. C'est encore moins une préoccupation si vous utilisez des ports USB 3.0 ou 3.1, qui sont respectivement 10 et 20 fois plus rapides que la version 2.0, mais qui peuvent également envoyer et recevoir des données simultanément, fournir plus de puissance et fonctionner avec la version 2.0. dispositifs.

Comme indiqué, tant que tous les périphériques connectés au port sont suffisamment alimentés, aucun problème ne devrait survenir.

3
Xiro

Juste mon cas comme exemple de ralentissement du hub USB 3.0 lorsque plusieurs périphériques sont connectés.

J'ai deux ensembles identiques de: SataIII à USB3.1 Boîtier Gen2 Type C avec un SSD de 480 Go.

Si je mets le SSD dans un port SataIII, la commande Linux dd lit à plus de 500 Mo/s.

Si je mets le disque SSD dans le boîtier SataIII vers USB 3.1 Gen2 type C, la commande Linux dd lit à près de 413 Mo/s, quel que soit le jeu que j'utilise.

La chose étrange vient quand je branche sur les deux boîtiers USB 3.0 et je demande à Linux de lire à partir des deux (peu importe si LVM stripe, RAID0 ou deux commandes dd simultanées), il lit seulement à 2x150 = 300 MiB/s.

Donc, lorsque les deux sont branchés, je perds près de 413-300 = 113 Mo/s de vitesse.

En d'autres termes:

  • Un SSD sur USB 3 HUB, je reçois 413 Mo/s en lecture
  • Deux SSD sur USB 3 HUB, je reçois 150 + 150 = 300 Mo/s en lecture
  • La lecture détectée (par SSD) lorsque deux SSD sur un concentrateur USB 3 équivaut à 413/2 = 206 Mo/s mais ne dépasse pas 150 Mo/s chacun, pas plus de 200 Mo/s comme on le suppose.

Je commence à penser que le problème réside dans le protocole du hub USB 3 qui permet d'alterner la bande passante des données entre les deux disques, ce qui ajoute une charge supplémentaire considérable.

Donc, je peux confirmer que le hub USB 3 que j'ai sur mes mains ralentit un SSD beaucoup plus que la bande passante maximale, lorsque plusieurs sont connectés en même temps.

En outre, j’ai testé avec un SSD et une clé USB 3.0 très lente (moins de 50 Mo/s), la vitesse de lecture combinée du concentrateur USB 3 a été réduite à 263 Mo/s, ce qui me permet de confirmer que la lecture combinée est à 100 Mo/s si Je branche tout autre périphérique de stockage USB.

Et plus, et pire encore, je branche une souris (ou un clavier), et la vitesse de lecture SSD est également proche de 313 Mo/s, je débranche la souris/clavier et la vitesse de lecture SSD revient à 413 Mo/s, donc à nouveau près de 100MiB/s vitesse de lecture perdue simplement parce qu'une souris est connectée (et utilisée); si je ne bouge pas la vitesse de lecture de la souris remonte à 413 Mo/s.

Ainsi, le HUB provoque une chute massive de la vitesse de lecture (près de 100 Mo/s) sur le débit de transfert combiné quand un seul appareil y est connecté (et utilisé), quel que soit le type d'appareil que je connecte, dès que il fonctionne plus d’une fois à la fois, j’ai une vitesse de lecture combinée inférieure de près de 100 Mo/s à celle d’un seul appareil à la fois.

J'avais également testé avec trois périphériques: SSD + souris + clavier, je perds encore assez près de la même vitesse, environ 100 Mo/s.

Si je lis à partir d'un seul SSD, mais que les deux sont connectés, je me rapproche également de 413 Mo/s.

Le prix du hub USB 3.0 était de 20 € environ, pas cher.

Conclusion: USB HUB 3.0 réduit considérablement la vitesse de transfert de MiB/s lorsque plusieurs périphériques sont connectés (et effectuent des transferts) en même temps. Qui sait pourquoi! peut-être parce qu'il divise le transfert de temps par le nombre d'appareils (très usé) ou peut-être parce qu'il a une surcharge énorme en appareils à vélo, etc.

En espérant que cela aide quelqu'un à identifier le problème, tous les tests ont été réalisés sous Linux Live SystemRescueCD (dernière version) avec la commande dd avec status = progress, taille de bloc d'un mégaoctet et compte égal à mille (lecture d'un total de 1 Go), périphérique de destination/dev/null.

Je prévois (quand/si je serai riche) d’acheter un autre concentrateur USB 3.x, cette fois-ci un 3.1 Gen 2 pour vérifier s’il se passe de la même manière ou si cette marque possède un algorithme de microprogramme médiocre.

1
Laura

Lorsque j'utilise une connexion directe entre mon ordinateur portable doté d'un disque dur de 750 Go à 5 400 tr/min et mes disques durs externes de 8 Go, les taux de transfert sont en réalité beaucoup plus lents que lorsque j'utilise un concentrateur USB. Par exemple, j'ai récemment copié et collé quatre films, ce qui représente environ 120 Go de données. Voici ce qui s'est passé.

  1. Tout d'abord, j'ai copié les quatre films en ajoutant jusqu'à 120 Go de données sur le disque dur de mon ordinateur portable, puis les ai collés sur le disque dur externe de 8 Go. Le transfert a pris environ 80 minutes, car le taux de transfert de données n’était que d’environ 30 mb. Le taux de transfert de données a connu des pointes allant de 20 à 35 mb.

  2. Deuxièmement, j'ai ensuite connecté l'autre disque dur externe de 8 Go qui correspond exactement au même modèle. Cette fois, j'ai utilisé le hub USB 3.0 à 4 ports. Cette fois, le taux de transfert de données était beaucoup plus rapide - parfois plus de 90 Mo. Le taux de transfert de données a connu des pointes allant de 50 à 90 mégaoctets. Il n'a fallu que 30 minutes pour transférer les données.

  3. Troisièmement, à titre d’expérience, j’ai connecté simultanément les deux disques durs externes de 8 Go via le concentrateur USB 3.0. J'ai copié les quatre films avec les 120 Go de données d'un disque dur à l'autre. Cette fois, le transfert a été encore plus rapide que jamais. Le taux de transfert de données était d’environ 150 mb et il n’y avait aucune pointe dans le taux de transfert. C'était une ligne régulière de 150 Mo tout le temps.

J'ai fait des expériences avec d'autres grands transferts de données. Pour une raison quelconque, la connexion directe USB 3.0 à un disque dur externe est beaucoup plus lente que lorsqu'un concentrateur USB 3.0 est impliqué. ... Quelqu'un sait pourquoi c'est comme cela?

1
mike_mgoblue