ACPI 네임스페이스 계층 구조
ACPI 네임스페이스 계층 구조는 프로세서의 시스템 버스("_SB")부터 플랫폼의 하드웨어 토폴로지를 정확하게 모델링해야 합니다. 일반적으로 버스 또는 컨트롤러에 연결하는 디바이스는 네임스페이스에서 해당 버스 또는 컨트롤러 디바이스의 자식으로 표시됩니다.
다음 규칙은 SoC 기반 플랫폼에 특별히 적용됩니다.
메모리 매핑 기능 블록(프로세서 포함)은 _SB 노드 바로 아래에 표시됩니다.
간단한 SPB(주변 버스) 컨트롤러 및/또는 GPIO 컨트롤러의 일부 조합에 연결하는 주변 장치는 이러한 컨트롤러에 대한 연결을 연결 리소스로 설명합니다. 자세한 내용은 범용 I/O(GPIO) 및 SPB(Simple Peripheral Bus)를 참조하세요.
이러한 방식으로 연결된 주변 장치는 _SB 노드 바로 아래 또는 부모 SPB 또는 GPIO 컨트롤러 아래에 나타날 수 있습니다. 후자는 가능한 경우 관계를 검색하기 위해 리소스의 디코딩을 요구하는 대신 네임스페이스 자체에서 직접 디바이스 관계를 나타내기 때문에 선호됩니다.
하드웨어 열거형(예: SDIO 및 USB)을 지원하는 표준 버스를 통해 연결된 모든 기능 블록 또는 주변 장치는 네임스페이스에 전혀 표시할 필요가 없습니다.
그러나 특정 경우 이러한 디바이스를 네임스페이스의 부모 컨트롤러 아래에 포함해야 합니다. 예를 들어 시스템 디자인의 일부로 플랫폼별(비표준) 컨트롤(예: 전원 스위치, GPIO 또는 SPB 연결 등)이 디바이스와 연결되는 포함된 USB HSIC 또는 SDIO 디바이스에서 필요합니다. 이 경우 표준 부모 버스 드라이버는 디바이스를 열거하지만 Windows ACPI 드라이버(Acpi.sys)는 필요에 따라 버스 드라이버를 대신하여 비표준 컨트롤에 대한 제어 메서드를 호출하기 위해 디바이스 스택에서 필터로 로드됩니다.
하나의 함수 드라이버(예: 오디오 드라이버)를 사용하기 위한 모든 "프라이빗" 버스 또는 디바이스(예: I2S)는 네임스페이스에 전혀 표시할 필요가 없습니다. 그러나 이 경우 디바이스에서 사용하는 모든 시스템 리소스가 네임스페이스의 함수 디바이스 리소스 목록에 표시되어야 합니다. 자세한 내용은 디바이스 관리 네임스페이스 개체 항목의 디바이스 구성 개체 섹션을 참조하세요.
ACPI는 많은 표준 네임스페이스 개체와 메서드를 정의하지만 구현자는 필요에 따라 새 네임스페이스를 정의할 수 있습니다. ACPI 정의 개체 및 메서드는 다음과 같은 일반적인 운영 체제 함수에 사용됩니다.
플랫폼 설명 예를 들어 디바이스 식별 및 시스템 리소스 할당입니다.
일반 디바이스 제어 예를 들어 리소스를 구성하고 전원 리소스를 제어합니다.
클래스별 기능 컨트롤 예를 들어 흐리게 표시하거나 배터리 상태를 보고합니다.