Condividi tramite


Esempi, requisiti e diagnostica

Questo argomento presenta esempi di problemi di gestione termica e illustra anche i requisiti e i metodi di diagnostica.

Esempio

Gli esempi seguenti illustrano come risolvere i tipici problemi di gestione termica.

Sensori di temperatura della pelle

Il monitoraggio della temperatura della pelle è fondamentale per garantire che l'utente sia protetto in ogni momento. Se la temperatura sulla pelle è troppo calda da gestire in modo sicuro, il sistema deve intraprendere azioni immediate per arrestare il sistema. Questi sensori di temperatura possono anche dare input alle zone termiche per limitare i dispositivi che contribuiscono alla sua lettura.

Il diagramma a blocchi seguente mostra un layout di sistema di esempio con tre dispositivi e due zone termiche.

layout della scheda di sistema con più sensori e zone termiche

In questo esempio, il sensore temperatura 1 (TS1) e il sensore temperatura 2 (TS2) vengono posizionati in modo strategico in posizioni in cui i dispositivi contribuiscono al calore più caldo per la pelle. I dispositivi 1, 2 e 3 possono avere un singolo sensore di temperatura sopra ogni dispositivo. Questi sensori di dispositivo sono orientati alla limitazione di ogni dispositivo singolarmente. In genere, lo scopo del sensore della pelle è quello di rilevare la temperatura sulla superficie del dispositivo come aggregazione di più dispositivi nel sistema. Anche se ogni dispositivo potrebbe produrre più calore che può essere rilevato in questi sensori di temperatura, la produzione combinata di calore di questi dispositivi tende ad accumularsi in queste posizioni del sensore.

TS1 è posizionato a metà tra Dispositivo 2 e Dispositivo 3. Pertanto, la zona termica che accetta TS1 come controlli di input Device 2 e Device 3. Quando TS1 viene caldo, la zona termica limita il dispositivo 2 e 3. Analogamente, quando TS2 viene caldo, la zona termica limita tutti e tre i dispositivi.

In questo esempio i sensori vengono posizionati ugualmente lontano dai dispositivi monitorati. TS1 è posizionato a metà tra Device 2 e Device 3 e TS2 viene posizionato equidistante da Dispositivi 1, 2 e 3. Se ogni dispositivo si dissipa in modo radiale allo stesso modo, il calore di ogni dispositivo contribuisce allo stesso modo alla lettura della temperatura sul suo sensore.

Limitazione termica graduale

Dato un set di costanti termiche (_TC1 e _TC2), la percentuale di limitazione passiva di una zona termica ha determinate caratteristiche: quanto rapidamente cambia la curva e come le limitazioni della zona rimangono lontano dal punto di viaggio. In alcune circostanze, il comportamento della zona termica potrebbe essere necessario cambiare. Ad esempio, quando la temperatura è bassa, la percentuale di limitazione può permettersi di essere meno aggressiva. Ma quando la temperatura è più vicina al punto di viaggio, il comportamento di limitazione potrebbe essere molto più aggressivo. In tal caso, è possibile usare la limitazione termica graduale per applicare comportamenti di limitazione diversi a un set di dispositivi. Esistono due modi per implementare la limitazione termica graduale:

  • Modificare dinamicamente le costanti per una zona termica durante il runtime o
  • Uso di due zone termiche con costanti e punti di viaggio diversi.

Aggiornamento delle costanti per le zone

Per qualsiasi zona termica, un Notify(thermal_zone, 0x81) può essere usato per aggiornare le costanti termiche in qualsiasi momento.

Zone con punti di viaggio diversi

Non può essere presente più di un sensore termica in una zona termica. Tuttavia, più zone termiche che condividono lo stesso sensore di temperatura vengono spesso usate per implementare un comportamento graduale di limitazione termica. Una zona termica inizia a limitare le prestazioni moderatamente a basse temperature mentre l'altra zona termica inizia a limitare le prestazioni in modo aggressivo a temperature elevate.

Nel diagramma a blocchi seguente, due zone termiche che gestiscono gli stessi dispositivi usano lo stesso sensore di temperatura per ottenere una limitazione termica graduale. In questo esempio, il sensore di temperatura viene posizionato vicino al caricatore della batteria e ai backlight del monitor in modo che possa fornire input alle zone termiche che controllano questi due dispositivi.

più zone termiche che gestiscono gli stessi dispositivi

Le due zone termiche mostrate nel diagramma precedente possono essere definite come segue:

Thermal Zone 1 {     _PSV = 80C  Thermal Throttling  Devices:    Monitor Driver  Battery Driver } Thermal Zone 2 {   _PSV = 90C  Thermal Throttling  Devices:    Monitor Driver  Battery Driver }

