디바이스 전원 관리
ACPI 6.3 사양은 디바이스에 대한 디바이스 전원 정보를 지정하는 네임스페이스 개체 집합을 정의합니다. 예를 들어 하나의 개체 집합은 지원되는 각 디바이스 전원 상태에서 디바이스에 필요한 전원 리소스를 지정할 수 있습니다. 또 다른 개체 유형은 하드웨어 이벤트에 대한 응답으로 디바이스가 저전력 상태에서 절전 모드를 해제하는 기능을 설명할 수 있습니다.
Windows의 디바이스 전원 관리
시스템이 실행되는 동안(즉, 시스템이 ACPI 정의 작업 상태인 S0) 개별 디바이스는 작업에 따라 디바이스 전원 상태 간에 전환하여 전원을 절약할 수 있습니다. 기존 PC 시스템에서는 ACPI 정의 절전 상태(S1~S4)도 전원을 절약하는 데 사용되지만 이러한 연결이 끊긴 대기 시간이 긴 절전 상태는 Windows SoC 플랫폼에서 사용되지 않습니다. 따라서 배터리 사용 시간은 플랫폼이 런타임 디바이스 전원 관리를 구현하는 방법에 따라 크게 달라집니다.
SoC에 통합된 디바이스는 PoFx(Windows Power Framework)를 통해 전원을 관리할 수 있습니다. 이러한 프레임워크 통합 디바이스는 SoC의 전원 및 클록 컨트롤의 세부 사항을 알고 있는 SoC 관련 전원 엔진 플러그 인(microPEP)을 통해 PoFx에서 전원을 관리합니다. PoFx에 대한 자세한 내용은 Power Management Framework 개요를 참조하세요.
SoC에 통합되지 않은 주변 장치의 경우 Windows는 ACPI 디바이스 전원 관리를 사용합니다. 이러한 ACPI 관리 디바이스의 경우 디바이스 드라이버 스택(일반적으로 함수 또는 클래스 드라이버)의 전원 정책 소유자는 디바이스 전원 상태 전환 결정을 내리고, windows ACPI 드라이버(Acpi.sys)는 ASL 제어 메서드를 호출하여 필요한 플랫폼별 전원 제어를 적용합니다.
일부 디바이스 스택은 ACPI 디바이스 전원 관리를 단독으로 사용하거나 on-SoC 디바이스 전원 관리를 위해 microPEP와 함께 사용할 수 있습니다.
ACPI의 디바이스 전원 관리에 설명된 대로 Windows는 ACPI 5.0 사양에 정의된 D3cold 전원 관리 기능을 지원합니다. 이 지원을 사용하면 디바이스, 플랫폼 및 드라이버가 런타임 유휴 기간 동안 디바이스 전원을 완전히 제거하도록 옵트인할 수 있습니다. 이 기능은 배터리 수명을 크게 향상시킬 수 있습니다. 그러나 D0으로 성공적으로 돌아가려면 영향을 받는 모든 구성 요소에서 전원 제거를 지원해야 합니다. 이러한 이유로 드라이버(버스 및 함수)와 플랫폼 자체는 이를 지원함을 나타내야 합니다. D3cold 드라이버 옵트인에 대한 자세한 내용은 드라이버에서 D3cold 지원을 참조하세요.
ACPI의 디바이스 전원 관리
네임스페이스 디바이스는 최대 4개의 디바이스 전원 상태, 번호가 매겨진 D0(전체 함수 또는 "켜기")에서 D3(함수 없음 또는 "꺼져")를 지원합니다. 각 상태는 전력 요구 사항이 다를 수 있으며, 번호가 높은 상태는 번호가 낮은 상태보다 전력 소비가 적습니다. 또한 D3(끄기) 상태에는 D3hot 및 D3cold의 두 하위 상태가 있습니다. D3hot 하위 상태를 사용하려면 디바이스가 버스별 소프트웨어 명령에 응답할 수 있도록 부모 버스에서 계속 액세스할 수 있어야 합니다. 이 요구 사항과 이를 충족하는 데 사용되는 전원은 D3cold에서 제거됩니다. 마지막으로 하드웨어 이벤트로 인해 저전력 상태에서 절전 모드를 해제하고 필요한 경우 플랫폼을 유휴 상태로 전환하도록 디바이스를 무장할 수 있습니다.
플랫폼은 플랫폼 전체 OSPM 기능 메서드를 사용하여 요청된 경우 "_PR3 지원" 기능(비트 2)의 OS 제어를 부여하여 D3cold에 대한 지원을 나타냅니다. 자세한 내용은 ACPI 5.0 사양의 섹션 6.2.10.2, "플랫폼 전체 OSPM 기능"을 참조하세요.
전원 관리 디바이스는 자식 개체를 사용하여 운영 체제에 대한 전원 기능을 설명합니다. 다음 섹션에서는 이러한 기능 및 개체에 대해 설명합니다.
전원 리소스 및 상태
디바이스는 해당 상태에 있기 위해 필요한 전원 리소스 집합을 나열하여 전원 상태에 대한 지원을 선언합니다. ACPI 전원 리소스는 디바이스를 구동하는 시계 신호와 전원을 공급하는 전압 레일을 나타냅니다. 이러한 리소스는 네임스페이스의 루트에서 선언됩니다. 각 전원 리소스에는 제어되는 _ON 및 _OFF 메서드와 상태를 보고하는 _STA 메서드가 있습니다. 자세한 내용은 ACPI 5.0 사양의 섹션 7.1, "전원 리소스 개체 선언"을 참조하세요.
Acpi.sys Windows ACPI 드라이버는 리소스를 공유하는 디바이스 간의 전원 종속성을 모니터링하고, 이러한 디바이스가 전원 상태 간에 전환되면 디바이스에 실제로 필요한 전원 리소스만 특정 시간에 켜지도록 합니다.
전원 리소스 요구 사항(_PRx)
지원되는 각 디바이스 전원 상태에 대해 x = 0, 1, 2 또는 3인 _PRx(Power Resource Requirements) 개체가 있습니다. 디바이스 드라이버가 새 전원 상태로 전환하기로 결정하면 Acpi.sys 새 상태에 필요한 전원 리소스가 켜져 있고 사용 중인 리소스가 더 이상 꺼지지 않도록 합니다.
지원되는 디바이스 상태 | 사용할 리소스 요구 사항 개체 | 요구 사항 개체에 포함할 리소스 |
---|---|---|
D0(필수) | _PR0 | 디바이스의 전체 기능에 필요한 모든 전원 및 클록. |
D1 | _PR1 | 이 상태의 클래스 정의 축소 기능에 필요한 모든 전원 또는 클록입니다. |
D2 | _PR2 | 이 상태의 클래스 정의 축소 기능에 필요한 모든 전원 또는 클록입니다. |
D3hot(필수) | _PR3 | 디바이스가 버스에 표시되고 버스별 명령에 응답하는 데 필요한 전원 또는 클록만 필요합니다. |
특정 플랫폼이 D3cold 기능을 지원하고 디바이스용 디바이스 드라이버가 D3cold에 옵트인하는 경우 디바이스의 _PR3 전원 리소스는 다른 디바이스에서 사용되지 않는 경우 D3Cold로 전환한 후 언젠가 꺼집니다.
D3cold를 지원하는 디바이스의 전원 리소스 요구 사항에 대한 자세한 내용은 D3cold에 대한 펌웨어 요구 사항을 참조하세요.
디바이스 전원 상태(_PSx)
지원되는 각 디바이스 전원 상태 Dx에 대해 x = 0, 1, 2 또는 3인 _PSx Power State 메서드가 있습니다. 이 메서드는 선택 사항이지만 있는 경우 상태의 전원 리소스가 꺼지고 상태의 전원 리소스가 켜진 후에 호출됩니다. _PSx 전원 주기에 필요한 플랫폼별 작업을 수행하기 위한 것입니다. _PSx 함수 드라이버에 할당된 디바이스 레지스터에 액세스하거나, 버스 드라이버에 할당된 버스 표준 레지스터에 액세스하거나, Acpi.sys 위해 예약된 작업인 전원 리소스를 켜거나 끄면 안 됩니다.
절전 모드 해제 기능
전원 관리 디바이스는 저전력 상태일 때 이벤트를 감지하고 플랫폼이 절전 모드를 해제하여 처리할 수 있습니다. 이 기능을 사용하려면 Windows에 플랫폼과 디바이스의 기능에 대한 정보가 필요합니다.
Sx 디바이스 절전 모드 해제 상태(_SxW)
지정된 플랫폼에서 절전 모드 해제 기능을 지원하는 디바이스 상태와 절전 모드 해제 이벤트에 응답할 수 있는 시스템 상태 간에 특정 매핑이 있습니다. ACPI는 운영 체제에 이 정보를 제공하는 _SxW 개체를 정의합니다. 지원되는 각 시스템 전원 상태인 Sx에 대한 SxW 개체가 있습니다. SoC 플랫폼은 항상 S0에 있으므로 여기서 관심 있는 유일한 개체는 _S0W. 이 개체는 디바이스의 절전 모드 해제 신호에 대한 응답으로 저전력 유휴 상태에서 절전 모드 해제하는 플랫폼의 기능을 지정합니다. 개체는 Windows에서 시스템 저전력 유휴 상태 중 디바이스의 대상 D 상태를 확인하는 데 사용됩니다. _S0W 대한 자세한 내용은 ACPI 5.0 사양의 섹션 7.2.20, "_S0W(S0 디바이스 절전 모드 해제 상태)" 섹션을 참조하세요.
대부분의 SoC 플랫폼의 경우 디바이스는 유휴 상태일 때 D3 상태로 적극적으로 전원을 관리하며, 디바이스가 이 상태에 있는 동안 시스템은 저전력 유휴 상태에서 절전 모드에서 해제할 수 있습니다. 이러한 시스템의 경우 _S0W 개체는 3(또는 D3cold도 지원하는 경우 4)을 반환합니다.
_S0W(4)는 디바이스가 절전 모드 해제를 지원하는지 여부에 관계없이 D3Cold에 대한 요구 사항입니다.
모든 D 상태는 절전 모드 해제 가능 상태로 지정할 수 있으며 일부 디바이스 클래스 또는 버스는 다른 값을 사용합니다. 예를 들어 SDIO 및 USB 연결 디바이스는 이 상태에 대해 상태 D2를 사용합니다.
디바이스 드라이버를 Windows 7에서 Windows 8 또는 Windows 8.1 쉽게 마이그레이션하려면 디바이스도 _S4W 제공해야 할 수 있습니다. 현재 이 요구 사항이 있는 유일한 디바이스 클래스는 네트워킹(Ndis.sys)입니다.
절전 모드 해제 가능 인터럽트(_CRS)
디바이스에 대한 리소스 설명은 인터럽트를 "절전 모드 해제 가능"(ExclusiveAndWake 또는 SharedAndWake)으로 표시하여 디바이스가 절전 모드 해제 이벤트를 감지하고 신호를 표시할 수 있음을 나타냅니다. Windows 및 디바이스 드라이버는 디바이스가 저전력 상태로 전환될 때 사용하도록 설정되도록 이러한 인터럽트의 특별한 처리를 제공합니다. 자세한 내용은 ACPI 5.0 사양의 섹션 6.4.3.6, "확장 인터럽트 설명자" 및 섹션 6.4.3.8.1 , "GPIO 연결 설명자"의 인터럽트 및 GpioInt 리소스 설명자에 대한 설명을 참조하세요.
절 해제 사용
사용자 시나리오 또는 시스템 정책에 따라 절전 모드 해제 가능 디바이스는 실제로 절전 모드 해제를 위해 무장하거나 사용하지 않을 수 있습니다. 따라서 절전 모드 해제 가능 인터럽트는 디바이스가 유휴 상태일 때 활성화되거나 활성화되지 않을 수 있습니다. Windows는 인터럽트 사용 외에도 다음 메커니즘을 사용하여 디바이스에서 절전 모드 해제를 사용하도록 설정합니다.
디바이스 절전 모드 해제(_DSW)
ACPI는 운영 체제가 ACPI 플랫폼 펌웨어에 다음 절전 모드 또는 저전력 유휴 기간에 대해 알리는 방법으로 _DSW 개체를 정의합니다. 이 개체는 선택 사항이며 플랫폼에 플랫폼별 절전 모드 해제 하드웨어를 미리 구성해야 하는 경우에만 사용됩니다. 디바이스의 대상 D 상태와 시스템의 대상 S 상태가 모두 제공됩니다. D 상태 및 S 상태 조합은 항상 디바이스의 _SxW 개체에서 제공하는 정보를 준수합니다.
절전 모드 해제용 전원 리소스(_PRW)
경우에 따라 절전 모드 해제를 위해 디바이스를 사용하도록 설정하려면 추가 전원 리소스를 설정해야 합니다. 이 경우 디바이스는 _PRW 개체를 제공하여 추가 전원 리소스를 나열할 수 있습니다. windows ACPI 드라이버(Acpi.sys)는 일반적으로 이러한 전원 리소스를 관리하여 디바이스에서 필요할 때(즉, 절전 모드 해제 사용 디바이스)가 켜져 있는지 확인하고, 그렇지 않으면 꺼져 있는지 확인합니다.
_PRW 기존(전체 ACPI 하드웨어) PC 플랫폼에 대한 절전 모드 해제 기능을 정의하는 데도 사용됩니다.