フラッシュメモリーの耐久性・寿命について
NANDフラッシュベースのデバイスを組込みアプリケーション用の記憶媒体として評価する場合、通常、ホストインタフェース、消費電力、物理空間、性能、容量、環境、コストなどの要因によって選択が行われます。
耐久性の仕様はこの際の検討の主要項目であり、以下で私たちが説明するように、生のフラッシュダイの書込み/消去(P / E)サイクル評価は、パズルの1つに過ぎません。 デバイスの書き込み方法(コントローラテクノロジとアプリケーションのワークロードの両方)は、TBWとドライブの寿命に大きな影響を与えます。
RAWフラッシュの種類と耐久性の位置付け:SLC, MLC, PseudoSLC, TLC
ドライブTBW(TeraBytes Written)と耐用年数に影響を及ぼす第一の要素は、RAWフラッシュの耐久性、すなわち何度ブロックに対して確実に書き込み、消去を行うことが出来るかということです。
NANDフラッシュは大別するとSingle-Levelセル(SLC)、Multi-Level(MLC)およびThree-Levelセル(TLC)の3つに分類されます。 これらは同じ基本技術に基づいていますが、こと耐久性については大きな差が見られます。 設計の物理的性質により、SLCは最も堅牢で最もコストがかかるソリューションとなっています。 従いまして、SLCはミッションクリティカルなデータをログに記録したり、オペレーティングシステムやアプリケーションを起動する用途でよく使用されます。
一方、MLCは、書き込みが集中しにくいアプリケーションや、P/Eサイクルの少なさを補うような使用可能領域の大容量化を行うことで、産業用組み込み機器市場では多くのデバイスが使われています。
MLCは、MLCをSLCとして疑似的に使えるPseudoSLCとして、またはpSLCモードで使用することで、標準MLCより耐久性と書き込み性能をを向上させることができます。 pSLCを実装するには主に次の2つの方法があります。コントローラがフラッシュコマンドを使用してMLCセルの電圧スレッショルドレベルを変更する「真の」Pseudoモードと、標準的なMLC電圧しきい値で利用されるが、各セルの信頼性の高い下位ページにのみ使用する「fast page」("strong page"または"lower page"とも呼ばれます)という方法です。 どちらの方法も本来のMLCの容量の半分を犠牲にすることで耐久性と性能を引き上げており、コストと耐久性の点で見れば標準のMLCとSLCの間のソリューションとして位置付けされます。
TLCに関しては、消費者向けアプリケーションでの使用が目的で使用されており、ここで取り上げる必要はありません。
特定のアプリケーションに最適なフラッシュのタイプを決定する際には、耐久性と堅牢性が重要となりますが、RAWフラッシュの仕様がドライブ寿命を決定する唯一の要因ではありません。
表1:RAWフラッシュタイプの比較
注:上記の表のデータは、様々なフラッシュ技術の相対的な特性を説明するものであり、特定のフラッシュコンポーネントを表すものではありません。
コントローラテクノロジ - 耐久性から見たタイプとファームウェアの影響
NANDフラッシュの基本的なアーキテクチャは、プログラミングのための可能な最小ユニットが「ページ単位」である一方で、消去の場合には最小ユニットは「ブロック単位」となります。 ただし、コントローラのタイプによっては、書込み動作用の最小ユニットもフルブロックにすることができます。 一般的に言えば、フラッシュデバイスがSATA SSDと同じように、内部にDRAMを持っていれば、書込みのための最小単位は「ページ単位」となります。
しかし、SDカード、USBドライブ、CompactFlashカードなどDRAMが搭載されていないカードやドライブでは、使用されているほとんどのコントローラの書込みは「ブロックベース」で行われ、非常に小さい書き込みでもブロック全体を消費します。 このブロックベース動作のファームウェアの影響は大変大きく、P/Eサイクルを消費し、ドライブをより急速にに消耗させる、潜在的に高いWAF(Write Amplification Factor)となります。
ページベースのマッピングは、ページが大きく、ブロックが多く、耐久性が大幅に低いMLCフラッシュにおいて最も効果的です。 ページベースのマッピングは、既に非常に高い耐久性を持ち、ページ及びブロックの小さなSLCではあまり意味を成しません。
ブロック対ページベースの書き込みがMLCカードに及ぼす影響をわかりやすくまとめてみましょう
例1:MLC ブロックベース/ページベース書き込みでの寿命
NANDフラッシュへのコントローラのマッピング技術は、製品の寿命を決定する上で重要な要素であることは明らかです。 さらに、工業用に開発されたコントローラおよびファームウェアは、組み込みアプリケーションで使用される様々な使用モデル、プラットフォーム、オペレーティングシステムなどに対処するための機能を備えていることがあります。
これは、非常にコストを重視し、一般消費者の使用を目的として作られた製品で利用される技術とは対照的です。 これは耐久パズルの最後のパーツ、使用モデル、および作業負荷につながります。
使用モデルのフラッシュ寿命への影響
ホストアプリケーションの書き込みプロファイルは、転送サイズ、書き込みの頻度、データストリームの数、データの順次性とランダム性の面でP / Eサイクルの消費に大きな影響を与え、結果としてドライブの耐久性が向上します。フラッシュ寿命を最大化する最も効率的な書き込みモデルは、シーケンシャルブロックサイズのデータ転送(またはコントローラがそのレベルで書き込みを管理できる場合はページサイズ)です。 ただし、ブロックサイズは最小で128KBであり、ハイエンドでは4MBですが、工業用の組み込みアプリケーションが一度の転送に大きなデータをバッファリングすることは大変稀なケースです。 オペレーティングシステムは、ユーザーに知られていない小さな「かたまり」に転送を分割することもできます。
フラッシュ耐久性の面で最悪の場合のワークロードシナリオとは、異なるパーティションに複数の連続書込みをしたり、一度に数バイトのデータファイルを更新するだけのように、小さなデータを頻繁に、またはランダムに書き込みが行われることです。
ページベースのコントローラファームウェアとブロックベースのコントローラファームウェアの例と同様に、次の例では、同じ8GB MLC SDカードに小さなデータを頻繁に書き込む場合と大きなデータを頻度を少なくして書き込みを行った場合の比較です。
例2:毎秒512Bの書込みと15KBを30秒おきの書込みでの推定寿命
製品の耐久性、寿命を高めるためには、作業負荷を理解するも重要なポイントであることがお分かりになったと思います。
今日、NANDフラッシュストレージ分野では利用可能なインタフェース、フォームファクタ、フラッシュタイプ、コントローラテクノロジの幅広い組み合わせにより、可能な組み合わせとソリューションが多数用意されています。 お客様の組込みプロジェクトの耐久性の目標を明確にし、それを限られた予算内で実現可能なドライブを選択するためには、RAWフラッシュの特性、コントローラーのテクノロジー、アプリケーションの作業負荷など、それぞれ考慮していく必要があります。