SSDのデータ信頼性と寿命

ソリッドステートドライブのデータ信頼性と寿命
ホワイトペーパー
アラン R. オルソン & デニス J.ラングロイ
2008 年 4 月 7 日
抄録
フラッシュメモリ技術の劇的な進化により不揮発性半導体メモリのストレージ容量が大幅に増加し
コストを下げています。この技術が USB フラッシュドライブの普及に火をつけ、いくつかのアプリ
ケーションでは磁気記録ハードディスク置き換えようとしています。ソリッドステートドライブ
(SSD)は磁気ハードディスクドライブ( HDD )をエミュレートする不揮発性メモリシステムです。
SSD には可動部品が含まれてなくフラッシュメモリチップにデータを保存します。適切な設計により、
SSD は高速データ転送レートを提供し、短いアクセス時間、より優れた耐衝撃性や耐振動性、および
低消費電力を実現します。SSD のコストは HDD に比べ相対的に非常に高くなっていますが、アプリケ
ーションによってはパフォーマンスと耐久性の向上はそのコストに値します。
ハードディスクの代替としてフラッシュメモリとして使用するのは簡単です。ナノスケールメモリ
セル技術が半導体物理学の限界を超えようとしています。非常に薄い絶縁ガラス層がメモリセルの
適正な動作のために必要です。これらの層は、厳しい温度と電圧負荷にさらされ、時間とともに絶
縁特性が劣化します。単純に、フラッシュメモリは劣化するのです。幸いなことにこの劣化現象は
物理学的によく理解されており、フラッシュメモリの限られた寿命を補償するためにデータマネー
ジメントストラテジー手法がとられます。
浮遊ゲートフラッシュメモリセル
フラッシュメモリは 1984 年に舛岡富士雄博士によって東芝在籍時代に考案されました。名前を"フ
ラッシュ"としたのは、フラッシュメモリの消去プロセスがカメラのフラッシュを連想させるからで
す。フラッシュメモリチップは大規模な浮遊ゲート金属酸化物半導体(MOS)トランジスタアレイに
データを格納します。シリコンウェーハは今や 40 ナノメートルに近い微細なトランジスタに加工さ
れます。
浮遊ゲート MOS トランジスタ
浮遊ゲートメモリセルは、金属酸化物-半導体電界効果トランジスタ( MOSFET)の一種です。シリ
コンがトランジスタアレイのベース層、つまり基板を形成します。シリコン層はマスキングにより
さまざまな種類の不純物をドーピングと呼ばれるプロセスで注入されます。不純物は、シリコンの
電気的特性を調整するため慎重に加えられます。いくつかの不純物、例えばリンはシリコン格子に
過剰電子を生じさせます。他の不純物、例えばホウ素は格子電子の欠落を生じさせます。不純物レ
ベルとドーピング領域はリソグラフィー製造プロセスで決められます。ドープされたシリコンの領
域に加えて、絶縁ガラス二酸化ケイ素層(SiO2)、導電層の多結晶シリコンやアルミを蒸着して
MOSFET 構造が完成します。
Page 1 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
図-1
(左)300mm シリコンウェーファーには数百の NAND フラッシュメモリーチップが含まれる
(右)ひとつの NAND フラッシュチップはわずか 18mm x 12mm(縮尺ではない)
Copyright Intel Corporation
図-2
走査電子顕微鏡(SEM)による典型的なシングルレベルセル(SLC)
NAND フラッシュメモリの断面
Copyright Chipworks
MOS トランジスタはソースとドレイン間に導電性チャネルを形成することにより動作します。コント
ロールゲートに電圧を印加すると、電界によりソースとドレインの間の SiO2 の境界面に負に帯電し
た薄いチャネルが形成されます。 N -チャネルが存在するときには電気はソースからドレインに簡
単に流れます。コントロール電圧を除くと、 N-チャネルが消え導電は行われません。 MOSFET のオ
ン-オフスイッチのように動作します。
Page 2 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
CONTROL GATE
ONO
SOURCE
DRAIN
FLOATING GATE
SiO2
N+
N-channel
N+
P-well
図-3
浮遊ゲート MOSFET メモリーセルの断面(縮尺ではない)
コントロールゲートに加え、トランジスタ部分には電気的に接続していない二番目の浮遊ゲートが
あります。N-チャネルの形成に必要なコントロールゲートの電圧は、浮遊ゲートのチャージによっ
て変化します。浮遊ゲートには電気的接続がないにもかかわらず、浮遊ゲートに電荷の注入除去が
行われます。ファウラー-ノルドハイムトンネル効果と呼ばれる量子物理的プロセスによって浮遊ゲ
ートと P 領域の間の絶縁層を電子が通過注入されます。浮遊ゲートから電荷が削除されると、セル
は消去状態です。浮遊ゲートに電荷が追加されたときは、セルはプログラム状態です。浮遊ゲート
に注入された電荷は長時間残ります。このプロセスによって電荷を浮遊ゲートに注入、削除、保存
することで MOSFET をメモリセルにします。
メモリセルの内容を消去するにはコントロールゲートの電圧をゼロにした状態でシリコン基板に高
電圧を印加します。浮遊ゲートの電子は酸化膜障壁をトンネリングにより正の基板へ通過します。
何千ものメモリセルは、基板の共通のセクションにエッチングされ、 1 つのメモリブロックを形成
します。ブロックのすべてのメモリセルは基板が正電位に"フラッシュ"されたときに同時に消去さ
れます。消去されたメモリセルでは、すべての浮遊ゲートの電荷が削除されているため、低いコン
トロールゲート電圧で N チャネルの形成が可能です。これは、シングルレベルセル(SLC の)フラッ
シュメモリセルでロジックレベル" 1 "に相当します。
Page 3 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
PROGRAM
VOLTAGE
0V
N/C
N/C
0V
0V
- - - - - - - - - - - - N+
図-4
N+
N+
N-channel
P-well
P-well
ERASE
VOLTAGE
N/C
N+
ファウラー-ノルドハイムトンネル効果によるフラッシュメモリセルの
消去およびプログラミング
セルはソースとドレイン間電圧をゼロに保った状態でコントロールゲートに高電圧を加えることに
よりプログラム状態にされます。高電界は N-チャネルを形成し、電子を酸化膜障壁を通して浮遊ゲ
ートにトンネルさせます。メモリセルのプログラミングは一度に 1 つのワード(すなわち、セルご
と)ごとに行われ、通常、ページ全体(例えば、 2048 バイト)が 1 回の操作でプログラムされます。
プログラムされた状態のメモリセルでは浮遊ゲートの負電荷のため、コントロールゲートは通常電
圧では N -チャネルを形成することができません。基板に N-チャネルを形成するには、ゲート電圧
をより高いレベルに引き上げる必要があります。これは SLC のフラッシュメモリセルでロジックレ
ベル" 0 "に相当します。
シングル vs マルチレベルセル
N チャネルを形成するために必要なコントロールゲート電圧は浮遊ゲートの電荷で変化します。必要
な電圧はゲートしきい値電圧と呼ばれ Vth で表されます。
SLC のフラッシュメモリでは、消去状態に加えてプログラム状態は 1 つだけです。合計 2 つの状態で
1 ビットのデータをメモリセルに格納されます。
Page 4 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
Vth LOW
Vth HIGH
- - - - - - -
ERASED CELL
LOGIC '1'
図-5
PROGRAMMED CELL
LOGIC '0'
SLC メモリセルの消去とプログラム状態
浮遊ゲートの電荷の状態は 2 つしかないためコントロールゲートに必要なしきい値電圧も2つです。
注意しないといけないのは、コントロールゲートのしきい値電圧はセルごとにばらつくことです。
これは、通常の製造プロセスのばらつきの結果です。通常しきい値電圧のばらつきは釣鐘形分布に
なります。
図-6
SLC メモリセルのコントロールゲートしきい値電圧の分布
マルチレベルセル(MLC)フラッシュメモリでは、消去状態に加えてプログラム状態は複数あります。
典型的な例としては、プログラム状態が 3 つで、合計 4 つの状態が存在します。これにより、2 ビッ
トのデータがメモリセルに格納されます。 追加の 2 つのプログラム状態は浮遊ゲートの部分的な帯
電状態の結果です。部分的に帯電された浮遊ゲートは、結果的に中間的なコントロールゲートしき
い値電圧の値を示します。 MLC デバイスでは、浮遊ゲートの部分的帯電は慎重に監視され、その結
果、中間のしきい値電圧分布は厳しくコントロールされます。
Page 5 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
図-7
MLC メモリセルのコントロールゲートしきい値電圧の分布
MLC メモリセルの消去は SLC メモリセルと同じ方法で、ブロック消去の所要時間も同様です。しかし、
MLC メモリセルは SLC メモリセルよりもプログラムさらに時間がかかります。コントロールゲート閾
値電圧が明確になるよう、プログラミング中の浮遊ゲートの帯電の状態は注意深く監視しなければ
なりません。
MLC メモリセルは絶縁層 SiO2 の物理的変化に敏感なため、SLC メモリセルよりも速く劣化する傾向
があります。また、MLC メモリセルはコントロールゲートしきい値電圧のばらつきと隣接メモリセル
からの干渉のためエラーレベルが高くなります。
フラッシュメモリアレイアーキテクチャ- NAND 対 NOR
フラッシュメモリセルはバイト、ページ、ブロック、プレーンという階層構造になっています。4 ギ
ガビット(Gb)の SLC NAND フラッシュメモリチップの例を以下に示します。
Page 6 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
図-8 -MT29F4G08AAA
4 Gb SLC NAND フラッシュメモリチップの階層構造
Copyright Micron
この例では、 4GB のチップは、奇数番号と偶数番号に分かれた 4096 ブロックで構成されます。各ブ
ロックは、 64 のページを含みます。メモリページは 2048 バイトのユーザーデータと 64 バイトの非
ユーザデータに分かれます。ページに追加された 64 バイトはデータ管理のためにフラッシュメモリ
コントローラによって使用されます。また、2048 バイトのページはフラッシュメモリコントローラ
によって HDD の典型的なサイズである 4 つの 512 バイトセクターに分けられることもあります。
NAND フラッシュメモリチップはメモリセルを”not and”(NAND)型論理構造に構成します。この構
成ではすべてのメモリページにわたり、すべてのセルを共通の入力/出力(I/O)ビットに直列接続
します。
I/O Bit Line
GND
Select
Page 0
Line
Page 1
Line
図-9
Page 2
Line
Page 63
Line
Bit Line
Select
NAND フラッシュメモリセルの配列
このような配列のため、メモリページの個々のデータバイトに直接アクセスすることはできません。
フラッシュメモリコントローラはメモリページ全体を読まなければなりません。また、デバイスに
よってはページを部分的にプログラミング可能ですが、通常ページ全体を一度にプログラムする必
要があります。 このため NAND フラッシュは、ほとんどのランダムアクセスメモリバイトアプリケ
ーションに不適切です。
Page 7 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
NAND Flash Block Architecture
GND
Select
Page 0
Line
Page 1
Line
Page 2
Line
Page 63
Line
Bit Line
Select
String
I/O
I/O
16,896
bits per page
I/O
Floating
Gate
Control
Gate
I/O
Page
図-10 MT29F4G08AAA
Memory
Cell
64 pages
per block
4 Gb SLC NAND フラッシュメモリチップのブロックアーキテクチャ
Copyright Micron
他の配列方法に”not or”(NOR) 論理構造があります。NOR フラッシュメモリでは個別のメモリセル
にアクセスできるため、ランダムアクセスメモリアプリケーションに適しています。
I/O Bit Line
Page 0
Line
Page 1
Line
Page 2
Line
Page 63
Line
図-11 NOR フラッシュメモリセルの配列
NOR フラッシュメモリはすべてのセルに I/O のビットラインと接地ラインが必要なため高密度実装に
不向きです。また NOR フラッシュメモリは NAND フラッシュメモリに対しビットあたりのコストも不
利です。NOR フラッシュメモリはランダムバイトアクセスが可能なためマイクロコントローラのプロ
グラムのストレージとして使用できます。
Page 8 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
NAND フラッシュメモリは I/O ビットラインと接地ラインの数を減らせるためより高密度に実装可能
です。 NAND フラッシュメモリは NOR フラッシュメモリに比べビットコストが低くすみます。 NAND
フラッシュメモリはランダムバイトアクセスがそれほど重要でないデータファイルのストレージに
向いています。 NAND フラッシュメモリセルはその高密度ゆえに、隣接するページの読み書きによる
干渉を受けやすくなっています。
フラッシュメモリセルのデータエラー発生源
浮遊ゲートメモリセルは、慎重に設計、絶縁されており、適切な条件ではプログラミングされた電
荷を 10 年以上保持することができます。これは十分長い時間ですが、実際にデバイスがおかれる条
件によってはそうではないことを考慮しなければなりません。
SLC メモリセルは、トンネル酸化物が劣化するまで約 100,000 回の消去/プログラムサイクルに耐え
ます。 MLC メモリセルはより短い約 10,000 消去/プログラムサイクルの寿命しかありません。消去
およびプログラミングはトンネル酸化物に大きな電界を加えストレスを与えます。シリコン基板と
浮遊ゲート間のトンネル酸化物は非常に薄く、10 nm 程度以下です。
図-12 SLC フラッシュメモリセルの耐久特性
Copyright Samsung
時間の経過と共に、そのトンネル酸化物は絶縁性を失いメモリセルの消去やプログラムができなく
なります。これが発生すると、フラッシュメモリコントローラはブロックを退避し予備のブロック
と置換します。トンネル酸化物の劣化は"ウェアレベリング"のアルゴリズムによって補償されます。
ウェアレベリングアルゴリズムは消去/プログラムサイクルをすべてのメモリブロックに均等に分散
します。消去/プログラムサイクルをデバイス全体に分散することにより、データの"ホットスポッ
ト"を防ぎ、中途半端なデバイス寿命を防ぎます。製造上の欠陥もトンネル酸化物の絶縁特性を劣化
させます。しかし、製造時に動作不能となったメモリセルは使用不可とマークされ、必ずしもこの
防御策は必要ありません。
トンネル酸化物に加わるストレスは、データ保持の問題につながります。また、データが破損する
危険性は、近接メモリページの読み出しやプログラミングでもありえます。データ保持と破損の問
題は強力なエラー訂正コードを使用して補償しています。
Page 9 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ストレスに引き起こされるリーク電流
消去およびプログラミング中にトンネル酸化物に加わる電界強度は非常に高く、数百万ボルト/セン
チです。このような高電界強度は SiO2 層の構造的変化を引き起こします。これら構造的変化は酸化
物層の電子トラップの欠陥を生成します。構造上の欠陥は絶縁層の微小な亀裂のような振る舞いを
します。これらの欠陥は浮遊ゲート中の電荷を基板にリークさせてしまいます。時間の経過と共に、
ますます多くの欠陥が生じ、最終的に酸化物層は破壊されます。
New Oxide
Damaged Oxide
Oxide Breakdown
anode interface
(SiO2)
< 10 nm
electron
traps
cathode interface
breakdown
path
SILC
図-13 ストレスによって誘導されるリーク電流(SILC)と酸化膜破壊のパーコレーションモデル
干渉エラー
メモリページのプログラミングと読み込みが原因で隣接するメモリページの電荷の混乱が発生する
ことがあります。高密度メモリセルでは、電圧の変化は隣接するページのメモリセル間に容量結合
します。この結合は保存されたデータのランダムビットエラーを発生させます。
GND
Select
Page 0
Line
Page 1
Line
Page 2
Line
Selected
Cell
Page 63
Line
Bit Line
Select
I/O
I/O
16,896
bits per page
I/O
Disturbed
Cells
I/O
64 pages
per block
図-14
プログラムと読み込みプロセスは隣接セルを干渉する
Page 10 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
エラー訂正コード
トンネル酸化物の経年劣化と近隣のメモリページからの干渉は保存されたデータのランダムビット
エラーを発生します。任意のデータビットが壊れる確立は非常に少ないのですが、ストレージシス
テムの膨大な数のデータビットを考えると、データが破損する可能性は非常に現実的です。
データ破損を防ぐためにフラッシュメモリストレージシステムでは誤り検出と訂正コードが使用さ
れています。エラーコントロールコードの生成と付与は、抽象代数学と呼ばれる数学に属します。
クロードシャノンがエラーコントロールコードの理論的基礎と情報理論を築き、1948 年に画期的な
論文 "数学的通信理論" を発表しました。すべての種類のエラー制御コードは通信チャネルを介し
て送信される情報や、ストレージシステムに冗長性を追加しています。冗長データはデータの送信
(または書き込み)時に計算され、データの受信(または読み取り)時にチェックされます 。冗長
情報は、訂正能力と効率のバランスを考えて計算されます。
フラッシュメモリのシステムはブロックコードと呼ばれるクラスのエラー訂正コード(ECC)を使用
します。ブロックコードでは、冗長データビットが固定サイズのユーザデータブロック(例えば、
512 バイト)で計算されます 。ユーザーデータビットに冗長ビットの ECC を追加することにより、
コードワードと呼ばれる大きなビットセットを形成します。コードワード領域は最小限に設計され
ています。つまり、可能なコードワードがすべて有効とは限らないからです。 ECC はバイナリハミ
ング距離の概念に従い、有効なコードワードと受信したコードワードの違いを計算します。 ECC は
"maximum-likelihood"(最尤法)デコードアルゴリズムを使用して、エラーを含んで受信したコー
ドワードから有効なコードワードを予測します。
Page 11 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
k
2 Valid
Code Words
A sphere represents the
set of received code words
that will decode to Cx
t
Cx
dmin
t
n
2 Possible
Code Words
図-15
ECC ワードと maximum-likelihood でコーディングの表現
ブロックコードは、数学的なパラメータ n, k, t と dmin を使用して設計されています。コードワー
ドの大きさは n ビットで 2 の n 乗のコードワードが可能です。ユーザデータのサイズ k ビットは 2
のk乗の有効なコードワードを生成可能です。
コードの補正力が t ビットとすると、有効なコードワードを囲む球面の半径と考えることができま
す。有効なコードワード間の最小ハミング距離は dmin ビットで、ここで dmin ≥ 2t+ 1、球はオー
バーラップしないことを意味します。コードワード間のハミング距離が大きいほど訂正能力を発揮
します。コードの補正力は、受信したエラービットの訂正可能な最大数で表されます。コードワー
ドの冗長 ECC ビットの数ではありません。保存されたデータの ECC ビットの数は、訂正パワー(パ
ラメータt)とコードワードの大きさ( n パラメータ)の関数になります。
ECC ビットのエンコーディングプロセスはストレージシステムにデータが書き込まれるときに完了し
ます。ECC ビットの計算回路は高速かつ効率的で、システムのパフォーマンスを妨げません。フラッ
シュメモリのシステムでは、ECC ビットは各メモリページに追加の 64 バイトに格納されます。ECC
ビットのデコード処理は、ストレージシステムからデータを読み出すときに行われます。受信した
データのエラー補正はより複雑です。最初のステップでは受信したデータの任意のビットにエラー
があるかどうかを判断します。この操作は ECC エンコードプロセスと同じアルゴリズムを使用しま
す。その結果、データエラーの存在のチェックは高速です。受信したデータにエラーが含まると判
断された場合、どのコードワードが送信された可能性が高いのかを決定するため 2 番目の代数的プ
Page 12 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ロセスが必要です。そのプロセスは計算されたハミング距離をもとに、最も可能性の高い 2 のk乗
の有効なコードワードを見つけます。このステップは時間がかかりますが、データエラーが検出さ
れたときにのみ実行する必要があり、実際にはほとんど発生しません。最後のステップは、一度最
も可能性の高い有効なコードワードが見つかれば、どの受信したデータビットにエラーが発生して
いるか、そして値を修正する計算を行います。もし有効なコードワードが最小ハミング距離内に発
見できなかった場合、あるいは誤って間違ったコードワードを選択した場合、ECC デコード処理は失
敗することを忘れてはいけません。ECC の失敗はエラーのビット数が設計能力を超えている場合にも
発生します。ECC システムは ECC の失敗確率が事実上ゼロになるよう適切に設計しなければなりませ
ん。
多くの近代フラッシュメモリシステムのコントローラはホッケンガム、ボーズとレイ-チャウドゥー
リーによって発明されたブロックのコードを使用しています。BCH は、これらの発明者名の頭文字で
す。バイナリ BCH コードは複数のランダムなビットエラーを訂正するよう設計されていて、オーバ
ーヘッドと計算の複雑さの点で比較的効率的です。tビットの訂正 BCH コードはコードワードごと
にエラービットを検出して最大tビットまで訂正します。このコードは少なくともt+1までのエ
ラービットは検出しますが訂正はできません。
データが破損する確率は少なくともt+1 エラービットまでの受信するすべてのエラーのパターンの
確立を加算することで計算可能です。:
Pcorrupt =
n
∑P
i =t +1
fail
(n, i )
(eqn 1)
確率項、 Pfail (n,i)は、" n "ビットのコードワード中に" i "ビットのエラーコードを受信す
る確率です。破損したデータの確率合計は最大項、t+1 ビットエラーの受信する確率で近似できま
す。ECC パラメータ(n, k, t)とフラッシュメモリのランダムビットエラーの確率が与えられれば、
Praw 、データが破損する確率は以下で近似できます:
⎛ n ⎞
⎟⎟ Praw t +1 (1 − Praw )n−(t +1)
Pcorrupt ≅ Pfail (n, t + 1) = ⎜⎜
⎝ t + 1⎠
(eqn 2)
この数式は二項確率密度関数で、それぞれ二つの可能な結果が得られる連続した実験の結果を説明
するために使われます。それぞれの実験は独立して、同じ確率を持ちます。この関数はフラッシュ
メモリにデータが破損するときに適用され、読み込む各データビットが "実験"であり、結果はデー
タビットが"良い"か"悪い"かです。受信データビットが悪い確率は Praw 項で、括弧でくくられた係
数は二項係数で、フラッシュメモリからの読み取った" n "ビットの中の"t+1 "の不正なデータビ
ットの配列の数です。
データが破損する確率は読み取りビット当たりのエラーの数で表わされ、アプリケーションビット
エラーレートと呼ばれます。フラッシュメモリセルのランダムビットエラーが発生する確率は、同
様に生のビットエラーレートと表現されます。SLC NAND フラッシュメモリの典型的な生のビットエ
ラーレートはビット当たり1× 10 の-9 乗から- 11 乗ですが、MLC NAND フラッシュメモリでは1
× 10 の- 5 乗から – 7 乗です。 MLC 生のビットエラーレートは、複数のコントロールゲート電圧
しきい値を設定検出しなければならないために、SLC の生のビットエラーレートよりも高くなります。
バイナリの BCH ECCs はフラッシュメモリシステムに広く使用されてきています。設計上の重要項目
は、ECC の強度あるいはどれだけ多くののエラーを訂正することができるかです。いくつかのフラッ
シュメモリのシステムには、例えば、 USB フラッシュドライブではあまり強力な ECC は使用されて
Page 13 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
いません。典型的な USB フラッシュドライブでは単純な 1 または 2 ビット訂正コードが採用されて
います。これらのデバイスには一時的なストレージとしてよく使われ、強力な ECC システムはコス
ト的に必要ではありません。 それに対し、SSD は主記憶装置として使われ、強力なエラー訂正シス
テムを必要とします。
Binary BCH(n,k,dmin) t-bit Error Correcting Code
-40
10
t = 7 bit
t = 4 bit
t = 2 bit
-35
10
-30
Application Bit Error Rate
10
-25
10
-20
10
-15
10
-10
10
-5
10
MLC
SLC
0
10
-3
10
-5
10
-7
10
Raw NAND Bit Error Rate
-9
10
-11
10
図-16 ユーザーデータセクターが 512 バイト以上のバイナリ BCH コードに対する
アプリケーションビットエラーレート対生の N AND セルビットエラーレート
BCH ( k = 4096 、n =k + 13t、 dmin =2t + 1 )
SSD の ECC のパラメータは少なくとも置き換えようとするハードディスクのアプリケーションビット
エラーレートより小さくなるように選択しなければなりません。現代のハードドライブは通常の他
の種類の ECC システム、リードソロモン符号、を使用しています。リードソロモン符号の特性はバ
ーストエラーが発生するアプリケーションに特に適しています。回転磁気メディアで発生する物理
的欠陥はしばしばストリーク欠陥として現れリードソロモン符号が適します。ハードドライブの典
型的なアプリケーションビットエラーレートはビット当たり 1 × 10 の- 15 乗として規定されてい
ます。7 ビットのエラー訂正能力をもつバイナリ BCH コードは SLC または MLC NAND フラッシュメモ
リのいずれかを使用した SSD で十分強力な性能を提供するはずです。
Page 14 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ウェアレベリング
NAND フラッシュメモリは、データストレージアプリケーションでは一般的に行われるプログラム消
去サイクルの繰り返しによる劣化の影響を受けやすくなっています。同じメモリセルを集中的にプ
ログラミングや消去を行うとその部分のメモリが劣化し使えなくなります。一例として、ファイル
アロケーションテーブル(FAT)を使用しているシステムでは、データの書き込み時に頻繁に更新す
る必要があります、つまり同じメモリロケーションにプログラム・消去サイクルが繰り返し発生し
ます。その結果、 NAND フラッシュの寿命は短くなります。これを防ぐため、SSD ではウェアレベリ
ングと呼ばれる特別なアルゴリズムが使用されます。その言葉が示すように、ウェアレベリングは
プログラム消去サイクルが SSD 内のすべてのメモリに一様の分布させる手法です。これにより、連
続して同じメモリロケーションにプログラムおよび消去サイクルが発生することを防ぎ、その結果
NAND フラッシュメモリの寿命を格段に延ばします。
メモリのレイアウト
SSD フラッシュドライブ内のメモリでウェアレベリングがどのように行われているか理解するためは、
NAND フラッシュアーキテクチャレイアウトを理解することが重要です。SSD は多くの個別の NAND フ
ラッシュチップで構成されます。個々の NAND フラッシュチップはブロックの配列で構成されます。
各ブロックは、ページ(またはセクター)呼ばれるメモリセルの配列です。
Simple Memory Layout of
a NAND Flash Chip
Pages within a Block
Page1
OH1
Page2
OH2
Page3
OH3
•
•
•
•
•
•
Pagem
OHm
Memory Blocks
B0
B1
B2
B3
•
•
•
BN
Erase done at Block level
Write and Read done at Page Level
図-17 単純な NAND フラッシュメモリのレイアウト
ページは、一般的には約 512 バイトですが、2048 バイトまで拡張することができます。各ページに
は ECC やインデックス作成のような追加のオーバーヘッドバイトが組み込まれています。
NAND フラッシュメモリにデータの書き込む場合、該当メモリはプログラム前に消去しなければなり
ません。消去することができる最小単位はブロックで、プログラムや読むことができる最小単位は
ページ(またはセクター)です 。
Page 15 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
SSD システムアーキテクチャ
ウェアレベリングの議論に入る前に、ウェアレベリングアルゴリズムを支援するメインコンポーネ
ントを視覚的に理解するための SSD の基本的なシステムのアーキテクチャを説明します。以下は、
SSD の簡単なブロック図です。SSD からのデータ転送はさまざまなインターフェイス(PATA、SATA 、
SCSI、SAS、等)を構成するホストインターフェースチップを経由します。ホストインターフェイス
は 2 つのバスに分かれ、一つはアドレッシングおよび制御に使用されるシステムバス、もうひとつ
は NAND フラッシュへデータパスを提供するデータバスです。コントロールバスには、 CPU、フラッ
シュコントローラ、およびスタティックランダムアクセスメモリ( SRAM )があります。SRAM はテ
ーブル、 CPU のスクラッチパッドコンピューティングおよび論理ブロックと物理ブロックのアドレ
スマッピングに使用されます。SRAM は揮発性メモリのため、テーブルや論理物理アドレスマッピン
グなどの関連情報は、 NAND フラッシュに継続的にバックアップされます。CPU は SSD のメインコン
トローラです。これはフラッシュメモリへの読み書きを調整介入します。また、フラッシュメモリ
のウェアレベリングアルゴリズムの実行と監視も行います。フラッシュコントローラはフラッシュ
メモリのアドレッシング、プログラミング、消去、読み込みの制御を密接に実行します。
CPU
SRAM
Control Bus
NAND
Flash
Data Bus
Data Bus
Host Interface
DRAM
Buffer
Flash
Controller
NAND
Flash
Flash Bus
PATA, SATA
SCSI, etc
NAND
Flash
NAND
Flash
SSD Simple Diagram
図-18 SSD アーキテクチャの簡単なブロック図
バス上のデータは、ホストインターフェイスから同期ダイナミックランダムアクセスメモリ
( SDRAM の)バッファに転送されます。そこからデータはフラッシュコントローラに送り出され、
フラッシュメモリにデータを書き込まれます。同様に、読み込みコマンドと論理アドレスがホスト
インターフェースチップを介して CPU に送信されます。 CPU はメモリの物理アドレスをマッピング
テーブルから決定すると、その情報をフラッシュコントローラチップに送信し、データへのアクセ
スおよびホストインターフェイスへの送信を可能にします。それによって最終的にデータはホスト
に送られます。
ブロック構成
ブロックはウェアレベリングのための 2 つのカテゴリにプールされます:データブロックとフリー
ブロックです。メモリの大半のブロックはデータブロックで、ウェアレベリングとデータストレー
Page 16 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ジの対象です。フリーブロックは、メモリブロック数全体の 2%が割り当てられ、ウェアレベリング
アルゴリズムのバッファとして使用されます。ウェアレベリングの基準に基づいてブロックはデー
タブロックプールとフリーブロックプール間でスワップされることを意味します。
2 Pools of Memory
2% of entire
number of blocks
Data Blocks
Free
Blocks
図-19 ブロックは 2 つのカテゴリーにプール
フラッシュトランスレーションレイヤー(FTL)の管理
FTL は、セクターの論理アドレスの物理アドレスへのマッピング、フラッシュメモリ消去数の管理お
よび無効なブロックのマッピング管理を提供します。ウェアレベリングアルゴリズムを効率的に実
行するために各ブロック消去数の管理が維持されてなくてはなりません。すべてのブロックの消去
数がイレースカウントテーブル( ECT )と呼ばれるテーブルに保持されます。ブロックは消去され
るたびに、ECT が更新され、そのブロックのカウント値を増やします。ウェアレベリングアルゴリズ
ムは、どのブロックをデータブロックプールとフリーブロックプールの間で交換するかを決定する
ため、そのテーブルをスキャンする必要があります。SSD は典型的には 32 ギガバイト以上のため、
ECT の中の個々の消去カウントをスキャンするにはかなりの時間が必要数とします。この時間を減ら
すためには、 ECT はブロックグループを構成する 2 番目の階層に展開されます。グループの合計消
去カウント数(eqn 3)がグループごとに計算されます。 eqn 3 に示すように、グループ全体の合計
は、グループに割り当てられた個々のブロックの消去カウントの合計です。グループのサイズは、
グループ内に割り当てられたブロックの数で表されます。 ECT スキャンプロセスは、グループの消
去カウント合計数をスキャンし、その後グループ内のブロック消去カウントをスキャンします。こ
の方法によって ECT のスキャン時間を大幅に低減します。
Page 17 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
N
Group _ Sum = ∑ Block _ ec n
(eqn 3)
0
ここで、 N はグループのサイズ
ブロックがデータブロックプールとフリーブロックプール間で入れ替わるとき、変換テーブルは論
理ブロックアドレスから物理的ブロックアドレスへの再配分、新しいブロックアドレスと消去カウ
ントの再グループ化を管理します。これが完了したら、そのグループの合計から下のブロック消去
カウント値を減算し、置き換えたブロックの'消去カウント値を加算します(eqn 4)
Group _ Sum = Group _ Sum + ( Arrival _ Block _ ec − Depart _ Block _ ec )
(eqn 4)
次の図は、ECT と変換マッピングテーブルの簡単なブロック図です。典型的な ECT のマッピングテー
ブル動作は SRAM 上で行われることに注意してください。
Page 18 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
Erase Count Table
(ECT)
Translation Mapping Table
Logical_address0
Phy_address0
Phy_address0
Block_ec0
Logical_address1
Phy_address1
Phy_address1
Block_ec1
Logical_address2
Phy_address2
Phy_address2
Block_ec2
Logical_addressN
Phy_addressN
Phy_addressN
Block_ecN
Logical_address0
Phy_address0
Phy_address0
Block_ec0
Logical_address1
Phy_address1
Phy_address1
Block_ec1
Logical_address2
Phy_address2
Phy_address2
Block_ec2
Logical_addressN
Phy_addressN
Phy_addressN
Block_ecN
Logical_address0
Phy_address0
Phy_address0
Block_ec0
Logical_address1
Phy_address1
Phy_address1
Block_ec1
Logical_address2
Phy_address2
Phy_address2
Block_ec2
Logical_addressN
Phy_addressN
Phy_addressN
Block_ecN
Group 0
Total EC Sum
Group 1
Total EC Sum
Group M
Total EC Sum
ec or EC => Erase count
図-20 消去カウントテーブル(ECT)と関連付けられた変換マッピングテーブル
しかし、 SRAM は揮発性メモリで、そのためテーブルは NAND フラッシュにバックアップしなければ
なりません。パワーアップ時に、NAND フラッシュに格納されたテーブルは SRAM にロードされ、変更、
更新されます。低負荷時やパワーダウン時に定期的にテーブルは NAND フラッシュにバックアップさ
れます。
また、それぞれのページの物理アドレスと論理アドレスを関連付ける変換テーブルは FTL 内にあり
ます。 FTL はホストインターフェイスから論理アドレスで渡されたデータの物理的アドレスマッピ
ングを管理します。 FTL と外部のダイナミックランダムアクセスメモリ(DRAM)を使用する積極的
な書き込みバッファリング方式の組み合わせは、書き込みのリクエストをバッファ上で並べ替える
Page 19 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ことを可能にします。これにより、大量のデータを一度に処理でき、バッファ上のデータのブロッ
クレベルのマッピングを可能にします、すなわち、データはブロックパケットサイズに近いサイズ
でのみフラッシュメモリに引き渡されます。したがって、エージングと断片化をほとんど発生しな
いため、データのトランザクション時間が改善され、ガーベッジコレクションが不要になります。
ホストインターフェイスから論理アドレスでデータが要求されたときには、 FTL はフラッシュメモ
リに存在するデータの物理アドレスを見つけます。データはフラッシュメモリから次の装置の読み
取りデータパスを介してホストインターフェイスに転送されます。
ダイナミックウェアレベリング
ウェアレベリングには、動的および静的の 2 つのレベルがあります。ダイナミックウェアアルゴリ
ズムはデータのプログラム消去サイクルが NAND フラッシュ内のすべてのブロックに均等に分布する
ことを保証します。このアルゴリズムは、データがバッファからフラッシュメモリに書き出される
たびに実行されるため動的なのです。次に示すように、このアルゴリズムは、アプリケーションが
同じ場所への書き込みを繰り返し摩耗してしまうことを防ぎます。
Write Operation Executed
Scan Erase Count Table (ECT)
Select Block From Free Block
Pool With Minimum Erase
Count Value
Write Data To Block Selected
In Free Block Pool
Update Mapping Table
Pointing Logical Block Address (LBA) Of Data
To New Physical Address (PBA) Of Selected Block
Erase Designated Data Block
That Was Initally Pointed To By The LBA
Increment Erase Count Value
For Designated Block In ECT
Place Designated Block Into
The Free Block Pool
Update Erase Block Grouping For Both
Blocks In The ECT
Write Operation Complete
図-21 ダイナミックウェアレベリングの簡単なフロー図
書き込みコマンドが開始されると、ダイナミックウェアアルゴリズムが実行されます。アルゴリズ
ムまずフリーブロックプール内の ECT をスキャンし、最も少ない消去カウント値のブロックを探し
Page 20 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
ます。見つかると、データはそのブロックに書き込まれデータブロックプールにプールされます。
ホストは論理ブロックアドレスで書き込みをするため、新しいブロックの物理アドレスは変換テー
ブルの論理ブロックアドレスに割り当てられなければなりません。これによって同じ論理アドレス
に連続して書き込みを行っても、決して同じ物理ブロックに書き込まれることはありません。次の
ステップでは最初に論理ブロックアドレスで割り当てられたブロックのデータを消去すること、そ
してそのブロックの消去カウント ECT を更新します。最後に、このブロックはフリーブロックプー
ルにプールされ ECT テーブルのグルーピングが更新されます。
Page 21 of 27
Copyright 2008 Imation. Imation and the Imation logo are trademarks of Imation Corp.
Simple Block Diagram Describing Dynamic Wear Leveling
Updated Erase Count Table
(ECT)
Erase Count Table
(ECT)
Write Executed
Mapping Table
B0
E0
B1
E1
B2
L0 B 0
B(N+1)
Updated Mapping Table
E2
Data Pool
Erase Counts
•
•
•
L1 B 1
L2 B 2
BN
L3 B 3
B(N+1)
•
•
•
B(N+M)
E1
B2
E2
L2 B 2
E(N+1)
L3 B 3
BN
E0+1
•
•
•
LN B N
E(N+M)
EN
B0
•
•
•
Free Pool
Erase Counts
Data Pool
Erase Counts
•
•
•
L1 B 1
•
•
•
LN B N
B1
L0 B (N + 1)
EN
E(N+1)
B(N+M)
Free Pool
Erase Counts
E(N+M)
Minimum Erase Count
Selected
Data Written to
Selected block in
Free Pool
New Free Block Pool
Free Block Pool
B(N+1)
B(N+2)
…
B0
B(N+M)
B(N+2)
…
B(N+M)
Swap
B0
B1
B2
B3
B4
…
BN
B(N+1)
Data Block Pool
B1
B2
B3
B4
New Data Block Pool
Erase designated Block
Corresponding to LBA
図-22
…
ダイナミックウェアレベリングブロックダイアグラム
Page 22
BN
スタティックウェアレベリング
ダイナミックウェアレベリングだけですべてのブロックの摩耗を同じレベルに保証することはできませ
ん。また、特殊なケースでは書き込まれたデータが、フラッシュに保存され、長期間あるいは無期限に
滞在します。他のブロックは積極的にスワップされ、消去やプールされるのに、これらのブロックはウ
ェアレベリングプロセスの中で非アクティブのままになります。
すべてのブロックで同じ速度でウェアレベリングが施されるために、スタティックウェアレベリングと
呼ばれる二次ウェアレベリングアルゴリズムが採用されます。スタティックウェアレベリングは非アク
ティブでデータを保持しているブロックも対処します。バッファをフラッシュ書き込みコマンドが実行
されるたびに動作するダイナミックウェアレベリングとは異なり、スタティックウェアレベリングには
動作のための 2 つのトリガーがあります。最初のトリガの条件は非アクティブブロックのアイドル期間
です。もし、この期間が設定したしきい値よりも大きいと ECT のスキャンを開始します。
スキャンはデータプール内の最小消去カウントブロックとフリープールの最大消去カウントブロックを
探します。スキャンが完了すると、 2 番目のレベルのトリガがチェックされ、データプール内の最小消
去カウントブロックとフリープールの最大消去カウントブロックが比較されその差が設定レベルのしき
い値より大きいかどうか調べます。大きい場合には、スワップが開始され、データプールに発見された
最小消去カウントブロックの書き込み内容をフリープールの最大消去カウントブロックに書き込みます。
次に、各ブロックが反対のプールに再度関連付けられます。データプールに発見された最小消去カウン
トブロックは消去してフリープールに配置します。そして今度は最大消去カウントブロックがそのデー
タ内容を保持しデータブロックプールに配置されます。ブロックのスワップが完了すると、FTL の論理
ブロックのアドレスを新しい物理ブロックのアドレスへの再マッピングが完了します。最後に、各ブロ
ックが新しいグループ関連付けられ ECT が更新されます。スタティックウェアレベリングアルゴリズム
の簡単なブロック図を図 23 に示します。
Page 23
Start/ Idle
No
WL_Thr_Period
<
idle_Stage_Period
yes
Scan Data
Pool for
Smallest
Erase
Count
of Inactive
Data
B0
E0
B(N+1)
B1
E1
B1
E1
B2
E2
B2
E2
Scan Free
Pool for
Largest
Erase
Count
BN
Data Pool
Erase Counts
EN
B0
E(N+1)
•
•
•
B(N+M)
E(N+1)
•
•
•
EN
B(N+1)
WL_threshold
<
(max_ec_free_Blks -min_ec_data_Blks)
Data Pool
Erase Counts
•
•
•
BN
No
Update Erase Count Table and Grouping
(ECT)
Erase Count Table
(ECT)
E0+1
•
•
•
Free Pool
Erase Counts
B(N+M)
E(N+M)
Free Pool
Erase Counts
E(N+M)
yes
Write Data from Selected Block in
Data Block Pool to Selected Block in Free Pool
Perform Erase on Original block in the
Data Block Pool. Then Perform Block Swap
between Data Pool and Free Pool
Free Block Pool
New Free Block Pool
B(N+1)
B(N+2)
…
B0
B(N+M)
Data Written to
Selected block in
Free Pool
B0
B1
B2
B3
B4
B(N+2)
…
Re-Map Logical block address
to new Physical Block Address
in Translation Table
L0 B 0
L0 B (N + 1)
L1 B 1
L1 B 1
L2 B 2
L2 B 2
L3 B 3
L3 B 3
•
•
•
•
•
•
LN B N
LN B N
B(N+M)
Swap
…
Data Block Pool
BN
B(N+1)
B1
B2
B3
B4
…
BN
New Data Block Pool
図‐23 スタティックウェアレベリングブロックダイアグラム
Page 24
無効なブロックの処理とマッピング
無効なブロックとは、その信頼性が保証されない 1 つまたは複数の無効なビットを含むブロックのこと
です。不良ブロックは製造工程や使用中に発生します。 一般的に、NAND フラッシュベンダーは製造工
程で見つかった不良ブロックを、スペアエリアの最初のバイトでブロック状態を示し、無効なブロック
の最初または 2 番目のページの最後のアドレス欄に" 00 "を書き込むことにより明示します。SSD が最
初に起動するときには、ドライブはブロックをスキャンしてどのブロックが FTL の中の無効ブロックテ
ーブル(IBT)で無効にされているかをマッピングします。
使用中、消去およびプログラミング時にエラーが発生する可能性があります。エラーはプログラム消去
の動作中に NAND フラッシュチップのステータスレジスタを監視することにより検出されます。これら
の操作中にハードエラーが発生した場合、ステータスレジスタにビットが立ちブロックの信頼性がない
ため無効なことを示します。不良ブロックが検出されると、 FTL はバッファのブロックをフリープール
の最小消去カウントブロックに再書き込みします。そして論理アドレスを新しいブロックの新しい物理
アドレスに再度マッピングします。エラーが検出されたブロックは、IBT 上で無効にマッピングされフ
リープールから除外されます。フリープールのフラッシュメモリの容量は、次の方程式で決まります:
有効なフラッシュメモリブロック数の合計 - ディスク容量に割り当てられたブロック数(eqn5)
この値は通常、有効なフラッシュメモリブロックの合計数 2%以上です。無効なブロックの数が増加し、
有効なフラッシュメモリの数が減少すると、利用可能なフリープールのブロック数が減少します。他の
SSD に見られる通常の不良ブロック置換アルゴリズムでは無効なブロックはあらかじめ確保してある未
使用ブロックと交換されます。それ比べこのテクニックは全体のフラッシュメモリ利用率を高めること
になります。
寿命推定
フラッシュメモリのプログラムおよび消去サイクル(P/E)は、SSD の寿命制限因子です。ウェアレベリ
ングアルゴリズムの効率的な利用はフラッシュメモリの各ブロックの P/E サイクルの均等な分散を保証
します。
NAND フラッシュメモリ( SLC または MLC )の種類、 また 1 日あたりの予測使用量によって、 SSD の
寿命(SSD の書き込み耐久性とも呼ばれる)を推定することは可能です。しかし、これは、1 日の使用
量を重要視することが非常に重要です。この言葉でしばしば見落とされ勝ちなのが、どんな使い方をし
ているかです。たとえば、連続しての書き込みか、ランダム書き込みかあるいはその両方(ランダムと
シーケンシャル)か。各シナリオはパフォーマンス(IOPS 、転送速度、ブロックサイズなど)とデー
タ書き込み時のオーバーヘッドに影響を及ぼします。これらのパラメータは、適切に取り扱うことによ
り、1 日あたりの使用量が同じでも寿命推定の正確性に影響します。そのため、推定寿命が引用される
場合、各ベンダーは書き込み方法を示しますが、通常シーケンシャル書き込みです。シーケンシャルに
書かれたデータは、IOPS、転送速度とオーバーヘッドが定数のため寿命推定の理想的なシナリオです、
簡単な数式で表されます。これに反して、ランダムや混在データの書き込みではオーバーヘッドのサイ
ズが変動します。この文書の中で使用されている推定寿命の計算例ではシーケンシャルタイプを使用し
ます。これは、合理的な SSD の寿命を推定し、読者に予測値の理解の基礎を与えるものです。真の書き
込み利用は書き込みの種類によって変動することを忘れないでください。
思い出してください、現在主に使われている SLC NAND フラッシュの P/E サイクル寿命は約 100,000 サ
イクル、それに対し MLC はたった 10,000 サイクルです。
Page 25
すべての場合において寿命の方程式は、SSD の容量と NAND フラッシュメモリの書き込み寿命の積に基づ
いています。これは、ウェアレベリングアルゴリズムがフラッシュメモリの各ブロックの劣化率をドラ
イブの寿命中常に均一にしようとしているからです。次の図は 32GB Imation SSD に 170 時間一定の書
き込みを行った後の結果を示します。各ブロックの消去カウントがほぼ同じであることに注目してくだ
さい。
図-24 ウェアレベリングアルゴリズムの効果
ウェアレベリングアルゴリズムを使用すると、寿命計算を簡単に SSD の容量と P /E サイクル寿命の積
を一日当たりの使用量で割って表すことができます。その他の要因、たとえば使用率(%)などは寿命
が近いことを示すセーフティネットとして使用することができます。また、容量率係数を方程式に加え
データ書き込み時のオーバーヘッドを考慮することができます。前述のように、容量率係数はシーケン
シャル書き込みでは一定ですが、他の書き込み方法では変化しオーバーヘッドを変動させます。
パラメータ:
• NAND フラッシュ P/E サイクル寿命
SLC 100,000 サイクル、 MLC 10,000 サイクル
• NAND フラッシュ P/E の使用率
フラッシュメモリの寿命と考えられる時の許容 P/E の値 - 95%
• SSD 容量
SSD の総容量
• 容量率係数 - データ書き込み時のオーバーヘッドの量
シーケンシャル書き込みには、定数の値を 1.1
書き込みデータの混在には、シーケンシャルとランダムに書かれたデータの比率による変数
Lifetime( years) =
(SSD _ Capacity(GB ))(P / E )(Percent _ Utilization )
(Usage / Day )(Capacity _ Rate)(365 days / year )
次の表は、シーケンシャル書き込みを行った 32GB ドライブの寿命です。
Page 26
(eqn 6)
Usage
Lifetime of a Sequential Written data
(GB/day)
3.2
10
32
100
320
Years
2366.1
757.2
236.6
75.7
23.7
表-25 32 ギガバイト製 SSD 寿命
アラン・オルソンは、イメーションの新製品開発研究所の電気工学のスペシャリスト、デニス・ラング
ロイはイメーションのアドバンストテープ&システム研究所のシニアデザインスペシャリストです。両
方の研究所はミネソタ州オークデールのイメーションワールドワイドヘッドクオータに所在します。
Page 27