ブルースクリーン&フリーズ! GPU 編 | レトロゲーム音楽研究所

レトロゲーム音楽研究所

レトロゲーム音楽の、リミックスアレンジをしています♪

blue screen



上の画面はブルースクリーンと呼ばれます。

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 氏は、グラフィックス専門だけあって

仕事させればさせるほど、いい仕事をします。



そこで、chromeFirefox などの webブラウザが

GPU にたくさん仕事をさせて

インターネットのストリーミング配信や、Flashゲームなどで

高画質で、ぬるぬる滑らかに動く映像を実現させようとした機能が

ハードウェア・アクセラレーションです。



ハードウェアアクセレレーション



ハードウェア・アクセラレーションがオンになると

GPU の仕事が増える

つまり、GPU に流れる電流が増えるので、発熱します。

この熱は、グラボに内蔵されたファン(扇風機)で冷却するのですが

ほこりが溜まっていたり、ファンのスピードが足りないと

冷却がスムーズにいかなくなります。

そして、GPU が高温になり

熱暴走が起こる前に、または起こってしまった後に

ブルースククリーンが表示されたり、フリーズするのだと思います。



こうした GPU の発熱を抑えるために

ハードウェア・アクセラレーションをオフにするという方法があります。







<ハードウェア・アクセラレーションをオフにする方法>


Flash Player
ピグや、ニコ生などの画面上で右クリック→設定→表示パネル
ハードウェアアクセラレーションを有効化のチェックを外す→ブラウザ再起動
p12
    >>参考サイト | Flash Player ヘルプ




chrome
ナビゲーションツールバー右上の3本線をクリック→設定→下のほうの詳細設定を表示
ハードウェア・アクセラレーションが使用可能な場合は使用するのチェックを外す→ブラウザ再起動

chrome acc




Firefox
メニューバーのツール→オプション→詳細→一般
ハードウェアアクセラレーション機能を使用する(可能な場合)のチェックを外す
→OK→ブラウザ再起動

ff




Internet Explorer
メニューバーのツール→インターネットオプション(O)→詳細設定
GPUレンダリングではなく、ソフトウェアレンダリングを使用する*にチェックを入れる
→適用→OK→ブラウザ再起動

ie








【5. グラボの調整による GPU 温度測定の実験】

グラフィックボードの設定を調整し

ブルースクリーンにならない温度で運転させるための方法を

見つける実験について説明いたします。


結論からいうと、筆者が行ったグラボの最適化は

「ファンのスピードを35%に固定しただけ」です。

ハードウェア・アクセラレーションはオンです。


なぜ、そう判断したのか。

実験レポートを、以下に記載しました。








筆者が使用しているグラボは AMD Radeon HD5670 です。

Cataryst Control Center を使用して、手動調整できます。



AMD Cataryst Control Center
パフォーマンス → AMD OverDrive →
Graphics OverDrive を有効にするにチェックを入れる→適用

ccc1c




これから、CPUGPU に対して負荷実験を行います。

GPU の設定を調整し

ハードウェア・アクセラレーションを オン or オフ させながら

主に、CPU 使用率と、GPU の温度を測定していきます。

CPU 使用率は、タスクマネージャーで測定します。




<測定環境>

chrome : version 39.0.2171.71 m

Flash Player : version 15.0.0.239



<アイドル時(無負荷時)>

idle







<実験1. ピグカフェで負荷測定>


                   chrome で ピグカフェ を起動させながら測定しました。

                   GPU クロックの最大値の初期設定値の 775MHz から

                   500MHz に下げて実験しました。

                   追加実験で CPUFlash Player 画質依存性を測定しました。



GPU クロック
 500Hz 
 メモリクロック 
 950Hz 
ファンスピード
自動



① まずは、ハードウェア・アクセラレーションを、すべてオンにしました。

GPU が主に働き、CPU はほとんど仕事をしていません。



 ハードウェア・アクセラレーション 
画質
chrome
ON
 Flash Player 
ON
 高画質 

onon2







② 次に、Flash Playerのハードウェア・アクセラレーションのみオフにしました。

 同じく、GPU が主に働き、CPU はほとんど仕事をしていません。



 ハードウェア・アクセラレーション 
画質
chrome
ON
 Flash Player 
OFF
 高画質 

off on







③ 今度は、chorme のハードウェア・アクセラレーションのみオフにしました。

