Czy koncentrator USB wpływa na wydajność?

24

Mam dwa urządzenia Chcę maksymalną przepustowość i opóźnienia z ( MIDI bębny i klawiatura MIDI na przykład).

Czy podłączenie obu do tego samego portu USB za pośrednictwem koncentratora skutecznie ograniczyłoby maksymalną prędkość transferu danych do 1/2 do każdego z nich?

Zakładam, że tak, ale nie wiedziałem, czy koncentratory USB mają dostępny protokół uzgadniania i nadawania priorytetu (na przykład pozwól, aby urządzenie z dłuższym buforem danych najpierw się komunikowało).

SwimBikeRun
źródło

Odpowiedzi:

17

Tak. Wszystkie urządzenia podłączone przez koncentrator USB dzielą przepustowość dostępną dla tego koncentratora. Nie dotyczy to jednak 50%. Masz 480 Mbit / s do pracy dla każdego koncentratora USB 2.0 na komputerze . Co mam przez to na myśli? Komputer ma wbudowane koncentratory USB. Tak, nie każdy port jest indywidualną jednostką. W większości przypadków, gdy widzisz dwa porty USB ułożone jeden na drugim, są one razem w koncentratorze wewnętrznie.

Dotyczy to również dwóch portów obok siebie na laptopach. Więc nie myśl, że możesz po prostu podłączyć dwa koncentratory do portów USB, które są obok siebie, i MASZ wiele portów USB, do których można podłączyć urządzenia o wysokiej szybkości przesyłania danych.

To, co NAPRAWDĘ musisz zrobić, to spojrzeć na oczekiwane prędkości przesyłania danych urządzeń, które zamierzasz podłączyć. Spodziewałbym się, że bębny MIDI będą uważane za niską prędkość transferu, podczas gdy klawiatura będzie albo niska, albo średnia szybkość transferu. Można to porównać do czegoś w rodzaju karty dźwiękowej USB ... której nie chcesz dzielić koncentratora z niczym innym.

Dzięki zasilanemu koncentratorowi każde urządzenie otrzyma moc, której potrzebuje, podczas gdy przy niezasilanym koncentratorze wszystkie urządzenia współużytkują moc, jaką może wydać port USB hosta. Należy więc wziąć to pod uwagę.

Najprawdopodobniej już wiesz, ale w przypadku problemów z opóźnieniem sterowniki ASIO4ALL wyleczy większość, jeśli nie wszystkie potencjalne problemy. Po prostu to tam opublikowałem.

Bon Gart
źródło
+1 dla ASIO4ALL. użyłem go, by zabić moje opóźnienie w Rocksmith. dziwne, czy społeczność Rocksmith wie o tym!
camelbrush
Czy jesteś pewien, że kontroler audio USB będzie miał wąskie gardło przepustowości, jeśli nie będzie miał całego kontrolera USB ? Myślę, że powinny być zaprojektowane do pracy na hubach, przynajmniej dla 2-kanałowego dźwięku.
jiggunjer
28

Właściwie to jestem zaskoczony, że pierwsza odpowiedź została zaakceptowana i poddana głosowaniu bez żadnych faktów na poparcie tego oświadczenia, ponieważ najprawdopodobniej jest ona błędna. Zarówno perkusja MIDI, jak i klawiatura MIDI prawie na pewno są urządzeniami o niskiej prędkości, więc będą zużywać mniej niż 1% pasma z koncentratora o dużej prędkości (2 * 1 Mbit / s / 480 Mbit / s * 100% = 0,4% ).

Rzeczywiście, obecność piasty wprowadzi opóźnienie rzędu dziesiątek mikrosekund w przypadku piast o niskiej prędkości lub setek nanosekund w przypadku piast o dużej prędkości. W drugim przypadku opóźnienie to zniknie po dodaniu opóźnienia wprowadzonego przez oprogramowanie MIDI.

