半導体メモリーの誤り訂正に関する仕様も、耐久性を評価するときの重要な検討項目といえる。たとえば、SLC NAND型フラッシュは、1ビットのECCで10万回の書き換えを実行できる。誤り訂正アルゴリズムが優れているほどパフォーマンスが向上する。大半のフラッシュカードには2ビットから4ビットのECCアルゴリズムが採用されており、一部の産業用半導体ストレージシステムには最高6ビットのECCが使用されている。「2ビット」、「4ビット」、「6ビット」という言葉は、512バイトセクター内のバイトを表すため若干紛らわしい。たとえば、6ビットのECCは、512バイトセクター内の6バイトのデータを訂正できる機能である。1バイト=8ビットであるから、6ビットECCを搭載したシステムは、同一セクター内の6バイト以内に収まっているかぎりは48ビットを訂正できる。2ビットおよび4ビットECCの定義もこれと同じである。
コントローラが訂正できるセクターごとのバイト数は、ストレージシステム全体の耐久性と直接比例しない。NAND型フラッシュのビットエラーレートは一定ではないからだ。実際、3ビットのエラーが発生する確率の方が7ビットのエラーが発生する確率よりもはるかに高いため、6ビットECCの許容範囲は2ビットECCの3倍をはるかに超える。
次の式をもとに、1つのアプリケーションに使用される半導体ストレージシステムの寿命をある程度測定できる。これらの計算式が役立つのは、動的または静的な劣化レベル均一化機能を使用する製品に限られる。劣化レベル均一化機能がない製品については半導体メモリーの仕様を参照して欲しい。製品の予想寿命を計算するには次の式を使用する。
αはメガバイト単位の容量、βはメガバイト単位の静的データ量、λはブロックレベルの耐久性仕様、φはセーフティマージン、ωはメガバイト単位のファイルサイズ、ζは1分あたりのファイルサイズωの書き込み回数、kは1年あたりの分数を表す。αの計算でギガバイトからメガバイトに変換するには、メガバイト=ギガバイト×1024とする。静的データ量βは、動的な劣化レベル均一化アルゴリズムを使用するカードでのみ計算する必要がある。静的な劣化レベル均一化では、この値をゼロとする。
ブロックレベルの耐久性λについては、ベンダーが主張する寿命ではなく、製品の本当の耐久性を知ることが重要である。部品ベンダーのデータシートに記載されている数値ではなく、ストレージプロバイダからブロックレベルの仕様を直接入手すべきだ。そしてカードやシステムの耐久性ではなく、ブロックレベルでの耐久性に基づいて計算する必要がある。多くのベンダーはカードレベルでの耐久性を記載しているため、この変数には正しい値を使用するよう注意しなくてはならない。ユーザー定義のセーフティマージンφは、確信がもてるデータ処理回数に基づいて決定する。ファイルサイズωは、メガバイト数=キロバイト数/1024として、メガバイトからキロバイトに変換する。1年あたりの分数kは、60分/時間×24時間/日×365日/年=52万5600とする。
データ処理回数の計算には次の式を使用する。
この式に使用されている記号の意味は、寿命の計算に使用したものとすべて同じである。
半導体ストレージメーカーとフラッシュカードプロバイダの競争がやむことはなく、設計者は今後も難しい選択に迫られるだろう。産業用電子機器用途と民生機器用途では要件が違うため、フラッシュカードのサプライヤと半導体ストレージの開発メーカーを区別することが重要である。
メディアのタイプに基づいて半導体ストレージシステムを評価することは重要だが、それだけでは不十分だ。メディアをサポートするコントローラの機能はもっと重要である。さらに、劣化レベル均一化機能とECCの使用が、半導体ストレージシステムの信頼性と寿命に著しい影響を及ぼす。これらの要因をすべて検討することで、最終的にアプリケーションに最適な製品を選択できるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.