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.
Począwszy od systemu Windows 8, platforma zarządzania energią (PoFx) umożliwia sterownikowi zarządzanie stanami zasilania poszczególnych składników w urządzeniu. Zarządzanie energią na poziomie składników istnieje obok zarządzania energią na poziomie urządzenia. Aby zapoznać się z wprowadzeniem, zobacz Omówienie struktury zarządzania energią.
Na tej stronie opisano interfejs API PoFx dla usługi Component-Level Power Management.
Aby zarejestrować urządzenie do zarządzania przez poFx, sterownik wywołuje procedurę PoFxRegisterDevice . Sterownik przekazuje do tej procedury strukturę PO_FX_DEVICE, która między innymi zawiera tablicę struktur PO_FX_COMPONENT. Każdy element w tej tablicy opisuje stany zasilania Fx składnika w urządzeniu i atrybuty każdego stanu Fx. (Co najmniej składnik, który nie obsługuje zarządzania energią na poziomie składnika, implementuje tylko stan F0). Atrybuty określonego stanu zasilania Fx w określonym składniku są opisane przez strukturę PO_FX_COMPONENT_IDLE_STATE , która zawiera następujące wartości:
- Opóźnienie przejścia, czyli czas wymagany do przejścia z tego stanu Fx do stanu F0 (w pełni włączone).
- Wymóg rezydencji, czyli czas, jaki składnik musi spędzić w stanie Fx, aby przejście do tego stanu było opłacalne.
- Nominalna moc, czyli moc zużywana przez składnik w tym stanie Fx.
PoFx używa tych informacji (oprócz innych danych wejściowych i zależności dla całego systemu) do podejmowania inteligentnych decyzji o stanie zasilania Fx, w którym składnik powinien znajdować się w dowolnym momencie. PoFx musi równoważyć dwa konkurencyjne cele. Najpierw należy skonfigurować składnik bezczynny tak, aby zużywał jak najmniejszą moc. Po drugie, składnik musi być przygotowany do przełączenia się ze stanu Fx o niskiej mocy do F0 wystarczająco szybko, aby utrzymać wygląd urządzenia, które jest zawsze włączone i zawsze podłączone.
Zarządzanie energią na poziomie składnika można wykonać tylko wtedy, gdy urządzenie znajduje się w stanie zasilania D0 (w pełni włączone). Gdy urządzenie znajduje się w D1 (prawie włączone), D2 (prawie wyłączone) lub D3 stanu zasilania, urządzenie jest niedostępne. Gdy urządzenie jest w stanie D0, tylko składniki, których sterownik aktywnie używa, muszą pozostać w stanie F0. Składniki bezczynne mogą potencjalnie przełączyć się na stany Fx o niskiej mocy, aby zmniejszyć zużycie energii.
Gdy urządzenie jest w stanie zasilania D0, sterownik jest zgodny z prostym protokołem umożliwiającym zarządzanie energią na poziomie składników. Gdy sterownik musi uzyskać dostęp do składnika, sterownik wywołuje procedurę PoFxActivateComponent , aby zażądać dostępu do składnika. Jeśli składnik jest w stanie Fx o niskiej mocy po wystąpieniu tego wywołania, PoFx inicjuje przejście do stanu F0 i powiadamia sterownik po zakończeniu tego przejścia. Sterownik może następnie uzyskać dostęp do składnika. Gdy sterownik nie musi już uzyskać dostępu do składnika, sterownik wywołuje procedurę PoFxIdleComponent , aby powiadomić pofx. W odpowiedzi na to wywołanie, PoFx może potencjalnie przełączyć składnik na stan Fx o niskim zużyciu energii.
Składnik, który jest dostępny, jest w stanie aktywnym. Składnik, który jest niedostępny, jest w stanie bezczynności. Aby śledzić dostępność składników na urządzeniu, poFx utrzymuje liczbę odwołań aktywacji dla każdego składnika. Wywołanie PoFxActivateComponent zwiększa liczbę określonego składnika o jeden, a wywołanie PoFxIdleComponent zmniejsza liczbę o jeden.
Jeśli wywołanie PoFxActivateComponent zwiększa liczbę od zera do jednego, PoFx inicjuje przejście ze stanu bezczynności do stanu aktywnego i powiadamia sterownik po zakończeniu tego przejścia. Jeśli element PoFxActivateComponent występuje, gdy składnik jest już w stanie aktywnym, składnik pozostaje w stanie aktywnym, a sterownik nie otrzyma powiadomienia.
Jeśli wywołanie PoFxIdleComponent dekrementuje liczbę z jednego do zera, PoFx inicjuje przejście z aktywnego warunku do stanu bezczynności i powiadamia sterownik po zakończeniu tego przejścia. Jeśli wywołanie PoFxIdleComponent dekrementuje liczbę, ale liczba pozostaje niezerowa, składnik pozostaje w stanie aktywnym, a sterownik nie otrzyma powiadomienia.
Licznik odwołań aktywacji wygodnie obsługuje sytuacje, w których co najmniej dwie ścieżki kodu w tym samym sterowniku mogą wymagać równoczesnego dostępu do tego samego komponentu w urządzeniu. Dzięki utrzymaniu tej liczby PoFx umożliwia różnym częściom sterownika niezależne utrzymywanie dostępu do komponentu bez konieczności centralnego zarządzania dostępem do komponentu przez sterownik.
Warunek aktywny/bezczynny składnika jest jedynym niezawodnym sposobem dla sterownika w celu określenia, czy składnik jest dostępny. Składnik, który znajduje się w stanie zasilania F0, ale jest w stanie bezczynności, może być przełączony na stan Fx o niskiej mocy.
Składnik, który jest w stanie aktywnym, jest zawsze w stanie F0. Składnik nie może opuścić F0, dopóki nie przejdzie w stan bezczynności. Składnik, który znajduje się w stanie bezczynności, może być w stanie F0 lub w stanie Fx o niskiej mocy. Jeśli składnik jest w stanie Fx o niskiej mocy, gdy wywołanie PoFxActivateComponent inicjuje przejście ze stanu bezczynności do stanu aktywnego, PoFx musi najpierw przełączyć składnik na F0, zanim składnik będzie mógł wprowadzić aktywny warunek.