Ponadto protokół USB obsługuje priorytety przesyłania (patrz Przerwanie przesyłania ), co pozwoli współdziałać urządzeniom MIDI nawet z dyskiem twardym lub skanerem na tej samej magistrali, bez większego wpływu na ich szybkość lub opóźnienie. Nie będę jednak składał żadnych oświadczeń, ponieważ nie znam w szczególności urządzeń MIDI.

Dmitrij Grigoriew
źródło
15

Krótka odpowiedź brzmi: naprawdę potrzebujesz koncentratora Multi-TT dla tej aplikacji, w której 2 lub więcej urządzeń USB ma prawdopodobnie prędkość 12 Mbit / s. Wyszukaj „Multi-TT” na Amazon, Newegg lub innych stronach, aby znaleźć te centra.

Niestety ten ważny szczegół techniczny jest rzadko wymieniany. Większość koncentratorów wykorzystuje tańszą konstrukcję Single-TT. Dobre Multiple TT rzadko są reklamowane jako posiadające tę funkcję, nawet nie zaznaczone na opakowaniu. Niestety, większość ludzi prawdopodobnie nigdy nie słyszała TT, i prawdopodobnie sprzedawcy nie zadają sobie trudu, aby powiedzieć, z jakiego projektu korzystają ich huby.

Możesz sprawdzić, czy Twój hub ma tę funkcję, korzystając z Menedżera urządzeń Windows. Poszukaj słów „Hub ma wiele TT” na karcie Zaawansowane.

Zrzut ekranu Menedżera urządzeń

W systemie Linux typ koncentratora można sprawdzić za pomocą „lsusb -v | grep TT”. Nie znam żadnego prostego sposobu sprawdzenia na komputerze Macintosh, z wyjątkiem narzędzia „USB Prober”, które Apple publikuje w swoich narzędziach programistycznych Xcode.

TT oznacza Transaction Translator. Szczegóły są złożone i w pełni udokumentowane w rozdziale 11 specyfikacji USB, który można pobrać bezpłatnie ze strony www.usb.org. Ale w skrócie, TT konwertuje między 480 MBit / s z komputera na wolniejsze 12 lub 1,5 MBit / s.

Zwykle, kiedy grasz na tych instrumentach muzycznych, ich kontrolery generują komunikaty MIDI i pakują je następnie w bufory pamięci, które czekają na moment, w którym komputer zażąda danych. Kiedy komputer łączy się bezpośrednio, wysyła komunikat o nazwie token IN do twojego instrumentu. Twój instrument może reagować na token IN na dwa sposoby: albo pakiet DATA, albo token NAK, aby wskazać brak danych. Twój komputer wysyła te tokeny IN bardzo szybko, więc wynikiem jest niemal natychmiastowe dostarczenie twoich wydarzeń muzycznych jako komunikatów MIDI.

Jednak gdy urządzenie MIDI 12 MBit / s łączy się za pośrednictwem koncentratora USB 2.0, następuje zupełnie inna komunikacja, wszystko z prędkością 480 MBit / s. Twój komputer komunikuje się z Transaction Translator w hubie. Wysyła 2 wiadomości. Najpierw wiadomość SSPLIT (Rozpocznij transakcję podziału) jest wysyłana do TT. Jeśli TT nie jest zajęty, wysyła potwierdzenie. Następnie TT przesyła token IN na klawiaturę MIDI z mniejszą prędkością 12 MBit / s. Tymczasem komputer może komunikować się z innymi urządzeniami z prędkością 480 Mbit / s. Klawiatura MIDI nie może stwierdzić, czy token IN pochodzi bezpośrednio z komputera, czy z TT koncentratora. Robi dokładnie to samo, jakby był podłączony do komputera. TT wewnątrz koncentratora odbiera odpowiedź NAK lub DATA. Podczas tego procesu komputer zaczyna wysyłać wiadomości CSPLIT (Complete Split Transaction) do TT centrum. TT odpowiada specjalnym tokenem NYET, gdy TT jest nadal zajęty komunikacją z prędkością 12 Mbit / s lub NAK lub DANE z klawiatury.

