以前からゲーム中などにPCが突然再起動し、再起動後にVGAのドライバが正しく読み込まれず、”The Version of AMD Radeon Software…”というエラーが発生する現象が起きていました。
VGAのドライバが読めなくなるので再起動の原因も恐らくVGA周りだろうと思って原因究明についてはそこまでしっかりと行っていなかったのですが、先日Windowsのイベントログを眺めていたところ、このエラーが起きたときに”イベントID:18 WHEA-LOGGER エラーの種類:Cache Hierarchy Error”というエラーが記録されていることに気がつきました。
Cache Hierarchy Errorについて
イベントログの種類だけでは何のエラーなのかよく分からなかったので調べてみました。エラーの名前自体を直訳すると”キャッシュ階層エラー”になるので、恐らくCPUのキャッシュ階層(レジスタ→L1→L2→L3…)に関するエラーなのだろうなと言うところは推測できました。
その上でネット上を検索してみたのですが、なんとなく以下の傾向がつかめました。
- 5000系Ryzenの報告例が多い(特に5950X)
- CPUの電圧変動に起因するものという指摘が多い
対処法
仮説として多く指摘されており、自分としても納得できたのは以下の説です。
【仮説】
5000系RyzenはPBOにより自動オーバークロックする。オーバークロック時にCPUのクロック上昇が先行し、電圧が瞬間的に不足するタイミングがある。これを防ぐためにマザーボードは電圧を補正して供給する機能を備えているが、その機能の効き目が弱かった場合にCPUが電圧不足になりクラッシュする。
【対処法】
上記の仮説に従えば、以下の3種類の対処法が考えられます。
- マザーボードのLLC(Load Line Calibration)設定を変更し、クロック変動時の電圧補正を強めにする
- CPUの自動オーバークロックを停止し、クロック固定で使う
- そもそもこのエラーが起きるCPUは初期不良の疑いがあるので交換する
自分の環境での対処
今回私は一番簡単に実行できるLLC設定の変更を行ってみました。私の使っているASUS ROG Strix X570-Fの場合、LLCの設定はUEFIを開いて AI Tweaker→DIGI+VRM→CPU Load-line Calibrarion で行います。結構深いところに設定があります。
デフォルトでここはAutoになっていますが、手動でLevel1-Level5に設定できます。Levelが低いほど補正が強くなるため、動作安定性という点では高くした方が良さそうに思いますが、同時に高負荷時の消費電力も大きくなるために一概に高くした方がいいというものでもないようです。
Autoの場合内部的にどのような設定になっているのかが分かりませんが、基本的にはレベルの高い方から始めて、動作が不安定なようなら徐々にレベルを1に近づけていくのが良いようです。今回私はいったんレベル4に設定してみて様子を見ています。
その他気になること
Redditなどを見ているとRMA(返品保証)一択という意見を述べている方も結構たくさんいらっしゃいました。確かにネット上の情報だけを見ると5950Xと5800Xの報告例が多いので、特定の製品や特定のロットに何らかの不良が集中していてもおかしくないような感じはあります。
今回原因の推定を行っていて思いましたが、昨今のCPUはいろいろなことがお任せ設定でできるようになった反面、このようにトラブルが起きる要因が増えている感もあります。基本的に自動でできるようになったのはラクで良いことだと思うのですが、内部的には複雑さが増しているというのは認識しておいた方が良いことだとは思います。