최신 대기를 위한 하드웨어 준비
최신 대기 모드로 전환할 때 하드웨어 구성 요소는 저전력 작업으로 전환할 수 있도록 준비해야 합니다. 소프트웨어 구성 요소 및 앱이 저전력 작동을 위해 준비되면 소프트웨어 디바이스 드라이버를 포함한 하드웨어 구성 요소도 저전력 작업에 대해 유사하게 준비되어야 합니다.
이 문서의 나머지 부분에서는 하드웨어 플랫폼이 대기 상태로 전환된 후 저전력 모드로 작동하도록 칩(SoC)의 시스템 외부 및 내부 디바이스를 준비하는 방법을 설명합니다.
하드웨어를 저전력 모드로 전환
SoC 외부 및 SoC 내의 모든 장치는 절전 모드에서 배터리 수명을 연장하기 위해 저전력 모드로 전환해야 합니다. 하드웨어 플랫폼이 절전 모드로 전환되면 플랫폼의 디바이스는 SoC 외부의 디바이스로 시작하는 순서대로 프로세스에서 저전력 모드로 전환됩니다.
먼저 SoC 또는 코어 실리콘 외부의 모든 디바이스는 저전력 모드로 전환해야 합니다. 전원 모드는 시계 제어 유휴 상태일 수 있습니다(예: I²C 연결 터치 컨트롤러를 절전 모드에 배치). 또는 전원 모드는 D3cold라는 전원 제어 0와트 상태일 수 있습니다. USB 연결 웹 카메라는 최신 대기 중에 D3cold로 전환되는 경우가 많습니다. 자세한 내용은 USB 디바이스에 대한 D3cold 지원을 참조하세요.
각 디바이스 클래스 및 연결 버스에는 디바이스를 최하위 전원 모드로 전환하기 위한 고유한 용어와 요구 사항이 있습니다. 그러나 시스템 디자이너는 최신 대기 중에 플랫폼의 각 디바이스에 대해 저전력 작동 모드를 계획하는 것이 중요합니다. 시스템의 배터리 수명과 SoC 자체를 저전력 모드로 배치하는 기능은 SoC 자체 외부의 각 디바이스에 대한 올바른 전원 관리에 따라 달라집니다.
다음으로, 네트워크 및 라디오 디바이스는 절전 모드로 전환됩니다. 절전 모드 중에 이러한 디바이스는 연결을 유지하기 위해 여전히 전원을 적용하고 필요한 경우 SoC를 절전 모드 해제해야 하는 경우가 많습니다. 통신 및 라디오 디바이스는 일반적으로 D2/D3 저전력 상태로 전환되지만 각 상태에 대한 항목은 디바이스 클래스별 및 버스별 항목입니다.
통신 디바이스를 포함하여 SoC 외부의 모든 디바이스가 전원이 꺼지면 SoC의 호스트 컨트롤러가 꺼집니다. 거의 모든 SoC에는 USB, I²C, GPIO, SDIO 및 UART 호스트 컨트롤러가 있습니다. SoC가 저전력 모드로 전환하려면 SoC에서 이러한 각 구성 요소를 해제해야 합니다.
다음 다이어그램과 같이 절전 모드 중 저전력 하드웨어를 준비하는 프로세스를 거꾸로 피라미드로 시각화할 수 있습니다. 가장 낮은 전력은 전체 SoC 칩의 전원이 다운될 때 달성되지만 피라미드에서 위의 각 장치 집합이 전원이 공급된 후에만 발생할 수 있습니다.
SoC 외부에서 디바이스 전원 공급
SoC 칩 외부의 각 디바이스는 다음 두 가지 주요 목표에 대해 저전력 모드로 전환해야 합니다.
- 디바이스의 전원 소비를 줄입니다.
- 디바이스가 연결된 On-SoC 호스트 컨트롤러가 전원을 끌 수 있도록 하여 SoC 자체가 전원을 끄도록 허용합니다.
SoC 외부의 각 디바이스 전원을 낮추는 방법은 디바이스 클래스 및 연결된 버스에 따라 다릅니다.
SoC 외부의 일부 디바이스는 D3cold라는 전력 소비가 없는 0와트 상태에 배치됩니다. D3cold의 일반적인 디바이스에는 카메라 및 센서가 포함됩니다. 드라이버는 디바이스의 레지스터 상태를 저장한 다음 디바이스를 D3 전원 상태로 전환해야 합니다. 전원은 GPIO 라인을 토글하거나 전원 관리 IC(PMIC)에서 전원 레일을 해제하여 ACPI 펌웨어에 의해 제거됩니다.
SoC 외부의 일부 디바이스는 레지스터 상태가 유지되는 저전력 유휴 모드에 배치되거나 디바이스가 단순히 클록 제어될 수 있습니다. 예를 들어 많은 터치 컨트롤러는 1밀리와트 미만의 전력을 소비하는 클록 제어 상태를 제공합니다. 클록 제어 상태를 사용하는 일반적인 이점은 장치를 전환 가능한 파워 레일에 연결하지 않아도 됨으로써 더 빠른 전원 켜기 시간과 저렴한 비용입니다.
일반적으로 SoC 외부의 모든 디바이스는 1밀리와트 미만의 전력을 사용하는 저전력 모드로 전환할 수 있어야 합니다. 내부 클록 제어 상태로 이 전원 수준을 달성할 수 없는 디바이스는 D3cold를 통해 전원 게이팅을 구현해야 합니다.
네트워크 및 라디오 디바이스는 1밀리와트 지침에서 주목할 만한 예외입니다. 네트워크 및 라디오 디바이스는 네트워크에 대한 연결을 유지하거나 무선 디바이스를 수신 대기하는 데 더 많은 전원이 필요할 수 있습니다. 일부 시스템 디자이너는 이러한 전원 상태 전환을 RTD3(런타임 D3)이라고도 합니다.
PCIe 디바이스에 대한 직접 전원 관리
SoC 외부의 PCIe 카드는 저전력 모드로 전환할 수 있도록 Device-S4라는 직접 전원 관리 메커니즘을 사용하도록 설정해야 합니다. Device-S4가 없으면 사용자가 데스크톱 최신 대기 시스템에서 사용자가 액세스할 수 있는 슬롯이 있는 PCIe 루트 포트에 디바이스를 연결하고 디바이스용 드라이버가 RTD3(런타임 D3)을 지원하지 않는 경우 PCIe 디바이스는 시스템이 DRIPS에 들어가지 못하게 할 수 있습니다. 이 문제를 방지하려면 OEM이 PCIe 디바이스의 루트 포트를 Device-S4로 옵트인해야 합니다. 지정된 PCIe 디바이스에 대해 Device-S4를 사용하려면 다음 요구 사항을 충족해야 합니다.
- 디바이스의 부모 PCIe 루트 포트는 DRIPS에 대한 제약 조건으로 지정되어야 합니다.
- 부모 PCIe 루트 포트는 루트 포트의 D0->D3 전환 시 루트 포트의 모든 자식 다운스트림에 기본 디바이스 재설정을 적용하고 D3->D0 전환 시 해당 자식에 기본 디바이스 재설정을 적용해야 합니다. PCIe 기본 재설정에 대한 자세한 내용은 PCI Express 기본 사양의 섹션 6.6.1을 참조하세요. 기본 재설정의 적용은 추가 ACPI 메커니즘을 통해 제공할 수 있습니다. 자세한 내용은 PCI 전원 관리에 대한 이 가이드를 참조하세요. 플랫폼이 이러한 기본 재설정 요구 사항을 준수함을 나타내기 위해 펌웨어는 GUID {FDF06FAD-F744-4451-BB64-ECD792215B10}을 지원하는 _DSD를 정의해야 합니다. 이 항목이 없으면 해당 PCIe 루트 포트 아래의 디바이스에 대해 Directed DRIPS가 트리거되지 않습니다. 자세한 내용은 PCIe 루트 포트에 대한 ACPI 디바이스 특정 데이터(_DSD)를 참조하세요.
- 전원 리소스는 지정된 PCIe 루트 포트에 고유해야 합니다. 즉, 다른 루트 포트와 공유되지 않아야 합니다.
CSM(호환성 지원 모듈)이 필요한 PCIe 카드는 최신 대기 시스템에서 작동하지 않습니다. CSM은 UEFI 보안 부팅 요구 사항으로 인해 최신 대기 시스템의 BIOS에서 지원되지 않습니다. 자세한 내용은 Windows 하드웨어 호환성 프로그램 사양을 참조하세요.
특정 디바이스 클래스의 전원 관리에 대한 자세한 내용을 알아보기 위해, 시스템 디자이너는 최신 대기를 위한 디바이스별 전원 관리와 Microsoft Collaborate에 대한 디바이스별 설명서를 검토하는 것이 좋습니다.
네트워킹 디바이스 전원 끄기
절전 모드 중에 저전력 작동을 위해 하드웨어를 준비하는 또 다른 핵심 부분은 네트워킹 및 라디오 디바이스 전원을 끄는 것입니다. 네트워킹 및 라디오 디바이스는 흥미로운 이벤트를 수신 대기하고 SoC를 깨우기 위해, 연결된 전원을 계속 켜진 상태로 유지해야 하기 때문에 SoC 외부의 다른 디바이스와 다릅니다. 예를 들어 Wi-Fi 라디오는 WoL 패턴과 일치하는 패킷을 수신 대기하고 일치하는 패킷이 감지되면 SoC를 해제할 수 있어야 합니다.
Windows는 SoC를 절전 모드에서 해제해야 하는 경우 절전 모드에서 네트워킹 디바이스를 D2/D3 상태로 전환합니다. Windows 네트워크 스택은 디바이스를 저전력 D2/D3 상태로 배치하기 전에 WoL 패턴 및 프로토콜 오프로드를 구성합니다. Wi-Fi, MBB(모바일 광대역) 및 유선 이더넷을 포함한 모든 네트워킹 디바이스는 절전 모드 중에 D2/D3 상태를 입력할 수 있어야 합니다. 네트워킹 디바이스가 시스템을 절전 모드 해제할 필요가 없는 경우 Windows는 디바이스를 D3 상태로 전환합니다. 사용자가 비행기 모드를 사용하도록 설정했거나 특정 네트워킹 디바이스를 사용하지 않도록 설정한 경우 네트워킹 디바이스를 D3 상태로 배치할 수 있습니다.
각 디바이스에는 가장 낮은 전원 모드에서 SoC를 절전 모드로 해제하는 다른 물리적 방법이 있습니다. SDIO 또는 UART의 네트워킹 디바이스는 SoC를 절전 모드 해제하도록 GPIO 라인에 신호를 보낼 것으로 예상됩니다. USB 또는 HSIC를 통해 연결된 네트워킹 디바이스는 대역 내 USB 이력서 신호를 사용하여 SoC를 깨워야 합니다. PCI 또는 PCIe 버스의 네트워킹 디바이스는 대역 내 PME 신호를 사용하여 SoC를 깨워야 합니다.
또한 사용자가 이 디바이스에 대해 라디오를 켠 경우 Bluetooth 또는 NFC(근거리 통신) 디바이스와 같은 무선 디바이스가 D2 상태로 전환될 것으로 예상됩니다. D2 상태에서 Bluetooth 라디오는 쌍을 이루는 마우스와 키보드의 입력 이벤트를 수신 대기합니다. 입력 이벤트가 감지되면 Bluetooth 라디오는 SoC에 연결된 GPIO 선을 전환하여 SoC가 저전력 모드에서 절전 모드에서 해제되도록 합니다.
각 네트워킹 또는 라디오 디바이스에는 최신 대기를 위해 전원을 낮추기 위한 자체 구현이 있습니다. 시스템 디자이너는 Microsoft Collaborate 웹 사이트에서 디바이스 클래스 관련 문서를 읽는 것이 좋습니다.
On-SoC 호스트 컨트롤러 전원을 켭니다.
네트워크 및 라디오 디바이스를 비롯한 SoC 외부의 모든 디바이스가 전원이 켜지면 디바이스가 연결된 호스트 컨트롤러의 전원이 켜져야 합니다. 일반적인 호스트 컨트롤러에는 USB, PCI, SDIO, GPIO 및 I²C가 포함됩니다.
각 호스트 컨트롤러에 대한 드라이버는 호스트 컨트롤러에 연결된 모든 디바이스의 전원이 다운된 후에만 하드웨어의 전원을 공급할 수 있습니다. 일반적인 예는 USB 호스트 컨트롤러입니다. USB 호스트 컨트롤러는 연결된 모든 USB 디바이스가 선택적 일시 중단 상태로 진입한 후에만 전원을 끊을 수 있습니다. USB 호스트 컨트롤러에 USB 마우스와 키보드가 연결된 경우 호스트 컨트롤러는 마우스와 키보드 전원이 모두 끄면 전원이 끄기만 하면 전원이 끄기만 하면 호스트 컨트롤러가 전원을 끄게 될 수 있습니다. 마우스 또는 키보드의 전원이 켜진 상태로 유지되면 USB 호스트 컨트롤러도 전원이 켜진 상태로 유지됩니다.
SoC의 모든 호스트 컨트롤러는 SoC 자체가 전원을 켭니다. 모든 디바이스가 디바이스 전원 관리를 수행하는 것이 중요한 이유입니다. SoC 자체는 각 호스트 컨트롤러의 전원이 다운된 경우에만 전원을 공급할 수 있습니다. 호스트 컨트롤러는 연결된 모든 디바이스의 전원이 켜진 후에만 전원을 공급할 수 있습니다.
CPU 및 GPU 전원 공급
전원 관리 측면에서 SoC 칩의 CPU 및 GPU는 다른 디바이스와 다릅니다. CPU 및 GPU는 SoC 자체의 전원을 풉니다. 대상 소프트웨어 활동이 없을 때마다 전원을 풉니다.
시스템의 대부분의 소프트웨어 활동은 최신 대기를 위한 소프트웨어 준비에 자세히 설명된 준비 단계를 통해 중지됩니다. Microsoft Store 앱은 PLM 단계의 일부로 일시 중지됩니다. 데스크톱 애플리케이션은 DAM 단계 완료의 일부로 일시 중지됩니다. 플랫폼이 복원력 단계에 진입한 후에 남아 있는 유일한 CPU 활동은 Windows 자체의 유휴 작업입니다. 마찬가지로 모든 앱이 일시 중지되고 화면이 꺼져 있으므로 GPU 작업이 거의 없습니다.
Windows는 화면이 켜져 있고 사용자가 PC로 작업하는 경우에도 시스템에서 CPU의 전원 상태를 지속적으로 관리합니다. 동일한 CPU 전원 상태 관리는 절전 모드에서 CPU를 저전력 모드로 전환합니다. 모든 CPU가 저전력 모드에 있고 SoC의 모든 호스트 컨트롤러의 전원이 다운된 경우 SoC 자체의 전원을 풉니다.
SoC 전원 켜기
SoC의 모든 개별 호스트 컨트롤러, CPU 및 GPU의 전원이 꺼지면 Windows는 전체 SoC 자체의 전원을 꺼도 안전한지 확인합니다. SoC 공급업체는 SoC가 저전력 모드로 전환할 준비가 되도록 SoC의 모든 상태가 저장되었을 때 Windows에 알려주는 PEP(전원 엔진 플러그 인)를 제공합니다. Intel 기반 SoC의 경우 PEP에 받은 편지함이 제공됩니다.
각 SoC 공급업체에는 SoC 차원의 저전력 상태의 다른 구현이 있습니다. 이러한 상태는 일반적으로 메모리 콘텐츠가 자체 새로 고침에서 유지되고 프로그래밍 가능한 타이머와 적은 수의 GPIO 핀으로 시스템을 깨울 수 있는 클록 게이트 또는 전원 제어 상태입니다. Windows는 가장 낮은 SoC 전원 상태를 DRIPS(가장 깊은 런타임 유휴 플랫폼 상태)라고 합니다.
DRIPS 상태에는 항상 다음과 같은 특성이 있습니다.
- DRIPS는 자체 새로 고침 모드에서 메모리가 유지되는 SoC의 가장 낮은 전력 소비 상태입니다.
- DRIPS를 사용하면 SoC가 네트워킹, 라디오 및 입력 디바이스에서 이벤트를 깨울 수 있습니다.
- DRIPS 상태 중에는 CPU 코드를 실행할 수 없습니다.
- SoC가 DRIPS 상태인 경우 플랫폼은 절전 모드 중에 가능한 최소한의 전력을 소비합니다(네트워킹 및 라디오 디바이스로 인한 전력 소비 분산 제외).