• 深く静かに回転せよ

最近、仕事用のマシンを入れ替えた。7年前に仕事マシンを組み立てたときには、ファンはどれも回りっぱなしだった。しかし、最近のマザーボードでは、ファンの回転数を測定できるだけでなく、回転数を制御することもできる。少しファンを追加してストレージなどを冷やそうと思った。半導体など多くの部品の劣化は、温度に関係して進行する(アレニウスの法則)。10度で2倍と言われ、温度が10度上がると寿命が半分になる。

部品の温度を下げる最も簡単な方法が風を当てる方法だ。簡単に言えば、熱い飲み物に息を吹いて冷ますのと同じ。さすがに風を当てるだけで10度下げることは難しいが、少しでも温度を下げれば寿命が延びるはずだ。

マザーボード上には、CPUファンを除いて4つのファンコネクタがあった。4ピンのファンも安い物は1,000円程度で入手可能なので、ここは気張って3個セットを購入、CPUとケース付属のファンと合わせて5つのファンを取り付けることにした。

しかし、ちょっとした不満がある。マザーボード付属のファン速度設定アプリ(写真01)やUEFI設定では、ファン速度算定の基準とする温度センサーとしてマザーボード上のものしか利用できないからだ。できれば、M.2ストレージやメモリ、GPUなどの温度センサーを使いたい。ということでちょっと調べることにした。

  • 写真01: マザーボード付属のファン制御プログラム。ファンごとに温度センサーを指定して、温度と回転数の関係をグラフで指定できる

ファンの回転数や温度センサーの測定値は、SMBIOS(System Management BIOS)を介して取得することができる。SMBIOSは、システム管理情報をファームウェアから得るためしくみ。ファームウェアは、マザーボードと一体で製造されるため、どのようなデバイスがあるのかなどの情報を持ち、その制御を行う。SMBIOSは、オペレーティングシステムとの「接点」として、ハードウェアを抽象化する。Windowsは、動作に必要なSMBIOSの仕様を定義しており、一般にWindowsが動作するマザーボードでは、SMBIOSは、製造業者名やフォームファクタなどの一定の情報を得ることができる。

SMBIOSが提供する情報は、Windowsの“GetSystemFirmwareTable”で読み出せる。ただし、生データのダンプなのでバイナリデータを解釈する必要がある。解釈に必要な情報は、SMBIOSの仕様書で得ることが可能だ。最新版はV3.6.0である。

・DMTF SMBIOS
https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.6.0.pdf

上記の文書では、ファンは“Cooling Device”(タイプ27)、温度センサー関連は“Temperature Probe”(タイプ28)として定義されている。ファンの回転速度を読み出すには、テーブルデータを取得したあと、SMBIOSの定義に従って解釈していき、タイプ27のデータブロック(構造体)を調べればよい。なお、CIM(WIM)にWin32_Fanがあるのだが、回転数は取得できない。

データの読み出しに関しては、解決したが、制御はまた別。ファン速度を変更するには、デバイスごとに個別対応が必要なため、ちょっと面倒だ。プログラムを作らないでファン速度を制御するには、大きく2つの方法がある。1つは、ファームウェア側の設定を使う方法だ。これは、UEFI設定に入って行う。そもそも可能かどうか、どうやって制御するのかは、マザーボードやファームウェア次第である。

もう1つは、Windows側で動作するファン速度設定アプリケーションを使うことだ。筆者が購入したマザーボードでは、どちらの方法にも対応しているが、前述のようにマザーボード上の温度センサーだけが対象である。その他のファン速度制御アプリケーションも試してみたが、一部のファンしか制御ができなかった。ファンの制御はマザーボード上の制御チップの仕様などに従って行う必要があるが、新しいマザーボードは対応に時間がかかることがある。ということで、とりあえずは、マザーボード付属のユーティリティを使い続け、もう少し調べることにした。

今回のタイトルのネタは、1958年の映画「深く静かに潜航せよ」(Run Silent、Run Deep)である。記憶をたどると意外に「潜水艦映画」は多い。「眼下の敵」(The Enemy Below。1957)、「U・ボート」(Das Boot。1981)などの戦争映画もあるが、「レッド・オクトーバーを追え!」(The Hunt for Red October。1990)や「海底二万哩」(20000 Leagues Under the Sea。1954)、「海底軍艦」(1963)なんてのもある。最近のものなら「U-571」(2000)や「K-19」(K-19: The Widowmaker。2002)がある。そのほか、マンガ原作のアニメも少なくない。戦車ほど狭くないが、戦艦ほど大きくなく、海中という危険と隣り合わせなのが映像向けなのかも。