Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf Windows 10 kan met het energiebeheerframework (PoFx) een stuurprogramma een of meer sets van individueel aanpasbare prestatiestatussen definiëren voor afzonderlijke onderdelen binnen een apparaat. Het stuurprogramma kan prestatiestatussen gebruiken om de workload van een onderdeel af te stemmen om precies genoeg prestaties te leveren die precies aansluit bij de huidige behoeften.
Overzicht van prestatiestatussen
In Windows 8 en Windows 8.1 biedt PoFx niet-actieve statussen (F-states) voor energiebesparing op onderdeelniveau door stroom- en klokrailing wanneer een specifieke F-status wordt ingevoerd. Dit model bespaart energie wanneer een onderdeel een niet-actieve status heeft (niet-F0), maar biedt geen mechanisme voor het optimaliseren van het energieverbruik of het verdelen ervan ten opzichte van prestatiebehoeften wanneer het onderdeel actief is. Hoewel een onderdeel actief is (in F0) en een aanvraag afhandelt, is mogelijk niet de volledige prestatie van het apparaat vereist. Een grafische kaart moet bijvoorbeeld mogelijk alleen een knipperende cursor bijwerken en dit heeft mogelijk geen volledige prestaties nodig.
Variabele prestatiestatussen verhelpen dit probleem doordat het stuurprogramma het onderdeel van een apparaat kan beperken om precies genoeg prestaties te bieden voor de huidige behoeften. Als een onderdeel in Windows 8 en Windows 8.1 prestatiestatussen ondersteunt, moet elk stuurprogramma een eigen algoritme voor prestatiestatussen implementeren dat intern is voor het stuurprogramma en, indien nodig, op de hoogte stellen van de invoegtoepassing voor platformuitbreiding (PEP) op een eigen manier. Het PEP is een softwareonderdeel dat energiebeheertaken uitvoert die specifiek zijn voor een bepaalde productlijn van processor of Systeem op een Chip (SoC)-modules. Stuurprogrammaspecifieke oplossingen voor bedrijfseigen prestatiestatussen hebben het nadeel dat ze nauw zijn gekoppeld aan het PEP en niet eenvoudig kunnen worden opgespoord.
Vanaf Windows 10 biedt PoFx een API voor prestatiestatusbeheer. Deze API heeft twee belangrijke doelen:
- Het biedt een standaardmethode voor apparaatstuurprogramma's om het PEP op de hoogte te stellen van wijzigingen in de prestatiestatus, zodat het PEP de juiste actie kan ondernemen.
- Het biedt een standaardmethode voor stuurprogramma's om het besturingssysteem op de hoogte te stellen van wijzigingen in de prestatiestatus voor logboekregistratie en analyse in Windows Performance Analyzer (WPA), zonder dat er een aangepaste invoegtoepassing voor elk stuurprogramma nodig is.
Inleiding tot de PoFX-API voor Component-Level prestatiestatussen
Met PoFx kan een apparaat de volgende typen prestatiestatussen voor elk onderdeel definiëren:
- Een discreet aantal statussen in de frequentieeenheden (gemeten in Hz), bandbreedte (gemeten in bits per seconde) of een ondoorzichtig indexnummer.
- Een continue verdeling van statussen tussen een minimum- en maximumwaarde.
Prestatiestatussen zijn ingedeeld in sets en worden per onderdeel geregistreerd. Prestatiestatussen binnen een set moeten monotonisch toenemen. De meeste stuurprogramma's zullen naar verwachting één set prestatiestatussen per onderdeel definiëren. Een stuurprogramma kan bijvoorbeeld één set prestatiestatussen definiëren om de klokfrequentie voor een onderdeel te bepalen. Sommige stuurprogramma's moeten echter mogelijk meer dan één prestatiestatus definiëren die is ingesteld om meerdere dimensies van prestatiestatussen voor een onderdeel te beheren. Een stuurprogramma kan bijvoorbeeld twee sets prestatiestatussen definiëren om de klokfrequentie en busbandbreedte te beheren.
Als u een apparaatonderdeel wilt registreren voor prestatiestatusbeheer door PoFx, volgt een stuurprogramma de volgende algemene stappen:
Het stuurprogramma registreert de apparaatonderdelen die moeten worden beheerd door PoFx. Zie Component-Level Energiebeheer voor meer informatie.
Het stuurprogramma registreert ondersteuning voor prestatiestatussen door PoFxRegisterComponentPerfStates aan te roepen. Als onderdeel van de registratieaanroep kunnen besturingsprogramma's zelf de prestatiestatus van een bepaald onderdeel definiëren of dit overlaten aan de platformextensie-invoegtoepassing (PEP).
Het apparaatstuurprogramma of het PEP moet kennis hebben van de prestatiestatussen, inclusief het aantal prestatiestatussets per onderdeel, het type prestatiestatus (discreet of op basis van bereik) en de details van de waarden en het aantal werkelijke prestatiestatussen. Als het PEP geen prestatiestatussen ondersteunt, kan het stuurprogramma zich nog steeds registreren voor prestatiestatusondersteuning bij PoFx en het besturingssysteem op de hoogte stellen van prestatiestatuswijzigingen voor logboekregistratie en analyse in Windows Performance Analyzer (WPA).
In beide gevallen heeft het stuurprogramma na een geslaagde voltooiing van PoFxRegisterComponentPerfStates een PO_FX_COMPONENT_PERF_INFO structuur die de geregistreerde prestatiestatussets bevat.
Wanneer het stuurprogramma besluit dat een onderdeel de prestatiestatussen moet wijzigen, wordt PoFxIssueComponentPerfStateChange of PoFxIssueComponentPerfStateChangeMultiple aangeroepen. PoFx roept de door het stuurprogramma geleverde ComponentPerfStateCallback-routine aan wanneer de prestatiestatuswijziging is voltooid.
Het stuurprogramma wordt geïnformeerd door de ComponentPerfStateCallback-routine of het PEP geslaagd is of de prestatiestatuswijziging heeft geweigerd. Als het PEP de wijziging heeft voltooid, voert de bestuurder het werk uit dat hij moet uitvoeren om de prestatiestatus vanuit het perspectief te wijzigen. Als de PEP de wijziging heeft geweigerd, kan de driver ervoor kiezen om niets te doen of om het verzoek opnieuw te proberen met dezelfde of een alternatieve prestatiestatus.