Limitazione dipendente dall'attuale

Se il driver della batteria richiede la limitazione in base sia alla temperatura che alla corrente elettrica, l'algoritmo ACPI in gestione termica non è più adeguato perché non può tenere conto dell'attuale. Per sostituire questo algoritmo, è necessario fornire un driver di criteri che contiene un algoritmo personalizzato e caricare questo driver sopra lo stack di driver per la zona termica. Questo driver di criteri considera sia il sensore di temperatura che il sensore corrente come input e arriva a un criterio termica basato sull'algoritmo personalizzato. Si noti che questo criterio termica deve operare all'interno delle funzionalità dell'hardware della zona termica. Il criterio viene inviato al gestore termica, che aggiorna i log e aggiorna la zona termica. La zona termica invia quindi richieste al driver della batteria tramite l'interfaccia di raffreddamento termica.

Il diagramma a blocchi seguente mostra un driver di criteri che controlla sia la temperatura che la corrente di un dispositivo della batteria. Il driver dei criteri implementa un algoritmo personalizzato al posto dell'algoritmo di gestione termica. A differenza dell'algoritmo di gestione termica, l'algoritmo personalizzato accetta sia la temperatura che la corrente.

un driver di criteri sostituisce l'algoritmo di gestione termica

Requisiti di gestione termica

Requisiti hardware

I punti seguenti sono necessari per una buona progettazione hardware termica:

  • Tutti i sistemi soddisfano gli standard di settore applicabili (ad esempio, IEC 62368) per la sicurezza dell'elettronica di consumo.

  • L'hardware deve avere un punto di viaggio di temperatura non riuscita che arresta il sistema o impedisce l'avvio.

  • L'hardware del sensore deve essere accurato con +/- 2oC.

  • L'hardware del sensore non deve richiedere il polling software per determinare che è stata superata una temperatura soglia.

  • Durante il funzionamento, la luminosità del sistema non è mai limitata termicamente a meno di 100 nit.

  • La ricarica della batteria non è limitata mentre:

    • Il sistema è inattiva e all'interno dell'intervallo di temperatura ambientale inferiore a 35oC o
    • La temperatura ambientale è inferiore a 25oC in qualsiasi condizione.

Requisiti di test HCK per pc di standby moderni

Tutti i PC di standby moderni devono soddisfare determinati requisiti termica indipendentemente dall'architettura del processore e dal fattore di forma. Questi requisiti vengono testati per in HCK:

  • Tutti i PC di standby moderni devono avere almeno una zona termica.
  • Ogni zona termica deve segnalare la temperatura effettiva sul sensore.
  • Almeno una zona termica deve avere una temperatura di arresto critica definita. Viene eseguita un'eccezione per Intel Dynamic Platform e Thermal Framework (DPTF).
  • Tutti i PC di standby moderni con fan devono esporre l'attività fan al sistema operativo.
  • La ventola deve informare il sistema operativo dell'attività in ogni momento, incluso durante la resilienza inattiva nello standby moderno. Attualmente, queste notifiche non causano alcuna azione dal sistema operativo. Gli scopi principali per queste notifiche sono diagnosability e telemetria. La notifica della ventola può essere integrata con strumenti di traccia esistenti, tra cui Windows analizzatore prestazioni. I progettisti di sistema possono usare questi strumenti per ottimizzare la progettazione della piattaforma.
  • Tutti i PC di standby moderni con fan devono mantenere la ventola fuori mentre in standby moderno, lo stato di "sospensione" del sistema.
  • Il test HCK esegue qui un carico di lavoro di standby moderno realistico che non deve causare l'attivazione della ventola. Durante la transizione alla standby moderna, la ventola può rimanere attiva per un massimo di 30 secondi dal momento in cui il display viene disattivato.

Per altre informazioni sui test HCK, vedere Controllare le zone termiche.

Per eseguire i test HCK, eseguire le operazioni seguenti:

  • Immettere prima di tutto questo comando per installare il driver del pulsante:

    >>Button.exe -i

  • Per eseguire tutti i test termica per un PC con una ventola, immettere questo comando:

    >>RunCheckTz.cmd all

  • Per eseguire tutti i test termica per un PC senza una ventola, immettere questo comando:

    >>RunCheckTz.cmd nofan all

Soluzioni di gestione termica

Il framework termica finestra basato su ACPI è la soluzione di gestione termica consigliata per tutti i sistemi. I vantaggi principali includono la possibilità di diagnosticare facilmente i problemi di calore con gli strumenti di posta in arrivo e la possibilità di raccogliere dati di telemetria preziosi nel campo.

