上の画面はブルースクリーンと呼ばれます。
PCに 何か問題があったとき、重大なダメージを受ける前に
Windowsが自己判断で自動終了するときの画面です。
今回は、筆者のPCに起こったケースを例に
1年間掛けて研究し、ようやく判明した原因の1つを
ざっくり説明いたします。
続編の 結露編 は以下のリンク先からどうぞ。
>>ブルースクリーン&フリーズ! 結露 編
>>ブルースクリーン&フリーズ! avast! 編 NEW!
【1. 症状】
・PC起動後 30分以内
・chromeでアメーバピグ をしたときにブルースクリーン、またはフリーズ
・繰り返していく内に、Windows が起動しなくなった
・メモリ16GB 搭載しているのに、8GB しか認識しなくなった
・C ドライブ内のシステムデータの一部が消失した
・PCの電源を消して数分待った後に起動すると、16GB 認識することが多かった
・Windows 起動中に何もしなくてもフリーズするようになった
・BIOS 画面でフリーズするようになった
・ブルースクリーンの記述によると
原因は、ほとんどシステムによるもので ( IRQL_NOT_LESS_OR_EQUAL など )
たまにグラボ ( Atikmdag.sys )
まさに、PCの病気です。
【2. 原因】
グラフィックボード(グラボ)に搭載された GPU の発熱と、冷却不全
【3. 対処法】
① PCが健康なうちにバックアップを取っておく。
⇒ まずは、これ
>>参考サイト | 初心者でもわかる! Windows 7 でバックアップ
② PC内部の掃除。特にグラボ周辺のほこりを落とす。
⇒ 掃除機、エアーダスター、ブロワー、ウェットティッシュ、綿棒などで
>>参考サイト | パソコンの掃除・クリーニング
④ ハードディスクの自動シャットダウンを停止させる。
⇒ ハードディスクの電源切る時間を長くし、コンピュータをスリープ状態にさせない
>>参考サイト | パパ先生のブログ
⑤ グラボの冷却を促す。
⇒ グラボのファンのスピードを上げて固定する (後述)
⑥ グラボの発熱を抑える。
⇒ GPU のクロック数を下げる (後述)
⇒ ハードウェア・アクセレレーションをオフにする (後述)
①~④で、ほとんどの場合は解決するはずです。
それでも、ブルースクリーン・フリーズする場合
後述する、⑤~⑥のグラボの調整をお試し下さい。
【4. 電気の基礎知識】
PC初心者や、小中学生を対象に
イメージを伝えるために説明いたします。
厳密さは、あえて省略します。
① ジュール熱
まず、下の電気回路をご覧ください。
抵抗に電池(電源)をつなぐと電流が流れ、発熱します。
これを、ジュール熱と呼びます。
電流が流れれば流れるほど、熱くなります。
例えば、電気ヒーターはジュール熱を利用しています。
抵抗がない物質は存在しないので (超伝導以外)
電流が流れれば、必ず熱くなります。
② 電流と温度の関係
金属に電流が流れると、発熱により抵抗が上がるので
オームの法則により、電流が流れにくくなります。
一方、人工的に作られた半導体は
常温では、電流量が大きく変化せず
安定して動作するよう設計されていますが
高温になると、急激に大きな電流が流れる現象(熱暴走)を起こします。
電流流れる → 熱くなる → もっと電流流れる → もっと熱くなる → もっと…
一旦、熱暴走を起こすと、壊れるまで動作を続けるので
PC内部の半導体が、急激に高温になった場合
PCが自動的にブルースクリーンを出して、ブレーキを掛けるのだと思います。
③ ハードウェア・アクセラレーション
PCに搭載された半導体デバイスで、代表的なものを2つ紹介いたします。
CPU (Central Processing Unit)
⇒ 社長。プログラムの計算などが仕事。
GPU (Graphics Processing Unit)
⇒ 画家。グラフィックボード(グラボ)に搭載。
PCという会社では、CPU 社長が指令を出し
GPU 氏という画家が、画面に絵を描いています。
GPU 氏は、グラフィックス専門だけあって
仕事させればさせるほど、いい仕事をします。
そこで、chrome や Firefox などの webブラウザが
GPU にたくさん仕事をさせて
インターネットのストリーミング配信や、Flashゲームなどで
高画質で、ぬるぬる滑らかに動く映像を実現させようとした機能が
ハードウェア・アクセラレーションです。
ハードウェア・アクセラレーションがオンになると
GPU の仕事が増える
つまり、GPU に流れる電流が増えるので、発熱します。
この熱は、グラボに内蔵されたファン(扇風機)で冷却するのですが
ほこりが溜まっていたり、ファンのスピードが足りないと
冷却がスムーズにいかなくなります。
そして、GPU が高温になり
熱暴走が起こる前に、または起こってしまった後に
ブルースククリーンが表示されたり、フリーズするのだと思います。
こうした GPU の発熱を抑えるために
ハードウェア・アクセラレーションをオフにするという方法があります。
<ハードウェア・アクセラレーションをオフにする方法>
・Flash Player
ピグや、ニコ生などの画面上で右クリック→設定→表示パネル
→ハードウェアアクセラレーションを有効化のチェックを外す→ブラウザ再起動
・chrome
ナビゲーションツールバー右上の3本線をクリック→設定→下のほうの詳細設定を表示
→ハードウェア・アクセラレーションが使用可能な場合は使用するのチェックを外す→ブラウザ再起動
・Firefox
メニューバーのツール→オプション→詳細→一般
→ハードウェアアクセラレーション機能を使用する(可能な場合)のチェックを外す
→OK→ブラウザ再起動
・Internet Explorer
メニューバーのツール→インターネットオプション(O)→詳細設定
→GPUレンダリングではなく、ソフトウェアレンダリングを使用する*にチェックを入れる
→適用→OK→ブラウザ再起動
【5. グラボの調整による GPU 温度測定の実験】
グラフィックボードの設定を調整し
ブルースクリーンにならない温度で運転させるための方法を
見つける実験について説明いたします。
結論からいうと、筆者が行ったグラボの最適化は
「ファンのスピードを35%に固定しただけ」です。
ハードウェア・アクセラレーションはオンです。
なぜ、そう判断したのか。
実験レポートを、以下に記載しました。
筆者が使用しているグラボは AMD Radeon HD5670 です。
Cataryst Control Center を使用して、手動調整できます。
・AMD Cataryst Control Center
パフォーマンス → AMD OverDrive →
→Graphics OverDrive を有効にするにチェックを入れる→適用
これから、CPU と GPU に対して負荷実験を行います。
GPU の設定を調整し
ハードウェア・アクセラレーションを オン or オフ させながら
主に、CPU 使用率と、GPU の温度を測定していきます。
CPU 使用率は、タスクマネージャーで測定します。
・chrome : version 39.0.2171.71 m
・Flash Player : version 15.0.0.239
chrome で ピグカフェ を起動させながら測定しました。
GPU クロックの最大値の初期設定値の 775MHz から
500MHz に下げて実験しました。
追加実験で CPU の Flash Player 画質依存性を測定しました。
500Hz | |
GPU が主に働き、CPU はほとんど仕事をしていません。
ハードウェア・アクセラレーション | ||
Flash Player | 高画質 |
② 次に、Flash Playerのハードウェア・アクセラレーションのみオフにしました。
同じく、GPU が主に働き、CPU はほとんど仕事をしていません。
ハードウェア・アクセラレーション | ||
Flash Player | 高画質 |
③ 今度は、chorme のハードウェア・アクセラレーションのみオフにしました。
CPU が主に働き、GPU はほとんど仕事をしていません。
GPU の温度も、少し下がったようです。
ハードウェア・アクセラレーション | ||
Flash Player | 高画質 |
④ 最後に、すべてのハードウェア・アクセラレーションをオフにしました。
CPU が主に働き、GPU はほとんど仕事をしていません。
ハードウェア・アクセラレーション | ||
Flash Player | 高画質 |
<実験結果.1-1>
・ハードウェア・アクセラレーションは chrome の設定に依存していた
・ハードウェア・アクセラレーションをオンにすると
CPU 使用率が下がり、GPU の温度が上がった
・ハードウェア・アクセラレーションをオフにすると
CPU 使用率が上がり、GPU の温度が下がった
<追加実験>
⑤ すべての ハードウェア・アクセラレーション をオフの状態で
Flash Player を中画質に設定しました。
CPU 使用率が、高画質設定より下がりました。
ハードウェア・アクセラレーション | ||
Flash Player | 中画質 |
⑥ すべての ハードウェア・アクセラレーション をオフの状態で
Flash Player を低画質に設定しました。
CPU 使用率が、中画質設定より下がりました。
ハードウェア・アクセラレーション | ||
Flash Player | 低画質 |
<実験結果.1-2>
・ Flash Player の画質を下げると、CPU 使用率が下がった
次に、ニコニコ動画での実験の準備をします。
ハードウェア・アクセラレーションを使用する場合は以下の設定をします。
・ニコニコ動画
再生画面右下の歯車ボタン →パフォーマンスタブ → 詳細設定を有効にするを開く
→可能ならハードウェア・アクセラレーションを使用するにチェックを入れる→適用して閉じる
今回の実験は高負荷で行いたいので、以下のブログを参考にし
きしめんベンチマーク LV 10 を使用してみました。
>>参考サイト | niconicoのハードウェアアクセラレーションを試してみた
解像度 : 3456 x 2592 pixel
ビットレート : 7266 kbps
フレームレート : 30 fps
今回、動画の重さの理論値を計算するとき、上の数式を使いました。
動画の重さの実測値は
下の測定結果から、CPU 使用率 約53% に相当します。
chrome で GPU の温度測定をしました。
ニコニコ動画 の きしめんベンチマーク LV 10 を 大画面で再生。
ハードウェア・アクセラレーションはすべてオンにし
ファンスピードは40%で固定。
GPUクロックと、メモリクロックを変化させて測定しました。
追加実験で HWMonitor を使用し CPU の温度を測定しました。
CPU 使用率は、ハードウェア・アクセラレーション オフ時と大差なし。
GPU はフル活動するので、温度が10℃上がりました。
映像品質は、ハードウェア・アクセラレーション オフ時よりも良くなりました。
400Hz | |
② 次に、GPUクロックは最低値のままで、メモリクロックの最大値を 1000MHz に設定。
映像の輪郭がはっきりしましたが、GPU 温度が上がりました。
1000Hz | |
③ 今度は、メモリクロックの最大値を最低にし、GPUクロックを 775MHz に設定。
映像の色合いが鮮明になりましたが、GPU 温度が上がりました。
900Hz | |
④ 最後に、GPUクロックを 775MHz に、メモリクロックの最大値を 1000MHz に設定。
総合的に映像品質が良くなりましたが、GPU 温度がさらに上がりました。
1000Hz | |
<実験結果.2-1>
・ハードウェア・アクセラレーションと、GPUクロック・メモリクロックの増加は
GPU の温度を上げて、映像品質を良くした
・GPUクロック、メモリクロックの増減に対して
CPU 使用率は依存しなかった
<追加実験>
⑤ CPU 使用率 50%台の CPU 温度を測定しました。
最大 60℃ でした。
⑥ CPU 使用率 90%台の CPU 温度を測定しました。
最大 63℃ でした。
<実験結果.2-2>
・CPU 使用率が上がると、CPU の温度も上がった
・CPU の最高温度は、GPU よりも 10℃ 以上低かった
最後は、YouTUBE での実験です。
最高画質で再生する場合は以下の設定をします。
・YouTUBE
再生画面右下の歯車ボタン をクリック → 画質 → 1080p (HD)
今回の実験は、中くらいの負荷で行いたいので
Lady Gaga - Judas を選びました。
解像度 : 1920 x 1080 pixel
ビットレート : 3880 kbps
フレームレート : 24 fps
動画の重さの理論値は、きしめんベンチマーク LV10 の 1/5以下 です。
chrome と Firefox で GPU の温度測定をしました。
YouTUBE の Lady Gaga - Judas を 1080p で再生。
ハードウェア・アクセラレーションはすべてオンにし
ファンスピードは40%で固定。
GPUクロックとメモリクロックも、固定したまま測定しました。
775Hz | |
高負荷時と比較して CPU 使用率は 1/5以下 になりましたが
GPU の温度は高負荷時と同じくらい高かったです。
また、メモリクロックは 初期値 950MHz が最も安定していて
画面のチラツキや、画面の横割れが最も少なかったです。
② 次に、旧バージョンの Firefox で再生しました。
Flash Player と高度な連携をし始める直前の、とても動作が安定したバージョンです。
・Firefox : version 17.0.1
・Flash Player : version 10.3.183.86
CPU 使用率は chrome と変わりませんが
GPU が働いていないところを見ると
ハードウェア・アクセラレーションは運転してないです。
映像品質では chrome に負けていますが、動作は安定しています。
<実験結果.3>
・chrome と Firefox は CPU 使用率に差がなかった
・動画の重さの理論値と CPU 使用率は比例した
・chrome の ハードウェア・アクセラレーションにおいて
GPU の温度は、動画の重さに依存しなかった
【6. 結論】
ハードウェア・アクセラレーションで映像品質は良くなりましたが
GPU は、危険なレベルに高温になりました。
そこで、GPU の温度を下げるために 3つの方法がありました。
・ハードウェア・アクセラレーションをオフ
・GPUクロック、メモリクロックを下げる
・ファンのスピードを上げて固定
このうち、映像品質を保ったまま温度を下げる方法は
「ファンのスピードを上げて固定」のみでした。
今回の実験中、一度もブルースクリーンにならなかった理由は
「グラボのファンのスピードを40%で固定したから」 と考えられます。
なお、ファンのスピードを 35 ~ 45% の間に振っても
冷却効果に大差なかったので
最終的に、少し音の小さい 35% を選びました。
【7. 考察】
グラボのファンのスピードの自動設定は
いつ、何の温度をフィードバックしているのか不明です。
GPU がイレギュラーに高温になったときに
適切に冷却できているかどうかわかりません。
どうしても、chrome で 高画質の動画を見たいときは
GPU の温度が上がりきらない 数分間だけ見ることで
ブルースクリーンを予防できると思います。
また、アメーバピグ などの Flashゲームは
ハードウェア・アクセラレーションのほうが滑らかに動くのですが
ゲーム進行中の画面上の変化により
突発的に、GPU 温度が上がることもあるので
高負荷をかけないように低・中画質にすると
ブルースクリーンを予防できると思います。
最後まで読んで下さり、ありがとうございました。
長文失礼いたしました。
<参考ブログ>
以下のブログでは、nVIDIA製のグラボについても記載されています。
>>Amebaマイページ表示でOSごとフリーズ!(Firefox)