Perché le porte USB e la porta Ethernet condividono lo stesso controller?


12

Comprendo che le porte USB del Pi condividono lo stesso controller della porta Ethernet.

Ciò significa che se si dovesse usare il Pi come NAS, il trasferimento dei dati sulla rete sarebbe limitato, poiché entrambe le porte USB e Ethernet sarebbero utilizzate contemporaneamente.

La mia domanda è: in che modo il trasferimento dei dati viene rallentato e esiste una soluzione alternativa a questo problema?


Risposte:


13

Hai ragione nel capire che il bus USB / Ethernet condiviso è una sorta di collo di bottiglia.

Un'opzione è utilizzare un Pi 3 tramite WiFi. Il chip WiFi non condivide un bus con le prese USB e dovrebbe funzionare a piena velocità.

Utilizzando qualsiasi Pi diverso da un Pi 3, sono portato a credere che l'uso di un adattatore Ethernet Gigabit USB 3 in una presa USB possa fare miracoli per la tua velocità di connessione. Questo articolo su jeffgeerling.com suggerisce che è riuscito a migliorare in modo significativo il throughput di rete in questo modo.

Prestazioni I / O di rete - Raspberry Pi B + / 2


7

USB 2.0 ha una velocità di trasferimento massima di 480 Mb / sec (Mega bit )
Ora, la velocità di trasferimento effettiva nel mondo reale è molto più lenta.

My Pi 2 ha un throughput massimo di 220 Mb / sec (Mega bit ) su USB.

Il massimo che il Pi può spingere sulla porta di rete 10/100 è di circa 90 Mb / sec (Mega bit )


Così:

  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)

Così, dopo il caricamento completamente giù la porta di rete, si dispone di 130MB / sec (Mega bit ) della larghezza di banda sinistra.
Per giocare in sicurezza, lasciamo che restino quei 100 Mb / sec (Mega bit ).


Pertanto, (supponendo che tu abbia un Pi 2):

Finché la larghezza di banda USB non supera i 100 Mb / sec (Mega bit ), andrà tutto bene. 90 Mb / sec (Mega bit ) verranno utilizzati per inoltrarlo alla scheda di rete.

Quindi, fintanto che cose diverse dall'HDD collegato alle porte USB utilizzano meno di 10 Mb / sec (Megabit) funzionerai alla massima velocità che Pi 2 può gestire.)


5

Il controller è un Microchip LAN9512 e il motivo per cui viene utilizzato al posto di, ad esempio, un gruppo di controller indipendenti è presumibilmente:

  1. Prezzo. Ecco un esempio di un posto in cui puoi acquistarne 100 a $ 5 ciascuno.

  2. Fattore di forma. Potresti ricordare che il Raspberry Pi è stato commercializzato o blog di tecnologia come "un computer delle dimensioni di una carta di credito" o "un computer che si adatta nel palmo della tua mano", non "ancora un altro sistema mini-ITX" o "un computer che si adatta a un cappello grande ", ecc.

  3. Energia. Uno sguardo alla prima pagina della scheda tecnica (accessibile tramite il collegamento Microchip) "implementa le modalità operative a potenza ridotta" è menzionato come una delle "Caratteristiche". Dovresti scavare più a fondo per scoprire cosa significhi davvero in termini comparativi ma, almeno in superficie, ha un senso immaginabile.

Ricorda, il costo è di circa $ 35 al dettaglio. Non $ 135 o $ 350. Quindi questa è la risposta alla domanda letterale nel tuo titolo, "Perché le porte USB e la porta Ethernet condividono lo stesso controller?" .

Si noti che non è un approccio insolito per più porte USB condividere lo stesso bus --- è probabilmente la norma. Ho notato che il laptop su cui mi trovo ora ha 3 porte USB ma lsusbriporta solo due hub "Full speed" 2.0. Quindi almeno due di queste porte condividono un hub e non otterranno entrambe la "velocità massima" allo stesso tempo. Sono sicuro che se controlli il tuo sistema attuale è messo insieme su linee simili.

Combinare Ethernet con questo è insolito, ma vale la pena notare che USB 2.0 dovrebbe fornire 480 Mbps mentre la connessione Ethernet 10/100 richiederebbe al massimo 100 di questi.

Wikipedia osserva , citando le specifiche come una fonte, che, "A causa dei vincoli di accesso al bus, il throughput effettivo della velocità di segnalazione ad alta velocità è limitato a 280 Mbit / so 35 MB / s"; non è chiaro se ciò significhi per porta o per il bus nel suo insieme.

a quale effetto viene rallentato il trasferimento dei dati

Ovviamente non otterrai più di 480 Mbps in totale, e probabilmente non ne otterrai più di 280. Personalmente, non ho mai visto o sentito rapporti di un pi che fa un trasferimento migliore di 10 MB / s da Ethernet locale a una USB unità (ad es. 80 Mbps) in modo coerente per scopi normali. Tuttavia , quel numero è dopo che i protocolli stessi sono stati gestiti, il che aggiungerà una variabile ma penso una piccola percentuale - con Ethernet può variare notevolmente a seconda della topologia e dell'attività della rete connessa.

c'è una soluzione alternativa a questo problema

Se vuoi dire, posso spremere più acqua attraverso un tubo di quello che il tubo è stato fatto per contenere, quindi no, o posso far funzionare una pompa più velocemente o qualche combinazione o i due di nuovo, no. Se hai bisogno di una pompa più veloce o di un tubo più grande, acquista una pompa più veloce e un tubo più grande.


1

Perché le porte USB e la porta Ethernet condividono lo stesso controller?

Poiché il SoC su pi 1 a 3 non ha un controller Ethernet, ha solo un singolo controller USB e non ha altre interfacce che possono essere facilmente utilizzate per Ethernet. Mentre Eben era in grado di influenzare il design del BCM2835, alla fine era un prodotto Broadcom e i suoi capi di Broadcom avrebbero chiamato i colpi, ma c'era solo così tanto che poteva cavarsela.

Ricorda anche che Pi è stato progettato per essere un computer economico su cui i bambini potrebbero imparare a programmare. Il fatto che sia stato raccolto e utilizzato anche per ogni altra cosa è stato solo un effetto collaterale fortunato.

La LAN9512 (successivamente sostituita con la LAN9514 per aggiungere più porte e la LAN7515 per fornire Ethernet più veloce) ha fornito una soluzione conveniente per aggiungere una porta USB e una porta Ethernet aggiuntive.

Quando hanno aggiornato i core arm di pi2 e pi3 hanno deciso di lasciare solo il resto del chip (oltre a correggere un bug del controller di memoria per consentire 1 GB di RAM). Comprendo che ciò è stato motivato dal tentativo di rendere l'aggiornamento il più economico e a basso rischio possibile.

Alla fine hanno raggiunto il punto in cui non avevano altra scelta che fare una revisione sostanziale del progetto SoC. Fortunatamente avevano anche costruito la loro base di clienti al punto da rendere finanziariamente possibile tale revisione. Con raspberry pi 4 l'hub USB con chip ethernet è sparito, sostituito da un chip PHY Ethernet gestito da un MAC sul nuovo SoC e da un controller USB3 guidato dal PCIe sul nuovo SoC.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.