そのPC、メモリを4GB以上積んでいませんか?4GBを超えたメモリは抜いておきましょう。
※つい最近そういう事例に当たってさんざん悩んだので書いておく。以下ChatGPT先生の解説。
原因の正体:「32bitのアドレス空間制限」と「メモリマッピングの衝突」
🧠 1. 32bit OSのアドレス空間の上限
- 32bitのWindowsでは、扱えるアドレスは最大 4GB = 2^32。
- しかし実際には OSが使えるのは 最大約3.2GB 程度(残りはハードウェア用に予約)。
⚠️ 2. VRAM・BIOS・PCIeデバイスの予約領域
- GPUのVRAM(例: 4GB)やPCIe周辺機器などは、物理メモリ空間に“マッピング”される。
- 多くの場合、上位1GB程度がこの用途に使われる。
luaコピーする編集する物理アドレスの衝突イメージ(32bit OS):
0x00000000 ----------------------→ 3GB … 通常メモリ
0xC0000000 ----------------------→ 4GB … VRAM/BIOS/PCIe
このマッピングにより、RAMが物理的に16GBあっても、OSからは見えない。それ自体は正常です。
🔥 3. ドライバが誤って使えないアドレスにアクセス
Pascal系のGPUドライバ(GTX 1050 Tiなど)は主に64bit OS向けに最適化されているため、32bit環境で大量のRAMがあると:
- VRAMのマッピング先がRAM領域と衝突
- ドライバが DMA/メモリアクセスを試みる → 実際はアクセス不可領域
- 結果:STOP 0x0000008E (0xC0000005)、nvlddmkm.sys がクラッシュ