- HOME
- 法人様向けお役立ちコンテンツ
- ECCメモリとは?必要性や利用時の注意点
ECCメモリとは?必要性や利用時の注意点
近年、企業によるDX(デジタルトランスフォーメーション)推進の加速化や、研究機関におけるAI学習において長時間計算が必要となる場面が増えています。このような状況下でサーバー停止確率の低減に有効になるのがECCメモリです。
本記事では、ECCメモリの概要や特徴、必要性と利用する際の注意点などについてお伝えしていきます。
目次
目次
ECCメモリとは
1つのビット反転によるエラーを検出し訂正できる
ECCはError Checking and Correctingの略で、直訳すると「誤り訂正符号」です。メモリで発生する1つのビット反転によるエラーを検出し訂正できるメモリということです。
ECCメモリの仕組み
次にECCメモリの仕組みについてご説明します。
まず、データを記録する際にビット反転を検証するために利用する「検査ビット」を計算しておきます。それを「情報ビット」と呼ばれる実際のデータとともにメモリ上に保存。これらをハミング符号といいます。
その後、記録したデータを読み出す際に、検査ビットと照らし合わせ、データが正しく読み出せているかを検証し、反転したデータがあれば訂正をします。 このことから、検査ビットを保存しておく分だけ多くのメモリを搭載していることが一般的です。
メモリスクラビング
ECCメモリはいつでもエラーを検出できるわけではなく、対象のメモリ上のデータが参照された時しかエラーを検出できません。そのためメモリ上のデータが参照されないまま2ビット以上が反転してしまうとエラーが検出できなくなるという問題があります。
その問題を防ぐ仕組みが「メモリスクラビング」です。スクラビングとは、直訳すると「磨く」という意味で、定期的にメモリ内の全データを参照し、エラーが発生していないかをチェックします。その動作は、まさにメモリを磨くような動きです。
大容量のメモリを使用しているシステムでは、長時間参照されなくなるメモリ領域が少なからず出てきます。2ビット以上の反転を防止するためにメモリスクラビングは非常に有効な仕組みなのです。
非ECCメモリとの違い
ECCメモリは、そのエラー検出・訂正機能からより信頼性を求められるサーバーやワークステーションなどで多く用いられます。特に前述した常時稼働の必要があるサーバーや、科学技術計算用のワークステーションにてECCメモリが多く採用されています。
価格については、ECC対応メモリがECC非対応のメモリに比べて高価です。
ECCメモリと非ECCメモリの見分け方
ECCメモリ対応かどうかを見分けるには、基盤のメモリチップ数を確認します。黒四角のメモリチップが9つあればECCメモリ、8つならば非ECCメモリです。
ECCメモリの必要性
24時間フル稼働が必要なサーバー向けのPCや、科学技術分野の研究上必要となる大規模な計算・シミュレーションなど、メモリエラーに起因するサーバー停止を防ぐなどの用途に有効です。
メモリエラーの頻度
メモリエラーの頻度については、2009年時点の Googleのレポートによると、Googleのサーバー3台に1台ほどで、1年当たり1回の訂正可能なメモリエラーが発生し、100台に1台で1回の訂正不可能なエラーが発生するという記載があります。訂正不可能なエラーが発生するとサーバーはクラッシュし、多くの場合は動作が停止してしまうのです。
メモリにエラーが発生する原因
メモリにエラーが起きる原因は主に下記の2つです。
- 高温・低温の環境や経年劣化などの影響
- 放射線や宇宙線などの影響
放射線や宇宙線の影響については、標高や太陽の活動周期などによってECCエラーの回数が増える可能性を示唆しています。
常時稼働・大規模計算などはECCメモリが活躍
レポートをもとに試算すると、ECC機能なしのメモリを使っている場合はエラーが訂正できないため、年に1回、1/3のサーバーがクラッシュするということになります。24時間365日の稼働が必要なサーバーや、時間がかかる計算を実施するため途中で止まってほしくないサーバーなどは、ECCメモリを使うべきです。
ECCメモリが不要なケース
ECCメモリは信頼性が求められるシステムには必要ですが、一般的なビジネス用途やゲーム・動画編集など、信頼性が特に求められない用途では不要です。またECCメモリは高価なため、機器の購入価格を抑えたい場合は避けましょう。
ECCメモリを使う場合の注意点
CPU、チップセット、メモリをすべてECC対応に
ECC対応メモリを使う場合は、CPU、チップセット、メモリを全てECC対応のものにする必要があります。また、ECCメモリは非ECCメモリよりも高価であり、複数枚使用すると相応の価格差になってしまいますので注意しましょう。
ECCメモリに対応したCPUには例えば、IntelのXeonがあります。主にワークステーションや業務用サーバー向けに販売されているCPUです。Xeonについて詳しくは「Xeon®(ジーオン)とは。Core i7、i9との違い」をご覧ください。
ECCメモリと非ECCメモリに互換性はない
またECCメモリと非ECCメモリの互換性はないため、マザーボード上でECCメモリと非ECCメモリを組み合わせて使用することはできません。ECCメモリ対応のマザーボード上で非ECCメモリを使用したい場合は、非ECCメモリが使用できるかどうかを確かめて、ECC機能を無効化したうえで使用しましょう。
混在での使用は非推奨
マザーボードによってはECCメモリと非ECCメモリを組み合わせても動く場合がありますが、互換性は存在せず、またマザーボードのメーカーではECCメモリと非ECCメモリの組み合わせに対して動作保証していないことが多いため、両者を混在させての使用は避けましょう。
ECCは計算結果には影響がない
メモリがECCに対応していても、コンピューターの計算結果は変わりません。ECCはあくまでメモリエラーを防ぐための機能で、コンピューターの計算には影響を与えないことが確認されています。
ECCメモリのエラーログについて
確認には取得のためのソフトウェア・ハードウェアが必要
メモリエラーが発生して、エラーの発生状況やエラーの詳細内容を知るには、エラーログを取得するためのソフトウェアやハードウェアが必要です。
Linuxの場合
OSの1種であるLinuxの場合、カーネルモジュールであるEDACモジュールや、mcelogツールなどでメモリエラーのログを取得できます。BMCと呼ばれる専用チップを搭載しているコンピューターはハードウェア側でもエラーログを取得できます。
ECCメモリのエラーログを取得することは、ハードウェアエラーの検出やビット反転の検出などのためにも重要です。特にあるメモリアドレス上で継続的にエラーが発生している場合は、メモリに物理的な故障が発生している可能性が高いでしょう。
ECCメモリ搭載ワークステーション/サーバーを販売中!
当社ではECC対応メモリ搭載モデルのワークステーション・サーバーも多数取り扱っています。
受注仕様生産(CTO)でご希望のハードウェアを生産
また、Linux OSなども受注仕様生産で対応可能です。まずはお気軽にご相談ください。
まとめ
ECCメモリは、メモリ上で発生したシングルビットエラーを検出・訂正できるメモリです。停止を極力少なくしたいサーバーにECCメモリを使用すると有効ですが、CPU、チップセット、メモリを全てECC対応のものにする必要があり、購入時には合計金額が高くなってしまいます。
一般的なパソコンには、研究目的レベル、産業用途レベルの信頼性は求められないため、ECCメモリは不要です。ECCメモリの特性を理解して、必要な場合は有効に活用していきましょう。