CPU が主に働き、GPU はほとんど仕事をしていません。

GPU の温度も、少し下がったようです。



 ハードウェア・アクセラレーション 
画質
chrome
OFF
 Flash Player 
ON
 高画質 

flashon chromeoff







④ 最後に、すべてのハードウェア・アクセラレーションをオフにしました。

CPU が主に働き、GPU はほとんど仕事をしていません。



 ハードウェア・アクセラレーション 
画質
chrome
OFF
 Flash Player 
OFF
 高画質 

off 高画質







<実験結果.1-1>

・ハードウェア・アクセラレーションは chrome の設定に依存していた

・ハードウェア・アクセラレーションをオンにすると

CPU 使用率が下がり、GPU の温度が上がった

・ハードウェア・アクセラレーションをオフにすると

CPU 使用率が上がり、GPU の温度が下がった







<追加実験>

⑤ すべての ハードウェア・アクセラレーション をオフの状態で

Flash Player を中画質に設定しました。

CPU 使用率が、高画質設定より下がりました。



 ハードウェア・アクセラレーション 
画質
chrome
OFF
 Flash Player 
OFF
 中画質 

off 中画質







⑥ すべての ハードウェア・アクセラレーション をオフの状態で

Flash Player を低画質に設定しました。

CPU 使用率が、中画質設定より下がりました。



 ハードウェア・アクセラレーション 
画質
chrome
OFF
 Flash Player 
OFF
 低画質 

off 低画質







<実験結果.1-2>

Flash Player の画質を下げると、CPU 使用率が下がった








次に、ニコニコ動画での実験の準備をします。

ハードウェア・アクセラレーションを使用する場合は以下の設定をします。



ニコニコ動画
再生画面右下の歯車ボタン →パフォーマンスタブ → 詳細設定を有効にするを開く
可能ならハードウェア・アクセラレーションを使用するにチェックを入れる→適用して閉じる

nikoniko 3



今回の実験は高負荷で行いたいので、以下のブログを参考にし

きしめんベンチマーク LV 10 を使用してみました。



>>参考サイト | niconicoのハードウェアアクセラレーションを試してみた





                                                      解像度 : 3456 x 2592 pixel

                                                      ビットレート : 7266 kbps

                                                      フレームレート : 30 fps




動画の重さ = 解像度 × ビットレート × フレームレート




今回、動画の重さの理論値を計算するとき、上の数式を使いました。

動画の重さの実測値は

下の測定結果から、CPU 使用率 約53% に相当します。



<ハードウェア・アクセラレーション オフ時>

accel off







<実験2. ニコニコ動画で高負荷測定>


                   chromeGPU の温度測定をしました。

                   ニコニコ動画 の きしめんベンチマーク LV 10 を 大画面で再生。

                   ハードウェア・アクセラレーションはすべてオンにし

                   ファンスピードは40%で固定。

                   GPUクロックと、メモリクロックを変化させて測定しました。

                   追加実験で HWMonitor を使用し CPU の温度を測定しました。





① まずは、GPUクロックと、メモリクロックの最大値を最低にしました。

CPU 使用率は、ハードウェア・アクセラレーション オフ時と大差なし。

GPU はフル活動するので、温度が10℃上がりました。

映像品質は、ハードウェア・アクセラレーション オフ時よりも良くなりました。



GPUクロック
 400Hz 
 メモリクロック 
 900Hz 
ファンスピード
40%

400 900







② 次に、GPUクロックは最低値のままで、メモリクロックの最大値を 1000MHz に設定。

映像の輪郭がはっきりしましたが、GPU 温度が上がりました。



GPUクロック
400Hz
 メモリクロック 
 1000Hz 
ファンスピード
40%

400 1000







③ 今度は、メモリクロックの最大値を最低にし、GPUクロックを 775MHz に設定。

映像の色合いが鮮明になりましたが、GPU 温度が上がりました。



GPUクロック
775Hz
 メモリクロック 
 900Hz 
ファンスピード
40%

775 900







④ 最後に、GPUクロックを 775MHz に、メモリクロックの最大値を 1000MHz に設定。

総合的に映像品質が良くなりましたが、GPU 温度がさらに上がりました。



GPUクロック
775Hz
 メモリクロック 
 1000Hz 
ファンスピード
40%

