メモリーエラー

事象

Ver0042から0045へのBIOSアップデート後、ゲームの描画品質を「High」にしているとメモリー不足という警告が表示されていたため、BIOSの設定を変更してみました。
設定を保存後に起動が始まるはずが、起動しません。

以下の状態でした。

  • 電源ボタンのランプがしばらくして点灯から点滅に変わり、3回点滅をしたのち消灯を繰り返し
  • NUCのロゴが表示されない
  • BIOSセットアップメニューが起動できない
  • キーボードのLock,caps,scrollの3つのランプが点灯のまま

これは、どうやらPower On Self Test(POST)のかなり早い段階でエラーになっているようです。

インテル®ネクスト・ユニット・オブ・コンピューティングの点滅コードとビープコードからメモリーエラーの可能性があります。
上記の状態からもメモリーエラーの可能性が高いと思います。

原因

BIOSの設定にてVideo設定のIntel Graphics Deviceの項目の次の2か所を変更したためでした。

  • IGD Minimum Memory (64MB→1GB)
  • IGD Aperture Size(256MB→1024MB)

この変更により、BIOS処理中に使用するメモリマップが変更され、何らかの処理で使用しているプログラム上で扱える制限を超えてしまってメモリーエラーになるのかと推測します。

対処

CMOSクリア

BIOSの設定を初期値にすればよさそうです。
最初に思いつくのがCMOSクリアです。

CMOSクリアの方法はいろいろあります。

  • マザーボード用の電池を抜く
  • CMOSクリア用端子をショートまたは専用ボタン

実際はマザーボードによって異なります。

NUC7i3BNKの場合は、どうすればよいのかわからなかったので調査しました。
結果、1番の方法で可能らしいです。

  1. 電源ボタンを3秒以上長押しし、電源メニューを表示する
    • BIOSセットアップメニューを起動し、F9で工場出荷状態をロードして、保存。
  2. BIOS SECジャンパの2番と3番をショート(通常は1番と2番がショート)

2番の方法は1番の方法に対応していないデバイス用です。

今回は1番を試してみましたが、全然うまくいかず電源メニューが表示できないため2番の方法を試しました。
しかし、2番の方法でもダメなようです。CMOSクリアがされれば事象は改善するはずですので、改善しないということはCMOSクリアができていないのでしょう。

BIOSのダウングレード

BIOSプログラムをダウングレードすればもしかすると値がリセットされるのではないかということで、0045から0042へダウングレードしました。

ダウングレードの方法はアップグレードの方法と同じですが、あまりやらないほうがよいです。
今回は仕方がないのでダウングレードしました。

BIOSリカバリアップグレードの方法で行いましたが、この手順でも電源メニューを表示できないとダメなはずですが、以下、手順でダウングレードできました。

  1. 電源OFF
  2. USBメモリを挿入
    • アップグレードしたいBIOSプログラム(BN0042.bio)が保存されたUSBメモリ
  3. 電源ボタンを3秒以上長押し
    • 失敗したときは電源ランプが上記と同じように点滅するので成功するまで1~3番を再実行
    • 成功すれば電源メニューは表示されずそのまま4番へ
  4. BIOSアップデートが開始
    • アップデートの進捗が画面に表示されます。
    • 完了すると5番へ
  5. 自動で電源OFF
  6. 電源ボタンを3秒以上長押し
    • 電源ボタンがオレンジ色に変わったら手を放します。
  7. 電源メニューが表示される
    • F2を選択してBIOS設定を確認
    • Video設定が初期値になっているのを確認し、値を変更
      • IGD Minimum Memory (64MB→128MB)
      • IGD Aperture Size(256MB→そのまま)
    • 変更を保存して終了
  8. PCが正常に起動

対策

対策というか今回は正しい知識がないために、やらなくてよい設定変更を行い、自らトラブルを招いてしまいました。
選択可能なサイズだからといって正常に動作するとは限らないようです。
特にAperture Sizeに関しては特別な理由がない限りは変更しないほうがよさそうです。

描画品質を上げるとメモリー不足だというメッセージが出力される場合、どうするのが正解なのか?

BIOSのVideo設定にあるIGDの項目ですが、選択可能なサイズは搭載したシステムメモリ(物理メモリ)のサイズで左右されます。
それについてはBIOS設定用語集(英文)に記載がありますので参考にしてください。

また、Windows 10の場合はOS側でダイナミック(動的)に調整するのであまり意味がないようです。

ディスプレイアダプターのプロパティ



ディスプレイアダプターのプロパティ
Windows 10でビデオメモリに使用可能な最大メモリサイズは、システムメモリの50%までらしいです。

インテルHDグラフィックコントロールパネル

インテルHDグラフィックコントロールパネル

オプションとサポート

インテルHDグラフィックコントロールパネル-オプションとサポート

ドライバ設定には最大メモリサイズの表示はありません。
これまで同様に、ゲームなどのアプリケーションで実際に使われる描画設定に関する項目は、インテルHDグラフィックコントロールパネルのビデオや3Dにある設定(ドライバ設定)とアプリ個別の設定(アプリ側の設定)でチューニングすればよいはずです。

描画品質を上げるとメモリー不足だというメッセージが出力される場合、どう対応するのが正解なのか?
Windows 10がメモリスペースを制御してくれているので、使用可能なビデオメモリサイズを増やすには単純にシステムメモリを増やすのが一番効果がありそうです。
現在、8GBのメモリモジュール1枚差しなので、8GBモジュールをもう1枚追加しDual-Channelになる点で効果があり無駄にはなりません。

今回の件に限定すれば、システムメモリが増え余裕があればビデオメモリへの配分も増えるという考えですが、増えた情報量を素早く処理できるだけの計算性能がなければ次の問題が発生しそうです。
そうなるとIntel HD Graphics 620の性能の限界という話にもなります。

メッセージは警告なので、無視していればWindows 10がそのうちビデオメモリに優先的にサイズを割り振りなおしてくれないものだろうかと安易に考えてしまいます。