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
以上。