775 1000







<実験結果.2-1>

・ハードウェア・アクセラレーションと、GPUクロック・メモリクロックの増加は

GPU の温度を上げて、映像品質を良くした

・GPUクロック、メモリクロックの増減に対して

CPU 使用率は依存しなかった







<追加実験>

CPU 使用率 50%台の CPU 温度を測定しました。

 最大 60℃ でした。

cpu 温度1







CPU 使用率 90%台の CPU 温度を測定しました。

 最大 63℃ でした。


cpu 温度2







<実験結果.2-2>

CPU 使用率が上がると、CPU の温度も上がった

CPU の最高温度は、GPU よりも 10℃ 以上低かった







最後は、YouTUBE での実験です。

最高画質で再生する場合は以下の設定をします。



YouTUBE
再生画面右下の歯車ボタン をクリック → 画質 → 1080p (HD)
youtube3



今回の実験は、中くらいの負荷で行いたいので

Lady Gaga - Judas を選びました。









                                                      解像度 : 1920 x 1080 pixel

                                                      ビットレート : 3880 kbps

                                                      フレームレート : 24 fps




動画の重さの理論値は、きしめんベンチマーク LV10 の 1/5以下 です。





<実験3. YouTUBE で中負荷測定>


                   chromeFirefox GPU の温度測定をしました。

                   YouTUBE の Lady Gaga - Judas を 1080p で再生。

                   ハードウェア・アクセラレーションはすべてオンにし

                   ファンスピードは40%で固定。

                   GPUクロックとメモリクロックも、固定したまま測定しました。



GPUクロック
 775Hz 
 メモリクロック 
 950Hz 
ファンスピード
40%



① まず、chrome で再生しました。

高負荷時と比較して CPU 使用率は 1/5以下 になりましたが

GPU の温度は高負荷時と同じくらい高かったです。

また、メモリクロックは 初期値 950MHz が最も安定していて

画面のチラツキや、画面の横割れが最も少なかったです。


judas chrome







② 次に、旧バージョンの Firefox で再生しました。

Flash Player と高度な連携をし始める直前の、とても動作が安定したバージョンです。



Firefox : version 17.0.1

Flash Player : version 10.3.183.86



CPU 使用率は chrome と変わりませんが

GPU が働いていないところを見ると

ハードウェア・アクセラレーションは運転してないです。

映像品質では chrome に負けていますが、動作は安定しています。


judas ff







<実験結果.3>

chromeFirefoxCPU 使用率に差がなかった

・動画の重さの理論値と CPU 使用率は比例した

chrome の ハードウェア・アクセラレーションにおいて

GPU の温度は、動画の重さに依存しなかった







【6. 結論】

ハードウェア・アクセラレーションで映像品質は良くなりましたが

GPU は、危険なレベルに高温になりました。



そこで、GPU の温度を下げるために 3つの方法がありました。

                          ・ハードウェア・アクセラレーションをオフ

                          ・GPUクロック、メモリクロックを下げる

                          ・ファンのスピードを上げて固定



このうち、映像品質を保ったまま温度を下げる方法は

「ファンのスピードを上げて固定」のみでした。

今回の実験中、一度もブルースクリーンにならなかった理由は

「グラボのファンのスピードを40%で固定したから」 と考えられます。



なお、ファンのスピードを 3545% の間に振っても

冷却効果に大差なかったので

最終的に、少し音の小さい 35% を選びました。



【7. 考察】


グラボのファンのスピードの自動設定は

いつ、何の温度をフィードバックしているのか不明です。

GPU がイレギュラーに高温になったときに

適切に冷却できているかどうかわかりません。



どうしても、chrome で 高画質の動画を見たいときは

GPU の温度が上がりきらない 数分間だけ見ることで

ブルースクリーンを予防できると思います。



また、アメーバピグ などの Flashゲームは

ハードウェア・アクセラレーションのほうが滑らかに動くのですが

ゲーム進行中の画面上の変化により

突発的に、GPU 温度が上がることもあるので

高負荷をかけないように低・中画質にすると

ブルースクリーンを予防できると思います。



最後まで読んで下さり、ありがとうございました。

長文失礼いたしました。




<参考ブログ>

以下のブログでは、nVIDIA製のグラボについても記載されています。

>>Amebaマイページ表示でOSごとフリーズ!(Firefox)