ブログ

Armadillo-IoT G4のCPUの処理能力を制限して発熱量を低下させる

at_mizo
2022年3月11日 16時55分

動作温度範囲の上限に近い環境に設置する場合、Armadillo-IoT G4が高温となりシステムが停止してしまう可能性があります。このような状況を避ける為、CPUの処理能力を制限して発熱量を低下させる方法を説明します。

発熱量低下の目安

CPUクロックを下げることでCPUコア当り1〜2℃程度、動作するCPUコアを減らすことでもCPUコア当り1〜2℃程度の発熱量を低下させることができます。

発熱量低下の参考値

Armadillo-IoT G4で実測した温度は次の通りです。単位は℃です。

thermal_zone0 thermal_zone1
1.6GHz@4core 57 61
1.6GHz@3core 55 58
1.6GHz@2core 53 55
1.6GHz@1core 49 50
thermal_zone0 thermal_zone1
1.2GHz@4core 52 54
1.2GHz@3core 50 52
1.2GHz@2core 49 51
1.2GHz@1core 48 48

室温環境下(約26℃)、ケースによる放熱が無い環境でstressコマンドを利用し、各CPU負荷が100%の状態で測定しました。

i.MX 8M Plusの温度を測定する

次のように温度を測定することができます。

//CPU(Arm Cortex-A53)周辺温度を測定する
armadillo:~# cat /sys/class/thermal/thermal_zone0/temp
 
//SoC(ANAMIX 内部)温度を測定する
armadillo:~# cat /sys/class/thermal/thermal_zone1/temp

CPUクロックを下げる

次のように最大1.6GHzで動いているCPUクロックを1.2GHzに下げることができます。

armadillo:~# echo powersave > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

CPUのコア数を減らす

次のようにCPUのコア数を減らすことができます。

armadillo:~# echo 0 > /sys/devices/system/cpu/cpu[X]/online
//[X]には1〜3の数字が入ります。

例として、通常4つ動いているCPUを2つに減らすには次のようにコマンドを実行します。

armadillo:~# echo 0 > /sys/devices/system/cpu/cpu2/online
armadillo:~# echo 0 > /sys/devices/system/cpu/cpu3/online