Jeśli masz podłączoną zarówno klawiaturę MIDI, jak i bęben MIDI, co się stanie, jeśli Twój komputer zechce wysłać wiadomość SSPLIT, aby poprosić TT o komunikację z bębnami, ale TT jest już zajęty komunikacją z klawiaturą? Przy tylko jednym TT hub może odpowiedzieć NYET na nowe żądanie SSPLIT, ponieważ jest zajęty wykonywaniem danych IN + przy prędkości 12 MBit / s. Na pewno nie chcesz tego scenariusza!

Wiele koncentratorów TT ma dedykowane TT na każdym porcie wyjściowym (do którego podłączasz urządzenia). Przy wielu TT, hub zawsze jest w stanie zaakceptować żądanie SSPLIT, nawet gdy inne TT są zajęte komunikowaniem się z innymi urządzeniami podrzędnymi. Dzięki tylko jednemu TT komputer może skończyć, nawet przy przepustowości 480 MBit / s, ponieważ koncentrator ma ograniczoną możliwość konwertowania więcej niż 1 wiadomości na raz między różnymi prędkościami.

W opisie tym omówiono wiele ważnych problemów związanych z synchronizacją USB obsługiwanych przez TT, ale ważne jest, aby koncentratory USB 2.0 mogły korzystać z dwóch wyraźnie różnych konstrukcji. Naprawdę chcesz uniknąć tańszych hubów Single-TT.

Prędkości USB 3.0 i 3.1 zostały wymienione w innych odpowiedziach. Ale TT w hubie nigdy nie konwertują między 5 lub 10 gigabitowymi prędkościami a 480, 12 lub 1,5 prędkościami. Zamiast tego koncentratory USB 3.0 i 3.1 działają jako para koncentratorów. Sygnały gigabitowe mają własne dedykowane piny w nowszych złączach USB, które łączą się z koncentratorem działającym tylko z prędkością 5 lub 10 Gbit / s. Równoczesna komunikacja z 480 Mb / s odbywa się na oryginalnych pinach, więc urządzenia 12 i 1,5 MBit / s są konwertowane do 480 Mbit / s przez TT, ale nigdy do 5 lub 10 Gbit / s.

W innym miejscu wspomniano również o „niskiej prędkości”, co technicznie oznacza 1,5 Mbit / s w żargonie USB, ale może oznaczać 1,5 lub 12 Mbit / s w swobodnej rozmowie. 12 Mbit / s w terminologii USB nazywane jest „pełną prędkością”. Protokół USB MIDI, który technicznie jest częścią „specyfikacji klasy audio”, wykorzystuje protokół „zbiorczy” ( nie protokół przerwań, jak stwierdzono w innej odpowiedzi). Specyfikacja USB nie zezwala na masowy protokół transferu dla prędkości 1,5 Mbit / s. Tak więc, chyba że urządzenie USB MIDI bardzo rażąco naruszy prędkość USB, zawsze będzie to prędkość co najmniej 12 Mbit / s. USB MIDI może mieć prędkość 480 Mbit / s, w takim przypadku TT nie mają zastosowania. Jednak zdecydowana większość produktów USB MIDI ma nadal prędkość 12 Mbit / s.

Dlatego naprawdę chcesz się upewnić, że koncentratory USB są typu Multi-TT, jeśli planujesz zmaksymalizować wydajność.

Paul Stoffregen
źródło
Jak uzyskać ten widok pokazujący urządzenia zużywające przepustowość na obrazie? Moje właściwości nawet nie mają tej zakładki.
user5389726598465
3

