Защита процессора от перегрева

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

Троттлинг (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 4 параметры термоконтроля задаются в базовом описании SoC (dtsi). Само описание можно найти по пути u-boot-2020-04-rc3/arch/arm/dts/sun50i-h6.dtsi в репозитории u-boot-2020-04-rc3.
  • Для Repka Pi 3 пороги троттлинга могут изменяться через overlay-профили (например, profile-ver1.3, profile-ver1.4-1.6-passive). При этом источник температуры остаётся тем же — встроенный датчик SoC. Сами файлы оверлеев можно найти по пути u-boot-2022-04/arch/arm/dts/overlays/throttling в репозитории u-boot-2022-04.

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

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

  • 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.


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

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

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

Навигация

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