福田昭のセミコン業界最前線

NANDフラッシュメモリの信頼性を保つ技術



 大容量NANDフラッシュメモリの信頼性が急激に悪化している。「Flash Memory Summit 2010」のフラッシュメモリに関する講演を聴講する限り、このように結論せざるを得ない。

 信頼性といってもいろいろある。当面、問題となるのは書き換え可能回数(書き換え寿命)と読み出し誤り率だ。半導体製造技術の微細化が進むことで、書き換え寿命が減りつつある。それから、多値化(多ビット化)が進むことでも、書き換え寿命が減りつつある。もちろんこれは素材としての話であり、製品としての信頼性を保つ技術の導入が進んでいる。

 NANDフラッシュメモリはデータを書き込むときに、前もってデータを消去しておく必要がある。この消去動作がメモリセルに大きなストレスを与える。微細化は、ストレスに対する耐性を弱める方向に働く。そして書き換えを繰り返すと、メモリセルのデータ読み出しにおける誤り率(ビット誤り率:BER)が増加する。

 多値化とは、1個のメモリセルに2bit、あるいは3bit以上のデータを記録することを指す。2bitを記録する技術はMLC、3bitを記録する技術はTLCと呼ばれている。ちなみに1bitを記録する従来技術は区別のため、SLCと呼ばれる。

 MLCでは、メモリセルに4通りの電圧を書き込む。当然ながら、2通りの電圧を書き込むSLCに比べると、MLCはマージンが少ない。書き換えを繰り返すと、SLCに比べてビット誤り率が増加する。TLCではさらに厳しい。メモリセルに8通りの電圧を書き込むからだ。書き換え寿命はMLCよりも短くなる。SLCでは5万~10万回、MLCでは5,000~1万回、TLCでは約1,000回(あるいは1,000回未満)というのが5xnm世代~2xnm世代の書き換え寿命である。

微細化と多値化(多ビット化)による書き換え寿命の変化。Anobitの講演資料から民生用NANDフラッシュメモリの書き換え寿命(左の縦軸)。横軸は明記されていないが、微細化(右に進むほど細くなる)を意味する。Micron Technologyの講演資料から

●ブロックごとの品質ばらつきが増大
書き換え回数とブロックごとの読み出し誤り率の関係。書き換え可能回数が少ないときはブロックごとの誤り率のばらつきが3.5倍だが、書き換え回数が多くなると誤り率のばらつきが40倍にも広がってしまう。Smart Modular Technologiesの講演資料から

 NANDフラッシュメモリはデータを1bit単位では読み書きしない。ページ単位で読み、ブロック単位で書き換える。ページの大きさは通常、4KBあるいは8KBである。ブロックは通常、128ページあるいは256ページなので、ブロックの大きさは512KB~2MBになる。ブロックの大きさが2MB(16Mbit)だと、16GbitのNANDフラッシュメモリは1,024個のブロックを内蔵する。

 ここで問題となるのが、ブロックごとの信頼性のばらつきである。初期状態では、ブロックごとのビット誤り率のばらつきは小さい。いずれもかなり低い値にとどまる。ところが、書き換えを繰り返していくとブロックごとのビット誤り率のばらつきが増大する。同じシリコンダイの中に、品質の高いブロックと品質の低いブロックが存在していることが、明確になってくる。

●読み出さないのにメモリセルが劣化する
書き換え回数と読み出し回数によるビット誤り率(読み出しディスターブ)の変化。書き換え回数(PE Cycles)と読み出し回数(Rd Disturbs)が増えるとともに、ビット誤り率が増加する。Smart Modular Technologiesの講演資料から

 NANDフラッシュメモリのビット誤り率が増大するのは、特定の条件がそろったブロックである。特定のブロックに偏って読み出し続けていると、書き換え回数が多く、かつ、長期間にわたって読み出さないブロックの誤り率が増加する。

 これだけでは何のことか分からないので、もう少し詳しく説明しよう。書き換え回数が多くなるほどメモリセルに対するストレスが蓄積し、記録したデータが時間経過とともに消えやすくなる。ここまでは分かりやすい。問題はその後だ。特定のブロック(例えばブロックA~ブロックB)だけを繰り返して読み出したとしよう。このとき、読み出さないブロックにストレスがかかるのだ。読み出さないブロックには何もストレスがかからないと考えがちだが、NANDフラッシュメモリは読み出さないブロックにも電圧が加わる。このため記録したデータが少しずつ消えていく(具体的には、しきい電圧が少しずつ低下する)。この不良は「読み出しディスターブ(Read Disturb)」と呼ばれており、フラッシュメモリのような電荷を貯めるタイプの不揮発性メモリに特有の不良モードだ。

 読み出しディスターブは多値化のビット数を多くするとともに、大きな脅威となる。SLCよりもMLC、MLCよりもTLCで、ビット誤り率が増大する。

●誤り訂正を強化、さらに強化

 最先端の大容量NANDフラッシュメモリでは、データの読み書きを繰り返すほど、ビット誤り率が増えていく。メモリセルが破壊されている訳ではないので、冗長ブロック(余分なブロックを設けて不良ブロックと交換する手法)は対策にならない。誤り訂正符号(ECC:Error Correction Code)によって読み出したデータを訂正することになる。

 最近の微細化と多値化によってNANDフラッシュメモリの誤り訂正は急速に強化される傾向にある。SLCでは1bitのハミング符号で済んでいたが、MLCではBCH(Bose-Chaudhuri-Hocquenghem)符号を使うようになってきた。MLCでは微細化とともに、BCH符号のビット数が4bitから8bit、24bitと急速に長くなりつつある。将来の大容量NANDフラッシュメモリ用には、LDPC(Low Density Parity Check)符号や独自の信号処理技術(MSP:Memory Signal Processing)などが検討されている。

