Sdílet prostřednictvím


Řízení spotřeby na úrovni komponent

Počínaje Windows 8 umožňuje architektura řízení spotřeby (PoFx) ovladač spravovat stavy napájení jednotlivých komponent v zařízení. Řízení spotřeby na úrovni komponent existuje vedle řízení spotřeby na úrovni zařízení. Úvod najdete v tématu Přehled architektury řízení spotřeby.

Tato stránka popisuje rozhraní API PoFx pro Component-Level řízení spotřeby.

Pokud chcete zaregistrovat zařízení, které bude spravovat PoFx, ovladač volá rutinu PoFxRegisterDevice . Ovladač tuto rutinu předá strukturu PO_FX_DEVICE, který, mimo jiné, obsahuje pole struktur PO_FX_COMPONENT. Každý prvek v tomto poli popisuje stavy napájení Fx komponenty v zařízení a atributy každého fx stavu. (Minimálně komponenta, která nepodporuje řízení spotřeby na úrovni komponent, implementuje pouze stav F0.) Atributy určitého stavu napájení Fx v konkrétní komponentě jsou popsány PO_FX_COMPONENT_IDLE_STATE strukturou, která obsahuje následující hodnoty:

  • Latence přechodu, což je doba potřebná k provedení přechodu z tohoto stavu Fx do stavu F0 (plně zapnuto).
  • Požadavek na rezidenci, což je doba, po kterou musí komponenta strávit v tomto Fx stavu, aby se přechod na tento stav vyplatil.
  • Jmenovitý výkon, což je výkon spotřebovaný komponentou v tomto stavu Fx.

PoFx používá tyto informace (kromě dalších vstupů a závislostí pro celý systém) k inteligentnímu rozhodování o tom, ve kterém stavu napájení Fx by měla být komponenta v každém konkrétním okamžiku. PoFx musí vyrovnávat dva konkurenční cíle. Za prvé, součást, která je nečinná, by měla být nakonfigurována tak, aby spotřebovala co nejmenší výkon. Za druhé musí být komponenta připravená k rychlému přepnutí ze stavu Fx s nízkou spotřebou na F0, aby se zachoval vzhled zařízení, které je vždy zapnuté a vždy připojené.

Řízení spotřeby na úrovni komponent lze provádět pouze v případech, kdy je zařízení ve stavu napájení D0 (plně zapnuto). Když je zařízení ve stavu napájení D1 (téměř zapnuto), D2 (téměř vypnuto) nebo D3, je zařízení nepřístupné. Pokud je zařízení ve stavu D0, musí zůstat ve stavu F0 pouze komponenty, které ovladač aktivně používá. Nečinné komponenty můžou potenciálně přepnout na stavy Fx s nízkým výkonem, aby se snížila spotřeba energie.

Zatímco je zařízení ve stavu napájení D0, ovladač se řídí jednoduchým protokolem, který umožňuje řízení spotřeby na úrovni komponent. Když ovladač potřebuje přístup ke komponentě, ovladač volá rutinu PoFxActivateComponent pro vyžádání přístupu ke komponentě. Pokud je komponenta ve stavu Fx s nízkým výkonem, když k tomuto volání dojde, PoFx zahájí přechod do stavu F0 a oznámí ovladači po dokončení tohoto přechodu. Ovladač pak může získat přístup ke komponentě. Pokud ovladač už nepotřebuje přístup k komponentě, ovladač zavolá rutinu PoFxIdleComponent , která upozorní PoFx. V reakci na toto volání může PoFx potenciálně přepnout komponentu do stavu Fx s nízkým výkonem.

Součást, která je přístupná, je v aktivní podmínce. Komponenta, která je nepřístupná, je v nečinném stavu. Pro sledování přístupnosti součástí v zařízení udržuje PoFx počet odkazů na aktivaci na jednotlivých komponentách. Volání PoFxActivateComponent zvýší počet zadaných komponent o jednu a volání PoFxIdleComponent sníží počet o jednu.

Pokud volání PoFxActivateComponent zvýší počet od nuly do jedné, PoFx zahájí přechod z nečinného stavu do aktivního stavu a upozorní ovladač po dokončení tohoto přechodu. Pokud dojde k PoFxActivateComponent , když je komponenta již v aktivní podmínce, zůstane komponenta v aktivní podmínce a ovladač neobdrží žádné oznámení.

Pokud volání PoFxIdleComponent sníží počet z jedné na nulu, PoFx zahájí přechod z aktivní podmínky na nečinnou podmínku a oznámí ovladači po dokončení tohoto přechodu. Pokud volání PoFxIdleComponent sníží počet, ale počet zůstane nenulový, komponenta zůstane v aktivní podmínce a ovladač neobdrží žádné oznámení.

Počet odkazů na aktivaci pohodlně zpracovává situace, kdy dvě nebo více cest kódu ve stejném ovladači může potřebovat souběžný přístup ke stejné komponentě v zařízení. Díky zachování tohoto počtu umožňuje PoFx různým částem ovladače nezávisle udržovat přístup ke komponentě, aniž by ovladač musel centrálně spravovat přístup ke komponentě.

Stav aktivní/nečinné součásti je jediným spolehlivým prostředkem pro ovladač, který určuje, jestli je komponenta přístupná. Komponenta, která je ve stavu napájení F0, ale je v nečinném stavu, se může chystat přejít do úsporného stavu Fx.

Součást, která je v aktivní podmínce, je vždy ve stavu F0. Komponenta nemůže opustit F0, dokud nevstoupí do nečinného stavu. Komponenta, která je v nečinném stavu, může být ve stavu F0 nebo v nízkoenergetickém stavu Fx. Pokud je komponenta ve stavu Fx s nízkým výkonem, když volání PoFxActivateComponent zahájí přechod z nečinné podmínky na aktivní podmínku, poFx musí nejprve přepnout komponentu na F0, aby komponenta mohl vstoupit do aktivní podmínky.

Referenční informace ke správě spotřeby zařízení