Estados de baixo consumo de energia do dispositivo
Os estados de energia do dispositivo D1, D2 e D3 são os estados de baixo consumo de energia do dispositivo. A partir do Windows 8, o D3 é dividido em dois subestados, D3hot e D3cold.
D1 e D2 são estados intermediários de baixa potência. Muitas classes de dispositivos não definem esses estados. Todos os dispositivos devem definir D3hot.
As seções a seguir descrevem D1, D2 e D3:
Estado de alimentação do dispositivo D1
O estado de energia do dispositivo D1 é o estado de menor consumo de energia do dispositivo de maior potência. Ele tem as seguintes características:
Consumo de energia
O consumo é menor do que no estado D0, mas maior ou igual ao do estado D2. Frequentemente, D1 é um estado fechado por relógio no qual o dispositivo recebe apenas energia suficiente para preservar o contexto de hardware do dispositivo. Normalmente, a especificação de um barramento ou classe de dispositivo que oferece suporte a D1 descreve esse estado com mais detalhes.
Contexto do dispositivo
Em geral, o contexto do dispositivo é preservado pelo hardware e não precisa ser restaurado pelo driver. A especificação para uma classe de barramento ou dispositivo que oferece suporte a D1 normalmente fornece requisitos detalhados para preservar esse contexto.
Comportamento do driver de dispositivo
Os drivers devem salvar e restaurar ou reinicializar qualquer contexto perdido pelo hardware. Normalmente, no entanto, os dispositivos perdem pouco contexto ao entrar nesse estado.
Tempo de restauração
Em geral, o tempo necessário para restaurar o dispositivo para D0 de D1 deve ser menor do que a restauração de D2 para D0.
Capacidade de despertar
Um dispositivo em D1 pode ser capaz de solicitar a ativação. Para fornecer informações sobre se esse estado pode oferecer suporte a um sinal de ativação, um driver de barramento usa a estrutura DEVICE_CAPABILITIES ou, a partir do Windows 8, a interface de driver GUID_D3COLD_SUPPORT_INTERFACE.
Normalmente, os dispositivos que usam D1 fazem isso porque a retomada desse estado não requer que o driver restaure o contexto de hardware completo do dispositivo. Para minimizar a percepção de atraso do usuário, restaurar um dispositivo para D0 a partir de D1 deve incorrer no menor atraso possível. Minimizar o atraso na transição de estado é mais importante do que reduzir o consumo de energia.
Estado de alimentação do dispositivo D2
D2 é um dispositivo intermediário de baixa potência com as seguintes características:
Consumo de energia
O consumo é menor ou igual ao do estado D1.
Contexto do dispositivo
Em geral, a maioria do contexto do dispositivo é perdida pelo hardware. Frequentemente, esse estado preserva a parte do contexto que é usada para sinalizar eventos de despertar. A especificação para um barramento ou classe de dispositivo que oferece suporte a D2 normalmente fornece requisitos detalhados para preservar esse contexto.
Comportamento do driver de dispositivo
Os drivers de dispositivo devem salvar e restaurar ou reinicializar qualquer contexto perdido pelo hardware. Um dispositivo típico perde a maior parte do contexto quando entra em D2.
Tempo de restauração
Restaurar o dispositivo de D2 para D0 leva pelo menos o mesmo tempo que restaurar o dispositivo de D1 para D0. Um adaptador gráfico que tem um buffer de quadros grande é um exemplo de um dispositivo que tem uma grande quantidade de contexto de hardware para restaurar após uma transição de D2 para D0. Para esse dispositivo, o tempo de restauração de D2 pode ser muito maior do que o tempo de restauração de D1.
Capacidade de despertar
Um dispositivo em D2 pode ser capaz de solicitar o despertar. Para fornecer informações sobre se esse estado pode oferecer suporte a um sinal de ativação, um driver de barramento usa a estrutura DEVICE_CAPABILITIES ou, a partir do Windows 8, a interface de driver GUID_D3COLD_SUPPORT_INTERFACE.
Normalmente, os drivers que suportam D2 fazem isso porque seus dispositivos não podem suportar a ativação de D3. Para esses dispositivos, o consumo de energia no estado D2 cai para o nível mais baixo a partir do qual o dispositivo pode se recuperar em resposta a um sinal de despertar. Ao contrário do estado D1, que é implementado para reduzir o atraso percebido pelo usuário, o objetivo na implementação do estado D2 é conservar energia. Como resultado, o tempo de restauração de D2 a D0 normalmente excede o de D1 a D0. No estado D2, por exemplo, a redução da energia no barramento pode fazer com que um dispositivo desligue algumas de suas funcionalidades, exigindo tempo adicional para reiniciar e restaurar o dispositivo.
Muitas classes de dispositivo não definem esse estado.
Estado de alimentação do dispositivo D3
D3 é o estado de menor potência do dispositivo de baixa potência. Todos os dispositivos devem oferecer suporte a esse estado.
A partir do Windows 8, o sistema operacional subdivide o D3 em dois subestados separados e distintos, D3hot e D3cold. Versões anteriores do Windows definem o estado D3, mas não os subestados D3hot e D3cold. No entanto, todas as versões da PCI Bus Power Management Interface Specification definem subestados D3hot e D3cold separados, e as versões 4 e posteriores da Advanced Configuration and Power Interface Specification definem subestados D3hot e D3cold.
Embora as versões do Windows anteriores ao Windows 8 não definam explicitamente os subestados D3hot e D3cold do D3, esses subestados existem implicitamente nessas versões anteriores do Windows. Um dispositivo está implicitamente no subestado D3hot se o dispositivo estiver explicitamente no estado D3 e o computador estiver no estado de energia do sistema S0. No D3hot, um dispositivo é conectado a uma fonte de alimentação (embora o dispositivo possa estar configurado para extrair baixa corrente) e a presença do dispositivo no barramento pode ser detectada. Um dispositivo está implicitamente no subestado D3cold se estiver explicitamente no estado D3 e o computador estiver em um estado Sx de baixo consumo de energia (um estado diferente de S0). Nesse subestado D3cold implícito, o dispositivo pode receber uma corrente de gotejamento, mas o dispositivo e o computador são efetivamente desligados até que um evento de ativação ocorra.
A partir do Windows 8, um dispositivo pode entrar e sair do subestado D3cold enquanto o computador permanece no estado S0. Para dar suporte a esse novo comportamento, D3hot e D3cold devem ser explicitamente definidos como subestados distintos de D3.
D3hot é o único subestado de D3 que o dispositivo pode entrar diretamente de D0. Um dispositivo faz uma transição de D0 para D3hot sob controle de software pelo driver de dispositivo. No D3hot, o dispositivo pode ser detectado no barramento ao qual se conecta. O barramento deve permanecer no estado D0 enquanto o dispositivo estiver no subestado D3hot. A partir de D3hot, o dispositivo pode retornar para D0 ou entrar D3cold. D3cold pode ser inserido somente a partir de D3hot.
D3cold é um subestado de D3 no qual o dispositivo está fisicamente conectado ao barramento, mas a presença do dispositivo no barramento não pode ser detectada (ou seja, até que o dispositivo seja ligado novamente). No D3cold, um ou ambos os itens a seguir são verdadeiros:
- O barramento ao qual o dispositivo se conecta está em um estado de baixo consumo de energia.
- O dispositivo está em um estado de baixa energia no qual o dispositivo não responde quando o motorista do barramento tenta detectar sua presença no barramento.
A transição de D3hot para D3cold ocorre sem interação com o driver de dispositivo. Em vez disso, o driver de dispositivo indica se ele está preparado para uma transição D3cold antes de iniciar a transição de D0 para D3hot. Posteriormente, uma transição de D3hot para D3cold pode ou não ocorrer, dependendo se todas as condições estão corretas para permitir essa transição.
Duas dessas condições são que todos os dispositivos que usam a mesma fonte de energia estão em D3hot e estão preparados para uma transição D3cold. Quando o último desses dispositivos entra em D3hot, o driver de barramento pai ou o driver de filtro ACPI desliga a fonte de alimentação para esses dispositivos, o que significa que os dispositivos entram em D3cold.
Um dispositivo que está em D3cold pode sair desse subestado somente digitando D0. Não há transição direta de D3cold para D3hot.
Quando o computador está no estado S0 e um dispositivo entra no subestado D3hot, o driver de dispositivo normalmente não consegue determinar com antecedência se a próxima transição do dispositivo será para D3cold ou D0. A única exceção é quando o computador está se preparando para sair do estado S0. Neste caso, a próxima transição é para D3cold.
As seções a seguir descrevem D3hot e D3cold:
Para obter mais informações, consulte Suporte a D3cold em um driver.
Subestado D3hot
D3hot tem as seguintes características:
Consumo de energia A energia é removida principalmente do dispositivo, mas não do computador como um todo. O computador, que está no estado S0, pode continuar sendo executado nesse estado ou pode estar se preparando para passar de S0 para um estado Sx de baixo consumo de energia.
Contexto do dispositivo
O driver de dispositivo é o único responsável por restaurar o contexto do dispositivo. O driver deve preservar e, em seguida, restaurar todo o contexto do dispositivo ou deve reinicializar o dispositivo após a transição para o estado D0.
Comportamento do driver de dispositivo
O driver de dispositivo é o único responsável por restaurar o contexto do dispositivo, normalmente a partir da configuração de trabalho mais recente.
Tempo de restauração
O tempo total de restauração é o mais alto de qualquer um dos estados de energia do dispositivo, exceto para D3cold, mas normalmente não é muito maior do que o tempo de restauração de D2.
Capacidade de despertar
Um dispositivo no subestado D3hot pode ou não ser capaz de solicitar o despertar. Para fornecer informações sobre se esse subestado pode oferecer suporte a um sinal de ativação, um driver de barramento usa a estrutura DEVICE_CAPABILITIES ou, a partir do Windows 8, a interface do driver GUID_D3COLD_SUPPORT_INTERFACE.
No D3hot, apenas a corrente de gotejamento mínima está disponível. Drivers e hardware devem estar preparados para a ausência de energia. A especificação para um barramento que suporta D3hot normalmente fornece requisitos detalhados para fontes de energia que podem ser usadas nesse estado. Para retornar o dispositivo ao estado de funcionamento, os drivers do dispositivo devem ser capazes de restaurar e reinicializar o dispositivo sem depender do BIOS para executar qualquer código na ROM de opção que possa estar disponível para o dispositivo.
Todas as classes de dispositivo definem o subestado D3hot.
Subestado D3cold
D3cold tem as seguintes características:
Consumo de energia
A energia foi totalmente removida do dispositivo e, possivelmente, de todo o sistema. O dispositivo pode ser capaz de extrair corrente de fontes de banda lateral, dependendo de sua construção.
Contexto do dispositivo
O driver de dispositivo é o único responsável por restaurar o contexto do dispositivo. O driver deve preservar e, em seguida, restaurar o contexto do dispositivo ou deve reinicializar o dispositivo após a transição para o estado D0.
Comportamento do driver de dispositivo
O driver de dispositivo é o único responsável por restaurar o contexto do dispositivo, normalmente a partir da configuração de trabalho mais recente.
Tempo de restauração
O tempo total de restauração é o mais alto de qualquer um dos estados de energia do dispositivo.
Capacidade de despertar
No subestado D3cold, um dispositivo pode ser capaz de disparar um sinal de despertar para despertar um computador em suspensão. Esse recurso é relatado na estrutura DEVICE_CAPABILITIES e, a partir do Windows 8, pela rotina GetIdleWakeInfo na interface do driver GUID_D3COLD_SUPPORT_INTERFACE. Depois que o sinal ativa o computador, o driver de dispositivo inicia a transição do dispositivo de D3cold para D0. Para obter mais informações, consulte os comentários a seguir.
A partir do Windows 8, um dispositivo no subestado D3cold pode ser capaz de disparar um sinal de ativação para um computador que esteja no estado de energia do sistema S0. Esse recurso é relatado pela rotina GetIdleWakeInfo . A estrutura DEVICE_CAPABILITIES não contém informações sobre esse recurso. Depois que o sinal de despertar chega, o driver do dispositivo inicia a transição do dispositivo de D3cold para D0. Nesse caso, o computador fica acordado quando o sinal chega, e apenas o dispositivo precisa despertar.
Em muitas plataformas de hardware existentes, um dispositivo que está em um estado Dx de baixo consumo de energia pode disparar um sinal de despertar para despertar um computador em repouso. No entanto, o mesmo dispositivo pode não ser capaz de disparar um sinal de ativação se o computador estiver sendo executado no estado S0. Assim, o driver para este dispositivo não deve iniciar a transição do dispositivo de D0 para um estado Dx de baixo consumo de energia quando o computador está no estado S0. Caso contrário, depois que o dispositivo sair de D0, ele ficará indisponível até que o computador saia do estado S0. Este dispositivo deve deixar o estado D0 somente quando o computador está se preparando para sair do estado S0.
Se um dispositivo que está em um estado Dx de baixo consumo de energia pode disparar um sinal de ativação para um computador que está sendo executado no estado S0, o dispositivo não é necessário para permanecer em D0 quando o computador está em S0. Se o computador estiver em S0 e o dispositivo estiver em D0, mas estiver ocioso, o driver poderá armar o dispositivo para disparar um sinal de ativação e, em seguida, iniciar a transição do dispositivo de D0 para esse estado Dx de baixo consumo de energia.
Algumas classes de dispositivo definem o subestado D3cold.
Para obter mais informações, consulte Suporte a D3cold em um driver.