Problem z użyciem USB2 i 3 jednocześnie - spadek wydajności

Witam! Sytuacja jest następująca: mam podpiętą do płyty kieszeń na dysk Sata - interfejs kieszeni to USB3, podpięty oczywiście do gniazda USB3 na płycie głównej. Dysk działa OK, transfery są mniej więcej zgodne ze specyfikacją. Problem polega na tym, że gdy podepnę pendrive USB2 do gniazda USB2, podczas gdy kabel od dysku USB3 jest podłączony, a sama kieszeń jest wyłączona lub włączona - bez różnicy (ma fizyczny wyłącznik), pendrive USB2 działa jak USB1.1 Full Speed (12 Mbit/s), a winda XP mówi, żebym go podłączył pod inne gniazdo, to będzie szybciej. Oczywiście, to bzdura - wszędzie transfer jest ten sam. Gdy natomiast wyjmę z gniazda kabel USB3 (od wyżej wymienionej kieszeni), pendrive zaczyna działać z odpowiednią dla USB2 prędkością. Dodam, że np. dane z aparatu fot., podłączonego do gniazda USB2, przy podłączonym dysku USB3, są transferowane z pełną prędkością, bez problemów.

Czy ktoś z Was wie, dlaczego tak się dzieje i jak rozwiązać ten problem? Proszę o odpowiedzi!

P.S. Moja płyta główna, to Asus M4A89GTD PRO/USB3

XP z SP3? Oryginalny? Wszystkie sterowniki zainstalowane?

SP2 (i nie zainstaluję SP3), oryginał, wszystko zainstalowane. Poza tym na Linuksie (Ubuntu 10.04) jest to samo. Sam czas do zgłoszenia się pendrive (zamontowania) jest katastrofalny…

No to szkoda, bo SP3 mógłby wszystko rozwiązać, bo wygląda to na konflikt softwareowy lub jakaś lewa kieszeń z wadą. Masz może jakiś inny sprzęt na USB3 żeby to sprawdzić?

Niestety nie mam nic innego na USB3, ale jaka wada kieszeni mogłaby spowodować taki efekt? Gdyby była rąbnięta, to chyba, po prostu, żle by działała, a jest OK…? Może to jednak wada mobo… (chociaż nie miałem z nią nigdy najmniejszych problemów). Albo pendrive jakiś dziwny (Kingston DataTraveler 102, 8 giga)

… żaden tam SP niczego tu nie rozwiąże. Coby się nie rozpisywać: KAŻDY kontroler rozszerzonego hosta USB ma przypisane ograniczenie przepustowości (w przypadku USB 2.0 - to zdaje się jest 60 MB/s - w przypadku USB 3.0 … nie chce mi się szukać :stuck_out_tongue: - ponadto akurat nie jest to tutaj istotne - wystarczy pamiętać że JEST). Ograniczenie pasma dla każdego kontrolera ma za zadanie nie dopuścić do “zatkania” kanału dostępu do pamięci - szczególnie dla urządzeń zgodnych ze standardami High-Speed. Podczas rozruchu systemu oraz kiedy urządzenia USB są podłączane do kontrolerów, następuje ich enumeracja - podczas której zostają rozpoznane, uszeregowane w/g prędkości interfejsu i przydzielony im zostaje unikalny identyfikator. Dla urządzeń używających Przerwań (IRQ) lub strumieniowego transferu danych, rezerwowana jest określona ilość z limitu przepustowości kontrolera, która zagwarantuje że potrzebna przepustowość będzie dostępna dla danego urządzenia. I tu dochodzimy do zaistniałego problemu - kiedy ta “rezerwa” zostaje przekroczona - XP nie potrafi w locie dokonać ponownej enumeracji i wyskakuje z komunikatem o “Przekroczonej przepustowości kontrolera USB” - czy też - “zmień gniazdo będzie szybciej”. Czasami rzeczywiście zmiana “gniazda” wystarcza - ale rzadko kiedy wystarcza wtedy kiedy system ma obsłużyć więcej niż 2 kontrolery EHCI, a wtedy … cóż - jest dokładnie tak jak to opisał msyacko.

Problem można “obejść” restartując system (z oczywistych względów - to bzdurne rozwiązanie), ograniczając liczbę używanych kontrolerów EHCI (równie niepraktyczne), lub zaktualizować Windows XP do nowszych edycji Windows których menadżer urządzeń obsługuje w pełni poprawnie funkcje rezerwacji i zwolnienia rezerw pasma dla urządzeń podłączanych do kontrolera.

@Veers

A co powiesz o Linuksie? Jak napisałem, problem ten sam…

Na temat “liuxa” się nie wypowiadam, bo po pierwsze - pojęcie trochę zbyt obszerne, a po drugie - spokojnie jestem sobie w stanie wyobrazić sobie że sytuacja może być dokładnie taka sama jak w przypadku XP - czyli kwestia jądra, a dokładniej obsługi xHCI przez rzeczone jądro. Podobno odpowiednie procedury obsługi są zaimplementowane w jądro 2.6.31, ale coś mi się tam przypomina, że bodajże w czerwcu ubiegłego roku pojawiła się obsługa standardu USB 3.0 w wersji “draft”, która nie była polecana ze względu na takie braki jak choćby niedociągnięcia w zarządzaniu energią. Tyle że to traktowałbym jako “niepotwierdzone plotki” - ponieważ jak już wspomniałem - w przypadku “Linuxa” moja wiedza jest mocno ograniczona.

Wersję Linuksa podałem wcześniej - Ubu 10.04. A standard USB3 obsługiwany jest bezproblemowo. Ja jednak stawiam na sprzęt, czyli mobo lub pendrive.

Wersję Ubuntu możesz sobie podawać do bólu (od biedy daje to pojęcie o wyjściowej wersji jądra - bodajże 2.6.32). Obecną wersję jądra sprawdzisz sobie np. przy pomocy KernelCheck. Poza tym - nie bardzo rozumiem co ma obsługa standardu do limitów o których wspomniałem? Możesz stawiać na płytę główną i co tam jeszcze chcesz. Jednak wykonaj sobie prosty eksperyment: wyłącz wszystkie kontrolery USB poza jednym (nieważne którym USB 1.1, 2.0 czy 3.0) i podłączaj sobie sprzęt w różnej kolejności (najpierw pendrive, później kieszeń z dyskiem i na odwrót), a następnie włączaj kolejne kontrolery USB powtarzając obserwacje.

Powiem krótko: pitolisz, brachu. To wszystko wiem bez twoich mądrości.

Temat do zamknięcia.