Pourquoi les ports USB et le port Ethernet partagent-ils le même contrôleur?


12

Je crois comprendre que les ports USB du Pi partagent le même contrôleur que le port Ethernet.

Cela signifie que si l'on devait utiliser le Pi comme NAS, le transfert de données sur le réseau serait limité, car les ports USB et le port Ethernet seraient utilisés simultanément.

Ma question est de savoir dans quelle mesure le transfert de données est ralenti et existe-t-il une solution à ce problème?


Réponses:


13

Vous avez raison de comprendre que le bus USB / Ethernet partagé est un goulot d'étranglement.

Une option consiste à utiliser un Pi 3 sur WiFi. La puce WiFi ne partage pas de bus avec les prises USB et devrait fonctionner à pleine vitesse.

En utilisant n'importe quel Pi autre qu'un Pi 3, je suis amené à croire que l'utilisation d'un adaptateur Ethernet USB 3 Gigabit dans une prise USB peut faire des merveilles pour votre vitesse de connexion. Cette pièce sur jeffgeerling.com suggère qu'il a réussi à améliorer considérablement le débit du réseau de cette manière.

Performances d'E / S réseau - Raspberry Pi B + / 2


7

L'USB 2.0 a un taux de transfert maximum de 480Mb / sec (méga bits ).
Maintenant, le taux de transfert réel dans le monde réel est beaucoup plus lent.

Mon Pi 2 a un débit maximal de 220 Mo / s (méga bits ) sur USB.

Le maximum que le Pi peut pousser sur le port réseau 10/100 est d'environ 90 Mo / s (méga bits )


Donc:

  480 Mb/sec        (USB 2.0 maxium throughput)
- 260 Mb/sec        (For real-world speeds)
-  90 Mb/sec        (For the network port)
-----------
  130 Mb/sec        (Left over bandwidth)

Ainsi, après avoir complètement chargé le port réseau, il vous reste 130 Mo / s (méga bits ) de bande passante.
Pour jouer en toute sécurité, faisons qu'il reste 100 Mo / s (méga bits ).


Par conséquent, (en supposant que vous avez un Pi 2):

Tant que votre bande passante USB ne dépasse pas 100 Mo / s (méga bits ), tout ira bien. 90 Mo / s (méga bits ) seront utilisés pour le transmettre à la carte réseau.

Donc, tant que d'autres choses que le disque dur connecté aux ports USB utilisent moins de 10 Mo / s (mégabits), vous fonctionnerez à la vitesse maximale que le Pi 2 peut gérer.)


5

Le contrôleur est un Microchip LAN9512 et la raison pour laquelle il est utilisé à la place, par exemple, d'un tas de contrôleurs indépendants est probablement:

  1. Prix. Voici un exemple d'un endroit où vous pouvez en acheter 100 @ 5 $ chacun.

  2. Facteur de forme. Vous vous souvenez peut-être que le Raspberry Pi a été commercialisé ou blogué sur la technologie comme "un ordinateur de la taille d'une carte de crédit" ou "un ordinateur qui tient dans la paume de votre main", pas, "encore un autre mini-système ITX", ou "un ordinateur qui s'adaptera sous un grand chapeau ", etc.

  3. Puissance. Un coup d'œil à la première page de la fiche technique (accessible via le lien Microchip) "met en œuvre des modes de fonctionnement à puissance réduite" est mentionné comme l'une des "Caractéristiques". Il faudrait creuser plus profondément pour savoir ce que cela signifie vraiment en termes comparatifs mais, en surface du moins, cela a du sens.

N'oubliez pas, le pi coûte environ 35 $ au détail. Pas 135 $ ni 350 $. Voilà donc la réponse à la question littérale de votre titre, "Pourquoi les ports USB et le port Ethernet partagent-ils le même contrôleur?" .

