¿Por qué los puertos USB y el puerto Ethernet comparten el mismo controlador?


12

Tengo entendido que los puertos USB en el Pi comparten el mismo controlador que el puerto Ethernet.

Esto significa que si se usara el Pi como NAS, la transferencia de datos a través de la red estaría restringida, ya que tanto los puertos USB como el puerto Ethernet se usarían simultáneamente.

Mi pregunta es ¿hasta qué punto se ralentiza la transferencia de datos y hay una solución a este problema?


Respuestas:


13

Tiene razón al entender que el bus USB / ethernet compartido es algo así como un cuello de botella.

Una opción es usar un Pi 3 a través de WiFi. El chip WiFi no comparte un bus con los enchufes USB y debe funcionar a toda velocidad.

Al usar cualquier Pi que no sea ​​Pi 3, creo que usar un adaptador de Ethernet Gigabit USB 3 en un enchufe USB puede hacer maravillas con su velocidad de conexión. Este artículo en jeffgeerling.com sugiere que logró mejorar significativamente el rendimiento de la red de esta manera.

Rendimiento de E / S de red: Raspberry Pi B + / 2


7

USB 2.0 tiene una velocidad de transferencia máxima de 480Mb / seg (Mega bits )
Ahora, la velocidad de transferencia real en el mundo real es mucho más lenta.

Mi Pi 2 tiene un rendimiento máximo de 220 Mb / s (Mega bits ) a través de USB.

El máximo que el Pi puede empujar sobre el puerto de red 10/100 es de aproximadamente 90Mb / seg (Mega bits )


Entonces:

  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)

Entonces, después de cargar completamente el puerto de red, le quedan 130 Mb / s (Mega bits ) de ancho de banda.
Para ir a lo seguro, dejemos esos 100Mb / seg (Mega bits ) restantes.


Por lo tanto, (suponiendo que tenga un Pi 2):

Mientras que su ancho de banda USB no exceda de 100 Mb / s (mega bits de ), se le multa. 90Mb / seg (Mega bits de ) de que no se utilizará reenviarlo a la tarjeta de red.

Por lo tanto, siempre que otras cosas que no sean el HDD conectado a los puertos USB usen menos de 10Mb / seg (Megabits), estará operando a la velocidad máxima que puede manejar el Pi 2).


5

El controlador es un Microchip LAN9512 y la razón por la que se usa en lugar de, por ejemplo, un grupo de controladores independientes es presumiblemente:

  1. Precio. Aquí hay un ejemplo de un lugar donde puedes comprar 100 de ellos a $ 5 cada uno.

  2. Factor de forma. Es posible que recuerde que Raspberry Pi se comercializa o se escribe en blogs sobre tecnología como "una computadora del tamaño de una tarjeta de crédito" o "una computadora que cabe en la palma de su mano", no como "otro sistema mini-ITX" o "una computadora que cabrá debajo de un sombrero grande ", etc.

  3. Poder. Echar un vistazo a la primera página de la hoja de datos (accesible a través del enlace Microchip) "implementa modos de operación de potencia reducida" se menciona como una de las "Características". Tendría que profundizar más para descubrir lo que eso realmente significa en términos comparativos, pero, al menos en la superficie, tiene un sentido concebible.

Recuerde, el precio de pi cuesta ~ $ 35 al por menor. No $ 135 o $ 350. Entonces esa es la respuesta a la pregunta literal en su título, "¿Por qué los puertos USB y el puerto Ethernet comparten el mismo controlador?" .

Tenga en cuenta que no es un enfoque inusual que múltiples puertos USB compartan el mismo bus, probablemente sea la norma. Noté que la computadora portátil en la que estoy ahora tiene 3 puertos USB, pero lsusbinforma que solo tiene dos concentradores 2.0 de "velocidad máxima". Por lo tanto, al menos dos de esos puertos comparten un concentrador y no ambos obtendrán "Velocidad máxima" al mismo tiempo. Estoy seguro de que si verificas tu sistema actual, se arma en líneas similares.

La combinación de ethernet con eso es inusual, pero vale la pena señalar que USB 2.0 debería proporcionar 480 Mbps, mientras que la conexión ethernet 10/100 requeriría como máximo 100 de esos.

Wikipedia señala , citando especificaciones como fuente, que, "debido a las restricciones de acceso al bus, el rendimiento efectivo de la velocidad de señalización de alta velocidad está limitado a 280 Mbit / so 35 MB / s"; no está claro si eso significa por puerto o para el autobús en general.

a qué efecto se ralentiza la transferencia de datos

Obviamente, no obtendrá más de 480 Mbps en total, y probablemente no obtendrá más de 280. Personalmente, nunca he visto ni escuchado informes de que un pi tenga una transferencia mejor que 10 MB / s desde Ethernet local a un USB unidad (es decir, 80 Mbps) de forma coherente para fines normales. Sin embargo , ese número es después de que se hayan manejado los propios protocolos, lo que agregará una variable, pero creo que un pequeño porcentaje: con ethernet puede variar mucho según la topología y la actividad de la red conectada.

¿Hay alguna solución a este problema?

Si quiere decir, ¿puedo exprimir más agua a través de una tubería de la que se hizo que contenga la tubería y luego no, o puedo hacer que una bomba funcione más rápido o alguna combinación o las dos nuevamente, no. Si necesita una bomba más rápida o una tubería más grande, compre una bomba más rápida y una tubería más grande.


1

¿Por qué los puertos USB y el puerto Ethernet comparten el mismo controlador?

Debido a que el SoC en pi 1 a 3 no tiene un controlador Ethernet, solo tiene un solo controlador USB y no tiene otras interfaces que puedan usarse fácilmente para Ethernet. Si bien Eben pudo tener cierta influencia en el diseño del BCM2835, en última instancia fue un producto de Broadcom y sus jefes en Broadcom habrían estado tomando las decisiones, había mucho de lo que podía salirse con la suya.

También recuerde que el Pi fue diseñado para ser una computadora barata en la que los niños podrían aprender a programar. El hecho de que fue recogido y utilizado para todo tipo de otras cosas también fue un efecto secundario afortunado.

El LAN9512 (luego reemplazado con el LAN9514 para agregar más puertos y el LAN7515 para proporcionar Ethernet más rápido) proporcionó una solución conveniente para agregar un puerto USB adicional y un puerto Ethernet.

Cuando actualizaron los núcleos del brazo pi2 y pi3, decidieron dejar solo el resto del chip (aparte de corregir un error del controlador de memoria para permitir 1 GB de ram). Entiendo que esto fue motivado por tratar de hacer la actualización lo más barata y de bajo riesgo posible.

Finalmente llegaron al punto en el que tenían pocas opciones más que hacer una revisión importante del diseño de SoC. Afortunadamente, también habían aumentado su base de clientes hasta el punto en que dicha revisión era financieramente viable. Con el raspberry pi 4, el concentrador USB con chip ethernet se ha reemplazado por un chip Ethernet PHY controlado por un MAC en el nuevo SoC y un controlador USB3 controlado por el PCIe en el nuevo SoC.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.