Exemplos, requisitos e diagnóstico
Este tópico apresenta exemplos de problemas de gerenciamento térmico e também aborda requisitos e métodos de diagnóstico.
Exemplos
Os exemplos a seguir explicam como resolver problemas típicos de gerenciamento térmico.
Sensores de temperatura de capa
Monitorar a temperatura de capa é essencial para garantir a segurança do usuário o tempo todo. Se a temperatura de capa estiver muito quente para ser tratada com segurança, o sistema deverá tomar medidas imediatas para desligar o sistema. Esses sensores de temperatura também podem fornecer entrada para as zonas térmicas a fim de limitar os dispositivos que contribuem para sua leitura.
O diagrama de blocos a seguir mostra um layout de sistema de exemplo que tem três dispositivos e duas zonas térmicas.
Neste exemplo, o Sensor de temperatura 1 (TS1) e o Sensor de temperatura 2 (TS2) são colocados estrategicamente nos locais onde os dispositivos contribuem com mais calor para a capa. Os dispositivos 1, 2 e 3 podem ter sensor de temperatura individual em cima de cada dispositivo. Esses sensores de dispositivo são voltados para limitar cada dispositivo individualmente. Normalmente, a finalidade do sensor de capa é detectar a temperatura na superfície do dispositivo como uma agregação de vários dispositivos no sistema. Embora cada dispositivo possa produzir mais calor do que pode ser detectado nesses sensores de temperatura, a produção combinada de calor desses dispositivos tende a ficar acumulada nesses locais de sensor.
O TS1 é colocado no meio do caminho, entre o Dispositivo 2 e o Dispositivo 3. Sendo assim, a zona térmica que usa TS1 como entrada controla o Dispositivo 2 e o Dispositivo 3. Quando o TS1 fica quente, a zona térmica limita o Dispositivo 2 e 3. Da mesma forma, quando o TS2 fica quente, a zona térmica limita todos os três dispositivos.
Neste exemplo, os sensores são colocados igualmente longe dos dispositivos que eles monitoram. O TS1 é colocado no meio do caminho entre o Dispositivo 2 e o Dispositivo 3, e o TS2 é colocado equidistante dos Dispositivos 1, 2 e 3. Se cada dispositivo dissipar o calor radialmente da mesma maneira, o calor de cada dispositivo contribuirá igualmente para a leitura de temperatura em seu sensor.
Limitação térmica gradual
Dado um conjunto de constantes térmicas (_TC1 e _TC2), o percentual de limitação passiva de uma zona térmica tem certas características: a rapidez com que a curva muda e a agressividade com que a zona limita para permanecer longe do ponto de queda. Em algumas circunstâncias, o comportamento da zona térmica pode precisar ser alterado. Por exemplo, quando a temperatura é baixa, o percentual de limitação pode ser menos agressivo. Mas quando a temperatura está mais próxima do ponto de queda, o comportamento de limitação talvez precise ser muito mais agressivo. Nesse caso, a limitação térmica gradual pode ser usada para aplicar comportamentos de limitação diferentes a um conjunto de dispositivos. Há duas maneiras de implementar a limitação térmica gradual:
- Alterando dinamicamente as constantes de uma zona térmica durante o runtime ou
- Usando duas zonas térmicas com constantes e pontos de queda diferentes.
Atualizar constantes para zonas
Para toda zona térmica, um Notify(thermal_zone, 0x81)
pode ser usado para atualizar as constantes térmicas a qualquer momento.
Zonas com pontos de queda diferentes
Não pode haver mais de um sensor térmico em uma zona térmica. No entanto, várias zonas térmicas que compartilham o mesmo sensor de temperatura são frequentemente usadas para implementar o comportamento gradual de limitação térmica. Uma zona térmica começa a limitar o desempenho moderadamente em baixas temperaturas, enquanto a outra zona térmica começa a limitar o desempenho de forma agressiva em altas temperaturas.
No diagrama de blocos a seguir, duas zonas térmicas que gerenciam os mesmos dispositivos usam o mesmo sensor de temperatura para atingir a limitação térmica gradual. Neste exemplo, o sensor de temperatura é colocado próximo ao carregador de bateria e as luzes de fundo do monitor para que ele possa fornecer entradas para zonas térmicas que controlam esses dois dispositivos.
As duas zonas térmicas mostradas no diagrama anterior podem ser definidas da seguinte maneira:
Thermal Zone 1 { _PSV = 80C Thermal Throttling Devices: Monitor Driver Battery Driver } Thermal Zone 2 { _PSV = 90C Thermal Throttling Devices: Monitor Driver Battery Driver }
Limitação dependente de corrente
Se o driver da bateria exigir limitação com base na temperatura e na corrente elétrica, o algoritmo da ACPI no gerenciador térmico não será mais adequado porque ele não pode considerar a corrente. Para substituir esse algoritmo, você deve fornecer um driver de política que contenha um algoritmo personalizado e carregar esse driver sobre a pilha de driver para a zona térmica. Esse driver de política trata o sensor de temperatura e o sensor de corrente como entradas e chega a uma política térmica com base no algoritmo personalizado. Observe que essa política térmica deve operar dentro dos recursos do hardware da zona térmica. A política é enviada ao gerenciador térmico, que atualiza os logs e a zona térmica. Em seguida, a zona térmica envia solicitações para o driver da bateria por meio da interface de resfriamento térmico.
O diagrama de blocos a seguir mostra um driver de política que controla a temperatura e a corrente de um dispositivo de bateria. O driver de política implementa um algoritmo personalizado no lugar do algoritmo do gerenciador térmico. Ao contrário do algoritmo do gerenciador térmico, o algoritmo personalizado considera a temperatura e a corrente.
Requisitos de gerenciamento térmico
Requisitos de hardware
Os seguintes pontos são necessários para obter um bom design de hardware térmico:
Todos os sistemas atendem aos padrões aplicáveis do setor (por exemplo, IEC 62368) para a segurança de eletrônicos de consumo.
O hardware deve ter um ponto de queda de temperatura à prova de falhas que desligue o sistema ou impeça a inicialização.
O hardware do sensor deve ser preciso para +/- 2oC.
O hardware do sensor não deve exigir sondagem de software para determinar que uma temperatura limite foi excedida.
Durante a operação, o brilho da exibição do sistema nunca é limitado termicamente para ser menos de 100 nits.
O carregamento da bateria não é limitado enquanto:
- O sistema está ocioso e dentro do intervalo de temperatura ambiente abaixo de 35oC ou
- A temperatura ambiente está abaixo de 25oC em qualquer condição.
Requisitos de teste do HCK para computadores em modo de espera moderno
Todos os computadores em modo de espera moderno devem atender a determinados requisitos térmicos, independentemente da arquitetura do processador e do fator forma. Esses requisitos são testados no HCK:
- Todos os computadores em modo de espera moderno devem ter pelo menos uma zona térmica.
- Cada zona térmica deve relatar a temperatura real no sensor.
- Pelo menos uma zona térmica deve ter a temperatura de desligamento crítica definida. Uma exceção é feita para a Plataforma dinâmica Intel e a DPTF (Estrutura térmica).
- Todos os computadores em modo de espera moderno com ventoinhas devem expor a atividade da ventoinha ao sistema operacional.
- A ventoinha precisa notificar o sistema operacional de sua atividade o tempo todo, inclusive durante a resiliência ociosa em modo de espera moderno. Atualmente, essas notificações não causam nenhuma ação do sistema operacional. As principais finalidades dessas notificações são diagnóstico e telemetria. A notificação da ventoinha pode ser integrada às ferramentas de rastreamento existentes, incluindo o Windows Performance Analyzer. Os designers de sistema podem usar essas ferramentas para ajustar o design da plataforma.
- Todos os computadores em modo de espera moderno com ventoinhas devem manter a ventoinha desligada enquanto estiver em modo de espera moderno, o estado de "suspensão" do sistema.
- O teste do HCK aqui executa uma carga de trabalho em modo de espera moderno realista que não deve fazer com que a ventoinha seja ativada. Durante a transição para o modo de espera moderno, a ventoinha tem permissão para permanecer ligada por até 30 segundos a partir do momento em que a exibição é desativada.
Para obter mais informações sobre os testes do HCK, consulte Verificar zonas térmicas.
Para executar os testes do HCK, siga este procedimento:
Primeiro, insira este comando para instalar o driver de botão:
>>Button.exe -i
Para executar todos os testes térmicos em um computador com uma ventoinha, insira este comando:
>>RunCheckTz.cmd all
Para executar todos os testes térmicos em um computador sem uma ventoinha, insira este comando:
>>RunCheckTz.cmd nofan all
Soluções de gerenciamento térmico
A estrutura térmica do Windows baseada em ACPI é a solução de gerenciamento térmico recomendada para todos os sistemas. Os principais benefícios incluem a capacidade de diagnosticar facilmente problemas térmicos com ferramentas de caixa de entrada e a capacidade de coletar telemetria valiosa no campo.
No entanto, soluções alternativas para a estrutura térmica do Windows serão aceitáveis se os requisitos acima forem atendidos. Os principais fornecedores de silício e SoC podem ter suas próprias soluções térmicas proprietárias compatíveis e com suporte do Windows, por exemplo, implementações baseadas na Plataforma dinâmica Intel e na DPTF (Estrutura térmica) para processadores x86 e implementações de PEP no Arm.
Diagnósticos
Para ajudar os designers do sistema a diagnosticar e avaliar o comportamento térmico do sistema, o Windows fornece a caixa de entrada e as ferramentas autônomas a seguir.
Logs de eventos
O Windows registra informações térmicas importantes nos logs de eventos. Essas informações podem ser usadas para fazer a triagem rápida das condições térmicas em qualquer computador com Windows 8 ou posterior em execução sem a necessidade de rastreamento ou ferramentas adicionais. A tabela a seguir contém a lista completa.
Canal | Fonte | ID | Descrição do evento |
---|---|---|---|
Logs do Windows\Sistema | Energia do kernel | 125 |
Zona térmica da ACPI sendo enumerada.
O Windows registra esse evento durante a inicialização para cada zona térmica. |
Logs do Windows\Sistemas | Energia do kernel | 86 |
O sistema foi desligado devido a um evento térmico crítico.
Após um desligamento crítico, o Windows registra esse evento. Esse evento pode ser usado para diagnosticar se ocorreu um desligamento crítico térmico e identificar a zona térmica que causou o desligamento. |
Logs\Microsoft\Windows\Kernel-Power\Thermal-Operational de Aplicativos e Serviços | Energia do kernel | 114 |
Uma zona térmica ativou ou desativou o resfriamento passivo.
O Windows registra esse evento quando a limitação térmica é ativada e desativada. Esse evento pode ser usado para confirmar se a limitação térmica ocorreu e em quais zonas. Isso é útil ao fazer a triagem de problemas de desempenho. |
Notificação de evento crítico
No caso de um desligamento crítico ou hibernação causada por condições térmicas, o sistema operacional deve ser notificado sobre o evento para que ele possa ser registrado no log de eventos do sistema. Há duas maneiras de notificar o sistema operacional quando isso ocorrer:
Use o método _CRT ou _HOT de zona térmica da ACPI para registrar automaticamente o evento térmico crítico corretamente. Nenhum trabalho adicional é necessário além de definir um valor de _CRT ou _HOT.
Para todas as outras soluções térmicas, o driver pode usar a seguinte interface de evento térmico, que é definida no arquivo de cabeçalho 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
A rotina PowerReportThermalEvent notifica o sistema operacional de um evento térmico para que o evento possa ser registrado no log de eventos do sistema. Antes de chamar PowerReportThermalEvent, o driver define os membros da estrutura THERMAL_EVENT com os valores a seguir.
- Versão
THERMAL_EVENT_VERSION
- Tamanho
sizeof(THERMAL_EVENT)
- Tipo
Um dos valores THERMAL_EVENT_XXX de Ntpoapi.h.
- Temperatura
A temperatura, em décimos de grau Kelvin, em que o sensor estava depois de cruzar o ponto de queda (ou zero, se desconhecido).
- TripPointTemperature
A temperatura, em décimos de grau Kelvin, do ponto de queda (ou zero, se desconhecido).
- Iniciador
Um ponteiro para uma cadeia de caracteres largos terminada em NULL que identifica o sensor cujo limite foi ultrapassado.
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.
Contadores de desempenho
Os contadores de desempenho oferecem informações em tempo real sobre o comportamento térmico do sistema. As três partes de dados a seguir são sondadas para cada zona térmica.
Informações de zona térmica |
---|
|
Essas informações são sondadas somente quando solicitadas — por exemplo, pelo Monitor de Desempenho do Windows ou pela ferramenta de linha de comando typeperf.
Para obter mais informações sobre contadores de desempenho em geral, consulte Contadores de desempenho.
Monitor de desempenho
O Monitor de Desempenho é um aplicativo interno para sondagem e visualização de informações. O Monitor de Desempenho pode ser uma ferramenta muito poderosa para comparar condições térmicas em designs térmicos do sistema. As duas capturas de tela de exemplo abaixo mostram o Monitor de Desempenho em ação quando a demonstração do fishbowl é executada no Internet Explorer. Na primeira captura de tela, o Monitor de Desempenho mostra o aumento da temperatura de três zonas térmicas ao longo do tempo.
Na segunda captura de tela, Monitor de Desempenho relata o percentual de limitação atual, a temperatura e o motivo da limitação.
Para obter mais informações, consulte Usando o Monitor de Desempenho.
WPA (Windows Performance Analyzer)
Como parte do ADK, o Windows fornece o WPT (Windows Performance Toolkit) para rastreamento e análise de software. Dentro do WPT, os designers de sistema podem usar o WPA para visualizar os rastreamentos de software e analisar o comportamento térmico. Para mais informações sobre como instalar e usar o WPA, confira WPA (Windows Performance Analyzer).
Provedores
Inclua "Microsoft-Windows-Kernel-ACPI" para registrar eventos de temperatura, atividade de zona térmica e atividade da ventoinha.
Inclua "Microsoft-Windows-Thermal-Polling" para habilitar a sondagem da temperatura em cada zona térmica. Se isso não for incluído, as temperaturas só serão relatadas quando subirem acima dos pontos de queda passivos e/ou ativos. O período de sondagem pode ser controlado especificando um sinalizador para o provedor.
Sinalizador | Período de sondagem |
---|---|
Nenhum | 1 segundo |
0x1 | 1 segundo |
0x2 | 5 segundos |
0x4 | 30 segundos |
0x8 | 5 minutos |
0x10 | 30 minutos |
Utilitário de processador
Antes de pesquisar dados de limitação térmica, é uma boa ideia verificar novamente as informações do utilitário do processador para garantir que o padrão do utilitário do processador seja consistente com o que a carga de trabalho deve ser. Para confirmar se a carga de trabalho está configurada corretamente, siga estas etapas:
- Abra o arquivo ETL com a ferramenta WPA.
- No Explorador do Graph, selecione Energia e, em seguida, Utilitário de processador.
- Altere o Tipo de Grafo para Linhas empilhadas.
A captura de tela a seguir mostra o grafo Utilitário de processador.
Percentual de limitação da zona térmica
Quando uma zona térmica está limitando, o arquivo de rastreamento de software registrou todas as alterações no percentual de limitação térmica, alterações de temperatura e alterações de política de resfriamento. Para exibir as informações no arquivo de rastreamento, siga estas etapas:
- Abra o arquivo ETL usando a ferramenta WPA.
- No Explorador do Graph, selecione Energia e, em seguida, Limitação de dispositivo ThermalZone.
- Você pode selecionar dispositivos interessantes por meio da aplicação de filtragem.
A captura de tela a seguir mostra o grafo e as opções de filtragem da Limitação de dispositivo ThermalZone.
Temperatura da zona térmica
Usando informações do contador de desempenho, a temperatura do sistema também pode ser monitorada enquanto nenhuma limitação está ativada. Siga estas etapas:
- Habilitar os provedores desejados ao fazer um rastreamento.
- Verifique se os contadores de desempenho ainda estão sendo sondados (Monitor de Desempenho ainda está em execução). Para saber mais, confira Contadores de desempenho.
- Abra o arquivo ETL usando a ferramenta WPA.
- No Explorador do Graph, selecione Energia e Temperatura (K) por ThermalZone.
- Deve ser exibida a temperatura ao longo do tempo para cada zona térmica.
A captura de tela a seguir mostra um grafo de temperatura ao longo do tempo para cinco zonas térmicas.