Tuttavia, le soluzioni alternative al framework termica di Windows sono accettabili se vengono soddisfatti i requisiti precedenti. I fornitori core di siliconi e SoC possono avere soluzioni termiche proprietarie compatibili con e supportate da Windows, ad esempio implementazioni basate su Intel Dynamic Platform e Thermal Framework (DPTF) per processori x86 e implementazioni PEP in Arm.

Diagnostica

Per aiutare i progettisti di sistema a diagnosticare e valutare il comportamento termica del sistema, Windows fornisce gli strumenti di posta in arrivo e autonomi seguenti.

Log eventi

Windows registra informazioni termiche importanti nei log eventi. Queste informazioni possono essere usate per valutare rapidamente le condizioni termiche in qualsiasi PC che esegue Windows 8 o versioni successive senza la necessità di ulteriori strumenti o traccia. La tabella seguente contiene l'elenco completo.

Channel Source (Sorgente) ID Descrizione evento
Log di Windows\Sistema Alimentazione del kernel 125 Zona termica ACPI da enumerare.

Windows registra questo evento durante l'avvio per ogni zona termica.

Registri di Windows\Sistemi Alimentazione del kernel 86 Il sistema è stato arrestato a causa di un evento termico critico.

Dopo un arresto critico, Windows registra questo evento. Questo evento può essere usato per diagnosticare se si è verificato un arresto critico termico e per identificare la zona termica che ha causato l'arresto.

Registri applicazioni e servizi\Microsoft\Windows\Kernel-Power\Thermal-Operational Alimentazione del kernel 114 Una zona termica ha attivato o disattivato il raffreddamento passivo.

Windows registra questo evento quando la limitazione termica si attiva e si discongi. Questo evento può essere usato per verificare se è stata verificata la limitazione termica e per quali zone. Ciò è utile quando si valutano i problemi di prestazioni.

Notifica degli eventi critici

In caso di arresto critico o ibernazione causata da condizioni termiche, il sistema operativo deve ricevere una notifica dell'evento in modo che possa essere registrato nel registro eventi di sistema. Esistono due modi per inviare una notifica al sistema operativo in questo caso:

  • Utilizzare il metodo di _CRT o _HOT della zona termica ACPI per registrare automaticamente l'evento termico critico. Non è necessario alcun lavoro aggiuntivo diverso da per definire un valore _CRT o _HOT.

  • Per tutte le altre soluzioni termiche, il driver può usare l'interfaccia di evento termico seguente, definita nel file di intestazione Procpowr.h:

    #define THERMAL_EVENT_VERSION 1 typedef struct _THERMAL_EVENT { ULONG Version; ULONG Size; ULONG Type; ULONG Temperature; ULONG TripPointTemperature; LPWSTR Initiator;  } THERMAL_EVENT, *PTHERMAL_EVENT;  #if (NTDDI_VERSION >= NTDDI_WINBLUE) DWORD PowerReportThermalEvent ( _In_ PTHERMAL_EVENT Event ); #endif
    

    La routine PowerReportTermalEvent notifica al sistema operativo di un evento termico in modo che l'evento possa essere registrato nel registro eventi di sistema. Prima di chiamare PowerReportTermalEvent, il driver imposta i membri della struttura THERMAL_EVENT sui valori seguenti.

    Versione

    THERMAL_EVENT_VERSION

    Dimensione

    sizeof(THERMAL_EVENT)

    Tipo

    Uno dei valori THERMAL_EVENT_XXX di Ntpoapi.h.

    Temperatura

    La temperatura, in decimi di grado Kelvin, che il sensore si trovava dopo aver attraversato il punto di viaggio (o zero se sconosciuto).

    TripPointTemperature

    La temperatura, in decimi di grado Kelvin, del punto di viaggio (o zero se sconosciuto).

    Iniziatore

    Puntatore a una stringa di caratteri wide e con terminazione NULL che identifica il sensore la cui soglia è stata superata.

The following thermal event types are defined in the Ntpoapi.h header file:

```
// // Thermal event types // #define THERMAL_EVENT_SHUTDOWN     0 #define THERMAL_EVENT_HIBERNATE    1 #define THERMAL_EVENT_UNSPECIFIED  0xffffffff
```

Hardware platforms should use the thermal event interface only if thermal solutions other than Windows thermal management framework are used. This interface allows the operating system to gather information when a critical shutdown occurs due to thermal reasons.

Contatori delle prestazioni

I contatori delle prestazioni offrono informazioni in tempo reale sul comportamento termico del sistema. Per ogni zona termica viene eseguito il polling dei tre dati seguenti.

