Троттлинг (throttling) - защита процессора от перегрева

Общая информация #

Троттлинг (thermal throttling) — это механизм защиты процессора от перегрева. При достижении заданной температуры система автоматически снижает частоту CPU, уменьшая тепловыделение и предотвращая повреждение устройства.

На платах Repka Pi троттлинг основан на показаниях встроенного термодатчика самого SoC, а не внешних датчиков на плате.

Источник температуры #

Температура CPU считывается через контроллер термодатчиков (THS, thermal sensor), встроенный в процессор:

  • В Repka Pi 4 (SoC H6) используется датчик: &ths 0 (канал 0 встроенного THS). Ниже представлено его описание по пути u-boot-2020-04-rc3/arch/arm/dts/sun50i-h6.dtsi :

    ths: thermal-sensor@5070400 {
    	compatible = "allwinner,sun50i-h6-ths";
    	reg = <0x05070400 0x100>;
    	interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
    	clocks = <&ccu CLK_BUS_THS>;
    	clock-names = "bus";
    	resets = <&ccu RST_BUS_THS>;
    	nvmem-cells = <&ths_calibration>;
    	nvmem-cell-names = "calibration";
    	#thermal-sensor-cells = <1>;
    };
    
  • В Repka Pi 3 (SoC H5) используется датчик: &ths 0 (канал 0 встроенного THS). Ниже представлено его описание по пути u-boot-2022-04/arch/arm/dts/sun50i-h5.dtsi :

    ths: thermal-sensor@1c25000 {
    	compatible = "allwinner,sun8i-h3-ths";
    	reg = <0x01c25000 0x400>;
    	interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
    	resets = <&ccu RST_BUS_THS>;
    	clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
    	clock-names = "bus", "mod";
    	nvmem-cells = <&ths_calibration>;
    	nvmem-cell-names = "calibration";
    	#thermal-sensor-cells = <1>;
    };
    

Таким образом, троттлинг ориентируется именно на температуру кристалла процессора.

Как работает троттлинг #

При достижении температурных порогов (trip points), заданных в системе:

  1. активируется механизм охлаждения через cooling-device (обычно CPU);
  2. снижается частота процессора;
  3. уменьшается энергопотребление и тепловыделение.

Если температура продолжает расти, возможно аварийное отключение системы.

Особенности настройки на Repka Pi #

Repka Pi 5 #

Для Repka Pi 5 параметры термоконтроля задаются в базовом описании SoC. Основные thermal trip points и таблицы частот находятся в файле repka-os_linux-rockchip/arch/arm64/boot/dts/rockchip/rk3588s.dtsi, который подтягивается через описание платы repka-os_linux-rockchip/arch/arm64/boot/dts/rockchip/rk3588-repka-pi5.dts.

В Repka OS для Repka Pi 5 используется единый алгоритм термоконтроля: при температуре ниже 50°C вентилятор выключен; при 50°C, 55°C, 60°C, 65°C и 70°C вентилятор последовательно переключается на уровни 1, 2, 3, 4 и 5. При 75°C thermal zone переходит в режим passive, при 85°C начинается активный thermal throttling, в ходе которого Linux поэтапно снижает частоты процессорных кластеров и GPU по таблицам OPP. Для cluster0 используются ступени до 1.8 ГГц, для cluster1 и cluster2 до 2.4 ГГц. При достижении 115°C срабатывает критический порог и выполняется аварийное отключение системы.

Температура Вентилятор

Cortex Quad-Core A55

(cluster0)

Cortex A76 Dual

(cluster 1)

Cortex A76 Dual

(cluster 2)

< 50°C выкл 1800 МГц до 2400 МГц* до 2400 МГц*
50–55°C уровень 1 1800 МГц до 2400 МГц* до 2400 МГц*
55–60°C уровень 2 1800 МГц до 2400 МГц* до 2400 МГц*
60–65°C уровень 3 1800 МГц до 2400 МГц* до 2400 МГц*
65–70°C уровень 4 1800 МГц до 2400 МГц* до 2400 МГц*
70–75°C уровень 5 1800 МГц до 2400 МГц* до 2400 МГц*
75–85°C уровень 5 до 1800 МГц до 2400 МГц* до 2400 МГц*
> 85°C уровень 5 1608 МГц 2208–2352 МГц* 2208–2352 МГц*
> 87°C уровень 5 1416 МГц 2016–2208 МГц 2016–2208 МГц
> 89°C уровень 5 1200 МГц 1800–2016 МГц 1800–2016 МГц
> 91°C уровень 5 1008 МГц 1608–1800 МГц 1608–1800 МГц
> 93°C уровень 5 816 МГц 1416–1608 МГц 1416–1608 МГц
> 95°C уровень 5 600 МГц 1200–1416 МГц 1200–1416 МГц
> 100°C уровень 5 408 МГц 816–1200 МГц 816–1200 МГц
> 105°C уровень 5 408 МГц 600–816 МГц 600–816 МГц
> 110°C уровень 5 408 МГц 408–600 МГц 408–600 МГц
>= 115°C уровень 5 shutdown shutdown shutdown

Repka Pi 4 #

