川獺の外部記憶

なんでも残しておく闇鍋みたいな備忘録

DDR5とECCについて調べた

デスクトップPCやサーバに積む前提で調べたので備忘録に。

調べたかったこと

DDR5のOn-die ECCは従来のECCの代用になるのか否かについての調査です。

調べた結果

家庭用なら代用可能と考えます。

詳細は以下から。(乱文ですが…)

調べる前の知識

DDR4メモリには主に3種類

  • Non-ECC Unbufferd
  • ECC Unbuffered
  • ECC Registered

ECCメモリとCPUの関係

ECCメモリは必要?

参考:Linuxを生み出したリーナス・トーバルズがIntelを厳しく批判、理由は「ECCメモリを死に至らせているから」 - GIGAZINE

大容量を積んだシステムでは必要に感じています。16GB程度でも「これメモリが原因では?」という不具合が増えてきました。

そもそもECCとはなにか:従来のホストECC

PCクラスタ、1Uサーバ、スケーラブルインフラ、HA、HPCクラスタリング、Linuxのクラスターコンピューティング株式会社 - ECCメモリについて

メモリには日常的にエラーが発生する可能性があり、このエラーにはソフトエラーとハードエラーの二種類があります。今回はソフトエラーに着目しました。

ソフトエラーはメモリ上においたデータが気づかないうちに化けてしまう現象。ハードが正常でも中性子線などの影響で発生するらしく、確率的影響のようです。

この確率的影響により化けてしまったデータを、1bitであれば訂正できるのが従来のECCの機能。HDDでいうところのRAID5と原理はざっくり似ているみたいです。
具体的には64bitあたり8bitのパリティビットを付与したハミング符号により誤り訂正能力を保有しています。

動作する単位は64bitブロックであり、128bitのデータの中に2bitエラーがあっても前半の64bitブロックと後半の64bitブロックに散らばっていれば両方訂正できます。

訂正のタイミングは化けてしまったbitに読みに行ったタイミング。なのであまり頻繁に読まれないデータが1bitずつ化けていってしまったら、気づかないうちに訂正不可になってしまう場合もあります。

これをアクセスがなくても定期的に読みに行ってやることで解決するのがメモリスクラビングという機能。(これはECCに関係なくBIOS側の機能なのかな?)

DDR5に盛り込まれる On-die ECC の原理

メモリ基本講座「DDR5とは何ぞや?(2) ~DDR5の新機能~」|TECHブログ | 株式会社PALTEK
(直接規格に当たっていないのはご愛嬌…)

DDR5のOn-die ECCも従来のECCとほぼ同じですが、違いとして符号化に際してのパリティ容量が半分になっており、128bitあたりで8パリティビットとなっています。

また、メモリスクラビング機能についても規格でサポートしています。

Registered について

多くのメモリスロットを持つワークステーションでは必要になってくる機能。DDR5のECCでは緩和しきれない気がしますが、個人的にメモリスロットの数で容量を稼ごうとはしていないので調べるのはパスしました。

結論

DDR5のOn-die ECCは従来のECCと比べて(家庭用では)謙遜なく利用できると結論づけました。パリティビットが少ない点が気になりますので、この点については気が向いたときにでも追加調査してみます。