メモリのECC機能って何?
内部データ破損の検出と修正ってどうしているの?
そもそも、なぜ内部データ破損が起きるのか。
と疑問に思っている方に向けて解説していきます。
ECC機能でデータ破損の検出と修正ができる。
メモリのECCとは、Error check and correct memoryの略で、メモリのエラー内容を自動でチェックして、必要であれば修正することができる機能のことです。
データの破損と書きましたが、具体的にはメモリ内のbitが反転するという現象が発生します。
この機能によりメモリエラーによる1bitの反転を検出し、値を修正することができます。
また、2bitの反転を検出することができます。(値を修正することはできません)
主に、サーバーや重要な基幹システムを載せているような重要な位置づけのパソコンを使う場合にECC機能付きのメモリが必要になってきます。
エラーを最小限にしたい場合や、誤りがあってはいけない重要なデータを扱う場合ですね。
例えば、銀行の預金データ、データーセンター、決済システムなどがあります。
お金やお客から預かっているデータを扱う場合、絶対にデータを破損させるわけにはいきません。
たった1bit反転するだけで金額がとてつもない大きな数字、あるいは、小さな数字へと変わる可能性もあります。
それでは安心してシステムを利用できませんよね。
ECC機能付きのメモリを利用することで、データ破損の検出・修正をすることにより、データの信頼性を高めることができます。
お金を扱うような重要なシステムに必要な機能なので、普段使いでビジネス用途やゲーム・動画編集などの趣味用途のレベルでは不要な機能と言えるでしょう。
そもそも、なぜデータ破損が発生するのか。
では、なぜデータ破損が発生するのか、その原因について解説します。
原因は、次の2通りがあります。
- ハードウェアによるエラー
- ソフトウェアによるエラー
ハードウェアのエラーは、電圧の負荷、低温、あるいは高温環境での温度の負荷、各種パーツの経年劣化などの物理的な要因によって発生するエラーです。
一方でソフトウェアのエラーは、放射線、宇宙線に含まれる中性子によって、1つ、あるいは1つ以上のメモリのビットを反転してしまうエラーです。
メモリは、CPU、ストレージなどに様々なパーツにあるので、影響はメインメモリだけに留まりません。
ハードウェアのエラーは、パーツ交換や温度管理などによってある程度緩和できるような気がしますが、ソフトウェアのエラーの原因である放射線・宇宙線に関しては、どうにもできませんね。(笑)
ソフトウェアエラーについては、事前の対策でメモリエラーを防ぐということができないので、発生した際にどのように検知して、修正するのかという観点から考えられたのがECC機能というわけです。
まとめ:ECC機能でデータの信頼性は上がるが、一般人には不要。
メモリのECC機能について一通り解説しました。
解説した通り、重要なデータを扱う金融系のシステムやデータセンターなどには必要な機能になってきますが、一般的なビジネス用途やゲーム・動画編集などの趣味用途では、必要のない機能です。