Для Repka Pi 4 параметры термоконтроля задаются в базовом описании SoC (dtsi). Само описание можно найти по пути u-boot-2020-04-rc3/arch/arm/dts/sun50i-h6.dtsi в репозитории u-boot-2020-04-rc3.

В Repka OS предустановлен единый алгоритм троттлинга:

Версия платы Алгоритм работы троттлинга
Для всех версий плат

<70 С° — 1968 МГц,

>70 С° — 1896 МГц,

>74 С° — 1800 МГц,

>76 С° — 1704 МГц,

>78 С° — 1608 МГц,

>80 С° — 1488 МГц,

>82 С° — 1320 МГц,

>84 С° — 1080 МГц,

>86 С° — 888 МГц,

>88 С° — 720 МГц,

>90 С° — 480 МГц,

>97 С° — Power Off

Repka Pi 3 #

Для Repka Pi 3 профиль троттлинга формируется не одним оверлеем, а комбинацией базового дерева устройств sun50i-h5-repka-pi3-1ghz.dts, оверлеев с частотами из u-boot-2022-04/arch/arm/dts/overlays/freq/ и оверлеев с температурными порогами из u-boot-2022-04/arch/arm/dts/overlays/throttling/ (например, profile-ver1.3 или profile-ver1.4-1.6-passive). Все эти файлы доступны в репозитории u-boot-2022-04.

В Repka OS предустановлены следующие алгоритмы троттлинга:

Версия платы и максимальная частота процессора Алгоритм работы троттлинга График алгоритма троттлинга
1.3 и младше и 1.2 ГГц

<55 С° — 1200 МГц,

>55 С° — 1056 МГц,

>60 С° — 1008 МГц, 

>65 С° — 816 МГц, 

>70 С° — 648 МГц, 

>75 С° — 480 МГц, 

>80 С° — 336 МГц, 

>85 С° — 288 МГц, 

>88 С° — 240 МГц, 

>97 С° — Power Off

1.3 и младше и 1.4 ГГц

<55 С° — 1368 МГц, 

>55 С° — 1200 МГц, 

>60 С° — 1008 МГц, 

>65 С° — 816 МГц, 

>70 С° — 648 МГц, 

>75 С° — 480 МГц, 

>80 С° — 336 МГц, 

>85 С° — 288 МГц, 

>88 С° — 240 МГц, 

>97 С° — Power Off

1.4 и 1.5 (Для версий с активным охлаждением)

<75 С° — 1368 МГц, 

>75 С° — 1200 МГц, 

>78 С° — 1008 МГц, 

>81 С° — 816 МГц, 

>84 С° — 648 МГц, 

>87 С° — 480 МГц, 

>90 С° — 336 МГц, 

>92 С° — 288 МГц, 

>95 С° — 240 МГц, 

>97 С° — Power Off

1.4 и 1.5 (Для версий без активного охлаждения)

<61 С° — 1368 МГц, 

>61 С° — 1200 МГц, 

>65 С° — 1008 МГц, 

>69 С° — 816 МГц, 

>74 С° — 648 МГц, 

>78 С° — 480 МГц, 

>82 С° — 336 МГц, 

>86 С° — 288 МГц, 

>88 С° — 240 МГц, 

>97 С° — Power Off

1.6 (Для версий с активным охлаждением)

<75 С° — 1416 МГц, 

>75 С° — 1320 МГц, 

>78 С° — 1008 МГц, 

>81 С° — 816 МГц, 

>84 С° — 648 МГц, 

>87 С° — 480 МГц, 

>90 С° — 336 МГц, 

>92 С° — 288 МГц, 

>95 С° — 240 МГц, 

>97 С° — Power Off

1.6 (Для версий без активного охлаждения)

<61 С° — 1416 МГц, 

>61 С° — 1320 МГц, 

>65 С° — 1008 МГц, 

>69 С° — 816 МГц,

 >74 С° — 648 МГц, 

>78 С° — 480 МГц, 

>82 С° — 336 МГц, 

>86 С° — 288 МГц, 

>88 С° — 240 МГц, 

>97 С° — Power Off

Температурные датчики #

В системе доступны несколько температурных зон, например:

  • cpu-thermal
  • gpu-thermal
  • thermal_zone0, thermal_zone1 (с несколькими точками измерения)

Точное соответствие этих датчиков физическим точкам на плате зависит от конкретной реализации SoC и прошивки. Однако ключевым для управления троттлингом обычно является датчик процессора (cpu-thermal), т.к. она привязана к встроенному датчику SoC (ths, канал 0).

Допустимые температуры #

Согласно даташиту процессора рабочий диапазон: примерно от -20°C до +125°C. Однако: троттлинг активируется при более низких температурах и аварийное отключение также настроено заранее, чтобы избежать достижения критических значений.

Влияние нагрузки #

Наибольшее тепловыделение создаёт процессор (CPU). Нагрузка на другие компоненты оказывает значительно меньший эффект: RAM, Ethernet (LAN), Wi-Fi и SD-карта. Их вклад в общий нагрев платы обычно несоизмеримо ниже по сравнению с CPU.


182 просмотров0 комментариев
0

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Разделы

Навигация

ВойтиРегистрация