Notez que ce n'est pas une approche inhabituelle pour plusieurs ports USB de partager le même bus --- c'est probablement la norme. Je remarque que l'ordinateur portable sur lequel je suis dispose maintenant de 3 ports USB, mais lsusbne signale que deux concentrateurs 2.0 "Full speed". Ainsi, au moins deux de ces ports partagent un concentrateur et ils n'obtiendront pas tous les deux "pleine vitesse" en même temps. Je suis sûr que si vous vérifiez votre système actuel, il est conçu de la même manière.

La combinaison de l'Ethernet avec cela est inhabituelle, mais il convient de noter que l'USB 2.0 devrait fournir 480 Mbps alors que la connexion Ethernet 10/100 en nécessiterait au plus 100.

Wikipédia note , citant la spécification comme source, que "En raison des contraintes d'accès au bus, le débit effectif du débit de signalisation haute vitesse est limité à 280 Mbit / s ou 35 Mo / s"; si cela signifie par port ou pour le bus dans son ensemble n'est pas clair.

à quel effet le transfert de données est ralenti

Évidemment, vous n'obtiendrez pas plus de 480 Mbps au total, et vous n'en obtiendrez probablement pas plus de 280. Personnellement, je n'ai jamais vu ni entendu de rapports d'un pi faisant mieux que 10 Mo / s de transfert d'Ethernet local vers un port USB (c.-à-d., 80 Mbps) de façon cohérente à des fins normales. Cependant , ce nombre est après que les protocoles eux-mêmes ont été traités, ce qui ajoutera une variable mais je pense qu'un petit pourcentage - avec Ethernet, il peut varier considérablement en fonction de la topologie et de l'activité du réseau connecté.

existe-t-il une solution à ce problème

Si vous voulez dire, puis-je faire passer plus d'eau dans un tuyau que le tuyau ne devait contenir alors non, ou puis-je faire fonctionner une pompe plus rapidement ou une combinaison ou les deux à nouveau, non. Si vous avez besoin d'une pompe plus rapide ou d'un tuyau plus gros, achetez une pompe plus rapide et un tuyau plus gros.


1

Pourquoi les ports USB et le port Ethernet partagent-ils le même contrôleur?

Parce que le SoC sur pi 1 à 3 n'a pas de contrôleur Ethernet, n'a qu'un seul contrôleur USB et n'a pas d'autres interfaces qui peuvent facilement être utilisées pour Ethernet. Bien qu'Eben ait pu avoir une certaine influence sur la conception du BCM2835, il s'agissait en fin de compte d'un produit Broadcom et ses patrons de Broadcom auraient appelé les coups de feu, il n'y avait que beaucoup de choses qu'il pouvait s'en tirer.

N'oubliez pas non plus que le Pi a été conçu pour être un ordinateur bon marché sur lequel les enfants peuvent apprendre à programmer. Le fait qu'il ait été ramassé et utilisé pour toutes sortes d'autres choses n'était qu'un effet secondaire heureux.

Le LAN9512 (remplacé plus tard par le LAN9514 pour ajouter plus de ports et le LAN7515 pour fournir un Ethernet plus rapide) a fourni une solution pratique pour ajouter un port USB supplémentaire et un port Ethernet.

Quand ils ont mis à jour les cœurs de bras pi2 et pi3, ils ont décidé de laisser le reste de la puce seul (à part corriger un bogue de contrôleur de mémoire pour permettre 1 Go de RAM). Je comprends que cela a été motivé en essayant de rendre la mise à niveau aussi bon marché et à faible risque que possible.

Enfin, ils ont atteint le point où ils n'avaient d'autre choix que de procéder à une refonte majeure de la conception du SoC. Heureusement, ils avaient également constitué leur clientèle au point où une telle refonte était financièrement viable. Avec le Raspberry Pi 4, le concentrateur USB avec puce Ethernet a disparu, remplacé par une puce Ethernet PHY pilotée par un MAC sur le nouveau SoC et un contrôleur USB3 piloté par le PCIe sur le nouveau SoC.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.