Transição entre estados ociosos e ativos

Durante a suspensão, o Windows faz a transição periódica da plataforma SoC do modo ocioso para o modo ativo para executar atividades de adição de valor, como receber uma notificação por email ou executar uma tarefa de manutenção. Além disso, transições sob demanda para o modo ativo podem ocorrer em resposta a entradas do usuário, interrupções de dispositivos de rede e outros eventos de hardware.

Depois que o SoC tiver entrado no estado DRIPS, a plataforma normalmente estará no modo de energia mais baixo. Durante a suspensão, a plataforma alternará entre esse modo ocioso (DRIPS) e o modo ativo periodicamente. A baixa potência é obtida em suspensão gastando a maior parte do tempo no modo DRIPS e quantidades muito pequenas de tempo no modo ativo.

Transição de ocioso para ativo

O Windows fará a transição do SoC para o modo ativo pelos seguintes motivos:

  • Um evento de ativação sob demanda devido a uma interrupção de um dispositivo de rede (Wi-Fi, banda larga móvel ou Ethernet). O dispositivo de rede gera uma interrupção quando um padrão WoL correspondente é detectado ou quando o estado de mídia ou conexão é alterado. A interrupção ativa o SoC usando um GPIO fora de banda, sinalização de retomada USB em banda ou interrupção de PCI PME.
  • Um evento de ativação sob demanda devido a uma interrupção do dispositivo de plataforma de uma fonte, como o medidor de combustível da bateria, o controlador de carga da bateria ou sensores térmicos.
  • Um evento de ativação sob demanda devido a uma interrupção causada pela entrada do usuário em um teclado, touchpad, periférico USB externo, botão de energia ou comutador de tampa.

Assim que o SoC é ativado e a plataforma sai do estado DRIPS, as CPUs começam a executar o código novamente. No entanto, a tela permanece desligada, a menos que a interrupção tenha sido resultado da entrada do usuário ou da conexão com uma fonte de energia. O driver do dispositivo que causa a interrupção é responsável por relatar a presença do usuário ao sistema operacional se a interrupção corresponder à entrada do usuário. O gerenciador de energia do Windows determina se a tela deve ser ativada; o designer do sistema só precisa garantir que a interrupção de cada dispositivo esteja conectada e programada para ativar o SoC do estado DRIPS.

Os designers de sistema devem trabalhar em estreita colaboração com o fornecedor do SoC para conectar interrupções de dispositivo para ativação do SoC. Alguns dispositivos SoC exigem que as interrupções do dispositivo sejam conectadas a entradas especiais "compatíveis com ativação" ou configuradas para ativação usando firmware do sistema.

Transição do ativo para ocioso

O Windows faz a transição da plataforma SoC do modo ativo para o modo ocioso depois que todas as atividades de software são interrompidas e os dispositivos ligados e desligados do chip soc entraram em estados de baixa potência.

O SoC faz a transição entre modos ociosos e ativos durante a suspensão com base nos gatilhos explicados na seção anterior. Sempre que o SoC estiver ativo, o Windows tentará retorná-lo agressivamente para o estado ocioso (DRIPS) para reduzir o consumo de energia.

O SoC também estará ativo quando o sistema sair do modo de espera moderno em resposta à entrada do usuário, como um pressionamento de botão de energia. O SoC será colocado novamente no estado ocioso (DRIPS) automaticamente quando todas as seguintes condições forem verdadeiras:

  • Todos os dispositivos fora do SoC foram desligados.
  • Todos os dispositivos de rede e rádio entraram em seu estado de baixa energia para aguardar os pacotes correspondentes a padrões WoL ou interrupções de ativação.
  • Todos os controladores de host no SoC foram desligados.
  • Todas as tarefas em segundo plano do aplicativo foram concluídas.
  • Todas as atividades de CPU e GPU foram interrompidas e todas as CPUs estão ociosas.

Quase todos os problemas modernos de energia em espera estão relacionados a garantir que todas essas cinco condições tenham sido atendidas. O Windows inclui uma ferramenta de diagnóstico interna chamada SleepStudy para ajudar a descobrir quais dessas condições não estão sendo atendidas quando o SoC é impedido de entrar no estado ocioso (DRIPS).