カテゴリ:ソフト開発日誌
今更ながら DDR3 DIMM を使っているマザーボードで PassMark Memtest86 によるテストをしていた。黄色で PASS と表示された。
![]() テスト途中の経過表示も "[Note] RAM may be vulnerable to high frequency row hammer bit flips" と留意事項が表示されている。 ![]() 「隣接行線叩きテストにてビット反転」が発生するということか。row hammer bit flips について PassMark は解説記事を用意してある。
文書を読むと "Errors occur when the repeated access causes charge loss in a memory cell, before the cell contents can be refreshed at the next DRAM refresh interval." と有り、Refresh Timming を調整すれば解消する可能性を示唆している。記憶セルの残留電荷量が識別できないほどに減ったときに隣接行線を叩く(正確な言い方をすれば、隣接行線で read/write cycle 信号操作をする)と発生する問題だ。隣接行線から(へ)電荷が漏れる。 Refresh Timming を調整する。BIOS (今時は UEFI) Setup を行う。狙ったタイミングになる様に D-RAM bus 周波数を安全な周波数に固定する。搭載メモリは DDR3-1333 が最も低い仕様だ。これを下回る DDR3-1066 を設定する。 ![]() より詳細な DRAM Timing を設定する。 ![]() DRAM REF Cycle Time をデフォルトの値 x 1.35 程度に増やし、DRAM Refresh Interval をデフォルトの値 x 0.69 程度に減らす。 大昔に TTL で回路を考えていた癖で設定値はなるべく 0 が多めに並ぶ様な値にした。144 は 8 bit 中 6 bit が 0 だ。今時はカウンタ出力に全ビット比較一致可能なコンパレータが付くはずなので、いわゆる「綺麗な」値にしなくても良いはず。 ![]() BIOS (UEFI) Setup を保存して、再び PassMark Memtest86 を実行する。修正効果があり、緑色の PASS になった。 ![]() メモリバンド幅は 15.6GB/s から 12.8GB/s に減少、スループットは 666MT/s から 532MT/s へ減少、設定した通りに減っている。周波数を下げたのと 1 回の Refresh に使う時間を長くし、Refresh を行う間隔を短くしたためだ。高頻度に隣接行線を叩けなくする効果もある。Refresh Cycle は優先度が高いので CPU が高頻度に叩こうとするのを防ぐ。 メモリを捨てるなんてとんでもない。 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2025.03.30 02:08:02
コメント(0) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事
|
|