SPI 전원 관리를 통해 HID
이 문서에서는 SPI를 통해 호스트 및 디바이스 전원 관리에 대한 세부 정보를 식별합니다.
디바이스 시작 전원 최적화
디바이스는 호스트의 전원 설정이 없는 경우 전원 사용률을 최적화해야 합니다. 이렇게 하면 디바이스가 호스트 개입 없이 가장 낮은 전원 상태로 진입하는 동시에 디바이스가 적시에 호스트와 계속 통신할 수 있습니다.
디바이스 시작 전원 최적화를 올바르게 준수하려면 다음을 수행합니다.
- 디바이스는 저전력 모드에서 상태를 보존해야 합니다.
- 모든 디바이스 전원 최적화는 호스트 및 최종 사용자에게 투명해야 합니다.
- 디바이스는 호스트의 모든 요청에 적시에 응답해야 합니다. 디바이스는 사용자 또는 시스템 상호 작용에서 적시에 더 높은 전원 모드로 전환할 책임이 있습니다.
- 디바이스는 무손실 방식으로 모든 입력 보고서 변경 내용에 대해 호스트에 알려야 합니다. 디바이스에서 이벤트를 손실하거나 삭제해서는 안 됩니다.
- 호스트 시작 전원 최적화에 설명된 전원 상태는 디바이스 시작 전원 최적화에 적용되지 않습니다.
디바이스 시작 전원 최적화가 일반적으로 배포되는 시나리오는 다음과 같습니다.
- 디바이스가 짧은 시간 동안 유휴 상태입니다. 디바이스는 유휴 상태임을 확인하고 동작이 다시 시작될 때까지 내부 감지 빈도를 줄이는 가장 낮은 전원 상태로 전환합니다. 동작이 시작되면 즉시 데이터가 호스트로 전송됩니다.
- 디바이스는 감지 빈도를 줄입니다. 디바이스는 데이터를 검사하는 빈도를 줄입니다.
호스트 시작 전원 최적화
호스트는 전체 시스템 및 디바이스의 성능을 최적화해야 합니다. 이 전원 최적화 방법은 호스트가 디바이스에 전원 최적화 알림을 제공하려는 경우에 사용됩니다.
다음 전원 상태는 호스트 시작 전원 최적화에 대해 정의되며 공급업체별 디바이스 시작 전원 최적화 상태와 혼동되지 않습니다.
- 켜기
- SLEEP(디바이스가 시스템을 절전 모드에서 해제할 수 있음)
- OFF(디바이스가 시스템을 절전 모드에서 해제할 수 없고 디바이스에서 전원이 제거될 수 있음)
ON 상태에서 디바이스는 정상적으로 작동하며 디바이스 시작 전원 최적화를 사용하여 전력 소비를 줄일 수 있습니다. 디바이스는 호스트가 재설정을 시작한 후 HIDSPI 통신이 시작될 때 ON 상태가 됩니다.
호스트는 정의된 Set Power
명령을 실행하여 디바이스가 ON 상태에서 저전력 상태로 들어가도록 지시합니다. 호스트는 디바이스의 운영 체제 전원 정책에 따라 이 작업을 수행하도록 선택합니다.
호스트는 플랫폼 전원 정책으로 디바이스가 자체 또는 시스템을 절전 모드 해제할 수 있는 경우 디바이스를 SLEEP 상태로 전환합니다. SLEEP에 대한 지원은 선택 사항이며 ACPI를 통해 또는 플랫폼별 컨트롤러의 버스에 적합한 방식으로 호스트 운영 체제에 표시됩니다. 명령을 받으면 SET POWER SLEEP
디바이스는 즉시 저전력 상태로 전환되어야 하며, 이 상태는 사용자 상호 작용을 기다리며 절전 모드 해제를 시작하는 것 외에는 인터럽트 어설션해서는 안 됩니다. 디바이스가 입력을 감지하면 인터럽트를 어설션하고 호스트가 명령을 보낼 SET POWER ON
때까지 기다립니다. 디바이스가 명령에 응답 SET POWER ON
하고 호스트에 입력 보내기를 다시 시작합니다.
호스트는 디바이스와의 통신이 더 이상 필요하지 않은 경우 디바이스를 OFF 상태로 전환합니다. ACPI(또는 플랫폼별 컨트롤러)는 콜드 OFF 상태를 제공하도록 구성해야 합니다. 명령을 받으면 SET POWER OFF
디바이스가 즉시 최하위 전원 상태로 들어가고 호스트와의 통신을 중지합니다. 디바이스를 ON 상태로 가져오기 위해 호스트는 초기화 프로세스가 시작되는 초기화를 시작합니다.
ACPI 열거형 디바이스의 경우 다음 전원 상태를 구현해야 합니다.
- D0 – 정상 작업 상태
- D2 – 지원되는 경우 SLEEP 상태에 사용됩니다. 디바이스는 이 전원 상태에서 절전 모드 해제 지원을 나타내야 합니다.
- D3 – OFF 상태에 사용해야 합니다. 디바이스가 이 전원 상태에서 절전 모드 해제 지원을 나타내면 안 됩니다.
플랫폼별 컨트롤러의 경우 컨트롤러 하드웨어의 전원 요구 사항을 고려하기 위해 대체 D 상태 매핑을 사용할 수 있습니다.
플랫폼 수준 D 상태 매핑이 표시되지 않거나 디바이스에 전달되지 않습니다.
호스트 및 디바이스 전원 상태 책임
아래 표에서는 디바이스와 호스트가 따라야 하는 속성을 식별합니다.
전원 상태 | 호스트 책임 | 디바이스 책임 |
---|---|---|
ON | - 필요에 따라 디바이스에 대한 인터럽트 및 IO 문제를 해결합니다. | - 다시 설정 후 ON 전원 상태인 경우 - 처리하지만 호스트의 또는 SET POWER OFF 명령에 대한 응답을 SET POWER SLEEP 제공하지 않습니다. |
잠을 | - 디바이스에 SLEEP 상태를 입력하도록 지시합니다. - 디바이스가 인터럽트 라인을 통해 경고하는 경우 디바이스를 ON 상태로 설정합니다. - 호스트가 디바이스 SET POWER 와 통신해야 하는 경우 다른 명령 앞에 명령을 실행합니다(ON). |
- 호스트가 전원 최적화를 시작하기 전에 어설션된 경우 인터럽트 라인을 어설션 해제합니다. - 호스트에 인터럽트를 보내 서비스를 요청합니다. 그런 다음, 호스트가 ON 상태를 입력하는 명령을 보낼 SET POWER 때까지 디바이스가 인터럽트를 다시 어설션하지 않아야 합니다. 이때 디바이스는 보류 중인 입력 보고서를 호스트에 알리기 위해 인터럽트를 다시 어설션해야 합니다. - 전원 그리기를 절대 최소값으로 줄여 상태를 유지하고 필요에 따라 원격 절전 모드 해제를 지원합니다. - 호스트의 SET POWER ON 명령에 응답합니다. |
OFF | - 디바이스에 OFF 상태를 입력하도록 지시합니다. - 디바이스를 OFF 상태로 전환하도록 플랫폼을 지시합니다. - 디바이스 자체를 해제할 수 없을 때 디바이스를 이 상태로 전환합니다. |
- 호스트가 전원 최적화를 시작하기 전에 어설션된 경우 인터럽트 라인을 어설션 해제합니다. - 디바이스가 절전 모드 해제를 시작하거나 이 상태에서 인터럽트 기능을 제공할 수 없습니다. - 전원 그리기를 절대 최소값으로 줄입니다. 상태를 유지할 필요는 없습니다. - 끄기 처리 -> 켜기 전환은 일반 전원이 켜짐과 같습니다. |