Entendo que as portas USB no Pi compartilham o mesmo controlador que a porta Ethernet.
Isso significa que, se alguém usasse o Pi como um NAS, a transferência de dados pela rede seria restrita, pois as portas USB e Ethernet seriam usadas simultaneamente.
Minha pergunta é em que efeito a transferência de dados está mais lenta e existe uma solução alternativa para esse problema?
networking
usb
ethernet-port
data-transfer
Darth Vader
fonte
fonte
Respostas:
Você está certo ao entender que o barramento USB / Ethernet compartilhado é um gargalo.
Uma opção é usar um Pi 3 por WiFi. O chip WiFi não compartilha um barramento com os soquetes USB e deve funcionar a toda velocidade.
O uso de qualquer Pi outro do que um Pi 3, eu sou levado a crer que o uso de um USB 3 Gigabit ethernet adaptador em uma tomada USB pode fazer maravilhas para a sua velocidade de conexão. Este artigo no jeffgeerling.com sugere que ele conseguiu melhorar significativamente o rendimento da rede dessa maneira.
fonte
O USB 2.0 possui uma taxa de transferência máxima de 480 Mb / s (Mega bits )
Agora, a taxa de transferência real no mundo real é muito mais lenta.
Meu Pi 2 tem uma taxa de transferência máxima de 220 Mb / s (Mega bits ) em USB.
O máximo que o Pi pode enviar pela porta de rede 10/100 é de cerca de 90 Mb / s (Mega bits )
Assim:
Então, depois de carregar completamente a porta de rede, você tem 130Mb / s (Mega bits ) de largura de banda restante.
Para garantir a segurança, vamos deixar os 100 Mb / s (Mega bits ) restantes.
Portanto, (supondo que você tenha um Pi 2):
Contanto que sua largura de banda USB não exceda 100 Mb / s (Mega bits ), você estará bem. 90 Mb / s (Mega bits ) serão usados para encaminhar para a placa de rede.
Portanto, desde que outras coisas que não o HDD conectado às portas USB usem menos de 10 Mb / s (Megabits), você estará operando na velocidade máxima que o Pi 2 pode suportar.)
fonte
O controlador é um Microchip LAN9512 e o motivo pelo qual ele é usado em vez de, por exemplo, vários controladores independentes é presumivelmente:
Preço. Aqui está um exemplo de um lugar em que você pode comprar 100 deles a $ 5 cada.
Fator de forma. Você deve se lembrar de que o Raspberry Pi foi comercializado ou publicado em blog sobre tecnologia como "um computador do tamanho de um cartão de crédito" ou "um computador que cabe na palma da sua mão", não "outro sistema mini-ITX" ou "um computador que caberá sob um chapéu grande "etc.
Poder. Olhar de relance para a primeira página da folha de dados (acessível através do link Microchip) "implementa modos de operação com energia reduzida" é mencionado como um dos "Recursos". Você teria que ir mais fundo para descobrir o que isso realmente significa em termos comparativos, mas, pelo menos na superfície, faz sentido concebível.
Lembre-se, o pi custa ~ $ 35 no varejo. Não US $ 135 ou US $ 350. Portanto, essa é a resposta à pergunta literal em seu título: "Por que as portas USB e Ethernet compartilham o mesmo controlador?" .
Observe que não é uma abordagem incomum que várias portas USB compartilhem o mesmo barramento - provavelmente é a norma. Percebo que o laptop em que estou agora tem 3 portas USB, mas
lsusb
relata apenas dois hubs de 2,0 "velocidade total". Portanto, pelo menos duas dessas portas compartilham um hub e elas não terão "velocidade total" ao mesmo tempo. Tenho certeza de que, se você verificar seu sistema atual, ele será montado de acordo com linhas semelhantes.Combinar a Ethernet com isso é incomum, mas vale a pena notar que o USB 2.0 deve fornecer 480 Mbps, enquanto a conexão Ethernet 10/100 exigiria no máximo 100 deles.
A Wikipedia observa , citando as especificações como fonte: "Devido às restrições de acesso ao barramento, a taxa de transferência efetiva da taxa de sinalização de alta velocidade é limitada a 280 Mbit / s ou 35 MB / s"; se isso significa por porta ou para o barramento como um todo, não está claro.
Obviamente, você não terá mais de 480 Mbps no total e provavelmente não terá mais de 280. Pessoalmente, nunca vi ou ouvi relatos de um pi com desempenho superior a 10 MB / s de transferência da Ethernet local para um USB drive (ou seja, 80 Mbps) de forma consistente para fins normais. No entanto , esse número ocorre após os próprios protocolos terem sido manipulados, o que adicionará uma variável, mas eu acho que uma pequena porcentagem - com a Ethernet, pode variar bastante, dependendo da topologia e atividade da rede conectada.
Se você quer dizer, posso espremer mais água através de um tubo do que o tubo foi feito para conter, então não, ou posso fazer com que uma bomba funcione mais rápido ou alguma combinação ou as duas novamente, não. Se você precisar de uma bomba mais rápida ou de um tubo maior, compre uma bomba mais rápida e um tubo maior.
fonte
Como o SoC nos pi 1 a 3 não possui um controlador Ethernet, possui apenas um único controlador USB e não possui outras interfaces que possam ser facilmente usadas para Ethernet. Embora Eben pudesse ter alguma influência no design do BCM2835, ele era um produto da Broadcom e seus chefes da Broadcom estariam dando as ordens, mas havia muito o que ele poderia se dar bem.
Lembre-se também de que o Pi foi projetado para ser um computador barato em que as crianças podem aprender a programar. O fato de ter sido captado e usado para todo tipo de coisa também foi apenas um efeito colateral feliz.
O LAN9512 (posteriormente substituído pelo LAN9514 para adicionar mais portas e o LAN7515 para fornecer Ethernet mais rápida) forneceu uma solução conveniente para adicionar uma porta USB extra e uma porta Ethernet.
Quando eles atualizaram os núcleos do braço, o pi2 e o pi3, eles decidiram deixar o resto do chip em paz (exceto a correção de um bug no controlador de memória para permitir 1 GB de RAM). Entendo que isso foi motivado ao tentar fazer a atualização o mais barata e de baixo risco possível.
Finalmente, chegaram ao ponto em que tinham pouca escolha, a não ser fazer uma grande reforma no design do SoC. Felizmente, eles também haviam construído sua base de clientes até o ponto em que essa revisão era financeiramente viável. Com o raspberry pi 4, o hub USB com chip Ethernet desapareceu, substituído por um chip Ethernet PHY acionado por um MAC no novo SoC e por um controlador USB3 acionado pelo PCIe no novo SoC.
fonte