# 동적 전압 및 주파수 스케일링(DVFS) 관리자 구성

Qualcomm Linux 커널 기준은 시스템 요구사항에 따라 주파수 스케일링을 동적으로 관리하기 위해 여러 가지 DVFS 구현을 지원합니다.

## CPU DVFS 관리자 선택

`CPUfreq` 관리자(`powersave/performance/schedutil`)를 변경하는 과정에서 시스템의 전력 또는 성능을 미세 조정하기 위해 관리자를 선택할 수 있습니다. 기본적으로 Qualcomm Linux 커널에서는 CPU 주파수 관리자가 `performance` 로 설정되어 있습니다.

표: CPU DVFS 변수

| 변수 | 설명 | 경로 |
| --- | --- | --- |
| scaling_governor<br>    Copy to clipboard | 관리자를 성능으로 설정합니다. | echo performance > /sys/devices/system/cpu/cpufreq/policy*/scaling_governor<br>    Copy to clipboard |
| scaling_max_freq<br>    Copy to clipboard | CPU 클러스터의 최대 주파수를 설정합니다. | /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq<br>    Copy to clipboard |
| scaling_min_freq<br>    Copy to clipboard | CPU 클러스터의 최소 주파수를 설정합니다. | /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq<br>    Copy to clipboard |

`CPUfreq` 에 대한 자세한 내용은 [CPU frequency and voltage scaling code in the Linux(TM) kernel](https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt) 을 참조하세요.

## 캐시 및 메모리 DVFS 관리자 구성

정적 맵 DVFS 관리자는 CPU 작동 주파수를 다음과 같이 정렬합니다.

- 레벨 3 캐시(L3)
- 마지막 레벨 캐시 컨트롤러(LLCC)
- DDR RAM

성능에 맞춰 CPU 주파수 관리자를 설정하거나 시스템 부하로 인해 CPU 주파수가 최대 수준인 경우 L3, LLCC, DDR도 최대 주파수로 실행됩니다.

이 관리자의 드라이버는 `drivers/cpufreq/qcom-cpufreq-hw.c` 파일에 있으며, 정적 매핑은 `arch/arm64/boot/dts/qcom/sc7280.dtsi` 파일에 있습니다.

참고

Qualcomm SoC의 경우 이러한 정보를 확인하려면 플랫폼별 DTSI 파일을 참조하세요.

그 밖의 대역폭 모니터(BWMON) 관리자는 CPU에서 LLCC로, 그리고 CPU에서 DDR로 이동하는 트래픽 측정값을 토대로 LLCC 및 DDR 주파수에 대한 투표를 수행하는 데 사용됩니다. 이 관리자의 드라이버는 `drivers/soc/qcom/icc-bwmon.c` 파일에 있습니다.

**CPU 주파수** 와 **L3/DDR 주파수** 간의 매핑은 전력 또는 성능 요구사항에 따라 조정됩니다.

DTSI의 경우, CPUx 노드마다 `operating-points-v2 = <&cpux_opp_table>` 항목이 있습니다. `Cpux_opp_table` 은 CPU, L3, DDR 주파수 간의 정적 매핑을 포함합니다.

예시:

cpu0_opp_300mhz: opp-300000000 {
       opp-hz = /bits/ 64 <300000000>;
       opp-peak-kBps = <800000 9600000>;
    };
    Copy to clipboard

CPU 0이 300MHz에서 작동할 경우 투표에서 9600000을 L3로 결정하며, 이는 300,000Hz(9600000/w) L3 주파수로 해석됩니다. 투표에서 800,000Hz를 DDR로 결정하면 200,000Hz(800,000/w) DDR 주파수가 됩니다.

수식에서 ‘w’는 단일 주기 동안 작성 가능한 바이트 수를 나타냅니다.

- DDR의 경우 ‘w’는 4입니다(각 채널이 주기당 트랜잭션을 2회 수행하며, 각 트랜잭션은 2바이트).
- L3의 경우 ‘w’는 32입니다(트랜잭션당 32바이트에서 주기당 트랜잭션 1회).

참고

이러한 값은 DDR에 대해 각 채널당 설정되며, 매핑은 CPU 주파수를 메모리 컨트롤러(MC) 채널 대역폭과 연결합니다. 이 맵 테이블을 조정하면 전력 및 성능 특성에 영향을 미칠 수 있습니다.

작동 성능 지점(OPP) 프레임워크와 구문에 대한 자세한 내용은 [Generic OPP (Operating Performance Points) Bindings](https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt) 를 참조하세요.

## 스케줄러 DVFS 설정 구성

DVFS 스케줄러 설정은 `post_boot 스크립트` 파일에 정의됩니다.

모든 postboot 설정은 `meta-qcom-hwe/recipes-core/initscripts/files/post_boot.sh` 스크립트에 있습니다. 자세한 내용은 [post_boot.sh](https://github.com/qualcomm-linux/meta-qcom-hwe/blob/scarthgap/recipes-core/initscripts/files/post_boot.sh) 를 참조하세요.

Last Published: Jan 01, 2026

[Previous Topic
스케줄러 구성](https://docs.qualcomm.com/bundle/publicresource/80-70020-3KO/topics/scheduler.md) [Next Topic
pinctrl 드라이버 구성](https://docs.qualcomm.com/bundle/publicresource/80-70020-3KO/topics/pinctrl-configuration.md)