Informazioni sulla zona termica
  • Limite passivo percentuale: percentuale limitata. Il 100% indica che la zona non è limitata.
  • Temperatura: temperatura della zona termica in gradi Kelvin.
  • Motivo della limitazione: motivo della limitazione di una zona:

    • 0x0: la zona non è limitata
    • 0x1 : la zona è limitata per motivi termico.
    • 0x2 : la zona è limitata per limitare la corrente elettrica.

Queste informazioni vengono pollate solo quando richieste, ad esempio da Windows Monitor prestazioni o dallo strumento da riga di comando typeperf.

Per altre informazioni sui contatori delle prestazioni in generale, vedere Contatori delle prestazioni.

Monitoraggio delle prestazioni

Monitor prestazioni è un'applicazione predefinita per il polling e la visualizzazione delle informazioni. Monitor prestazioni può essere uno strumento molto potente per confrontare le condizioni termiche del sistema. Le due schermate di esempio seguenti mostrano Monitor prestazioni in azione quando viene eseguita la demo fishbowl in Internet Explorer. Nella prima schermata Monitor prestazioni mostra l'aumento della temperatura di tre zone termiche nel tempo.

grafico di monitoraggio delle prestazioni che mostra la temperatura di tre fusi termica nel tempo

Nella seconda schermata Monitor prestazioni segnala la percentuale di limitazione corrente, la temperatura e il motivo della limitazione.

Performance Monitor segnala la percentuale di limitazione corrente, la temperatura e il motivo della limitazione

Per ulteriori informazioni, vedere la pagina relativa all' utilizzo di Performance Monitor.

Windows analizzatore prestazioni (WPA)

Come parte di ADK, Windows fornisce Windows Performance Toolkit (WPT) per la traccia software e l'analisi. All'interno di WPT, i progettisti di sistema possono usare Windows analizzatore prestazioni (WPA) per visualizzare le tracce software e analizzare il comportamento termico. Per altre informazioni su come installare e usare WPA, vedi Windows analizzatore prestazioni (WPA).

Provider

Includere "Microsoft-Windows-Kernel-ACPI" per registrare eventi per la temperatura, l'attività della zona termica e l'attività della ventola.

Includere "Microsoft-Windows-Thermal-Polling" per abilitare il polling della temperatura in ogni zona termica. Se questo non è incluso, le temperature verranno segnalate solo quando aumentano al di sopra dei punti di corsa passivi e/o attivi. Il periodo di polling può essere controllato specificando un flag per il provider.

Flag Periodo di polling
Nessuno 1 secondo
0x1 1 secondo
0x2 5 secondi
0x4 30 secondi
0x8 5 minuti
0x10 30 minuti

Utilità processore

Prima di esaminare i dati di limitazione termica, è consigliabile controllare due volte le informazioni sull'utilità del processore per assicurarsi che il modello di utilità del processore sia coerente con ciò che deve essere il carico di lavoro. Per verificare che il carico di lavoro sia configurato correttamente, seguire questa procedura:

  1. Aprire il file ETL con lo strumento WPA.
  2. In Graph Explorer selezionare Power e quindi Utilità processore.
  3. Modificare il tipo di grafico in Linee in pila.

Lo screenshot seguente mostra il grafico dell'utilità processore .

grafico dell'utilità processore

Percentuale di limitazione della zona termica

Quando una zona termica è limitata, il file di traccia software ha registrato tutte le variazioni di percentuale di limitazione termica, le variazioni della temperatura e i criteri di raffreddamento. Per visualizzare le informazioni nel file di traccia, seguire questa procedura:

  1. Aprire il file ETL usando lo strumento WPA.
  2. In Graph Explorer selezionare Alimentazione e quindi Limitazione del dispositivo ThermalZone.
  3. È possibile selezionare dispositivi interessanti tramite l'applicazione del filtro.

Lo screenshot seguente mostra il grafico Limitazione del dispositivo ThermalZone e le opzioni di filtro.

le opzioni di limitazione della limitazione del dispositivo della zona termica e del filtro

Temperatura della zona termica

L'uso delle informazioni sul contatore delle prestazioni consente anche di monitorare la temperatura del sistema, senza alcuna limitazione. Seguire questa procedura:

  1. Abilitare i provider desiderati durante l'acquisizione di una traccia.
  2. Assicurarsi che i contatori delle prestazioni siano ancora in esecuzione (Monitor prestazioni è ancora in esecuzione). Per altre informazioni, vedere Contatori delle prestazioni.
  3. Aprire il file ETL usando lo strumento WPA.
  4. In Graph Explorer selezionare Power e quindi Temperature (K) by ThermalZone.
  5. Si dovrebbe vedere la temperatura nel tempo per ogni zona termica.

Lo screenshot seguente mostra un grafico della temperatura nel tempo per cinque zone termiche.

grafico della temperatura nel tempo per cinque zone termiche