← Documents Documentation/firmware-guide/acpi/lpit.rst GitHub 원문 ↗

Linux 6.18.37 · Firmware

Low Power Idle Table (LPIT)

LPIT의 S0ix residency counter, FFH·memory-mapped 접근 방식과 cpuidle sysfs 속성을 설명하는 전문 번역입니다.

Source pathDocumentation/firmware-guide/acpi/lpit.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

lpit.rst:1-33

LPIT는 Intel 플랫폼의 Low Power Idle 상태와 residency counter 접근 방법을 ACPI로 기술한다. S0ix 플랫폼에서는 CPU `PKG C10` residency를 FFH로, PCH `SLP_S0` residency를 memory-mapped 인터페이스로 읽을 수 있다.

Linux는 지원되는 counter를 cpuidle sysfs에 microsecond 단위 속성으로 동적으로 노출한다. CPU 속성은 package의 `PKG C10` 체류 시간을, system 속성은 `SLP_S0#`가 asserted된 플랫폼 전체의 저전력 체류 시간을 나타낸다.

두 값을 비교할 때는 범위 차이가 핵심이다. CPU가 `PKG C10`에 들어가는 것만으로는 system residency가 증가하지 않으며, PCH의 모든 functional block도 저전력 상태여야 최저 system power state가 성립한다.

LPIT 확인 순서
cpuidle sysfs에 두 LPIT 속성이 존재하는지 확인CPU PKG C10 counter와 system SLP_S0 counter를 구분각 값이 microseconds 단위임을 확인CPU counter만 증가하면 PCH 저전력 진입 조건을 별도로 점검

LPIT 기반 residency를 해석할 때 확인할 순서이다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===========================
4 Low Power Idle Table (LPIT)
5 ===========================
6
7 To enumerate platform Low Power Idle states, Intel platforms are using
8 “Low Power Idle Table” (LPIT). More details about this table can be
9 downloaded from:
10 https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf
11
12 Residencies for each low power state can be read via FFH
13 (Function fixed hardware) or a memory mapped interface.
14
15 On platforms supporting S0ix sleep states, there can be two types of
16 residencies:
17
18 - CPU PKG C10 (Read via FFH interface)
19 - Platform Controller Hub (PCH) SLP_S0 (Read via memory mapped interface)
20
21 The following attributes are added dynamically to the cpuidle
22 sysfs attribute group::
23
24 /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
25 /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us
26
27 The "low_power_idle_cpu_residency_us" attribute shows time spent
28 by the CPU package in PKG C10
29
30 The "low_power_idle_system_residency_us" attribute shows SLP_S0
31 residency, or system time spent with the SLP_S0# signal asserted.
32 This is the lowest possible system power state, achieved only when CPU is in
33 PKG C10 and all functional blocks in PCH are in a low power state.
34

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

LPIT의 목적과 명세

1-10

Intel 플랫폼은 플랫폼이 제공하는 Low Power Idle 상태를 운영체제에 열거하기 위해 Low Power Idle Table, 즉 LPIT를 사용한다. LPIT는 단순한 전원 상태 이름 목록이 아니라, 각 저전력 유휴 상태의 residency를 어떤 방식으로 읽을 수 있는지 설명하는 ACPI 표이다.

문서가 가리키는 Intel ACPI Low Power S0 Idle 명세 PDF에는 LPIT의 세부 형식이 정의되어 있다. 이 페이지는 Linux 사용자가 실제로 관찰할 수 있는 residency counter와 sysfs 노출 방식에 초점을 맞춘다.

LPIT의 역할
대상역할
LPIT플랫폼 Low Power Idle 상태와 residency 접근 정보를 열거
ACPI firmware플랫폼별 저전력 상태 정보를 운영체제에 제공
Linux cpuidle sysfsLPIT에서 얻은 residency를 사용자 공간에 노출
Intel LPIT 명세표 구조와 Low Power S0 Idle 세부 형식을 정의

Firmware 표에서 Linux의 관찰 지점까지 이어지는 핵심 대상을 구분한다.

.. SPDX-License-Identifier: GPL-2.0

===========================
Low Power Idle Table (LPIT)
===========================

To enumerate platform Low Power Idle states, Intel platforms are using
“Low Power Idle Table” (LPIT). More details about this table can be
downloaded from:
https://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf

S0ix residency와 접근 인터페이스

11-19

각 저전력 상태의 residency, 즉 해당 상태에 머문 누적 시간은 FFH 인터페이스 또는 memory-mapped 인터페이스를 통해 읽을 수 있다. 원문은 FFH를 `Function fixed hardware`라고 풀어 쓰며, Linux는 플랫폼이 기술한 접근 방식을 따라 counter를 읽는다.

S0ix sleep state를 지원하는 플랫폼에서는 두 종류의 residency가 존재할 수 있다. CPU package가 `PKG C10`에 있었던 시간은 FFH 인터페이스로 읽고, Platform Controller Hub의 `SLP_S0` residency는 memory-mapped 인터페이스로 읽는다.

두 값은 같은 저전력 상태를 중복 측정하는 값이 아니다. CPU residency는 processor package의 상태를 나타내고, system residency는 PCH를 포함한 플랫폼 전체가 더 깊은 저전력 조건에 도달한 시간을 나타낸다.

S0ix residency counter
Residency측정 범위읽기 인터페이스
CPU PKG C10CPU packageFFH
PCH SLP_S0Platform Controller Hub 및 systemMemory-mapped interface

Counter가 나타내는 범위와 하드웨어 접근 방식을 함께 정리한다.


Residencies for each low power state can be read via FFH
(Function fixed hardware) or a memory mapped interface.

On platforms supporting S0ix sleep states, there can be two types of
residencies:

  - CPU PKG C10 (Read via FFH interface)
  - Platform Controller Hub (PCH) SLP_S0 (Read via memory mapped interface)

cpuidle sysfs 속성

20-25

Linux는 LPIT 정보를 사용할 수 있을 때 다음 두 속성을 cpuidle sysfs attribute group에 동적으로 추가한다. 따라서 모든 시스템에 이 파일이 항상 존재하는 것은 아니며, firmware가 해당 counter를 기술하고 kernel이 이를 지원할 때 노출된다.

두 경로의 단위는 이름 끝의 `_us`가 나타내듯 microseconds이다. 사용자 공간 도구는 CPU package와 system 전체의 저전력 도달 시간을 서로 구분해 읽어야 한다.

LPIT sysfs 경로
Sysfs attribute표시하는 값단위
/sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_usCPU package PKG C10 residencymicroseconds
/sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_usPCH SLP_S0 / system residencymicroseconds

각 sysfs 속성과 그 값이 나타내는 residency를 대응시킨다.


The following attributes are added dynamically to the cpuidle
sysfs attribute group::

  /sys/devices/system/cpu/cpuidle/low_power_idle_cpu_residency_us
  /sys/devices/system/cpu/cpuidle/low_power_idle_system_residency_us

CPU와 system residency의 의미

26-33

`low_power_idle_cpu_residency_us` 속성은 CPU package가 `PKG C10`에 머문 시간을 보여 준다. 이 값은 CPU 쪽 저전력 진입이 이루어졌는지를 나타내지만, 그것만으로 플랫폼 전체가 최저 전력 상태에 도달했다고 판단할 수는 없다.

`low_power_idle_system_residency_us` 속성은 `SLP_S0` residency, 다시 말해 `SLP_S0#` 신호가 asserted 상태였던 system 시간을 보여 준다. 신호 이름의 `#`는 active-low 표기를 보존한 것이며, asserted는 이 저전력 조건이 활성화되었음을 뜻한다.

System residency가 집계되는 상태는 가능한 가장 낮은 system power state이다. CPU가 `PKG C10`에 있고, 동시에 PCH의 모든 functional block이 저전력 상태에 들어가야만 이 조건이 성립한다.

System SLP_S0 residency 성립 조건
CPU package가 PKG C10에 진입PCH의 모든 functional block이 low power state에 진입SLP_S0# 신호 assertedlow_power_idle_system_residency_us에 system residency 집계

CPU 조건과 PCH 조건이 모두 충족되어야 system counter가 나타내는 최저 전력 상태에 도달한다.


The "low_power_idle_cpu_residency_us" attribute shows time spent
by the CPU package in PKG C10

The "low_power_idle_system_residency_us" attribute shows SLP_S0
residency, or system time spent with the SLP_S0# signal asserted.
This is the lowest possible system power state, achieved only when CPU is in
PKG C10 and all functional blocks in PCH are in a low power state.