K75thunderbirdのブログ

どちらかというと自分の頭の整理用です。ネタとしてはモバイル、自動車、ロードバイク、電気関係やPC関係の突っ込んだ話題、ややデバイスやコンポーネント寄りの偏った内容になると思われます。

今、SSDの信頼性と寿命を考える(NANDメモリ編)

このBlog開設から1年経ったというメールが届いた。
大した内容は書いていないが、これからも脳内整理を兼ねて時々情報を書き留めておきたい。

 

話は変わって、SSDだ。
既に使っておられる方が大半かと思う。
高速であり、耐衝撃性に優れ、低発熱で、非常に優秀なデバイスである。

現在、速度はI/Fの限界に迫るものを獲得し、アプリの起動時間はすでにこれ以上短縮できないまでに飽和している。
この点において登場当初から飛躍的な進歩を遂げたことは疑う余地がない。

しかし、上に挙げたような特徴を本当に信じ続けて良いだろうか。
今のSSDは昔のSSDと同じ扱いで良いのだろうか。
SSDに使われているデバイスの観点から考えてみたい。

 

SSDが一般的なデバイスになったのは、一つにはIntelが自社製品としてSSDを発売したことが大きかったのではないだろうか。
当初、SSDと言えば「プチフリ」という単語に表されるように、安定性に欠けるデバイスである感が拭えなかった。

確かに速い。しかし扱いが難しい。

そのような状況に対してIntelが高速性と安定性を兼ね備えた製品を投入し、割高であるにもかかわらず人気を博した。
以来、徐々にではあるが、極端に性能の悪いSSDは駆逐されてきたように思う。

そのIntelの製品投入と前後して、SSDを低価格にするための技術革新があった。
フラッシュメモリ(NAND)の多値化である。

それまで、NANDの1セルに1bitしか記録することができず、SSDが高コストである主因となっていた。
これが、1セルに2bitを記録できるようになったことで、単純に同一面積に倍の容量を記録できるようになり、文字通りコストが半減した。
非常に大きな進歩と言える。

しかし、喜べる事ばかりではない。
引き換えになったのは、NANDの耐久性である。

今までは、セルに記録された情報が0か1(2値)が見分けられればよかったため、相当劣化したセルでも何とか使用できた。
しかし、2bit記録の場合は0か0.33か0.66か1(4値)を見分ける必要がある。
そのため、セルが劣化してきた場合に数値が判別できなくなるまでのマージンが少ない。

では、NANDメモリはどれくらい使ったら寿命となるのか。
これは単純に書き換え回数に比例する、と考えてよい。
 ※正確には読むだけでも多少影響があるようだが事実上無視できると考えている

1bitの頃、SLCと呼ばれているNANDメモリは、10万回とも言われる高い耐久性を持っていた。
これが2bitになり、MLCと呼ばれるNANDメモリは、一気に5000~1万回程度の耐久性に落ちてしまった。
今は3bit記録のNANDメモリも登場し、これに至っては3000回を下回るレベルとも言われている。

 

もっと悪いニュースがある。
半導体は年々微細化し、それによりロジックの大規模化を進めてきた。
IntelSSDを投入した当初、NANDメモリは50nmまたは34nmといったプロセスルールで製造されていた。
それが今や15nmに到達している。
問題なのは、微細化するほどNANDメモリの耐久性が落ちることだ。
つまり、多値化と微細化により、NANDメモリの耐久性は加速度的に下降し続けていることになる。
実際、15nmに到達したのは2年ほど前になるが、それ以降更なる微細化が進んでいないことは耐久性に致命的な影響があることの裏づけと言える。

実際、現在のMLCタイプでも3000回という値を聞くこともあり、TLCに至っては1000回という話もある。
使い方によって耐久性は上下するので一概には言えないが、基本的に耐久性は新しい世代ほど落ちる傾向にある。
これだけは間違いない。

 

ここまでの話を見る限り、NANDメモリは古いほど耐久性があって安心できることになる。
では、今のSSDは安心して使用できない欠陥品なのだろうか。
答えは否、だ。

これに関しては良いニュースがある。

微細化を進めていたNANDメモリだが、微細化しすぎて壁に突き当たったのだ。
前述のとおり、ここ2年ほど微細化は行われていない。

だからなんだ?と思うかもしれない。
が、話はこれからである。

これ以上微細化できない(微細化しても十分な性能が確保できない)と知ったメーカーは、今まで平面方向に作成していた半導体を立体方向に作成し始めた。
生産コストの安い従来型のNANDメモリを作りつつ、積層プロセスで3次元化したNANDメモリも製造するのが、ここ数年の各社のトレンドとなっている。

勘違いしやすいのは、この3次元化は、積層パッケージとは別の話であることだ。
積層パッケージは、メモリチップをパッケージ化する際に何枚ものダイを積層し、チップの実装個数を減らす技術だ。
これに対して積層プロセスは、ダイ作成時にトランジスタを立体的に作成するもので、物理的には1枚のダイである。
ただし、共に組み合わせることは可能なので、積層プロセスで作成したダイを積層パッケージにした製品は存在する。
ややこしいが、分けて考えてほしい。

話を戻すと、3次元NANDは64層くらいまで実用化されており、100層近くまでは実用化が見えているのが現状だ。

で、多層化すると何が良いのか。
問題はここである。

それは、多層化することで、同一面積で飛躍的に記憶容量を増やすことが可能になったのと同時に、半導体の微細化を少し前のレベルまで戻すことが可能になったことだ。
語弊を恐れずに言い方を変えれば、古いプロセスルールで耐久性を確保しつつ、減ってしまった容量を立体方向で稼ぐことができる。
その結果、耐久性(書き換え可能回数)と容量を両立させることができる。
これがNANDメモリにとっての3次元化の最大のメリットだ。

ただ、メーカーは具体的なプロセスルールや書き換え回数などの情報を明かしていないため、どの程度改善されたかは不明だ。
各社の論文を調べれば分かることもあるかもしれないが、そこまでの確認を行っていないのは勘弁していただきたい。
しかし、著しく減少していた耐久性が3次元化によりある程度のレベルまで戻ったことは事実である。
これが、現状のNANDメモリである。

 

ここまでが、NANDメモリについての話となる。
大容量化の影には、耐久性とのトレードオフや構造の変更があったのだ。

次回は、そのNANDメモリを制御するコントローラーの話について書きたいと思う。

 

それでは皆さん、ごきげんよう