gestione dello stato delle prestazioni di Component-Level
A partire da Windows 10, il framework di risparmio energia (PoFx) consente a un driver di definire uno o più set di stati di prestazioni modificabili singolarmente per singoli componenti all'interno di un dispositivo. Il driver può usare gli stati delle prestazioni per limitare il carico di lavoro di un componente per offrire prestazioni sufficienti per le esigenze correnti.
Panoramica degli stati di prestazioni
In Windows 8 e Windows 8.1, PoFx fornisce gli stati di inattività (F-states) per il risparmio di potenza a livello di componente tramite il controllo di alimentazione e barra dell'orologio quando viene immesso uno stato F specifico. Questo modello consente di risparmiare energia quando un componente si trova in uno stato di inattività (non F0), ma non fornisce alcun meccanismo per ottimizzare l'utilizzo dell'alimentazione o bilanciarlo in base alle esigenze di prestazioni quando il componente è attivo. Anche se un componente è attivo (in F0) e la manutenzione di una richiesta, potrebbe non richiedere le prestazioni complete del dispositivo. Ad esempio, una scheda grafica potrebbe dover aggiornare solo un cursore lampeggiante e ciò potrebbe non richiedere prestazioni complete.
Gli stati di prestazioni delle variabili consentono al driver di limitare il componente di un dispositivo per offrire prestazioni sufficienti per le esigenze correnti. In Windows 8 e Windows 8.1, se un componente supporta gli stati delle prestazioni, ogni driver deve implementare un algoritmo proprietario di selezione dello stato delle prestazioni interno al driver e, se necessario, notificare al plug-in di estensione della piattaforma (PEP) in modo proprietario. Il PEP è un componente software che esegue attività di risparmio energia specifiche di una particolare linea di prodotti di processore o sistema in un chip (SoC). Le soluzioni di stato delle prestazioni proprietarie specifiche del driver presentano lo svantaggio di essere strettamente associate al PEP e non possono essere facilmente sottoposte a debug.
A partire da Windows 10, PoFx fornisce un'API per la gestione dello stato delle prestazioni. Questa API ha due obiettivi principali:
- Fornisce un modo standard per i driver di dispositivo di notificare al PEP le modifiche dello stato delle prestazioni in modo che il PEP possa intraprendere l'azione appropriata.
- Offre un modo standard per i driver di notificare al sistema operativo le modifiche dello stato delle prestazioni per la registrazione e l'analisi in Windows Performance Analyzer (WPA), senza dover usare un plug-in personalizzato per ogni driver.
Introduzione all'API PoFX per gli stati delle prestazioni di Component-Level
PoFx consente a un dispositivo di definire i tipi di stati di prestazioni seguenti per ogni componente:
- Numero discreto di stati nelle unità di frequenza (misurate in Hz), larghezza di banda (misurata in bit al secondo) o numero di indice opaco.
- Distribuzione continua degli stati tra un valore minimo e quello massimo.
Gli stati di prestazioni sono organizzati in set e vengono registrati per ogni componente. Gli stati delle prestazioni all'interno di un set devono aumentare in modo monotonico. La maggior parte dei driver deve definire un singolo set di stati di prestazioni per ogni componente. Ad esempio, un driver può definire un set di stati di prestazioni per controllare la frequenza di clock per un componente. Tuttavia, alcuni driver potrebbero dover definire più di un set di stato delle prestazioni per controllare più dimensioni degli stati delle prestazioni per un componente. Ad esempio, un driver può definire due set di stati di prestazioni per controllare la frequenza di clock e la larghezza di banda del bus.
Per registrare un componente del dispositivo per la gestione dello stato delle prestazioni di PoFx, un driver segue questi passaggi generali:
Il driver registra i componenti del dispositivo da gestire da PoFx. Per altre informazioni, vedere Risparmio energia a livello di componente.
Il driver registra il supporto per gli stati delle prestazioni chiamando PoFxRegisterComponentPerfStates. Come parte della chiamata di registrazione, i driver possono definire autonomamente lo stato delle prestazioni di un determinato componente o rinviare al plug-in di estensione della piattaforma (PEP) per definirli.
Il driver di dispositivo o il PEP deve conoscere gli stati delle prestazioni, incluso il numero di set di stati di prestazioni per componente, il tipo di stato delle prestazioni (discreto o basato sull'intervallo) e i dettagli dei valori e del conteggio degli stati di prestazioni effettivi. Se pep non supporta gli stati di prestazioni, il driver può comunque registrarsi per il supporto dello stato delle prestazioni con PoFx e notificare al sistema operativo le modifiche dello stato delle prestazioni per la registrazione e l'analisi in Windows Performance Analyzer (WPA).
In entrambi i casi, al completamento di PoFxRegisterComponentPerfStates, il driver ha una struttura PO_FX_COMPONENT_PERF_INFO che contiene i set di stati delle prestazioni registrati.
Quando il driver decide che un componente deve modificare gli stati delle prestazioni, chiama PoFxIssueComponentPerfStateChange o PoFxIssueComponentPerfStateChangeMultiple. PoFx richiama la routine ComponentPerfStateCallback fornita dal driver al termine della modifica dello stato delle prestazioni.
Il driver viene informato dalla routine ComponentPerfStateCallback se il PEP ha avuto esito positivo o negato la modifica dello stato delle prestazioni. Se il PEP ha avuto esito positivo, il driver esegue il lavoro necessario per modificare lo stato delle prestazioni dal punto di vista. Se il PEP ha negato la modifica, il driver può scegliere di non eseguire alcuna operazione o ritentare la richiesta con lo stesso o uno stato di prestazioni alternativo.
Argomenti correlati
Informazioni di riferimento sul risparmio energia del dispositivo