民生用途に向けたSSDでは、「多値化」と「微細化」によって大容量化と低コスト化を実現してきた。だが、製品の耐久性や信頼性は低下している。今回は、SSDの製品寿命やデータ保持性能の低下を引き起こす要因について説明していく。
SSDに使用されている記憶素子のNANDフラッシュ・メモリは、「SLC(single level cell)」と「MLC(multi-level cell)」という2種類に大別でき、両者で「書き換え回数」が異なるという点はよく知られている。だが、両者の違いによってもたらされる“影響”について正しく理解している人はまだ少ないようだ。
例えば、米国でSSDの購入層を対象とした米IT Brand Pulse 社の調査レポート「SSDs with the following type of NAND Flash are best suited for my environment」によれば、利用するSSDに対してNANDの種別が最適かどうかを「知らない」と回答した人が4割弱に上ったという。ここからもNANDの種別の違いがもたらす影響について正しく理解されていないことが分かる。
SLCとMLC
まずはSLCとMLCの違いについて紹介したい(図1)。SLCは、各記憶素子で取り扱うビット数が1ビットのものを指す。これに対して、MLCは、同素子で2ビット以上を扱うものの総称として使われてきたが、最近では2ビット対応をMLC、3ビット対応をTLC(triple level cell)と呼んでいる。
SLCからMLC、MLCからTLCのように、各記憶素子で取り扱うビット数を1ビットから2ビット、2ビットから3ビットと増やしていくことを、「多値化」と呼ぶ。
簡単な話だが、1ビット対応のSLCから、2ビット対応のMLCに、記憶素子の種類を変更すれば、ユーザーから認識可能な容量は、同じ記憶素子数でも2倍になる。
そのため、民生用途のSSDでは大容量化と低コスト化のために、MLC NANDを採用するのが主流である。3ビット対応が可能なTLCは、主にUSBメモリなどで使用されているが、民生用途のSSDでも2012年9月に韓国Samsung Electronics社がTLC NANDを使用した製品を発表している。これにより、「1Gバイト=1米ドル」時代に突入したと言われている。
SSDは、NANDフラッシュの各記憶素子の浮遊ゲートに保存されている電子の量(電圧)を測定することで、書き込み(write)処理された数値を判別する。SLCは1ビット対応であり、「0」と「1」を判別するだけで済むため、電圧幅に余裕がある。一方、MLCは1個の記憶素子で、「11」と「10」、「01」、「00」の4種類を判別しなければならないため、電圧の細かな制御が必要になる。
なお、筆者の理解が間違っていなければ、MLCでは決められた値にするには、書き込みとベリファイ(verify)処理といった一連の手順を1~2回、搭載されているNANDによっては3回実行しなければならい。つまり、MLCはSLCより、書き込み処理の速度が遅くなる。