自作PCネタ。最近のCPUは冷やせば冷やすほど性能を上げる事ができる。正確に言えば冷やすだけでなくて、どれだけ冷えるから、このくらいCPUに掛けられる電力を上げようっていうチューニングを行って性能を調整していく。ただ、CPUだけ冷やしてもダメなのです。
Power Limitの考え方
現代のCPUは状況に応じて自動的にオーバクロックする機能が備わっている。インテルのCPUで言えばターボブーストという機能だ。ターボブーストが機能として備わった初期の頃は、CPUコアの温度に余力がある場合に負荷状況に応じてターボが掛かる仕掛けだった。
ところが、いまのインテルCPUは考え方が少し異なる。少し乱暴な説明をすると、温度と共に自分自身で消費している電力を見ながらターボを掛けるかどうかを判断しているのだ。
インテルのCPUにはPL1とPL2という2つの設定値が存在する。PLはPower Limitの略だ。今の自作PC用マザーボードではPL1もPL2もユーザが自在に決定できる物が多いが、通常の設定ではPL1にCPUのベースパワー値を設定する。ベースパワーとは聞き慣れない言葉だが、ベースクロックで動作させた時の電力値と考えればよい。いわゆる少し前のTDP。基本的にPL1に設定した以上の電力は消費しないし、熱もそれ以上は上がらない。
一方、PL2はターボブーストが掛かる際の最大許容電力を設定する。つまり瞬間最大風速となる電力値を設定する。アイドル状態からCPUに重い負荷が掛かった場合、PL2で設定された電力に応じてターボが掛かり始める。その後も重い負荷が掛かり続けるとターボ動作を継続する。しかしながら、PL2で動作し続けることが出来る時間は決まっており、いずれはPL1に電力を下げるためにクロックはベースクロックに戻る。
この動作をもう少し説明すると、CPUは自分で消費している電力量を監視し、ある時間枠(Tauというパラメータ)の中でその移動平均を計算しながらPL1と比較している。つまり、一時的にはPL1の電力をオーバするものの、その平均値がPL1の電力に到達していない間は、まだターボを掛けられる区間と判断する。更に重い負荷がかかり続け消費電力が増大していくと、平均値も増加することから、いずれPL1に到達し、その瞬間にターボ動作を停止する。
これが基本動作だが、この時に、ベースパワーであるPL1の電力により発生する熱を完全に放熱できることが大前提になる。なぜなら、CPU温度が確実に放熱されるであろうPL1がベースにあって初めてPL2が動作できるからだ。PL1においても放熱が不十分だとCPU温度はいずれジャンクション温度まで上昇し、サーマルスロットリングと呼ばれる保護機能が働く。つまり自分を守るために大幅に性能を落とすことになる。逆に言うと十分に放熱ができる場合は、PL1自体の設定を上げ、性能を上げることができる。
冷却するのはCPUだけではない
上記のセオリー通り、そのCPUに期待する性能を求めるには放熱が重要なのだが、マザーボードから見ると実はそれだけではない。CPU以外に熱が問題になるのは、マザーボード上に存在するCPU用の電源回路だ。
CPUの電源回路は非常に大きな電力を扱う。CPUによっては100W以上の電力をCPUに供給しているが、当然その電源回路は発熱するため、そのまま大電力を供給していると危険な状態になる。だから電源回路は自身の発熱を監視して危険な温度になった時に消費電力を落とす様に要求するのだが、このリクエストにより性能が低下してしまう。
いくらCPUに高性能なヒートシンクを実装しても、電源回路を冷やさないと性能を上げる事ができないのだ。最近の市販しているマザーボードではCPUの電源回路に大きなヒートシンクを実装しているが、それが理由だ。
性能を上げるにはとにかく冷やすこと
期待する性能を出すにはCPUは勿論、マザーボード上の電源回路、またはSSDなどのデバイスも冷やす必要がある。最近だと魅せるPCになりがちで、CPUだけを簡易水冷している物も多いが、ケース全体のエアフローも重要だ。
パソコンを作った後は性能測定すると思うが、その時にパソコン全体としてどれだけうまく熱を処理出来ているのかも確認したい。熱によってCPUの動作に制限が掛かっていないか、SSDの性能は期待値通りかなど、その様な見方をすることにより、自分の作ったPCを最大限性能を上げることができるだろう。