フラッシュメモリのSLC/MLC/TLC/QLC/PLCの意味を誤解していた

 SSDやSDカードなどの内部で使われている記憶デバイスフラッシュメモリですが、実用化された当初はSLCでした。以降、フラッシュメモリセルはMLC, TLC, QLCといった多値化されて大容量で低価格化が進んだ製品が現在では多く流通しています。
 最新の動向としては東芝がPLCを開発中であることが報じられています。
東芝がフラッシュメモリーで新技術を続々、5ビット多値化や容量倍増を射程 | 日経 xTECH(クロステック)

 私事ですが、恥ずかしながらMLC, TLC, QLC, PLCといった多値化されたセルについて、その意味を誤解していたことに気づいたので、改めて整理してみたいと思います。
 

略語の意味

 まず、NANDフラッシュメモリにおける、*LCの略語の意味ですが、以下の通りです。この点については特に誤解はありません。

SLC
Single Level Cell
MLC
Multi Level Cell
TLC
Triple Level Cell
QLC
Quad-Level Cell
PLC
Penta-Level Cell

 MLCは英語の意味からすると、Triple, Quad, Pentaも含む意味ですが、現在市販されているフラッシュメモリ製品に限れば事実上Dualの意味に限定されていると理解して問題ないでしょう。それぞれ、単一レベルセル~5レベルセルといった意味になります。
 

各Level Cellの保持しうるデータパターン

 これを私は誤解していました。

誤った理解

 nレベルセルと表現しているのだから、以下のようにn+1パターンの状態を保持できるのだろうと思っていました。

Type Possible value
SLC 0,1
MLC 0,1,2
TLC 0,1,2,3
QLC 0,1,2,3,4
PLC 0,1,2,3,4,5

 すなわち、SLCは1bit、TLCは2bitのデータをシンプルに各セルが保持できるものの、MLC, QLC, PLCの場合は単一セルではなく複数セルの組み合わせで複数ビットを保持するようにコントローラで複雑に制御しているのかなと思っていました。が、この理解は誤りです。

正しい理解

 冒頭に貼った日経の記事や、以下のMicronのQLC NANDを紹介するページの記載を見ると、Single, Triple, Quad, Pentaの意味するものは1セル当たりのビット数そのものを表しているようです。すなわち、SLCなら1bit/cell、PLCなら5bit/cellのデータが保持できることを意味しています。
QLC NAND
 
 つまり、以下のように1セル当たり2のn乗のパターンの状態を保持できるのが正しいことになります。

Type Possible value
SLC 0,1
MLC 0,1,2,3
TLC 0,1,2,3,4,5,6,7
QLC 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
PLC 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

 

1セルでどうやって多値化を実現しているのか

 一般のデジタル電子回路では、電圧の高低や電荷の有無で1bitに相当する1/0を表現できますが、0/1の2パターン以上の状態を表現するには複数bitに相当するセルや回路が必要になります。
 NAND型フラッシュメモリの多値化をどうやって実現しているのかを調べてみると、セルに保持させる電荷量の差異によって多値化を表現しているようです。すなわち、単純な電荷の「有/無」ではなく「量」の概念ですので、デジタル電子回路ではなくアナログ電子回路の要素を含んでいます。読み出し時にゲート電圧を2のn乗のパターンで順次変化させ、ソース-ドレイン間に電流が流れたときが何番目のパターンであるかを識別することで、データを読みだしているようです。
 TDKの以下のページが参考になります。
SHG2Aシリーズ|TECH JOURNAL|TDK
 



以上。