Realistycznie, współdzielenie jednego portu USB za pomocą koncentratora w celu zwiększenia liczby podłączanych urządzeń prawdopodobnie nie będzie miało większego znaczenia, nawet jeśli korzystasz ze wszystkich podłączonych urządzeń jednocześnie. Większość urządzeń nie będzie zużywać bardzo dużo danych jednocześnie. Jeszcze mniejszy problem, jeśli używasz portów USB 3.0 lub 3.1, które są odpowiednio 10 i 20 razy szybsze niż 2.0, ale mogą jednocześnie wysyłać i odbierać dane, zapewniać większą moc i działać z 2.0 pomysłowość.

Jak już wspomniano, tak długo, jak wystarczająca moc przepływa przez każde urządzenie podłączone do portu, nie powinny wystąpić problemy.

Xiro
źródło
1

Tylko moja sprawa jako przykład spowolnienia koncentratora USB 3.0, gdy podłączono do niego więcej niż jedno urządzenie.

Mam dwa identyczne zestawy: SataIII na USB3.1 Gen2 Type C Enclosure z dyskiem SSD 480 GB.

Jeśli włożę dysk SSD do portu SataIII, polecenie Linux dd będzie odczytywać z prędkością większą niż 500 Mb / s.

Jeśli włożę dysk SSD do obudowy SataIII na USB 3.1 Gen2 Type C, polecenie Linux dd odczyta prawie 413 Mb / s, bez względu na to, z którego z dwóch zestawów korzystam.

Dziwna rzecz pojawia się, gdy podłączam do USB 3.0 obie obudowy i pytam Linuksa o odczytanie z obu (bez względu na to, czy pasek LVM, RAID0 lub dwie równoległe komendy dd), czyta tylko przy 2x150 = 300 MiB / s.

Więc kiedy oba są podłączone, tracę blisko 413-300 = 113 Mb / s prędkości.

Innymi słowy:

  • Jeden dysk SSD na USB 3 HUB, dostaję odczyt 413 Mb / s
  • Dwa dyski SSD na USB 3 HUB, dostaję odczyt 150 + 150 = 300 Mb / s
  • Odczyt z odczytem (na SSD), gdy dwa dyski SSD na koncentratorze USB 3 byłyby tak mniejsze, jak prawie 413/2 = 206 Mb / s, ale są one tylko około 150 Mb / s każdy, a nie> 200 Mb / s, jak można by się spodziewać.

Zaczynam myśleć, że problem dotyczy protokołu USB 3 Hub, który zastępuje pasmo danych do obu dysków, co powoduje ogromne obciążenie.

Mogę więc potwierdzić, że koncentrator USB 3, który mam na rękach, spowalnia jeden dysk SSD znacznie bardziej niż maksymalne pasmo, gdy więcej niż jeden jest podłączony w tym samym czasie.

Co więcej, testowałem z jednym dyskiem SSD i bardzo wolnym (mniej niż 50 Mb / s) dyskiem USB 3.0, łączna prędkość odczytu koncentratora USB 3 spada do 263 Mb / s, więc mogę potwierdzić, że łączna luźność odczytu wynosi około 100 Mb / s, jeśli podłączam dowolne inne urządzenie pamięci USB.

Co więcej, i co najgorsze, podłączam mysz (lub klawiaturę), a prędkość odczytu SSD jest również zbliżona do 313 Mb / s, odłączam mysz / klawiaturę, a prędkość odczytu SSD wraca do 413 Mb / s, więc znowu blisko 100 Mb / s s utracona prędkość odczytu tylko dlatego, że mysz jest podłączona (i używana); jeśli się nie ruszę, prędkość odczytu myszy wraca do 413 Mb / s.

HUB powoduje więc znaczny spadek prędkości odczytu (blisko 100 Mb / s) na połączonej prędkości transferu, gdy nie jest do niego podłączone (i używane) tylko jedno urządzenie, bez względu na to, jakie inne urządzenie podłączam, gdy tylko ma więcej niż jeden działający w tym samym czasie, mam łączną prędkość odczytu blisko 100 Mb / s niższą niż w przypadku używania tylko jednego urządzenia w tym samym czasie.

