# Đặt cấu hình bộ điều chỉnh điện áp và tần số động (DVFS)

Nền tảng Qualcomm Linux kernel hỗ trợ một số lần triển khai DVFS để quản lý việc điều chỉnh tần số theo cách linh hoạt tương ứng với yêu cầu hệ thống.

## Chọn bộ điều chỉnh DVFS CPU

Bạn có thể chọn một bộ điều chỉnh để điều chỉnh công suất hoặc hiệu năng của hệ thống bằng cách thay đổi bộ điều chỉnh `CPUfreq` (`powersave/performance/schedutil`). Theo mặc định, bộ điều chỉnh tần số CPU được đặt thành `performance` trên Qualcomm Linux kernel.

Bảng: Biến DVFS CPU

| Biến | Mô tả | Đường dẫn |
| --- | --- | --- |
| scaling_governor<br>    Copy to clipboard | Đặt bộ điều chỉnh sang performance. | echo performance > /sys/devices/system/cpu/cpufreq/policy*/scaling_governor<br>    Copy to clipboard |
| scaling_max_freq<br>    Copy to clipboard | Đặt tần số tối đa của cụm CPU. | /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq<br>    Copy to clipboard |
| scaling_min_freq<br>    Copy to clipboard | Đặt tần số tối thiểu của cụm CPU. | /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq<br>    Copy to clipboard |

Để biết thêm thông tin về `CPUfreq`, hãy xem [CPU frequency and voltage scaling code in the Linux(TM) kernel](https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt).

## Đặt cấu hình bộ điều chỉnh DVFS cho bộ nhớ đệm và bộ nhớ

Bộ điều chỉnh DVFS dạng ánh xạ tĩnh sẽ căn chỉnh tần số hoạt động của CPU theo các thông số sau:

- Bộ nhớ đệm cấp 3 (L3)
- Bộ điều khiển bộ nhớ đệm cấp sau cùng (LLCC)
- DDR RAM

Nếu tần số CPU ở mức cao nhất, do cài đặt bộ điều chỉnh tần số CPU ở mức performance hoặc do tải trong hệ thống, thì L3, LLCC và DDR cũng chạy ở tần số tối đa của chúng.

Driver cho bộ điều chỉnh này có trong tệp `drivers/cpufreq/qcom-cpufreq-hw.c` và ánh xạ tĩnh có trong tệp `arch/arm64/boot/dts/qcom/sc7280.dtsi`.

Ghi chú

Đối với Qualcomm SoC, hãy xem các tệp DTSI dành riêng cho nền tảng để biết thông tin này.

Bộ điều chỉnh giám sát băng thông khác (BWMON) được dùng để chọn tần số LLCC và DDR, dựa trên lưu lượng đo được giữa CPU đến LLCC và CPU đến DDR. Driver cho bộ điều chỉnh này có trong tệp `drivers/soc/qcom/icc-bwmon.c`.

Việc ánh xạ giữa **tần số CPU** và **tần số L3/DDR** được điều chỉnh dựa trên yêu cầu về hiệu năng hoặc tiết kiệm năng lượng.

Trong DTSI, đối với mỗi node CPUx, có một mục `operating-points-v2 = <&cpux_opp_table>`. `cpux_opp_table` lưu trữ một ánh xạ tĩnh giữa tần số CPU, L3 và DDR.

Ví dụ:

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

Khi hoạt động ở tần số 300 MHz, CPU 0 sẽ gửi yêu cầu băng thông 9600000 kBps tới L3, tương ứng với tần số L3 là 300.000 Hz (9600000/w). Nếu gửi yêu cầu băng thông 800.000 kBps đến DDR, kết quả sẽ là tần số DDR là 200.000 Hz (800000/w).

Trong phương trình, ‘w’ biểu thị số byte có thể được ghi trong một chu kỳ duy nhất:

- Đối với DDR, ‘w’ là 4 (mỗi kênh thực hiện 2 giao dịch trên mỗi chu kỳ, mỗi giao dịch là 2 byte).
- Đối với L3, ‘w’ là 32 (một giao dịch mỗi chu kỳ ở mức 32 byte cho mỗi giao dịch).

Ghi chú

Các giá trị này được đặt cho mỗi kênh đối với DDR và việc ánh xạ liên kết tần số CPU với băng thông kênh bộ điều khiển bộ nhớ (MC). Việc điều chỉnh bảng ánh xạ này có thể ảnh hưởng đến đặc tính hiệu năng và tiết kiệm năng lượng.

Để biết thêm thông tin về framework và cú pháp của điểm hiệu năng hoạt động (OPP), hãy xem [Generic OPP (Operating Performance Points) Bindings](https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt).

## Đặt cấu hình các cài đặt DVFS của trình lập lịch

Cài đặt DVFS của trình lập lịch được định nghĩa trong tệp `post_boot script`.

Tất cả các thiết lập sau khi khởi động đều có trong script `meta-qcom-hwe/recipes-core/initscripts/files/post_boot.sh`. Để biết thêm thông tin, hãy xem [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
Đặt cấu hình trình lập lịch](https://docs.qualcomm.com/bundle/publicresource/80-70020-3VI/topics/scheduler.md) [Next Topic
Đặt cấu hình pinctrl driver](https://docs.qualcomm.com/bundle/publicresource/80-70020-3VI/topics/pinctrl-configuration.md)