微細化による誤り訂正符号の複雑さの増大。Micron Technologyの講演資料からNANDフラッシュメモリの誤り訂正符号の推移。MemCon Tokyo 2010でマイクロンジャパンが講演した資料から多値化による書き換え寿命と誤り訂正ビットの推移。Anobitの講演資料から
LDPC(Low Density Parity Check)符号による誤り訂正の効果。35シンボルのリード・ソロモン符号(RS符号)および32bitのBCH(Bose-Chaudhuri-Hocquenghem)符号と比較して高い効果を得ているとする。Cadence Design Systems(元Denali Software)の講演資料から信号処理による誤り訂正技術「MSP」の回路ブロック。技術の詳細は公表されなかった。Anobitの講演資料から。なおSamsung Electronicsは、MSP技術をTLC方式のNANDフラッシュメモリに採用することを決めている

●誤り訂正の強化はコスト増加と性能低下を招く

 誤り訂正機能の強化は当然ながら、コストの増大と性能の低下を招く。誤り訂正処理を担うのはコントローラチップである。コントローラ回路の規模(シリコン面積)が増大し、読み出し速度と書き換え速度が低下する。いずれも微細化と多値化によって、さらに深刻になる。

 そこで、従来とは異なる論理演算アーキテクチャを導入することで、誤り訂正回路の規模を縮小する試みがFlash Memory Summitでは挙がっていた。例えば確率(確からしさ)の概念を持ち込むことで、論理ゲート数を従来の数十分の1に減らせるという。

誤り訂正技術の高度化にともなる論理ゲート数の増加。Micron Technologyの講演資料からLDPC符号の誤り訂正にベイズ論理を組み込むことで、トランジスタ数の少ない誤り訂正回路を実現する。ベイズ論理演算では「1」である確率と「0」である確率の乗算を推論のベースにする。Lyric Semiconductorの講演資料から

●誤り訂正回路をNANDフラッシュに内蔵へ

 さらに、NANDフラッシュメモリのシリコンダイに誤り訂正機能を内蔵させる動きが出てきた。誤り訂正の強化が、書き換え性能を大幅に低下させる恐れがあるからだ。

 NANDフラッシュメモリのデータ書き換えでは、対象ブロックのデータをコントローラに読み込んで誤り訂正処理をかける必要がある。誤り訂正の強化は必然的に処理時間を増大させる。データの書き換えが連続して生じると、誤り訂正処理がボトルネックとなってコントローラの動作が著しく遅くなりかねない。

 そこで誤り訂正機能をコントローラ側ではなく、NANDフラッシュメモリ側に持たせることで、コントローラを誤り訂正処理から解放する。このようなNANDフラッシュメモリは「EZ(ECC Zero) NAND」と呼ばれている。NANDフラッシュメモリの業界団体であるONFi(Open NAND Flash Interface)の共通規格「ONFi 2.3」として、Flash Memory Summit 2010の開催前日である8月16日に、EZ NANDの規格策定がアナウンスされた。今後はMicron TechnologyやHynix Semiconductorなどから、EZ NANDの製品が出荷される見込みである。

「EZ(ECC Zero) NAND」メモリのアーキテクチャ。SanDiskの講演資料からコントローラに誤り訂正を組み込んでいることによるオーバーヘッド。例えば16bitのBCH符号による誤り訂正処理(現在のMLCタイプに使われているもの)では、あるブロックのデータを読み込んで別のブロックに書き込むとき(コピーバック動作時)に、誤り訂正処理におよそ83μsを必要とする。Micron Technologyの講演資料からEZ NAND(誤り訂正を組み込んだフラッシュメモリ)でコピーバックを実行した場合。コントローラにおけるオーバーヘッドがゼロになるとともに、複数のコピーバックを並列に実行できる。Micron Technologyの講演資料から

●NANDフラッシュの信頼性は半導体レベルからストレージレベルへ
NANDフラッシュメモリの書き換え寿命(Endurance cycle)とデータ保持時間(Data retention)の関係。Hot Chips 22におけるSamsung Electronicsの講演資料から

 NANDフラッシュメモリの信頼性を示す重要な指標には、書き換え寿命のほかにデータ保持時間がある。その名称の通り、メモリセルにデータをどのくらいの期間、保持していられるかを示すものだ。一般的には、不揮発性半導体メモリのデータ保持時間は10年以上、とされている。

 かつてのNANDフラッシュメモリは1万回、あるいは10万回といった書き換え寿命を満たした後に、10年間のデータ保持時間を保証していた。これは非常に厳しい仕様で、NANDフラッシュメモリを大容量化するには無理があった。現在では、書き換え寿命を満たした後のデータ保持期間は1年というのが、半導体業界団体JEDECの標準仕様になっている。信頼性レベルとしては低下したことになる。

 NANDフラッシュメモリの信頼性は、これまでの半導体メモリの常識を逸脱したレベルへと低下しつつある。ただし、HDDと比べれば、NANDフラッシュメモリの信頼性はまだまだ高い。HDDでは強力な誤り訂正処理をかけることは常識であり、すでに一部の機種では、NANDフラッシュメモリでは未導入のLDPC符号を導入済みだとされる。NANDフラッシュメモリは記憶容量当たりのコストを急速に低下させることで、PCやサーバーなどにストレージとして採用されるようになった。コスト低減と引き換えに半導体レベルの信頼性を失うのは、むしろ当然のことにも感じる。

バックナンバー

(2010年 9月 2日)

[Text by 福田 昭]