Testowałem również z trzema urządzeniami: SSD + Mysz + Klawiatura, wciąż tracę dość blisko tej samej prędkości, około 100 Mb / s.

Jeśli czytam tylko z jednego dysku SSD, ale oba mam podłączone, to również zbliżam się do 413 Mb / s.

Cena koncentratora USB 3.0 wynosiła około 20 €, a nie tania.

Wniosek: USB HUB 3.0 znacznie traci prędkość transferu MiB / s, gdy więcej niż jedno urządzenie jest podłączone (i przesyła) w tym samym czasie, kto wie dlaczego! być może dlatego, że dzieli transfer czasu przez liczbę urządzeń (całkiem worgo), a może dlatego, że ma ogromne koszty na urządzeniach rowerowych itp.

Mam nadzieję, że to pomoże komuś zidentyfikować problem, wszystkie testy zostały wykonane pod Linux Live SystemRescueCD (ostatnia wersja) za pomocą polecenia dd ze statusem = postęp, wielkość bloku jednego megabajta i liczba równa tysiącowi (odczyt w sumie 1GiB), urządzenie docelowe / dev / null.

Planuję (kiedy / jeśli będę bogaty) kupować inny HUB USB 3.x, tym razem 3.1 Gen 2, aby sprawdzić, czy dzieje się tak samo, czy jest to marka, która ma słabe algorytmy oprogramowania układowego.

Laura
źródło
Dyski SSD bardzo różnią się od urządzeń w pytaniu. Każdy dysk SSD próbuje przesyłać dane z prędkością większą niż przepustowość portu USB 3. W ten sposób tracisz dużo przepustowości podczas kolizji.
fixer1234
1

Kiedy korzystam z bezpośredniego połączenia między moim laptopem, który ma dysk twardy 750 GB 5400 obr./min, a moimi zewnętrznymi dyskami twardymi 8 GB, prędkości transferu są w rzeczywistości znacznie wolniejsze niż w przypadku korzystania z koncentratora USB. Na przykład niedawno skopiowałem i wkleiłem cztery filmy, które dodają około 120 GB danych. Oto co się stało.

  1. Najpierw skopiowałem cztery filmy, dodając do 120 GB danych na dysku twardym laptopa, a następnie wkleiłem je na jeden zewnętrzny dysk twardy o pojemności 8 GB. Transfer zajął około 80 minut, ponieważ szybkość przesyłania danych wynosiła tylko około 30 Mb / s. Szybkość przesyłania danych miała skoki od 20 Mb do 35 Mb.

  2. Po drugie, podłączyłem drugi zewnętrzny dysk twardy o pojemności 8 GB, który jest dokładnie tym samym modelem. Tym razem użyłem 4-portowego koncentratora USB 3.0. Tym razem szybkość przesyłania danych była znacznie szybsza - czasami przekraczała 90 Mb / s. Szybkość przesyłania danych miała skoki od 50 Mb / s do ponad 90 Mb / s. Przesyłanie danych zajęło tylko 30 minut.

  3. Po trzecie, w ramach eksperymentu podłączyłem oba zewnętrzne dyski twarde o pojemności 8 GB w tym samym czasie za pośrednictwem koncentratora USB 3.0. Skopiowałem wszystkie cztery filmy ze 120 GB danych z jednego dysku twardego na drugi. Tym razem transfer był jeszcze szybszy niż kiedykolwiek. Szybkość przesyłania danych wynosiła około 150 Mb / s, a szybkość transferu nie uległa żadnemu skokowi. Przez cały czas była to stabilna linia 150 Mb / s.

Przeprowadziłem eksperymenty z innymi dużymi transferami danych. Z jakiegoś powodu bezpośrednie połączenie USB 3.0 z zewnętrznym dyskiem twardym jest znacznie wolniejsze niż w przypadku koncentratora USB 3.0. ... Czy ktoś wie, dlaczego tak jest?

mike_mgoblue
źródło