Compartilhar via


Gerenciamento de energia para dispositivos de hardware de armazenamento

Introdução

Este documento destina-se como um guia para OEMs e fabricantes de dispositivos que usam os drivers SATA e NVMe da Microsoft em Atualização de maio de 2019 para o Windows 10 ou versões mais recentes do sistema operacional. A orientação geral da Microsoft é fornecer soluções internas que "apenas funcionam" em termos de balanceamento de desempenho, capacidade de resposta e eficiência de energia. Como é o caso do desempenho geral do sistema, o hardware de dispositivo mal comportado pode comprometer a eficiência geral e a duração da bateria. Em geral, o sistema tenta equilibrar a eficiência de energia com o desempenho.

O diagrama a seguir ilustra os estados de energia do dispositivo definidos por ACPI D0 (funcionando) para D3 (desativado). Observe que, à medida que o dispositivo faz a transição para estados de energia mais profundos, o consumo de energia é reduzido, mas a latência aumenta. Observe também que o Windows dá suporte a estados funcionais variados (F-States), que podem ser usados para controlar a funcionalidade e a potência de níveis refinados dentro do estado D0. Isso pode ser útil para o gerenciamento de energia em runtime em que o sistema precisa permanecer altamente responsivo, mas ainda precisa economizar energia.

Estados de energia

Gerenciamento de energia do estado de suspensão do ACPI-Defined

Quando o sistema não está em uso, o Windows pode colocar o sistema de forma oportunista em um estado de suspensão definido por ACPI para conservar energia. Da mesma forma, o Windows pode escolher estados de sono profundo ao longo do tempo para conservar ainda mais energia. Por exemplo, o sistema pode fazer a transição para S3 por um período e, eventualmente, fazer a transição para Hibernar S4. Quando o sistema faz a transição para um estado de suspensão, a regra geral é colocar o dispositivo no estado D mais profundo possível, a menos que o dispositivo seja capaz de ativar e esteja armado para ativação. Nessas condições, um estado D mais raso pode ser apropriado. Da mesma forma, quando o sistema é ativado, o dispositivo fará a transição de volta para D0.

Gerenciamento de Energia de Runtime

Para obter a máxima eficiência de energia, alguns componentes implementarão uma lógica ociosa muito refinada para determinar quando os dispositivos podem ser desligados, mesmo quando o sistema está em uso ativo. Por exemplo, um dispositivo de armazenamento high-end pode desabilitar determinados blocos funcionais durante o runtime se o driver considera que eles não foram usados por algum período de tempo. Isso só será possível se esses blocos funcionais puderem ser colocados online novamente e ficarem funcionais rapidamente o suficiente, de modo que o usuário não incorre em latências perceptíveis.

Gerenciamento de energia em espera moderno

Quando o sistema não está em uso, o Windows pode desativar oportunistamente a energia de alguns dispositivos para conservar energia. Em Modo de Espera Moderno, o sistema permanece em S0. Mesmo no S0, todos os dispositivos periféricos podem eventualmente ser desligados devido a tempos limite ociosos. Esse estado é definido como "S0 Ocioso de Baixa Energia". Depois que todos os dispositivos estiverem em um estado de baixa potência, ainda mais da infraestrutura do sistema (por exemplo, ônibus, temporizadores, ...) poderão ser desligados. A regra geral é colocar o dispositivo no estado D mais profundo possível quando ele estiver ocioso, mesmo quando o estado do sistema for S0. Dependendo dos detalhes de implementação do design complexo e da plataforma do processador, os dispositivos periféricos podem ser necessários para ir para um F-state, D3 Hot ou D3 Cold (a energia é cortada). Para atenuar a necessidade de um driver de função gerenciar esses detalhes de implementação, os drivers devem ir para o estado mais profundo apropriado do dispositivo para maximizar a duração da bateria.

Suporte a D3

Quando o sistema não está em uso, o Windows pode desativar oportunistamente a energia de alguns dispositivos para conservar energia. Em Modo de Espera Moderno, o sistema permanece em S0. Mesmo no S0, todos os dispositivos periféricos podem eventualmente ser desligados devido a tempos limite ociosos. Esse estado é definido como "S0 Ocioso de Baixa Energia". Depois que todos os dispositivos estiverem em um estado de baixa potência, ainda mais da infraestrutura do sistema (por exemplo, ônibus, temporizadores, ...) poderão ser desligados. A regra geral é colocar o dispositivo no estado D mais profundo possível quando ele estiver ocioso, mesmo quando o estado do sistema for S0. Dependendo dos detalhes de implementação do design complexo e da plataforma do processador, os dispositivos periféricos podem ser necessários para ir para um F-state, D3 Hot ou D3 Cold (a energia é cortada). Para atenuar a necessidade de um driver de função gerenciar esses detalhes de implementação, os drivers devem ir para o estado mais profundo apropriado do dispositivo para maximizar a duração da bateria.

ASL Copy  
Name (_DSD, Package () { 
     
          ToUUID("5025030F-842F-4AB4-A561-99A5189762D0"), 
     
            Package () { 
 
                Package (2) {"StorageD3Enable", 1}, // 1 - Enable; 0 - Disable 
 
            } 
        } 
 ) 

A ACPI _DSD acima é a maneira preferencial de aceitar ou não o suporte D3 para dispositivos de armazenamento. No entanto, também há uma chave do Registro global que pode ser usada para modificar o suporte a D3, se necessário.

  • Nome: StorageD3InModernStandby
  • Tipo: REG_DWORD
  • Caminho: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Storage\
  • Valor:
    • 0 – Desabilitar o suporte a D3
    • 1 – Habilitar o suporte a D3

Se a chave do Registro não estiver configurada, o Storport marcar a configuração do _DSD para determinar se deseja habilitar o D3. Se o _DSD não for implementado, o Storport marcar se a plataforma está na lista de permitidos para suporte a D3.

Relação pai/filho para gerenciamento de energia

Durante a ativação, a relação pai/filho é sempre imposta para dispositivos de armazenamento. Durante a desligar, o único caso em que a relação de energia pai/filho não é imposta é se o controlador dá suporte apenas a D3Hot e o dispositivo relata F1 para PoFx (ou seja, DEVSLP tem suporte ou se é um SSD em um sistema de espera moderno), então o controlador tem permissão para inserir D3 enquanto o dispositivo está em F1.

Nesta seção

Tópico Descrição

NVMe

Este tópico aborda as diretrizes de gerenciamento de energia para dispositivos de armazenamento NVMe.

SATA/AHCI

Este tópico aborda as diretrizes de gerenciamento de energia para dispositivos de armazenamento SATA/AHCI.