冷蔵庫や電子レンジ、腕時計やおもちゃなど、身の回りにあるちょっとした機器にも使われており、もはや現代の生活には無くてはならない存在になっているといっても過言ではありません。デジカメやビデオカメラ、携帯電話などに使われるメモリカードや、パソコンで使うUSBメモリもフラッシュメモリを使った製品です。
そんなフラッシュメモリの最大の特徴は、電源を切っても記録されたデータが失われないことです。
ここではまず、フラッシュメモリの仕組みについて解説します。
フラッシュメモリの構造
フラッシュメモリのデータを記録する最小単位をセルと呼びますが、セルは【図1】のような構造になっています。P型半導体の上にN型半導体のドレイン電極とソース電極を設け、P型半導体上にトンネル酸化絶縁膜で挟んだフローティングゲートを形成しています。このフローティングゲートに電子を蓄えたり放出したりすることでデータを記録・保存します。データ「0」を書き込む場合にはソースとドレインをグランド電位としてコントロールゲートに高めの電圧を印加することで、トンネル酸化膜を突き破って電子がフローティングゲートに蓄えられます。データ「1」を書き込む場合は何もしません。データの消去(「0」から「1」に戻す)には、コントロールゲートをグランド電位とし、ドレインとソースに電圧を印加することでフローティングゲート内の電子を追い出します。(図2)このような仕組みでデータの記録と消去を行っています。わかりやすく言えば、フローティングゲートという「コップ」に電子を貯めたり抜いたりすることで、データを記録しているのです。
一方、データの読み出しはコントロールゲートに一定の電圧を掛けて、ソースからドレインに流れる電流を読み出します。フローティングゲートに電子が蓄積されていれば電流が流れにくく、蓄積されていなければ大きな電流が流れます。(図3)この違いを検出してデータが「0」であるか「1」なのかを判定する仕組みです。電子がフローティングゲート内に絶縁された状態で保持されるため、電源を切っても記録したデータが消えない「不揮発性メモリ」としての特性を持っており、このことがフラッシュメモリがストレージとして急速に普及した最大の理由となっています。
フラッシュメモリの寿命
ところがフローティングゲートに電子を出し入れする際に、トンネル酸化膜を突き破って電子が移動するため、酸化膜が徐々に劣化を起こし、最終的には電子を保持できなくなってそのセルは寿命に達します。一般的なNANDフラッシュメモリの場合、個々のセルはおよそ1千~1万回程度の書き込みと消去で寿命に達するとされています。コップの表面に「金魚すくい」のような紙を貼った状態を想像していただけるとわかりやすいと思います。最初のうちは水はこぼれませんが、何度も水を出し入れしていくうちに紙が破れたり穴が開いたりして水が漏れるようになります。同じようにトンネル絶縁膜が劣化すると、フローティングゲートの外に電子が漏れ出すようになってしまい、正しいデータを維持できなくなってくるのです。このため、新品のフラッシュメモリセルがデータを10年以上保持できるのに対して、何度も書き込みと消去を繰り返したセルは、データを保持できる時間が短くなってきます。そして最後には全くデータを記録できなくなってそのセルは寿命を迎えるのです。
そこで実際のストレージ製品などでは、いろいろな技術を用いてフラッシュメモリの寿命を延ばす工夫が凝らされています。これについては次回以降に解説したいと思います。
「書き換え」できないフラッシュメモリ
実はフラッシュメモリのセルは「書き換え」ができません。「え?」と思われるかも知れませんが、事実です。データを書き換えるためには「消去」してから「書き込み」を行う必要があるのです。そして、消去は「ブロック」と呼ばれるまとまった単位でしか行えません。初期のフラッシュメモリは全体が1ブロックだったので、一部分を書き換えるためには全てを消去してから改めてデータを書き直す必要がありました。しかし現在のフラッシュメモリは数十キロ~百数十キロバイト単位(1ブロックのサイズ)で消去ができます。それでも一部のデータを書き換えるためには、ブロック全体を消去して、改めてデータを書き込み直す必要があります。
このことは普段USBメモリやメモリカードなどのストレージ製品を使う上では全く意識していませんし、その必要もなく使えていると思います。実はこれはメモリコントローラが裏でこっそり頑張っているからに他なりません。しかしストレージの中ではこのような仕組みが働いていて、そのことを知っているのと知らないのとでは、使い方によってフラッシュメモリ製品の速度や寿命に違いが出てくるのです。
SLCとMLCの違い
10年ほど前までは数Mビット程度しかなかったフラッシュメモリの記憶容量は、その後製造技術の向上に伴って微細化と大容量化が行われ、今では1チップで32G~64Gビットの製品も登場しています。そこには微細露光技術を使った製造プロセスの進化が大きく影響しているのは他の半導体デバイスと同じですが、フラッシュメモリには他にも大容量化のための独自技術が導入されています。
その1つがMLC(Multi Level Cell)技術です。従来のフラッシュメモリはSLC(Single Level Cell)とも呼ばれ、フローティングゲートに電子がある(0)か無い(1)かで情報を記録する仕組みであることは先に述べたとおりですが、MLCはフローティングゲートの電子の量を細かく管理することで、電子の量をデータ値として記録できるようにする仕組みです。例えば、電子が満杯(0)、半分以上ある(1)、少しだけある(2)、無い(3)といった4つのレベルを設けることで2ビットを記録でき、同じ面積のセルでも2倍の情報量を記録できる、というわけです。(図4)実際にはより多くのレベルに細分化することも技術的には可能で、1セルあたりの記録容量を高める技術として注目されています。すでに製品レベルでは1セルに8段階(3ビット)のデータを記録するトライビットが実用化されており、試作レベルでは16段階(4ビット)の記録にも成功しているそうです。しかしMLCでは電子のレベルをデータに変換していますので、トンネル絶縁膜の劣化にはよりセンシティブになります。つまりMLCはSLCよりもセルの寿命が短く、かつデータエラー率が高くなります。容量よりも信頼性を優先する用途では、今でもSLCのフラッシュメモリが使用されているのはこのためです。