雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
2006.4
半導体ストレージの耐久性評価
――書き換え回数を正確に見積もる

半導体ストレージの性能測定法はサプライヤによって異なる。どの製品がユーザーの電子機器に適しているかはすぐには判断できない。選択に時間がかかるのも不思議ではない。
Gary Drossel 米SiliconSystems社
Advertisement
 半導体ストレージを使用する設計者は、その信頼性を正確に評価できる基準を必要としている。耐久性はそのような基準の1つであり、これを正確に評価できれば正しい選択も可能になる。「耐久性」は、製品が損耗するまでの書き換え可能回数で評価できるだろう。しかしそれだけではない。製品の耐久性は、メディアとコントローラ技術の組み合わせで初めて決定されるものだ。たとえば、磁気メディアはNAND型フラッシュよりも信頼性の点で劣るが、ハードディスクのコントローラ技術でこの欠点を十分にカバーできる。
 書き換え可能な回数に基づいた耐久性だけを見ても、その測定方法はベンダーによってまちまちである。物理ブロックレベルの仕様を定義しているベンダーもあれば論理ブロックレベルとしているベンダーもあり、かと思えばカードレベルやドライブレベルで定義しているベンダーもある。耐久性はデータの記録能力とも関係するため、データ保持要件が低いほど耐久性は高くなる。つまり、データシートに記載されている書き換え可能な回数を見ただけで、耐久性を比較することは非常に困難だ。
 耐久性を厳密に評価するには、ストレージメディアのタイプ、劣化レベル均一化(wear-leveling)アルゴリズム、誤り訂正機能、の3つの観点で比較する必要がある。使用可能な予備セクターの容量や、ストレージデバイスがファイルシステムと論理ブロック直接アドレッシングのどちらを使用して書き込みを行うかといったことも耐久性を左右する。しかしこれらの要素は、全体的な耐久性の一端を担っているかもしれないが、測定結果の値に占める影響は、先の3つの基準による影響に比べるとはるかに小さい。


ストレージメディアのタイプ

 適切な半導体ストレージメディアを選ぶための最初のステップは、NOR型フラッシュとNAND型フラッシュを含めたメディアタイプの比較である。現在のNOR技術は、携帯電話機などのチップオンボードアプリケーションに実装されているケースがほとんどだ。これらのアプリケーションはNOR型を採用することで、XIP(execute-in-place)、ブート、データストレージの機能を1つのチップで実現している。不揮発性半導体ストレージには、NOR型よりも大容量で高密度のNAND型が適している。
 NAND技術には、バイナリベースのSLC(single-level cell)とMLC(multi-level cell)の2つの構造がある。SLCでは各セルにつき1ビットが格納されるが、MLCでは2ビット以上が格納される。通常、SLC NAND型は1ビットのECC(error correction code)を含めて1ブロックにつき10万回の書き換えが可能であるのに対し、MLCはECCを含めて1万回までしか書き換えができない。MLCデバイスのデータシートには必要なECCのレベルが記載されていない場合があるが、MLCメーカーでは4ビットのECCを推奨している。そのため、コントローラが同じであるとすれば、SLCを採用しているストレージシステムの方が、MLCタイプの類似製品よりも耐久性に勝る。


劣化レベル均一化

 劣化レベル均一化アルゴリズムにより、ストレージメディアはデータの書き込みを均等に分散できるほか、ストレージメディア内のコントローラは論理ブロックのアドレスを半導体メモリアレイ内の異なる物理ブロックのアドレスに再マッピングできる。この再マッピングの頻度と、損耗度が最も低い領域を検出するアルゴリズム、そしてデータスワッピング機能は、一般にコントローラベンダーの独自仕様である。半導体ストレージシステムに搭載されたコントローラは、ホストシステムに依存することなく劣化レベル均一化機能を実行する。ホストシステムは論理ブロックのアドレスに対する読み出し/書き込みのみを実行する。したがって、ホストに関するかぎり、データの移動はない。
 劣化レベル均一化については、劣化レベル均一化なし、動的な劣化レベル均一化、静的な劣化レベル均一化の3つのシナリオが考えられる。民生機器市場向けのフラッシュカードと、産業用途向けの半導体ストレージシステムでは、耐久性に大きな開きがある。劣化レベル均一化機能のないフラッシュカードは、未使用のストレージ領域がどれだけ残っていようと、物理ブロックが損耗してすべての予備ブロックが使い果たされた時点で動作しなくなる。劣化レベル均一化機能がない初期のフラッシュカードが、書き込み頻度の高いアプリケーションで故障するのはそのためである。したがってベンダーは、産業用半導体ストレージを必要とするOEMアプリケーションでの劣化レベル均一化機能のないフラッシュメモリーの使用は避けるべき、としている。
 動的な劣化レベル均一化では、動的な領域、つまり「空き」領域を均等に平滑化する。動的な劣化レベル均一化機能を使用するシステムは静的データは扱わない。静的データにストレージの75%を使用するシステムでは、劣化レベル均一化に使用できる領域が25%しかない。したがって耐久性は劣化レベル均一化機能のないカードの25倍と考えられるが、ストレージ空間全体に対して劣化レベル均一化が実行されるシステムの1/4の耐久性しかない。
 静的な劣化レベル均一化アルゴリズムは、システム全体に均等にデータを分散し、使用頻度が最も低い物理ブロックを検索する。それらの物理ブロックが検出されると、その場所にデータが書き込まれる。ブロックが空の場合は、書き込みが通常どおりに行われる。そこに静的データが存在する場合は、そのデータをより使い込まれた場所に移動してから、新しい書き込みデータを移動する。静的な劣化レベル均一化機能を使用するストレージシステムの耐久性は、劣化レベル均一化機能のないシステムの100倍である。ストレージの75%に静的データが保存されているシステムは、動的な劣化レベル均一化を実装しているカードの4倍の耐久性がある。静的な劣化レベル均一化は、ストレージシステムのすべてのブロックにデータを書き込むため、より高い耐久性を実現する。


誤り訂正機能の検討

 半導体メモリーの誤り訂正に関する仕様も、耐久性を評価するときの重要な検討項目といえる。たとえば、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の使用が、半導体ストレージシステムの信頼性と寿命に著しい影響を及ぼす。これらの要因をすべて検討することで、最終的にアプリケーションに最適な製品を選択できるだろう。
 
 

雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報