ECC メモリと非 ECC メモリとは?
多くの企業にとって、データの破損をなくすことはミッションクリティカルであり、それはECC(エラー訂正コード)メモリーが支持される最大の目的です。一般にECCメモリは、非ECCメモリと異なり、誤り訂正符号を用いてメモリデータの訂正を行います。
エラーの原因とは
ECC メモリと非 ecc メモリを解説する前に、メモリ・エラーの原因を見つけましょう。エラーには大きく分けてメモリーエラーとユニットエラーの2種類があります。
メモリー・エラーは、コンピューター内部の電気的・磁気的な干渉により、DRAM(ダイナミック・ランダム・アクセス・メモリー)が自発的に逆の状態に変化してしまうことがあります。電気的・磁気的な干渉は背景放射として存在し、高度が高くなるにつれて干渉は大きくなり、高いエラーレートの影響を受けやすいです。
ユニットエラーは、データオクテット(2進数の1または0)の1ビットが、意識せずに逆の値に変化してしまうことです。ユニットエラーは微妙に発生し、データにはほとんど影響を与えませんが、メモリセルには相関関係があるため、1ビットの変化の影響がシステム全体に広がってしまいます。
また、ユニットエラーには、ハードエラーとソフトエラーがある。ハードエラーは、電圧、衝撃、温度変化など物理的な要因がほとんどです。ソフトエラーは、サーバーのRAMに想定外のデータが書き込まれること、またはそれによって破損が引き起こされます。
ECC メモリと非 ECC メモリとは
ECC メモリと非 ECC メモリとは ECC メモリとは、潜在的な脅威からシステムを保護するために、コンピューターもメインメモリ(RAM)に用いるメモリの一種です。主な仕様はサーバーRAMに9番目のコンピューターチップを追加することで、データの誤りを検知したり訂正することができます。
非ECCメモリとは、コンピュータのメインメモリ(RAM)に用いるメモリモジュールの種類の一つで、8個のチップしかなく、データ転送時の誤り訂正符号の算出・記録に対応していないものです。
ECC メモリの仕組みとは
ECC メモリのエラー検出方法はパリティです。パリティとは通常のデータにエラー訂正用のパリティを付け加える誤り検出に用いられる技術の一種です。例えば、通常のメモリでは8ビットのデータにつき1ビットのパリティを加えて合計が偶数になるようにします。
データ
|
パリティ | 合計 | ||||||||
ビット
|
0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
偶数
|
もし1つエラーが発生してそのビットが反転したとすると、合計が奇数となることで、エラーが発生したことが分かります。
データ
|
パリティ | 合計 | ||||||||
ビット |
1
|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
奇数
|
しかし、パリティはエラーが発見できても修復ができない点、また、同時に2つ以上のエラーが発生した場合はエラーの数が偶数だと発見できないという欠点があります。
したがって、ECCメモリはパリティの欠点を補足して、垂直パリティと水平パリティを組み合わせることで、1つのエラーが発生した場合が修復ができ、2つ以上偶数で発生しても高い確率で発見することができます。
データ
|
パリティ
|
合計
|
||||||||
データ
|
1
|
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 偶数 |
1
|
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 偶数 | |
1
|
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 偶数 | |
0
|
0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 偶数 | |
0
|
1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 偶数 | |
0
|
0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 偶数 | |
1
|
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 偶数 | |
1
|
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 偶数 | |
パリティ |
1
|
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 偶数 |
合計 |
偶数
|
偶数 | 偶数 | 偶数 | 偶数 | 偶数 | 偶数 | 偶数 | 偶数 |
偶数
|
ECC メモリと非 ECC メモリ:メリット・デメリットとは
ECC メモリーをサーバー(製品カタログ)に適用すると、メモリーデータを監視し、タイムリーにエラーを修正することができます。特にコンピュータ・アプリケーションや科学・金融業界のサーバーなど、メモリ・データの破損に耐えられないデバイスにおいて、クラッシュの数を幾分減らすことができます。また、誤り検出訂正により、データの整合性を維持し、システムの安定性を高めることができます。そのため、データセンターでは、ECCは非 ECC メモリよりも信頼性が高いのです。
しかし、非 ECC メモリと比較すると、ECC メモリはメモリチップを追加し、複雑化するため、より高価になります。また、すべてのコンピューターにECC メモリーが必要なわけではありません。重要で複雑な作業環境では、サーバーやワークステーションのマザーボードにECC メモリーを搭載する必要がある場合もあります。さらに、読み出し速度の点でも、データの誤りを検出するに時間がかかるため、ECC メモリーは非 ECC メモリーより2%ほどわずかに遅くなります。
ECC メモリと非 ECC メモリ:どっちがいい
ECC メモリと非 ECC メモリはどちらが優れているかという絶対的な判断基準はなく、環境に応じた対応が必要です。
金融業界では、データのコーディングミスや破損を引き起こし、金融ビジネスに直接影響を与える可能性があります。また、医療業界では、データが正しくマッチングされず、重大な結果を招くことがあります。
そのため、金融業界や医療業界など、重要なデータに関わる業界であれば、データセンター・サーバーにECCメモリーを構成することを検討しなければなりません。
普通のPCユーザーや、大きなプロジェクトでミッションクリティカルな機器を使う予定がなければ、非 ECC メモリを選べばいいのです。