Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano najpierw początkową konfigurację wykonywaną przez oprogramowanie w celu włączenia przejść U1 i U2, a następnie opisano, jak te przejścia występują na sprzęcie.
Początkowa konfiguracja według oprogramowania
W tym temacie opisano sposób wyliczania urządzenia przez oprogramowanie.
Dla przejść U1 lub U2 oprogramowanie wykonuje następujące kroki podczas wyliczania urządzenia.
Oprogramowanie wymienia informacje o opóźnieniu wyjścia U1 lub U2 z urządzeniem podczas procesu wyliczania. W pierwszej części tej wymiany opóźnienia specyficzne dla urządzenia są wypełniane przez urządzenie w polach bU1DevExitLat i wU2DevExitLat dotyczących możliwości urządzenia w zakresie USB SuperSpeed (zdefiniowanych w sekcji 9.6.2.2 tej specyfikacji USB 3.0). W drugiej części procesu wymiany host informuje urządzenie o ogólnych latencjach wyjścia dla urządzenia poprzez wysłanie transferu sterowania SET_SEL zgodnie z sekcją 9.4.12 specyfikacji USB 3.0. Informacje o opóźnieniu obejmują opóźnienia skojarzone z łączami nadrzędnymi i kontrolerem.
W przypadku portu DS, do którego jest dołączone urządzenie, oprogramowanie konfiguruje dwie wartości: PORT_U1_TIMEOUT i PORT_U2_TIMEOUT. Podczas podejmowania decyzji o tych wartościach oprogramowanie bierze pod uwagę cechy urządzenia (takie jak typ punktów końcowych) i opóźnienia związane z przeniesieniem urządzenia z powrotem z U1 lub U2 do U0. W poniższej tabeli opisano wartości limitu czasu.
Tabela 1. wartości PORT_U1_TIMEOUT i PORT_U2_TIMEOUT
Wartość Opis 01H-FEH Port DS musi inicjować przejścia po okresie braku aktywności. Dokładny okres pochodzi z wartości limitu czasu. Port musi akceptować przejścia inicjowane przez partnera łącza, chyba że istnieje oczekujący ruch. FFH Port DS nie może inicjować przejść, ale musi zaakceptować przejścia inicjowane przez partnera łącza, chyba że istnieje oczekujący ruch. 0 Port DS nie może inicjować przejść i nie może akceptować przejść inicjowanych przez partnera linków. Jeśli wartość PORT_U2_TIMEOUT wynosi między 01H-FEH, istnieje dodatkowy krok, który występuje w sprzęcie w wyniku kroku 2. Port DS informuje partnera łącza o tej wartości. Znaczenie tego kroku opisano w sekcji "Bezpośrednie przejście z U1 do U2".
W przypadku każdego urządzenia lub centrum oprogramowanie konfiguruje dwie wartości: U1_ENABLE i U2_ENABLE, wysyłając transfery kontrolek SET_FEATURE (U1_ENABLE/U2_ENABLE). W poniższej tabeli opisano te wartości.
Tabela 2. wartości U1_ENABLE i U2_ENABLE
Wartość Opis Włączone Port amerykański może inicjować przejścia i akceptować przejścia inicjowane przez partnera linków, jeśli są dozwolone przez politykę urządzenia. Niepełnosprawny Port USA nie może inicjować przejść, ale może akceptować przejścia inicjowane przez partnera linków.
Przejścia sprzętowe
W tym temacie opisano przejścia sprzętowe do wersji U1 i U2.
Po wstępnej konfiguracji oprogramowania sprzęt przechodzi do wersji U1 i u2 autonomicznie bez dalszej interwencji oprogramowania.
Link jest w stanie roboczym (U0), o ile aktywnie przesyła pakiety. Link jest uważany za bezczynny, gdy nie są przesyłane żadne pakiety. W stanie bezczynności dowolny partner linku może zainicjować przejście do U1 lub U2. Inny partner linku może zaakceptować lub odrzucić przejście. Jeśli partner linku zaakceptuje przejście, link zostanie przeniesiony do tego stanu U. Jeśli odrzuci przejście, link pozostanie w U0.
Przejścia inicjowane przez port DS
Port DS implementuje mechanizm czasomierza, który śledzi brak aktywności na porcie. Czasomierz jest resetowany za każdym razem, gdy ten port wysyła lub odbiera pakiet. Czasomierz jest również resetowany, gdy program programuje nowe wartości limitu czasu. Jeśli oprogramowanie programuje port DS w celu zainicjowania tylko przejścia U1 lub U2, port DS uruchamia czasomierz, gdy link po raz pierwszy przechodzi do U0. Wartość czasomierza jest oparta na wartości limitu czasu U1 (lub U2), która została zaprogramowana przez oprogramowanie. Jeśli link znajduje się w U0 po wygaśnięciu czasomierza, port DS inicjuje przejście U1 (lub U2).
Partner linku portu USA może odrzucić przejście, jeśli urządzenie wie, że przejście może mieć wpływ na zdolność urządzenia do spełnienia wymagań dotyczących wydajności lub opóźnień. Jeśli na przykład urządzenie wysłało powiadomienie ERDY i oczekuje żądania przeniesienia z hosta, urządzenie może odrzucić przejścia stanu U1 lub U2 w międzyczasie.
Jeśli oprogramowanie programuje port DS w celu zainicjowania przejścia zarówno U1, jak i U2, port DS najpierw inicjuje przejście U1 na podstawie czasomierza (opisanego wcześniej w tej sekcji). Przejście z U1 do U2 zostało opisane w tym temacie w sekcji Bezpośrednie przejście z U1 do U2.
Jeśli link znajduje się w U1 lub U2, port DS może przenieść port z powrotem do U0 za każdym razem, gdy odbiera ruch dla urządzenia dołączonego do portu.
Przejścia inicjowane przez urządzenie (port amerykański)
Urządzenie może zdecydować się na zainicjowanie przejścia z U0 do U1 lub U0 do U2, o ile możliwość jest włączona przez oprogramowanie. Jeśli urządzenie przechodzi link do stanu U1, link może przejść bezpośrednio do stanu U2 w oparciu o czasomierz U2 portu DS (opisany w temacie "Bezpośrednie przejście z U1 do U2"). Jeśli jednak czasomierz U2 nie jest ustawiony, urządzenie nie może zainicjować bezpośredniego przejścia z U1 do U2 samodzielnie. W takim przypadku urządzenie musi przywrócić połączenie do stanu U0 przed zainicjowaniem przejścia do stanu U2.
Podejmując decyzję o tym, kiedy należy zainicjować te przejścia, urządzenie powinno rozważyć swoje opóźnienia wyjścia i wymagania dotyczące wydajności. Aby ułatwić urządzeniu podejmowanie świadomych decyzji o tym, jak agresywnie może inicjować przejścia, oprogramowanie udostępnia również różne wartości opóźnień zakończenia zgodnie z opisem we wcześniejszej części tego dokumentu w temacie "Początkowa konfiguracja oprogramowania".
Jeśli link znajduje się w trybie U1 lub U2, port USB może w dowolnym momencie przywrócić port do trybu U0. Zazwyczaj port USA inicjuje przejście do U0, gdy wie, że ma wysyłać pakiety do hosta lub jeśli przewiduje pakiet z hosta.
Zalety LPM inicjowane przez urządzenie
Wartości czasomierza ustawiane przez oprogramowanie dla portów DS są oparte na ogólnych heurystyce. Podczas wybierania tych wartości czasomierza oprogramowanie zapewnia, że wydajność urządzenia nie jest obniżona. Aby zachować wydajność urządzenia, oprogramowanie nie może wybrać wartości, które są zbyt małe. Ponieważ przejścia inicjowane przez port DS są oparte na czasomierzach i nie uwzględniają dokładnego stanu urządzenia, ten mechanizm nie może wykorzystać wszystkich możliwych możliwości wysyłania urządzenia do stanu U1 lub U2.
Z drugiej strony urządzenie ma dokładną wiedzę na temat jego cech i bieżącego stanu. W związku z tym może inteligentnie przewidzieć, kiedy nastąpi kolejny transfer. Na podstawie tych informacji urządzenie może (i powinno) aktywnie inicjować te przejścia bez znaczącego wpływu na wydajność.
Na przykład urządzenie wysłało powiadomienie NRDY na jednym ze swoich punktów końcowych i wie, że nie będzie ruchu przez jakiś czas. W takim przypadku urządzenie może natychmiast zainicjować przejście do wersji U1 lub U2. Tuż przed wysłaniem powiadomienia ERDY urządzenie może przywrócić link do stanu U0, przygotowując się do wysyłania danych. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz sekcję C.3.1 specyfikacji USB 3.0.
Bezpośrednie przejście z U1 do U2
Jeśli link znajduje się w U1, możliwe, że łącze może bezpośrednio przejść do U2 bez wchodzenia w U0 po drodze. Taka sytuacja może wystąpić niezależnie od tego, który partner linku zainicjował przejście do wersji U1. Jednak przejście U1 do U2 może wystąpić tylko wtedy, gdy limit czasu U2 na porcie DS łącza jest ustawiony na wartość z zakresu od 01H-FEH.
W sekcji "Początkowa konfiguracja według oprogramowania" opisano dodatkowy krok, który umożliwia portowi DS przekazywanie wartości limitu czasu partnerowi łącza. Po tym, jak link wszedł do U1, obaj partnerzy linku uruchamiają czasomierz, używając wartości limitu czasu ustawionej zgodnie z wartością limitu czasu U2 portu DS. Jeśli licznik czasu nie zostanie zresetowany z powodu ruchu i wygaśnie, obaj partnerzy łącza dyskretnie przechodzą do U2 bez jawnego porozumiewania się.
Przejścia z U1 lub U2 do U3
Przejścia do U1 lub U2 są inicjowane w sprzęcie autonomicznym, ale przejście do U3 jest inicjowane przez oprogramowanie. Ponieważ przejście U3 jest inicjowane dopiero po okresie braku aktywności, prawdopodobnie łącze znajdowało się w U1 lub U2 (zamiast U0) przed przejściem.
Specyfikacja USB 3.0 nie definiuje bezpośrednich przejść z U1 lub U2 do U3. Nadrzędny koncentrator lub kontroler jest odpowiedzialny za automatyczne przeniesienie linku do interfejsu U0, a następnie przeniesienie go do U3.
Przejścia U1 lub U2 dla węzłów
Specyfikacja USB 3.0 zawiera szczegółowe wytyczne dotyczące tego, kiedy należy zainicjować przejścia stanu U na porcie USA. Jeśli wszystkie porty DS znajdują się w stanie połączenia U1 lub niższym, koncentrator powinien zainicjować przejście U1 na swoim porcie US, zakładając, że oprogramowanie umożliwiło koncentratorowi zainicjowanie przejścia U1.
Podobnie, jeśli wszystkie porty DS znajdują się w stanie połączenia U2 lub niższym, koncentrator powinien zainicjować przejście U2 na porcie USA, zakładając, że oprogramowanie umożliwiło koncentratorowi zainicjowanie przejścia U2.
Uwaga / Notatka
Jeśli nie ma urządzenia dołączonego do portu DS, stan portu to Rx.Detect, który jest niższy niż U2. Jeśli więc nie ma podłączonych urządzeń, koncentrator powinien wysłać port USA do U2. Ponadto, jeśli wszystkie porty DS początkowo znajdowały się w stanie U1 lub niższym i przechodzą do stanu U2 lub niższego, koncentrator powinien przenieść port US z U1 do U2. Ponieważ to przejście nie jest oparte na czasomierzu aktywności U2, centrum musi przenieść port USA do U0, a następnie wysłać go do U2.
Odroczenie pakietów
Specyfikacja USB 3.0 opisuje mechanizm znany jako odroczenie pakietów (patrz sekcja C.1.2.2). Mechanizm służy do minimalizowania wpływu LPM na wykorzystanie magistrali.
Jeśli host wysyła żądanie transferu do urządzenia, którego łącze nadrzędne znajduje się w U1 lub U2, host może marnować przepustowość magistrali, czekając, aż łącze powróci do U0, a następnie na odpowiedź od urządzenia. Aby uniknąć tego oczekiwania, centrum nadrzędne odpowiada w imieniu urządzenia, wysyłając odroczony nagłówek pakietu z powrotem do hosta. Host przetwarza nagłówek pakietu odroczonego w sposób podobny do NRDY, a następnie może inicjować transfery z innymi punktami końcowymi. Równolegle koncentrator inicjuje przejście U0 na łączu, a następnie informuje urządzenie o odroczonym pakiecie. Następnie urządzenie wysyła ERDY do hosta, aby wskazać, że urządzenie jest teraz gotowe do transferu. Następnie host może ponownie zaplanować transfer na urządzenie.
Ważną obowiązkiem urządzenia jest to, że po wysłaniu ERDY urządzenie jest odpowiedzialne za utrzymanie linku w U0, dopóki host nie wyśle odpowiedzi na ERDY lub do czasu upływu czasu tERDYTimeout (500 milisekund). W tym czasie urządzenie nie powinno zainicjować przejścia U1 lub U2 i powinno również odrzucać wszelkie przejścia zainicjowane przez partnera połączenia.