(57)【特許請求の範囲】
【請求項１】
不揮発性メモリを制御する不揮発性メモリコントローラであって、
前記不揮発性メモリは、複数のブロックを含み、
前記ブロックは、複数のメモリセルを含み、前記不揮発性メモリにおけるデータの消去単位であり、
前記メモリセルは、書き込み種別として２値書き込みと多値書き込みとが可能であり、それぞれＮビット（Ｎは１以上の整数）の情報を記録可能であり、
前記メモリセルの特性の劣化量は、記録する情報量に応じて異なり、
前記不揮発性メモリコントローラは、
前記不揮発性メモリに対してデータの読み出し、書き込み、及び消去の制御を行う制御部と、
前記ブロック単位で前記メモリセルの劣化度合いを記録するためのストレステーブルとを備え、
前記制御部は、前記ストレステーブルの劣化度合いの値に、前記書き込み種別に対応した劣化度合いの加算量を加算することにより、前記ブロックに対する消去のサイクル毎に、前記ストレステーブルに、前記メモリセルに格納する情報量に応じて前記メモリセルの劣化度合いを記録することを特徴とする不揮発性メモリコントローラ。
【請求項２】
前記メモリセルに記録する情報量は、前記ブロックの単位で同じビット数であることを特徴とする請求項１記載の不揮発性メモリコントローラ。
【請求項３】
前記制御部は、前記書き込みの制御において、前記ストレステーブルを参照し、前記不揮発性メモリ前記メモリセルの劣化度合いが少ないブロックにデータを書き込むことを特徴とする請求項１記載の不揮発性メモリコントローラ。
【請求項４】
前記制御部は、前記ブロックからデータを消去した後、前記ブロックにデータを書き込む前に、前記ストレステーブルに前記メモリセルの劣化度合いを記録することを特徴とする請求項１記載の不揮発性メモリコントローラ。
【請求項５】
前記不揮発性メモリコントローラの外部から指定されるアドレスを論理アドレスとし、前記不揮発性メモリの前記ブロックのアドレスを物理アドレスとして、前記論理アドレスと前記物理アドレスとの対応情報を格納するアドレス変換テーブルをさらに備えることを特徴とする請求項１記載の不揮発性メモリコントローラ。
【請求項６】
前記論理アドレスに対応して、前記メモリセルに記録する情報量を決定するための領域指定テーブルをさらに備えることを特徴とする請求項５記載の不揮発性メモリコントローラ。
【請求項７】
前記領域指定テーブルは、前記不揮発性メモリコントローラの外部から書き換え可能なことを特徴とする請求項６記載の不揮発性メモリコントローラ。
【請求項８】
前記メモリセルの劣化度合いは、前記メモリセルに書き込まれたデータの保持期間を基準として決定されることを特徴とした請求項１記載の不揮発性メモリコントローラ。
【請求項９】
請求項１から８のいずれか１項に記載の不揮発性メモリコントローラと、
前記不揮発性メモリとを備えることを特徴とする不揮発性記憶装置。
【請求項１０】
前記不揮発性メモリは、ＮＡＮＤタイプのフラッシュメモリを含むことを特徴とする請求項９記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを制御する不揮発性メモリコントローラ、及び、該不揮発性メモリコントローラを用いた不揮発性記憶装置に関する。
【背景技術】
【０００２】
近年、書き換え可能な不揮発性メモリであるＮＡＮＤタイプのフラッシュメモリを搭載した不揮発性記憶装置として、メモリーカードがデジタルカメラや携帯電話の記憶媒体に使用され、その市場が拡大している。
【０００３】
また、不揮発性記憶装置は、半導体プロセスの微細化に伴い、ビット単価が下がり、安価な記憶デバイスとして、メモリーカード以外の市場、例えば、ＨＤＤ（Hard Disk Drive）と置き換えられるＳＳＤ（Solid State Drive）や、ホスト機器に直接搭載するエンベデッドシステムのメモリに用いられ、その適用が拡がっている。
【０００４】
ここで、ＮＡＮＤタイプのフラッシュメモリの特徴として、以下の項目が挙げられる。
【０００５】
・半導体メモリの中で最も容量が大きく、低ビットコストの不揮発性メモリである
・半導体プロセスの微細化に伴い、データの信頼性が低下している
・２値や多値の複数のタイプのメモリセルがある
以下、それぞれについて順に説明する。
【０００６】
ＮＡＮＤタイプのフラッシュメモリは、半導体プロセスの最小加工寸法をＦとすると、（２Ｆ）の２乗の大きさで１つのメモリセルを構成できる。このことが、ＮＡＮＤタイプのフラッシュメモリを、半導体メモリの中で最も低ビットコストとし、且つ最も大容量なメモリとしている。
【０００７】
また、ここ数年は、プロセスドライバーとして、半導体プロセスの最も進んだプロセスルールを使用して、ＮＡＮＤタイプのフラッシュメモリの製造が行なわれている。これにより、ＮＡＮＤタイプのフラッシュメモリは、他のメモリを用いていたシステムにも、使用され始めている。
【０００８】
例えば、高速なランダムアクセスが要求されるプログラムコードは、ＮＯＲタイプのフラッシュメモリに格納され、大きな容量が要求されるユーザデータは、ＮＡＮＤタイプのフラッシュメモリに格納されていたシステムが、単一のＮＡＮＤフラッシュメモリのみに置き換わっている。
【０００９】
これは、搭載するＮＡＮＤタイプのフラッシュメモリの容量が、必要なＮＯＲタイプのフラッシュメモリの容量に比べて十分小さく、また、ＮＯＲタイプのフラッシュメモリに搭載していたプログラムコードをＮＡＮＤタイプのフラッシュメモリに格納しても、その影響が少なく、ＮＡＮＤタイプのフラッシュメモリを使用する工夫を盛り込んだとしても、ＮＯＲタイプのフラッシュメモリをなくすことができるコストメリットが大きいためである。
【００１０】
また、ＮＡＮＤタイプのフラッシュメモリの大容量化は、半導体プロセスの微細化によるものが大きい。しかし、半導体プロセスの微細化は、メリットばかりではなく、データの信頼性の低下が問題になっている。すなわち、微細化が進むと、データ保持特性は低下し、書き換え処理による特性劣化が進む。
【００１１】
ここで、フラッシュメモリのメモリセルは、ＭＯＳ（Metal Oxide Semiconductor）タイプトランジスタのコントロールゲートと基盤との間に、電子を不揮発で保持するフローティングゲートを持つ構成をとり、基盤とフローティングゲートとの間で電子をやり取りすることにより、データの消去及び書き込みを行う。また、フラッシュメモリを構成するトランジスタに流れる電流量を判定することにより、フラッシュメモリのメモリセルからデータが読み出される。
【００１２】
上記のように、フラッシュメモリのメモリセルに対して、データの消去及び書き込みを繰り返すと、基盤とフローティングゲートとの間を電子が移動し、基盤とフローティングゲートとの間の絶縁膜（以降、ゲート絶縁膜）が劣化してしまう。ゲート絶縁膜が劣化すると、ゲート絶縁膜中に存在する欠陥を経由してフローティングゲートから基盤に電子が漏れ、ゲート絶縁膜中の欠陥にトラップされた電子の影響で書き込みの効率が低下して、データの信頼性が低下する要因となる。
【００１３】
こういったデメリットはあるが、圧倒的なビット単価を強みとすることができるので、データの信頼性を向上させる工夫を盛り込んででも、微細化の進んだフラッシュメモリの用途は拡がっている。
【００１４】
また、フラッシュメモリのデータの信頼性を検討する上で重要な要素は、データの書き込みに対するメモリセルの取り扱いである。すなわち、２値のメモリセルとしてデータを書き込んでいるのか、多値のメモリセルとしてデータを書き込んでいるのかによって、データの信頼性は大きく異なり、２値のメモリセルとしてデータを書き込む方が、データの信頼性が高くなる。一方、当然であるが、多値のメモリセルとしてデータを書き込む方が、メモリの容量を大きくすることが可能になり、同時にビット単価を低下させることができる。
【００１５】
以上のようなＮＡＮＤタイプのフラッシュメモリの特徴から、フラッシュメモリに対してデータを格納する際に書き込み方式の異なる複数の書き込み方式を用いることがある。例えば、信頼性に対する要求が高いプログラムコードを２値のメモリセルとして書き込む２値書き込みを行い、容量に対する要求が高いユーザデータを多値のメモリセルとして書き込む多値書き込みを行うことが考えられる。
【００１６】
次に、２値書き込みと多値書き込みとの比較をする。以下、簡単のために、２値書き込みの場合と４値書き込みの場合について、図を用いて説明する。
【００１７】
図１２は、２値書き込みした場合のメモリセルのしきい値電圧が、どのように分布するかを示す図である。図１２の左側の分布が、消去状態のメモリセルのしきい値電圧の分布を示し、図１２の右側の分布が、書き込み状態のメモリセルのしきい値電圧の分布を示している。２値書き込みの場合、メモリセルのしきい値電圧が、左の分布にあるか、右の分布にあるかで１ビットの情報を記憶する。
【００１８】
図１３は、４値書き込みした場合のメモリセルのしきい値電圧が、どのように分布するかを示す図である。図１３の左側の分布が、消去状態のメモリセルのしきい値電圧の分布を示し、図１３の右側の３つの分布が、それぞれ異なった書き込み状態のメモリセルのしきい値電圧の分布を示している。４値書き込みの場合、メモリセルのしきい値電圧が４つの分布のどこにあるかで２ビットの情報を記憶する。
【００１９】
図１２及び図１３から、２値書き込みの場合のしきい値電圧の分布の間隔１２０１に比べて、４値書き込みの場合のしきい値電圧の分布の間隔１３０１は狭くなっている。このように、分布の間隔が狭くなることにより、メモリセルのしきい値電圧の変動に対してのマージンが小さくなる。つまり、４値書き込みの方が、２値書き込みに比べて、データ保持期間が短くなる。
【００２０】
また、２値書き込みの場合のしきい値電圧の分布の幅１２０２に比べて、４値書き込みの場合のしきい値電圧の分布の幅１３０２を狭くする必要がある。このように、メモリセルのしきい値電圧の分布を狭くするためには、メモリセルへの書き込みにおける細かな制御を繰り返し実行することが必要となる。結果として、メモリセルへの書き込みストレスを印加する回数が多くなったり、印加する期間が長くなることになり、書き換え時におけるゲート絶縁膜の劣化が進み、書き換え回数が少なくなる。
【００２１】
図１４は、８値書き込みの場合のメモリセルのしきい値電圧が、どのように分布するかを示す図である。８値書き込みの場合、４値書き込みの場合に比べてさらに、しきい値電圧の分布の間隔１４０１と、しきい値電圧の分布の幅１４０２とがそれぞれ狭くなっていることが分かる。つまり、８値書き込みを行った場合には、書き換え回数はさらに少なく、データ保持期間はさらに短くなる。
【００２２】
また、特許文献１には、２値書き込みの領域と、多値書き込みの領域とを持った不揮発性記憶装置において、メモリセルアレイを２値書き込みの領域として使用する領域と、１６値（すなわち、多値）書き込みの領域として使用する領域とに物理的に分割して管理することにより、それぞれの領域において最適なブロック管理を行う技術が示されている。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００８−２５７７７３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２４】
しかしながら、上記の特許文献１のような構成においては、２値書き込みの領域として使用する領域と、１６値書き込みの領域として使用する領域とを物理的に区別して管理しているために、２値書き込み領域のみを繰り返し使用した場合に、２値書き込み領域の物理ブロックの書き換え回数のみが増えて劣化していくが、多値書き込み領域の物理ブロックは使用されないために劣化しないままであり、結果として、全体の物理ブロックを均等に使用することができないという課題がある。
【００２５】
また、それぞれの劣化の程度を書き換え回数のみで管理している。そのために、本来は劣化度合いが異なる２値の書き込みと１６値の書き込みとについて、共通の劣化の尺度を持ち得ないために、それぞれの領域の相互利用を阻害する要因となる。
【００２６】
本発明の目的は、任意に２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を必要とせず、不揮発性メモリの全てのブロックを有効に利用することが可能な不揮発性メモリコントローラ及び不揮発性記憶装置を提供することである。
【課題を解決するための手段】
【００２７】
本発明に係る不揮発性メモリコントローラは、不揮発性メモリを制御する不揮発性メモリコントローラであって、前記不揮発性メモリは、複数のブロックを含み、前記ブロックは、複数のメモリセルを含み、前記不揮発性メモリにおけるデータの消去単位であり、前記メモリセルは、それぞれＮビット（Ｎは１以上の整数）の情報を記録可能であり、前記メモリセルの特性の劣化量は、記録する情報量に応じて異なり、前記不揮発性メモリコントローラは、前記不揮発性メモリに対してデータの読み出し、書き込み、及び消去の制御を行う制御部と、前記ブロック単位で前記メモリセルの劣化度合いを記録するためのストレステーブルとを備え、前記制御部は、前記ブロックに対する消去のサイクル毎に、前記ストレステーブルに、前記メモリセルに格納する情報量に応じて前記メモリセルの劣化度合いを記録する。
【００２８】
この不揮発性メモリコントローラにおいては、データの消去単位となる不揮発性メモリのブロック単位で、ブロックに対する消去のサイクル毎に、メモリセルに格納する情報量に応じてメモリセルの劣化度合いをストレステーブルに記録しているので、ブロック別に２値書き込みと多値書き込みとが可能な不揮発性記憶装置において、２値書き込みを行った場合の劣化と、多値書き込みを行った場合の劣化とを共通の尺度で管理する仕組みを導入することにより、不揮発性メモリの劣化の均等化を図り、不揮発性メモリの劣化を抑えることができるとともに、不揮発性メモリの全てのブロックを有効に利用することができる。この結果、任意に２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を必要とせず、不揮発性メモリの全てのブロックを有効に利用することができる。
【００２９】
前記メモリセルに記録する情報量は、前記ブロックの単位で同じビット数であることが好ましい。
【００３０】
この場合、メモリセルに記録する情報量がブロックの単位で同じビット数であるので、ブロック単位でデータの消去及び書き込みを行う不揮発性メモリにおいて、２値書き込みを行った場合の劣化と、多値書き込みを行った場合の劣化とを共通の尺度で管理する仕組みを導入することができる。
【００３１】
前記制御部は、前記書き込みの制御において、前記ストレステーブルを参照し、前記メモリセルの劣化度合いが少ないブロックにデータを書き込むことが好ましい。
【００３２】
この場合、書き込みの制御において、ストレステーブルを参照し、メモリセルの劣化度合いが少ないブロックにデータを書き込んでいるので、全てのブロックを均等に使用することができる。
【００３３】
前記制御部は、前記ブロックからデータを消去した後、前記ブロックにデータを書き込む前に、前記ストレステーブルに前記メモリセルの劣化度合いを記録することが好ましい。
【００３４】
この場合、ブロックを消去した後、ブロックにデータを書き込む前に、ストレステーブルにメモリセルの劣化度合いを記録しているので、ブロックに対する消去のサイクル毎に、メモリセルの劣化度合いをストレステーブルに確実に記録することができる。
【００３５】
前記不揮発性メモリコントローラの外部から指定されるアドレスを論理アドレスとし、前記不揮発性メモリの前記ブロックのアドレスを物理アドレスとして、前記論理アドレスと前記物理アドレスとの対応情報を格納するアドレス変換テーブルをさらに備えることが好ましい。
【００３６】
この場合、不揮発性メモリコントローラの外部から指定されるアドレスを論理アドレスとし、不揮発性メモリのブロックのアドレスを物理アドレスとして、論理アドレスと物理アドレスとの対応情報を格納するアドレス変換テーブルを用いて、２値書き込みを行った場合の劣化と、多値書き込みを行った場合の劣化とを共通の尺度で管理しながら、外部から指定される論理アドレスに対応する物理アドレスを有する不揮発性メモリのブロックにデータを書き込むことができる。
【００３７】
前記論理アドレスに対応して、前記メモリセルに記録する情報量を決定するための領域指定テーブルをさらに備えることが好ましい。
【００３８】
この場合、領域指定テーブルを用いて、不揮発性メモリコントローラの外部から指定される論理アドレスに対するメモリセルに記録する情報量を決定することができるので、決定した情報量に応じた書き込み方式でデータを書き込むことができる。この結果、２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を設けることなく、不揮発性メモリの全てのブロックを有効に利用することができる。
【００３９】
前記領域指定テーブルは、前記不揮発性メモリコントローラの外部から書き換え可能なことが好ましい。
【００４０】
この場合、領域指定テーブルの内容を不揮発性メモリコントローラの外部から書き換えることができるので、任意に２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を設けることなく、不揮発性メモリの全てのブロックを有効に利用することができる。
【００４１】
前記メモリセルの劣化度合いは、前記メモリセルに書き込まれたデータの保持期間を基準として決定されることが好ましい。
【００４２】
この場合、メモリセルの劣化度合いが、メモリセルに書き込まれたデータの保持期間を基準として決定されているので、２値書き込み領域及び多値書き込み領域ともに、データの信頼性を向上することができる。
【００４３】
本発明に係る不揮発性記憶装置は、上記いずれかの不揮発性メモリコントローラと、前記不揮発性メモリとを備える。
【００４４】
前記不揮発性メモリは、ＮＡＮＤタイプのフラッシュメモリを含むことが好ましい。
【００４５】
この場合、ＮＡＮＤタイプのフラッシュメモリを用いているので、容量が大きく、低ビットコストの不揮発性記憶装置を提供することができるとともに、データの信頼性を向上することができる。
【発明の効果】
【００４６】
本発明によれば、任意に２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を必要とせず、不揮発性メモリのブロックを有効に利用することが可能な不揮発性メモリコントローラ及び不揮発性記憶装置を提供することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施の形態のメモリーカードの構成を示す図である。
【図２】図１に示すメモリーカードのアドレス変換テーブルの構成の一例を示す図である。
【図３】図１に示すメモリーカードの無効ブロックテーブルの構成の一例を示す図である。
【図４】図１に示すメモリーカードの領域指定テーブルの構成の一例を示す図である。
【図５】図１に示すメモリーカードの劣化度テーブルの構成の一例を示す図である。
【図６】図１に示すメモリーカードの書き込み処理のフローチャートである。
【図７】図１に示すメモリーカードの劣化度テーブルの更新後の状態の一例を示す図である。
【図８】図１に示すメモリーカードのアドレス変換テーブルの更新後の状態の一例を示す図である。
【図９】図１に示すメモリーカードの無効ブロックテーブルの更新後の状態の一例を示す図である。
【図１０】図１に示すメモリーカードの書き込み処理の各処理における各テーブルの参照及び更新の有無を示す図である。
【図１１】図１に示すメモリーカードのフラッシュメモリ部の書き換え回数とデータ保持期間との関係を示す図である。
【図１２】２値書き込みした場合のメモリセルのしきい値電圧の分布を示す図である。
【図１３】４値書き込みした場合のメモリセルのしきい値電圧の分布を示す図である。
【図１４】８値書き込みした場合のメモリセルのしきい値電圧の分布を示す図である。
【発明を実施するための形態】
【００４８】
以下、図面を参照して、本発明の一実施の形態のメモリーカードについて説明する。図１は、本発明の一実施の形態のメモリーカードの構成を示すブロック図である。
【００４９】
＜１．メモリーカードの構成＞
メモリーカード１０１は、外部のホスト機器２００と接続され、ホスト機器２００と双方向に通信を行うことにより、ホスト機器２００からの指示に応じてデータの読み出し及び／又は書き込みを行う。
【００５０】
メモリーカード１０１は、コントローラ１０２と、フラッシュメモリ部１０３とを備える。コントローラ１０２は、メモリーカード１０１とホスト機器２００とのインターフェースの制御を行うと共に、フラッシュメモリ部１０３の制御を行う。
【００５１】
フラッシュメモリ部１０３は、不揮発性メモリの一例であるフラッシュメモリからなる。図示しないが、フラッシュメモリは、ＮＡＮＤタイプのフラッシュメモリであり、複数の物理ブロックからなる。物理ブロックは、複数のメモリセルからなる。物理ブロックは、フラッシュメモリにおけるデータの消去単位である。メモリセルの各々は、それぞれＮビット（Ｎは１以上の整数）の情報を記録可能であり、メモリセルの特性の劣化量は、記録する情報量に応じて異なる。
【００５２】
ここで、メモリーカード１０１が不揮発性記憶装置の一例であり、コントローラ１０２が不揮発性メモリコントローラの一例であり、フラッシュメモリ部１０３が不揮発性メモリの一例である。また、ホスト機器２００の一例としては、デジタルカメラ、携帯電話、ビデオレコーダ、コンピュータ等が該当する。
【００５３】
メモリーカード１０１は、メモリーカード１０１の外部のホスト機器２００からのアドレスを指定したデータの書き込みや読み出しの制御に対応して、フラッシュメモリ部１０３にデータを書き込み、又は、フラッシュメモリ部１０３からデータを読み出す。
【００５４】
コントローラ１０２は、ホストインターフェース部１０４、フラッシュメモリ制御部１０５、バッファメモリ１０６、ＥＣＣ１０７、制御部１０８、アドレス変換テーブル１０９、無効ブロックテーブル１１０、不良ブロックテーブル１１１、領域指定テーブル１１２、及び劣化度テーブル１１３を備える。
【００５５】
ホストインターフェース部１０４は、ホスト機器２００とのインターフェースを制御する。フラッシュメモリ制御部１０５は、フラッシュメモリ部１０３の制御を行う。バッファメモリ１０６は、ホスト機器２００からの書き込みデータや、ホスト機器２００への読み出しデータをフラッシュメモリ部１０３との間で転送する際に、一時的にデータを格納するための揮発性のバッファメモリである。
【００５６】
ＥＣＣ１０７は、ＥＣＣ（エラー検出訂正）回路であり、フラッシュメモリ部１０３にデータを書き込む際に付加するＥＣＣ（Error Correcting Code：誤り訂正符号）を生成し、フラッシュメモリ部１０３からデータを読み出す際に、読み出したデータの訂正を行う。
【００５７】
制御部１０８は、図示を省略した配線により各ブロックに接続され、各ブロックの動作を制御することにより、コントローラ１０２内部全体の制御を行う。また、制御部１０８は、フラッシュメモリ部１０３に対してデータの読み出し、書き込み、及び消去の制御を行う。
【００５８】
アドレス変換テーブル１０９は、ホスト機器２００から指定されるアドレス（論理アドレス）と、フラッシュメモリ部１０３の物理ブロックのアドレス（物理アドレス）との対応を記録する。すなわち、アドレス変換テーブル１０９は、コントローラ１０２の外部からの指定されるアドレスを論理アドレスとし、フラッシュメモリ部１０３の物理ブロックのアドレスを物理アドレスとして、論理アドレスと物理アドレスとの対応情報を格納する。
【００５９】
無効ブロックテーブル１１０は、フラッシュメモリ部１０３において有効なデータが書き込まれておらず、且つ、不良ブロックでない（不良ブロックテーブル１１１で管理されていない）物理ブロックのアドレスのリストを記録する。すなわち、無効ブロックテーブル１１０は、論理アドレスに対応するデータが格納されておらず、新たなデータの書き込みが可能な物理ブロックの物理アドレスを格納しており、データの書き込みに使用可能な物理ブロックが無効ブロックテーブル１１０に登録されている。
【００６０】
不良ブロックテーブル１１１は、フラッシュメモリ部１０３における不良ブロックの物理アドレスのリストを記録する。
【００６１】
領域指定テーブル１１２は、ホスト機器２００から指定される論理アドレスを複数の領域に分割し、それぞれの分割された領域のデータに対してデータの書き込み方法を示すテーブルである。領域指定テーブル１１２は、ホスト機器２００から指定される論理アドレスに対応して、フラッシュメモリ部１０３の物理ブロックのメモリセルに記録する情報量を決定するために使用され、コントローラ１０２の外部、例えば、ホスト機器２００からテーブルの内容を書き換え可能に構成されている。
【００６２】
ここで、メモリセルに記録する情報量としては、２値、又は３値以上の多値（例えば、４値、８値、１６値）があり、書き込み方式を特定するための書き込み種別の情報として、２値書き込みを示す情報又は多値書き込みを示す情報が、任意の論理アドレス範囲毎に領域指定テーブル１１２に記憶される。
【００６３】
例えば、領域指定テーブル１１２は、データを書き換え可能な揮発性メモリ又は不揮発性メモリから構成され、ホスト機器２００が、論理アドレス範囲と、当該論理アドレス範囲に適用される書き込み方式を特定するための書き込み種別の情報とを含む領域指定テーブル書き換え命令をメモリーカード１０１へ送信すると、制御部１０８は、領域指定テーブル書き換え命令により指定された論理アドレス範囲と、当該論理アドレス範囲に適用される書き込み種別の情報とを領域指定テーブル１１２に格納する。
【００６４】
なお、複数の多値を使用する場合、多値ごとに当該多値を示す情報を領域指定テーブル１１２に記録するようにしてもよく、例えば、４値の場合に、４値書き込みを示す情報を記録し、８値の場合に、８値書き込みを示す情報を記録するようにしてもよい。
【００６５】
劣化度テーブル１１３は、フラッシュメモリ部１０３に含まれる全ての物理ブロックの劣化度合いを示すテーブルであり、ブロック単位でメモリセルの劣化度合いを記録するためのストレステーブルの一例である。制御部１０８は、ブロックに対する消去処理のサイクル毎に、劣化度テーブル１１３に、メモリセルに格納する情報量に応じてメモリセルの劣化度合いを記録する。
【００６６】
＜２．各種テーブルの構成例＞
図２は、アドレス変換テーブル１０９の構成の一例を示す図である。アドレス変換テーブル１０９は、論理ブロックアドレス２０１の情報と、物理ブロックアドレス２０２の情報とを対応付けて記憶している。ここで、論理アドレスの範囲を、フラッシュメモリ部１０３の物理ブロックの容量と等量の単位の論理ブロックに分割し、各論理ブロックを特定するための論理アドレスの情報を、論理ブロックアドレス２０１の情報とする。一方、物理ブロックアドレス２０２の情報は、物理ブロックを特定するための物理アドレスの情報である。アドレス変換テーブル１０９では、１つの論理ブロックアドレス２０１と、それに対応するフラッシュメモリ部１０３の物理ブロックアドレス２０２との組で一つのレコードが構成されている。
【００６７】
例えば、論理ブロックアドレス「００００ｈ」に対応するデータは、物理ブロックアドレス「００００ｈ」の物理ブロックすなわちフラッシュメモリ部１０３のアドレス「００００ｈ」の物理ブロックに格納され、論理ブロックアドレス「０００１ｈ」に対応するデータは、物理ブロックアドレス「００１０ｈ」の物理ブロックすなわちフラッシュメモリ部１０３のアドレス「００１０ｈ」の物理ブロックに格納されていることを示す。また、論理ブロックアドレスとして、００００ｈから１Ｆ３９ｈまでの範囲のアドレスが管理されている。
【００６８】
図３は、無効ブロックテーブル１１０の構成の一例を示す図である。無効ブロックテーブル１１０は、フラッシュメモリ部１０３における無効なデータを格納する物理ブロックのアドレスである物理ブロックアドレスの情報、例えば、０１２３ｈ、０４５６ｈ、…を記憶している。なお、フラッシュメモリ部１０３の物理ブロックのアドレスの範囲は、００００ｈ〜１ＦＦＦｈの範囲とし、２０００ｈは、無効ブロックテーブル１１０における無効な値として取り扱う。
【００６９】
不良ブロックテーブル１１１の構成は、上記の無効ブロックテーブル１１０と同様であり、フラッシュメモリ部１０３における不良データの物理ブロックのアドレスを格納する。すなわち、不良ブロックテーブル１１１は、不良ブロックの物理ブロックアドレスの情報を格納し、２０００ｈを無効値として取り扱う。
【００７０】
図４は、領域指定テーブル１１２の構成の一例を示す図である。領域指定テーブル１１２では、先頭論理アドレス４０１の情報と、最終論理アドレス４０２の情報と、書き込み種別４０３の情報との組で１つのレコードが構成される。書き込み種別４０３は、先頭論理アドレス４０１から最終論理アドレス４０２までのアドレス領域に対する書き込み種別を定義する。
【００７１】
例えば、先頭論理アドレス４０１の「００００ｈ」から最終論理アドレス４０２の「０００１ｈ」までの論理アドレスに対応するデータの書き込み種別４０３の情報は、２値書き込みであり、２値書き込みを表す「２値」が格納される。先頭論理アドレス４０１の「０００２ｈ」から最終論理アドレス４０２の「１Ｆ２９ｈ」までの論理アドレスに対応するデータの書き込み種別４０３は、多値書き込みであり、多値書き込みを表す「多値」が格納される。先頭論理アドレス４０１の「１Ｆ３０ｈ」から最終論理アドレス４０２の「１Ｆ３９ｈ」までの論理アドレスに対応するデータの書き込み種別４０３は、２値書き込みであり、２値書き込みを表す「２値」が格納される。
【００７２】
なお、領域指定テーブル１１２の情報は、メモリーカード１０１の外部、例えば、ホスト機器２００から書き換えることにより、任意に設定可能な構成をとる。また、書き込み種別４０３として記憶される情報は、上記の例に特に限定されず、メモリーカード１０１が２値書き込みであるか、多値書き込みであるかを判別可能であれば、種々の情報を用いることができる。
【００７３】
図５は、劣化度テーブル１１３の構成の一例を示す図である。劣化度テーブル１１３は、物理ブロックアドレス５０１の情報と、メモリセルの劣化度合いを表す劣化度合い５０２の情報とを対応付けて記憶している。ここで、劣化度合い５０２の情報は、フラッシュメモリ部１０３の全ての物理ブロックに対応して、その物理ブロックがデータの消去と書き込みとの繰り返しである書き換えストレスによってどの程度劣化しているかを示す値を用いることができる。
【００７４】
例えば、書き込み種別の劣化度合い５０２の値としては、全く劣化していない状態を初期値となる「００００００００ｈ」とし、データの書き換えが行われる毎に、その書き込みが２値書き込みなのか多値書き込みなのかに対応した所定のストレス量（例えば、２値書き込みが「１」、多値書き込みが「３」）を前回の劣化度合いの値に加算する。書き込み種別のフラッシュメモリ部１０３の物理ブロック「００００ｈ」の劣化度合い５０２の値は、「０００００００１ｈ」であり、物理ブロック「０００１ｈ」の劣化度合い５０２の値は、「０００００１００ｈ」であり、物理ブロック「１ＦＦＦｈ」の劣化度合い５０２の値は「００００００１０ｈ」である。
【００７５】
＜３．書き込み処理におけるテーブル更新＞
次に、領域指定テーブル１１２と劣化度テーブル１１３の使用方法を説明するために、メモリーカード１０１におけるデータの書き込み処理を説明する。図６は、メモリーカード１０１に対するデータの書き込み処理における制御部１０８の動作のフローチャートである。メモリーカード１０１は、ホスト機器２００からの論理アドレスを指定した書き込み命令によって書き込み処理を開始する。
【００７６】
まず、処理６０１を説明する。制御部１０８は、書き込み先物理ブロックを決定し、書き込み先物理ブロックの消去を行う。具体的には、制御部１０８は、無効ブロックテーブル１１０及び劣化度テーブル１１３を参照して、無効ブロックテーブル１１０に登録されている物理ブロックアドレスの中から、劣化度テーブル１１３に示されている劣化度合いが最も少ない物理ブロックアドレスを選択し、選択した物理ブロックアドレスの物理ブロックを書き込み先物理ブロックとして決定する。次に、制御部１０８は、フラッシュメモリ部１０３に対して書き込み先物理ブロックの物理アドレスを指定してデータを消去する消去命令を発行し、書き込み先物理ブロックのデータを消去する。
【００７７】
図３及び図５に示す例では、無効ブロックテーブル１１０に登録されている物理ブロックアドレスのうち、最も劣化度合いの少ない物理ブロックアドレスは、劣化度合いが「００００００１０ｈ」の物理ブロックアドレス「１ＦＦＦｈ」となり、物理ブロックアドレス「１ＦＦＦｈ」の物理ブロックが書き込み先物理ブロックとなる。なお、物理ブロックアドレス「００００ｈ」の物理ブロックの方が、物理ブロックアドレス「１ＦＦＦｈ」に比べて、劣化度合いが小さいが、物理ブロックアドレス「００００ｈ」は、無効ブロックテーブル１１０に登録されていないので、物理ブロックアドレス「００００ｈ」の物理ブロックは、選択対象とはならない。
【００７８】
次に、処理６０２を説明する。制御部１０８は、劣化度テーブル１１３の更新を行う。具体的には、制御部１０８は、領域指定テーブル１１２を参照して、ホスト機器２００から指定された論理アドレスがどの先頭論理アドレスから最終論理アドレスまでの範囲に入るかを判断し、ホスト機器２００から指定された論理アドレスが入る範囲に対応する書き込み種別を取得し、取得した書き込み種別に応じて、処理６０１で決定した書き込み先物理ブロックに対応する劣化度テーブル１１３の劣化度合いの値を更新する。
【００７９】
例えば、ホスト機器２００が指定した論理アドレスが「０００１ｈ」であるとすると、制御部１０８は、論理アドレス「０００１ｈ」が含まれる領域の書き込み種別として、２値書き込みを得る。従って、制御部１０８は、劣化度テーブル１１３の物理ブロックアドレス「１ＦＦＦｈ」に対応する劣化度合いの値に「１」を加算する。
【００８０】
図７は、更新後の劣化度テーブル１１３の状態の一例を示している。図７に示すように、劣化度テーブル１１３の物理ブロックアドレス「１ＦＦＦｈ」に対応する劣化度合いの値は、前回の値「００００００１０ｈ」に「１」が加算され、「００００００１１ｈ」となる。なお、書き込み種別に対応した劣化度合いの加算量（ストレス量）については、後で説明する。
【００８１】
次に、処理６０３を説明する。制御部１０８は、ホスト機器２００からのデータの書き込みを行う。具体的には、制御部１０８は、ホスト機器２００から指定された論理アドレスを基に領域指定テーブル１１２を参照して、対応する書き込み種別を取得し、取得した書き込み種別を用いて、ホスト機器２００から転送される書き込みデータをフラッシュメモリ部１０３に転送し、処理６０１で決定した書き込み先物理ブロックアドレス、例えば、「１ＦＦＦｈ」に書き込む。
【００８２】
このとき、ホスト機器２００からの書き込みデータが物理ブロック単位に満たないときには、制御部１０８は、フラッシュメモリ部１０３に既書き込みのデータを使用して、物理ブロック単位のデータを作成し、このデータをフラッシュメモリ部１０３に書き込む。このような処理を行う必要があるのは、フラッシュメモリ部１０３のデータの消去単位でしか、データを書き換えることができないためである。従って、本実施の形態では、メモリセルに記録する情報量は、データの消去単位である物理ブロックの単位で同じビット数となる。
【００８３】
次に、処理６０４を説明する。制御部１０８は、アドレス変換テーブル１０９及び無効ブロックテーブル１１０の更新を行う。具体的には、制御部１０８は、ホスト機器２００から指定された論理アドレスである論理ブロックアドレスに対応するアドレス変換テーブル１０９の物理ブロックアドレスと、処理６０１において選択され、処理６０３においてホスト機器２００からの書き込みデータを書き込んだ物理アドレスである無効ブロックテーブル１１０の物理ブロックアドレスとを入れ替えて、アドレス変換テーブル１０９及び無効ブロックテーブル１１０を更新する。
【００８４】
図８は、更新後のアドレス変換テーブル１０９の状態の一例を示し、図９は、更新後の無効ブロックテーブル１１０の状態の一例を示している。図８及び図９に示すように、制御部１０８は、ホスト機器２００が指定した論理ブロックアドレス「０００１ｈ」に対応する物理ブロックアドレス「００１０ｈ」と、処理６０１で選択した物理ブロックアドレス「１ＦＦＦｈ」とを交換し、アドレス変換テーブル１０９の論理ブロックアドレスは、「１ＦＦＦｈ」となり、無効ブロックテーブル１１０では、「１ＦＦＦｈ」が削除され、新たに「００１０ｈ」が追加される。
【００８５】
図１０は、図６に示すフローチャートの各処理において、どのテーブルが参照及び更新されるか示している。なお、図１０では、テーブルの参照を「Ｒ」で示し、テーブルの更新を「Ｗ」で示している。
【００８６】
図１０に示すように、処理６０１では、無効ブロックテーブル１１０及び劣化度テーブル１１３が参照され、処理６０２では、領域指定テーブル１１２が参照され、劣化度テーブル１１３が更新され、処理６０３では、領域指定テーブル１１２が参照され、必要に応じてアドレス変換テーブル１０９が参照され、処理６０４では、アドレス変換テーブル１０９が参照され、アドレス変換テーブル１０９及び無効ブロックテーブル１１０が更新される。
【００８７】
＜４．劣化度合いの算定＞
次に、劣化度テーブル１１３の劣化度合いの更新における、各書き込み種別における加算値について説明する。加算値を決定するためには、メモリーカード１０１に使用するフラッシュメモリ部１０３の特性を評価する必要がある。つまり、メモリーカード１０１に使用するフラッシュメモリ部１０３の特性によって、加算値は異なってくる。例えば、フラッシュメモリ部１０３のデータ保持特性は、フラッシュメモリ部１０３を製造したプロセスルールやフラッシュメモリメーカーによって異なり、また、２値書き込みか、又は、多値書き込みか、さらに、多値書き込みが４値なのか、８値なのか、１６値なのかによっても異なる。
【００８８】
図１１は、フラッシュメモリ部１０３の書き換え回数とデータ保持期間との関係を示す図である。図１１では、横軸には書き換え回数を、縦軸にはデータ保持期間をとり、書き換え回数は、２値又は多値を問わず、共通の書き換え回数で示している。また、フラッシュメモリ部１０３の評価結果として、２値書き込みによる２値書き換えのみを実行した場合を実線で示し、多値書き込みによる多値書き換えのみを実行した場合を破線で示している。
【００８９】
つまり、２値書き込みで１０回、１００回、１０００回、５０００回書き換えた後のデータ保持期間をプロットすることにより、２値書き換えの線である実線が引け、また、多値書き込みで１０回、１００回、１０００回、５０００回書き換えた後のデータ保持期間をプロットすることにより、多値書き換えの線である破線が引ける。また、書き込み種別である２値書き込みや多値書き込みによらず、共通の書き込み方式でデータを書き込んだ後に、フラッシュメモリ部１０３のフラッシュメモリを放置して、ビットエラーが所定のビット数に達するまでの期間をデータ保持期間とする。このデータ保持期間の評価は、高温環境で実施する加速評価を行うことが一般的である。
【００９０】
図１１に示すように、メモリーカード１０１の目標とする所定の目標データ保持期間を設定する。次に、２値書き換えの線と多値書き換えの線とが、それぞれ目標データ保持期間と交わる書き換え回数の比を求める。例えば、２値書き込みによる書き換え回数Ｓが、多値書き込みによる書き換え回数Ｍの約３倍であるとする。この場合の２値書き換え劣化量及び多値書き換え劣化量を、書き換え回数の逆数の簡単な整数比で設定し、２値書き換え劣化量と多値書き換え劣化量との比に基づいて加算値を決定する。つまり、２値書き換え劣化量：多値書き換え劣化量＝１／３：１＝１：３となり、２値書き込みを行う場合の加算量として「１」が得られ、多値書き込みを行う場合の加算量として「３」が得られる。
【００９１】
なお、加算量は、上記の例に特に限定されず、種々の変更が可能であり、多値ごとに異なる値を用いてもよく、例えば、４値書き込みを行う場合の加算量や８値書き込みを行う場合の加算量をそれぞれ設定してもよい。この場合、２値書き込みを行う場合の加算量は、４値書き込みを行う場合の加算量より小さく、４値書き込みを行う場合の加算量は、８値書き込みを行う場合の加算量より小さく設定することが好ましい。
【００９２】
以上のような構成のメモリーカード１０１では、２値書き込みにおける劣化と、多値書き込みにおける劣化とを共通の尺度で管理する仕組みを導入している。それによって、２値書き込みと多値書き込みとが可能なメモリーカード１０１において、それぞれの書き込みに対する領域を個別に設定する必要がなく、メモリーカード１０１の劣化の均等化を図り、メモリーカード１０１の劣化を抑えることができるとともに、メモリーカード１０１の全ての物理ブロックを有効に利用することができる。結果として、２値書き込みと多値書き込みとが可能なメモリーカード１０１において、任意に２値書き込み領域と多値書き込み領域とを設けた上で、それぞれの領域に対して物理的な領域制限を必要とせず、全ての物理ブロックを双方の書き込みに対して有効に使用することが可能になる。
【産業上の利用可能性】
【００９３】
本発明は、書き込み種別によって異なる書き込み方法でデータを記憶する不揮発性記憶装置において、全ての物理ブロックの劣化を均等化することができ、結果として、データの信頼性を実効的に向上することが可能なユーザ利便性の高い不揮発性記憶装置を提供することができるので、不揮発性メモリを用いた不揮発性記憶装置、及び不揮発性メモリを制御する不揮発性メモリコントローラに有用である。
【符号の説明】
【００９４】
１０１  メモリーカード
１０２  コントローラ
１０３  フラッシュメモリ部
１０４  ホストインターフェース部
１０５  フラッシュメモリ制御部
１０６  バッファメモリ
１０７  ＥＣＣ
１０８  制御部
１０９  アドレス変換テーブル
１１０  無効ブロックテーブル
１１１  不良ブロックテーブル
１１２  領域指定テーブル
１１３  劣化度テーブル
【図１】
0005612508.tif 000002
【図２】
0005612508.tif 000003
【図３】
0005612508.tif 000004
【図４】
0005612508.tif 000005
【図５】
0005612508.tif 000006
【図６】
0005612508.tif 000007
【図７】
0005612508.tif 000008
【図８】
0005612508.tif 000009
【図９】
0005612508.tif 000010
【図１０】
0005612508.tif 000011
【図１１】
0005612508.tif 000012
【図１２】
0005612508.tif 000013
【図１３】
0005612508.tif 000014
【図１４】
0005612508.tif 000015