(57)【要約】【目的】本発明は、管理情報の容量増加を抑えて、実使用上の記憶容量を増加することが可能なメモリシステム及びメモリの管理方法を提供することを目的とする。【構成】夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイと、夫々がｋ個（ｋは２以上の整数）のブロックを含む複数の管理グループの各々毎に、管理グループ内に不良ブロックが存在する場合には不良を表す状態情報を対応付けして示す物理ブロック情報を生成するコントローラと、を有し、コントローラは、複数の管理グループのうちで不良を表す状態情報に対応付けされている管理グループ毎に、当該管理グループに含まれるｋ個のブロックのうちの不良ブロック以外のブロックを再利用ブロックとして設定し、管理グループ毎に設定された再利用ブロックの総数がｋ個となる場合にｋ個の再利用ブロックを新たな管理グループとして設定する。【選択図】図１
2018169688.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムであって、
夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイと、
夫々がｋ個（ｋは２以上の整数）の前記ブロックを含む複数の管理グループの各々毎に、前記管理グループ内に不良ブロックが存在する場合には不良を表す状態情報を対応付けして示す物理ブロック情報を生成するコントローラと、を有し、
前記コントローラは、
前記複数の管理グループのうちで前記不良を表す前記状態情報に対応付けされている前記管理グループ毎に、当該管理グループに含まれる前記ｋ個のブロックのうちの前記不良ブロック以外のブロックを再利用ブロックとして設定し、前記管理グループ毎に設定された前記再利用ブロックの総数が前記ｋ個となる場合に前記ｋ個の前記再利用ブロックを新たな前記管理グループとして設定することを特徴とするメモリシステム。
【請求項２】
前記メモリセルアレイには、
前記物理ブロック情報と共に前記再利用ブロックを表す物理ブロック番号が格納される管理情報領域が設けられていることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、
外部装置からの書込アクセスに応じてデータの書き込み処理を施したブロックのうちでデータの書き込みに失敗したブロックを前記不良ブロックとして検知し、
前記不良ブロックが検知されたときに、検知された前記不良ブロックを含んでいる前記管理グループに対応付けされている前記状態情報を、不良を表す状態に更新することを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記コントローラは、
前記新たな前記管理グループに含まれる前記ｋ個の再利用ブロックのうちから前記不良ブロックが検知された場合には、前記新たな管理グループを不良状態に設定すると共に、前記新たな管理グループに含まれる前記ｋ個の再利用ブロックのうちから前記不良ブロックを除くブロックの物理ブロック番号を前記管理情報領域に追記することを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記メモリセルアレイには、
前記複数のブロックの各々に対応付けして、前記管理グループに含まれるブロック各々の前記物理ブロック番号を表す管理グループ情報が格納されていることを特徴とする請求項１〜３のいずれか１に記載のメモリシステム。
【請求項６】
前記メモリセルアレイは、ＮＡＮＤ型フラッシュメモリからなり、
前記管理グループ情報は、前記複数のブロック各々の少なくとも１つのページの冗長領域に格納されることを特徴とする請求項５に記載のメモリシステム。
【請求項７】
夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイを有するメモリの管理方法であって、
夫々がｋ個（ｋは２以上の整数）の前記ブロックを含む複数の管理グループの各々毎に、前記管理グループ内に不良ブロックが存在する場合には不良を表す状態情報を対応付けして示す物理ブロック情報を生成し、
前記複数の管理グループのうちで前記不良を表す前記状態情報に対応付けされている前記管理グループ毎に、当該管理グループに含まれる前記ｋ個のブロックのうちの前記不良ブロック以外のブロックを再利用ブロックとして設定し、前記管理グループ毎に設定された前記再利用ブロックの総数が前記ｋ個となる場合に前記ｋ個の前記再利用ブロックを新たな前記管理グループとして設定することを特徴とするメモリの管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、 メモリ及び当該メモリの管理を行うコントローラを含むメモリシステム、及びメモリのブロックを管理するメモリの管理方法に関する。
【背景技術】
【０００２】
ＮＡＮＤ型のフラッシュメモリシステムは、ＮＡＮＤ型のメモリセルの他に、メモリのアドレスを管理するコントローラと、当該アドレスの管理に用いるメモリ管理情報を記憶するＲＡＭ（Random access memory）とを有する。
【０００３】
かかるアドレス管理の方法として、消去単位であるブロックや書込み単位であるページなどで独立して管理する方法が知られている。
【０００４】
独立して管理する場合、メモリ容量が増えるとそれに比例してアドレス管理に必要な管理情報のサイズが増加する。それ故、必要なＲＡＭサイズが増大する、或いは一度に全ての情報をＲＡＭに格納することができないという問題が生じる。
【０００５】
そこで、管理情報のサイズを抑える為に、複数のブロックからなるブロック群の単位でアドレスを管理する方法が提案された（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２４１８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のブロックからなるブロック群の単位でアドレスを管理する場合、単一のブロック単位でアドレスを管理する場合に比べてアドレスに割り当てるビット数を少なくすることができる。
【０００８】
しかしながら、このようなブロック群の単位でアドレスを管理する方法を採用すると、そのブロック群中の１つのブロックだけに不良が発生した場合にも、当該ブロック群を全て使用不可としなければならない。よって、見かけ上の不良ブロック数が実際の不良ブロック数よりも増加する為、実際に使用可能な記憶容量が低下するという問題があった。
【０００９】
そこで、本発明は、管理情報の容量増加を抑えて、実使用上の記憶容量を増加することが可能なメモリシステム及びメモリの管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るメモリシステムは、メモリシステムであって、夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイと、夫々がｋ個（ｋは２以上の整数）の前記ブロックを含む複数の管理グループの各々毎に、前記管理グループ内に不良ブロックが存在する場合には不良を表す状態情報を対応付けして示す物理ブロック情報を生成するコントローラと、を有し、前記コントローラは、前記複数の管理グループのうちで前記不良を表す前記状態情報に対応付けされている前記管理グループ毎に、当該管理グループに含まれる前記ｋ個のブロックのうちの前記不良ブロック以外のブロックを再利用ブロックとして設定し、前記管理グループ毎に設定された前記再利用ブロックの総数が前記ｋ個となる場合に前記ｋ個の前記再利用ブロックを新たな前記管理グループとして設定する。
【００１１】
また、本発明に係るメモリの管理方法は、夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイを有するメモリの管理方法であって、夫々がｋ個（ｋは２以上の整数）の前記ブロックを含む複数の管理グループの各々毎に、前記管理グループ内に不良ブロックが存在する場合には不良を表す状態情報を対応付けして示す物理ブロック情報を生成し、前記複数の管理グループのうちで前記不良を表す前記状態情報に対応付けされている前記管理グループ毎に、当該管理グループに含まれる前記ｋ個のブロックのうちの前記不良ブロック以外のブロックを再利用ブロックとして設定し、前記管理グループ毎に設定された前記再利用ブロックの総数が前記ｋ個となる場合に前記ｋ個の前記再利用ブロックを新たな前記管理グループとして設定する。
【発明の効果】
【００１２】
本発明では、ｋ（ｋは２以上の整数）個のブロックからなる管理グループ毎に、当該管理グループを以下のように管理する。
【００１３】
つまり、管理グループ内に不良ブロックが存在する場合には、当該管理グループが不良であることを表す状態情報をこの管理グループに対応づけして生成する。ここで、不良ブロックが存在する管理グループ毎に、当該管理グループに含まれるｋ個のブロックのうちで不良ブロックを除く他のブロックを再利用ブロックとして設定する。そして、管理グループ毎に設定した再利用ブロックの総数がｋ個になる場合に、これらｋ個の再利用ブロックを新たな管理グループとして設定する。
【００１４】
これにより、管理グループ内に不良ブロックが存在しているが故にこの管理グループが使用不可となっても、この管理グループ内に含まれる、不良ブロックを除く他のブロックによって新たな管理グループが設定される。
【００１５】
よって、本発明によれば、管理情報の容量増加を抑えつつも、見かけ上の不良ブロック数を大幅に減少させることが可能となる。更に、ブロックの利用効率が大幅に改善されてメモリ寿命が長くなる。従って、メモリシステムの実質的な記憶容量の増加、及びメモリ寿命の増加に伴うシステムの低コスト化を図ることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係るメモリシステム１００の構成の一例を示すブロック図である。
【図２】物理ブロック情報２０１の内容の一例を示す図である。
【図３】変換テーブル２０２の内容の一例を示す図である。
【図４】単独再利用ブロック情報４０１の内容の一例を示す図である。
【図５】管理情報更新処理の一例を示すフローチャートである。
【図６】管理情報更新処理の一例を示すフローチャートである。
【図７】アクセスブロック番号決定処理の一例を示すフローチャートである。
【図８】管理情報更新処理による管理情報（２０１、２０２、４０１）の更新結果の一例を示す図である。
【図９】管理情報更新処理による管理情報（２０１、２０２、４０１）の更新結果の一例を示す図である。
【図１０】本発明に係るメモリシステム１００の構成の他の一例を示すブロック図である。
【図１１】管理グループ情報５０１及び余りブロック情報の内容の一例を示す図である。
【図１２】管理情報更新処理の他の一例を示すフローチャートである。
【図１３】管理情報更新処理の他の一例を示すフローチャートである。
【図１４】アクセスブロック番号決定処理の他の一例を示すフローチャートである。
【図１５】管理情報更新処理による管理情報（２０１、２０２、５０１、５０２）の更新結果の一例を示す図である。
【図１６】管理情報更新処理による管理情報（２０１、２０２、５０１、５０２）の更新結果の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【実施例１】
【００１８】
図１は、本発明に係るメモリシステム１００の構成の一例を示すブロック図である。図１に示すように、メモリシステム１００は、メモリセルアレイ１０、コントローラ１１、及びＲＡＭ（Random Access Memory）１２を有する。
【００１９】
メモリセルアレイ１０は、例えばＮＡＮＤ型の複数のメモリセルが配置された、いわゆるＮＡＮＤフラッシュメモリである。メモリセルアレイ１０では、複数のメモリセルによってアクセスの最小単位となるページが形成され、複数個のページによってブロックが形成されている。メモリセルアレイ１０には、このようなブロックが複数個形成されている。
【００２０】
更に、メモリセルアレイ１０の記憶領域内には、複数のブロックを、ｋ（ｋは２以上の整数）個のブロックからなる管理グループの単位で管理する為の管理情報を格納する管理情報領域ＳＡが設けられている。
【００２１】
尚、管理情報は、物理ブロック情報２０１、変換テーブル２０２、及び単独再利用ブロック情報４０１を含む。
【００２２】
物理ブロック情報２０１は、上記した管理グループ毎に、その管理グループが不良であるか否かを表す情報である。
【００２３】
例えば、物理ブロック情報２０１には、管理グループ内の全ブロックが良好な状態にある場合には「良好」を表し、当該管理グループ内に１つでも不良なブロックが存在する場合には「不良」を表す状態情報と、管理グループを識別する物理ＩＤとが対応付けして示されている。尚、管理グループが不良である場合、この管理グループに属する全てのブロックは使用不可となる。
【００２４】
図２は、工場出荷時における物理ブロック情報２０１の内容の一例を示す図である。
【００２５】
図２に示す一例では、管理グループを構成するブロックの数「ｋ」を「２」とし、物理ブロック番号「０」〜「Ｎ」にて示される（Ｎ＋１）個のブロックを２個のブロックからなる管理グループ毎に区分けしている。そして、管理グループの各々に物理ＩＤとして「０」〜「Ｎ／２」を割り当て、各物理ＩＤに、その物理ＩＤに属するブロック群が「不良」であるか、或いは「良好」であるのかを示す状態情報を対応付けして示す。
【００２６】
変換テーブル２０２は、ホスト装置５０から供給されたアドレス、つまり論理アドレスを、メモリセルアレイ１０のブロックを示す物理ＩＤに変換するためのテーブルである。
【００２７】
図３は、工場出荷時における変換テーブル２０２の内容の一例を示す図である。図３に示すように工場出荷時には、例えば論理アドレス（０）〜（Ｎ／２）に対応した、変換後の物理ＩＤ（０）〜（Ｎ／２）が変換テーブル２０２として設定されている。
【００２８】
単独再利用ブロック情報４０１は、不良状態のブロックを含んでいるが故に「不良」扱いとなった管理グループに含まれるブロック群のうちで良好状態にあるブロックを再利用ブロックとし、この再利用ブロックの物理ブロック番号を新たな物理ＩＤと対応付けして表す情報である。
【００２９】
図４は、工場出荷時における単独再利用ブロック情報４０１の内容の一例を示す図である。
【００３０】
図４に示すように、工場出荷時には、単独再利用ブロック情報４０１は、物理ブロック情報２０１では用いていない物理ＩＤとして、例えば［１００００］から１ずつその値が増加する物理ＩＤの各々に、未割り当てを表す識別コード［０ｘＦＦＦＦ］が対応付けされたものとなっている。
【００３１】
コントローラ１１は、電源投入に応じて、メモリセルアレイ１０の管理情報領域ＳＡに格納されている管理情報、つまり物理ブロック情報２０１、変換テーブル２０２、及び単独再利用ブロック情報４０１を読み出し、ＲＡＭ１２に記憶させる。
【００３２】
その後、コントローラ１１は、ホスト装置５０から送出された各種のコマンド信号（読出指令、書込指令等）、アドレス及びデータを受けると、メモリセルアレイ１０に対してデータの読出、書込、消去等のアクセスを行う。
【００３３】
ここで、コントローラ１１は、ホスト装置５０等の外部装置からの書込アクセスに応じてメモリセルアレイ１０への書込み処理を行った際に、その書込みに失敗した場合には、書込を失敗したメモリセルが含まれるブロックを不良ブロックとして検知する。また、コントローラ１１は、メモリセルに書き込まれたデータが壊れる前に、当該メモリセルが属するブロックとは別のブロックにそのデータをコピーするリフレッシュ処理を行う。その際、リフレッシュ処理において別のブロックのメモリセルへのデータ書込みに失敗した場合にも、コントローラ１１は、書込みに失敗したメモリセルが含まれるブロックを不良ブロックとして検知する。
【００３４】
コントローラ１１は、ブロックへの書込み処理に失敗した不良ブロックを検知した場合に、以下の管理情報更新処理を実行する。
【００３５】
図５及び図６は、管理情報更新処理の一例を示すフローチャートである。
【００３６】
先ず、コントローラ１１は、ＲＡＭ１２に記憶されている単独再利用ブロック情報４０１中から、上記した不良ブロックの物理ブロック番号を、物理ブロック番号ＱＮとして検索する（ステップＳ１）。この検索において、コントローラ１１は、単独再利用ブロック情報４０１中に物理ブロック番号ＱＮが存在するか否かを判定する（ステップＳ２）。
【００３７】
ステップＳ２において、単独再利用ブロック情報４０１中に物理ブロック番号ＱＮが存在しないと判定された場合、コントローラ１１は、物理ブロック情報２０１中において、不良ブロックを含む管理グループの状態情報、つまり物理ブロック番号ＱＮに対応した物理ＩＤの状態情報を「良好」から「不良」に書き換える（ステップＳ３）。
【００３８】
次に、コントローラ１１は、不良ブロックを含む管理グループに含まれるｋ個のブロックのうちから不良ブロックを省いたブロックを再利用ブロックとして単独再利用ブロック情報４０１に設定する（ステップＳ４）。具体的には、コントローラ１１は、物理ブロック番号ＱＮに対応した物理ＩＤに属する物理ブロック番号のうちからＱＮを除いた各物理ブロック番号に、「良好」を表す状態情報を対応づけしたものを単独再利用ブロック情報４０１に追記する。
【００３９】
尚、上記ステップＳ２にて単独再利用ブロック情報４０１中に物理ブロック番号ＱＮが存在すると判定された場合、コントローラ１１は、当該単独再利用ブロック情報４０１において不良ブロックに対応した状態情報を「良好」から「不良」に書き換える（ステップＳ５）。つまり、コントローラ１１は、物理ブロック番号ＱＮに対応した物理ＩＤの状態情報を「良好」から「不良」に書き換える。
【００４０】
次に、コントローラ１１は、単独再利用ブロック情報４０１中において、不良ブロックと組み合わせて再利用する再利用ブロックに対応した状態情報を、「良好」から「不良」に書き換える（ステップＳ６）。つまり、コントローラ１１は、物理ブロック番号ＱＮと組み合わせて再利用する物理ブロック番号に対応した状態情報を、「良好」から「不良」に書き換える。
【００４１】
次に、コントローラ１１は、不良ブロックと組み合わせて再利用する再利用ブロックを、単独再利用ブロック情報４０１に再設定する（ステップＳ７）。具体的には、コントローラ１１は、物理ブロック番号ＱＮと組み合わせて再利用する物理ブロック番号及び「良好」を表す状態情報を、新規な物理ＩＤに対応づけしたものを単独再利用ブロック情報として追記する。
【００４２】
上記ステップＳ７又はＳ４の実行後、コントローラ１１は、単独再利用ブロック情報４０１にて設定されている再利用ブロックの数を計数し（ステップＳ１０）、再利用ブロックの数がｋ個であるか否かを判定する（ステップＳ１１）。
【００４３】
ステップＳ１１において、再利用ブロックの数がｋ個有ると判定された場合、コントローラ１１は、ｋ個の再利用ブロックを再利用管理グループＧＰとして設定する（ステップＳ１２）。
【００４４】
次に、コントローラ１１は、物理ブロック情報２０１中から「不良」を表す状態情報に対応した物理ＩＤを不良物理ＩＤとして探索する（ステップＳ１３）。
【００４５】
次に、コントローラ１１は、変換テーブル２０２中において、上記した不良物理ＩＤに対応している論理アドレスに対応した物理ＩＤを、再利用管理グループＧＰの先頭の物理ＩＤ、又は「良好」を表す状態情報に対応した物理ＩＤに書き換える（ステップＳ１４）。
【００４６】
尚、ステップＳ１１において、再利用ブロックの数がｋ個存在しないと判定された場合、コントローラ１１は、物理ブロック情報２０１中から、「不良」を表す状態情報に対応した物理ＩＤを不良物理ＩＤとして探索する（ステップＳ１５）。
【００４７】
次に、コントローラ１１は、変換テーブル２０２中において、上記した不良物理ＩＤに対応している論理アドレスに対応した物理ＩＤを、「良好」を表す状態情報に対応した物理ＩＤに書き換える（ステップＳ１６）。
【００４８】
上記ステップＳ１４又はＳ１６の実行後に、ホスト装置５０から送出された論理アドレスを受けると、コントローラ１１は、以下のアクセスブロック番号決定処理を実行する。これにより、アクセス対象となるブロックを示す物理ブロック番号を決定する。
【００４９】
図７は、アクセスブロック番号決定処理の一例を示すフローチャートである。
【００５０】
図７において、コントローラ１１は、変換テーブル２０２から論理アドレスに対応した物理ＩＤを取得する（ステップＳ２１）。
【００５１】
次に、コントローラ１１は、取得した物理ＩＤが、単独再利用ブロック情報４０１にて示される先頭の物理ＩＤとしての例えば［１００００］未満であるか否かを判定する（ステップＳ２２）。
【００５２】
ステップＳ２２において、取得した物理ＩＤが［１００００］未満であると判定された場合、コントローラ１１は、物理ＩＤ・ｋ〜物理ＩＤ・ｋ＋（ｋ−１）の範囲内の各整数値で表される物理ブロック番号をアクセス用の物理ブロック番号とする（ステップＳ２３）。
【００５３】
尚、ステップＳ２２において、取得した物理ＩＤが［１００００］未満ではないと判定された場合、コントローラ１１は、単独再利用ブロック情報に示される、物理ＩＤ〜物理ＩＤ＋（ｋ−１）の範囲内の各物理ＩＤに対応した物理ブロック番号を
アクセス用の物理ブロック番号とする（ステップＳ２４）。
【００５４】
コントローラ１１は、上記したステップＳ２３又はＳ２４で取得した物理ブロック番号群によって表される各ブロックをアクセス（読出又は書込）するための制御をメモリセルアレイ１０に施す。
【００５５】
以下に、上記した管理情報更新処理及びアクセスブロック番号決定処理による動作について、ブロックの状態を管理する際の最小単位となる管理グループのブロック数、つまり「ｋ」を「２」とした場合を例にとって説明する。
【００５６】
［管理情報更新処理］
図８は、物理ブロック番号「３」、「４」、「８」、「９」、「１５」の各ブロックが不良ブロックとして検知された場合に、上記したステップＳ１〜Ｓ４、Ｓ１１〜Ｓ１６の処理によって更新された管理情報（２０１、２０２、４０１）の内容を示す図である。
【００５７】
図８に示す一例では、互いに番号が隣接する２つの物理ブロック番号によって、１つの管理グループが構成されるものとする。
【００５８】
図８において、物理ブロック番号「０」及び「１」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、この管理グループを表す物理ＩＤとして「０」が割り当てられる。この際、物理ＩＤ「０」に対応した物理ブロック番号「０」及び「１」にて示される２つのブロックは共に良好な状態にあるので、この物理ＩＤ「０」に対応した状態情報は「良好」のままである。
【００５９】
また、物理ブロック番号「２」及び「３」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「１」が割り当てられる。この際、物理ＩＤ「１」に対応した物理ブロック番号「２」及び「３」のうちで物理ブロック番号「２」に対応したブロックは良好な状態にあるものの、物理ブロック番号「３」に対応したブロックは不良な状態にある。よって、物理ＩＤ「１」に対応した状態情報は「不良」に書き換えられる。
【００６０】
また、物理ブロック番号「４」及び「５」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「２」が割り当てられる。この際、物理ＩＤ「２」に対応した物理ブロック番号「４」及び「５」のうちで物理ブロック番号「５」に対応したブロックは良好な状態にあるものの、物理ブロック番号「４」に対応したブロックは不良な状態にある。よって、物理ＩＤ「２」に対応した状態情報は「不良」に書き換えられる。
【００６１】
また、物理ブロック番号「８」及び「９」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「４」が割り当てられる。この際、物理ＩＤ「４」に対応した物理ブロック番号「８」及び「９」は共に不良な状態にあるので、当該物理ＩＤ「４」に対応した状態情報は「不良」に書き換えられる。
【００６２】
更に、物理ブロック番号「１４」及び「１５」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「７」が割り当てられる。この際、物理ＩＤ「７」に対応した物理ブロック番号「１４」及び「１５」のうちで物理ブロック番号「１４」に対応したブロックは良好な状態にあるものの、物理ブロック番号「１５」に対応したブロックは不良な状態にある。よって、物理ＩＤ「７」に対応した状態情報は「不良」に書き換えられる。
【００６３】
ところで、上記した物理ＩＤ「１」、「２」、「７」に対応した状態情報はいずれも「不良」を表すが、これら物理ＩＤ「１」、「２」、「７」に夫々対応した管理グループは、いずれも「良好」な状態にあるブロックを含んでいる。
【００６４】
そこで、物理ＩＤ「１」、「２」、「７」に夫々対応した、「良好」な状態にあるブロックの物理ブロック番号「２」、「５」及び「１４」が、単独再利用ブロック情報４０１において、先頭の物理ＩＤ［１００００］、次の物理ＩＤ［１０００１］、更に次の物理ＩＤ［１０００２］に夫々対応付して追記される。
【００６５】
すなわち、物理ブロック番号「２」、「５」及び「１４」によって表される各ブロックが、単独再利用ブロック情報４０１において再利用ブロックとして設定される。
【００６６】
よって、図８に示すように、単独再利用ブロック情報４０１内には、管理グループを為すブロック数として２つ分の再利用ブロックを表す物理ブロック番号「２」及び「５」が示されている。従って、これら物理ブロック番号「２」及び「５」にて表される再利用ブロックにより、新たな管理グループとしての再利用管理グループＧＰが構成される。    
【００６７】
ここで、図８の物理ブロック情報２０１に示されるように、物理ＩＤ「１」、「２」、「４」、及び「７」に対応した状態情報は「不良」を表す。この際、変換テーブル２０２における物理ＩＤとして、「不良」状態にあるものを用いることはできない。そこで、変換テーブル２０２に対して、「不良」状態にある物理ＩＤ「１」、「２」、「４」、及び「７」を、「良好」を表す状態情報が対応づけされている物理ＩＤに書き換える処理が為される（ステップＳ１３〜Ｓ１６）。
【００６８】
例えば、図８に示すように、論理アドレス「１」に対応した物理ＩＤは「３」、論理アドレス「２」に対応した物理ＩＤは「５」、論理アドレス「３」に対応した物理ＩＤは「６」に夫々書き換えられる。更に、論理アドレス「６」に対応した物理ＩＤは、図８に示すように、単独再利用ブロック情報４０１に含まれる再利用管理グループＧＰの先頭の物理ＩＤ［１００００］に書き換えられる。
【００６９】
図９は、図８と同様に、物理ブロック番号「３」、「４」、「８」、「９」、「１５」の各ブロックが不良ブロックとして検知され、且つ単独再利用ブロック情報４０１で示される物理ブロック番号「２」のブロックが不良ブロックとして検知された場合の管理情報（２０１、２０２、４０１）の内容を示す図である。
【００７０】
尚、不良ブロックとしての物理ブロック番号「３」、「４」、「８」、「９」、「１５」に基づく更新処理については、図８に示すものと同一である。
【００７１】
よって、以下に、単独再利用ブロック情報４０１で示される物理ブロック番号「２」のブロックが不良ブロックとして検知された場合に、上記したステップＳ５〜Ｓ７によって為される管理情報（２０１、４０１）の更新処理についてのみ説明する。
【００７２】
物理ブロック番号「２」のブロックが不良ブロックとして検知されると、物理ブロック番号「２」と共に、当該物理ブロック番号「２」と組み合わせて再利用管理グループＧＰを構成していた物理ブロック番号「５」に対応した状態情報が「不良」に書き換えられる。尚、物理ブロック番号「５」に対応したブロック自体は良好な状態にあるので、この物理ブロック番号「５」は、物理ブロック番号「１４」の物理ＩＤ［１０００２］に後続する物理ＩＤ［１０００３］に対応付けして、単独再利用ブロック情報４０１に再び設定される。
【００７３】
これにより、物理ブロック番号「１４」及び「５」にて示される２つの再利用ブロックが新たな再利用管理グループＧＰとして設定される。
【００７４】
尚、上記したような管理情報（２０１、４０１）の更新は、ＲＡＭ１２及びメモリセルアレイ１０の管理情報領域ＳＡの双方に対して行われる。
【００７５】
［アクセスブロック番号決定処理］
先ず、ホスト装置５０から論理アドレス「２」が供給された場合に、図８に示す管理情報（２０１、２０２、４０１）を用いた図７に示すステップＳ２１〜Ｓ２４の実行によってアクセスブロック番号を決定する動作について説明する。
【００７６】
図８に示す変換テーブル２０２によれば、論理アドレス「２」に対応した物理ＩＤは「５」である。この際、当該物理ＩＤは、単独再利用ブロック情報４０１に割り当てられている先頭の物理ＩＤ［１００００］未満である。よって、この際、当該物理ＩＤ「５」に、管理グループを構成するブロック数ｋとして「２」を乗算して得られた値を有する物理ブロック番号「１０」、及び「１１」を、アクセスブロック番号とする。
【００７７】
次に、ホスト装置５０から論理アドレス「６」が供給された場合に、図８に示す管理情報（２０１、２０２、４０１）を用いた図７に示すステップＳ２１〜Ｓ２４の処理によって、アクセスブロック番号を決定する動作について説明する。
【００７８】
図８に示す変換テーブル２０２によれば、論理アドレス「６」に対応した物理ＩＤは［１００００］である。この際、当該物理ＩＤは、単独再利用ブロック情報４０１に割り当てられている先頭の物理ＩＤ［１００００］以上である。よって、この際、単独再利用ブロック情報４０１にて示される、物理ＩＤ［１００００］及び物理ＩＤ［１０００１］に対応した物理ブロック番号「１４」及び「５」を、アクセス物理ブロック番号とする。
【００７９】
以上のように、図１に示すメモリシステム１００では、夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイ１０に対して、夫々がｋ個のブロックを含む管理グループの各々を、コントローラ１１によって以下のように管理する。
【００８０】
先ず、コントローラ１１は、夫々がｋ個のブロックを含む複数の管理グループの各々毎に、当該管理グループ内に不良ブロックが存在する場合には「不良」を表す状態情報を対応付けして示す物理ブロック情報２０１を生成する。
【００８１】
ここで、コントローラ１１は、複数の管理グループのうちで「不良」を表す状態情報に対応付けされている管理グループ毎に、その管理グループに含まれるｋ個のブロックのうちから不良ブロックを除くブロックを再利用ブロックとして、単独再生利用ブロック情報４０１に設定する。そして、コントローラ１１は、管理グループ毎に設定された再利用ブロックの総数がｋ個となる場合にｋ個の再利用ブロックを新たな管理グループとして設定する。
【００８２】
要するに、少なくとも１つの不良ブロックが含まれているが故に不良状態の扱いとなった管理グループに含まれるｋ個のブロックのうちで、不良ブロック以外の良好な状態にあるブロックを再利用して、新たな管理グループを設定するのである。
【００８３】
これにより、管理情報の容量増加を抑えつつも、見かけ上の不良ブロック数を大幅に減少させることが可能となる。更に、ブロックの利用効率が大幅に改善されるので、メモリ寿命が長くなり、それに伴いシステムの低コスト化を図ることが可能となる。
【００８４】
また、単独利用ブロック情報４０１によれば、不良扱いとなる物理ＩＤに属する複数のブロックのうちで良好な状態にあるブロックを示す物理ブロック番号の一覧を確認することができる。よって、その一覧によれば、割り当て済みの再利用管理グループＧＰを変更することなく、新たな再利用管理グループＧＰを設定することが可能となる。
【実施例２】
【００８５】
図１０は、本発明に係るメモリシステム１００の構成の他の一例を示すブロック図である。図１０に示すメモリシステム１００では、図１に示すコントローラ１１に代えてコントローラ１１Ａを採用し、メモリセルアレイ１０に代えてメモリセルアレイ１０Ａを採用している。ＲＡＭ１２は図１に示されるものと同一である。
【００８６】
メモリセルアレイ１０Ａは、メモリセルアレイ１０と同様なＮＡＮＤフラッシュメモリである。メモリセルアレイ１０Ａにおける複数のメモリセルによる全記憶領域内には、管理情報としての物理ブロック情報２０１、変換テーブル２０２及び余りブロック情報５０２が格納されている管理情報領域ＳＡが設けられている。更に、メモリセルアレイ１０Ａ内において、各ブロックに含まれる少なくとも１つのページの冗長領域ＪＡに、管理情報としての管理グループ情報５０１が格納されている。
【００８７】
物理ブロック情報２０１及び変換テーブル２０２については、図１に示されるものと同一であるので、それらの説明は省略する。
【００８８】
管理グループ情報５０１は、各物理ＩＤに対応した管理グループ毎に、その管理グループに属するブロックの物理ブロック番号を示す情報である。
【００８９】
余りブロック情報５０２には、上記した不良ブロックが属する管理グループ内に含まれる不良ブロックを除く良好な状態にあるブロックのうちで、再利用管理グループに含むことができなかった、余りの再利用ブロックの物理ブロック番号が示される。
【００９０】
図１１は、工場出荷時における管理グループ情報５０１及び余りブロック情報５０２の内容の一例を示す図である。
【００９１】
図１１に示すように、管理グループ情報５０１は、物理ブロック番号毎に、その物理ブロック番号のブロックが属する管理グループに含まれる全ての物理ブロック番号が示されている。尚、本実施例では、２つのブロックで管理グループを構成しているので、連続する２つの物理ブロック番号が、各物理ブロック番号に対応付けして示されている。尚、工場出荷時には、余りブロック情報５０２にて示される内容は無い。
【００９２】
コントローラ１１Ａは、電源投入に応じて、メモリセルアレイ１０Ａの管理情報領域ＳＡに格納されている物理ブロック情報２０１、変換テーブル２０２、及び余りブロック情報５０２を読み出し、ＲＡＭ１２に記憶する。
【００９３】
その後、コントローラ１１Ａは、ホスト装置５０から送出された各種のコマンド信号（読出指令、書込指令等）、アドレス及びデータを受けると、メモリセルアレイ１０Ａに対してデータの読出、書込、消去等のアクセスを行う。
【００９４】
ここで、コントローラ１１Ａは、ホスト装置５０等の外部装置からのアクセスに応じてメモリセルアレイ１０Ａへの書込み処理を行った際に、その書込みに失敗した場合には、書込を失敗したメモリセルが含まれるブロックを不良ブロックとして検知する。
【００９５】
コントローラ１１Ａは、上記したようにブロックへの書込み処理に失敗した不良ブロックを検知した場合に、以下の管理情報更新処理を実行する。
【００９６】
図１２及び図１３は、管理情報更新処理の一例を示すフローチャートである。
【００９７】
先ず、コントローラ１１Ａは、物理ブロック情報２０１において、不良ブロックに対応した物理ＩＤの状態情報を「不良」に書き換える（ステップＳ３１）。
【００９８】
次に、コントローラ１１Ａは、不良ブロックに対応した管理ブロック内から良好な状態にあるブロックを再利用ブロックとして抽出する（ステップＳ３２）。つまり、コントローラ１１Ａは、不良ブロックを表す物理ＩＤに属するブロック群内から良好な状態にあるブロックの物理ブロック番号を抽出する。
【００９９】
次に、コントローラ１１Ａは、抽出したブロック群内のｋ個の再利用ブロック毎に管理グループを構成し、この管理グループに含まれる再利用ブロックの物理ブロック番号にて、管理グループ情報５０１の内容を書き換える（ステップＳ３３）。
【０１００】
次に、コントローラ１１Ａは、抽出した再利用ブロック群内で、管理グループに含まれない再利用ブロックを余り再利用ブロックとし、この余り再利用ブロックの物理ブロック番号を余りブロック情報５０２に追記する（ステップＳ３４）。
【０１０１】
次に、コントローラ１１Ａは、余りブロック情報５０２にｋ個の余り再利用ブロックが含まれているか否かを判定する（ステップＳ４１）。
【０１０２】
ステップＳ４１において余りブロック情報５０２にｋ個の余り再利用ブロックが含まれていると判定された場合、以下のステップＳ４２の実行に移る。すなわち、コントローラ１１Ａは、管理グループ情報５０１において、ｋ個のブロックに夫々対応付けされている物理ブロック番号群を、余りブロック情報５０２にて示されるｋ個の余り再利用ブロックの物理ブロック番号群に書き換える（ステップＳ４２）。
【０１０３】
次に、コントローラ１１Ａは、物理ブロック情報２０１において、余りブロック情報５０２が示すｋ個の余り再利用ブロックのうちの１つに対応付けされている状態情報を、「不良」から「良好」に書き換える（ステップＳ４３）。
【０１０４】
次に、コントローラ１１Ａは、余りブロック情報５０２の内容を削除する（ステップＳ４４）。
【０１０５】
上記ステップＳ４４の実行後、或いは上記ステップＳ４１において、余りブロック情報５０２にｋ個の余り再利用ブロックが含まれていないと判定された場合、コントローラ１１Ａは、以下のステップＳ４５の実行に移る。すなわち、コントローラ１１Ａは、物理ブロック情報２０１中から「不良」を表す状態情報に対応した物理ＩＤを、不良物理ＩＤとして取得する（ステップＳ４５）。
【０１０６】
次に、コントローラ１１Ａは、変換テーブル２０２中において、不良物理ＩＤに対応している論理アドレスに対応した物理ＩＤを、「良好」を表す状態情報に対応した物理ＩＤに書き換える（ステップＳ４６）。
【０１０７】
上記ステップＳ４６の実行後、ホスト装置５０から送出された論理アドレスを受けると、コントローラ１１Ａは、以下のアクセスブロック番号決定処理を実行する。これにより、アクセス対象となるブロックを示す物理ブロック番号を決定する。
【０１０８】
図１４は、アクセスブロック番号決定処理の他の一例を示すフローチャートである。
【０１０９】
図１４において、コントローラ１１Ａは、変換テーブル２０２から論理アドレスに対応した物理ＩＤを取得する（ステップＳ５１）。
【０１１０】
次に、コントローラ１１Ａは、管理グループ情報５０１から、上記した物理ＩＤに属する先頭の物理ブロック番号を含む物理ブロック番号群を抽出し、アクセス用の物理ブロック番号とする（ステップＳ５２）。
【０１１１】
コントローラ１１Ａは、上記したステップＳ５２で取得した物理ブロック番号群によって表される各ブロックをアクセス（読出又は書込）するための制御をメモリセルアレイ１０に施す。
【０１１２】
尚、上記したような管理情報（２０１、２０２、５０１、５０２）の更新は、ＲＡＭ１２及びメモリセルアレイ１０の管理情報領域ＳＡ及び冗長領域ＪＡに対して行われる。
【０１１３】
以下に、図１２〜図１４にて示される管理情報更新処理及びアクセスブロック番号決定処理による動作について、ブロックの状態を管理する際の最小単位となる管理グループのブロック数、つまり「ｋ」を「２」とした場合を例にとって説明する。
【０１１４】
［管理情報更新処理］
図１５は、物理ブロック番号「３」、「４」、「８」、「１５」の各ブロックが不良ブロックとして検知された場合に、上記したステップＳ３１〜Ｓ３４、Ｓ４１及びＳ４２の処理によって更新された管理情報（２０１、２０２、５０１、５０２）の内容を示す図である。
【０１１５】
また、      図１５に示す一例では、２つの物理ブロック番号によって１つの管理グループが構成するものとする。
【０１１６】
図１５において、物理ブロック番号「０」及び「１」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、この管理グループを表す物理ＩＤとして「０」が割り当てられる。この際、物理ＩＤ「０」に対応した物理ブロック番号「０」及び「１」にて示される２つのブロックは共に良好な状態にあるので、この物理ＩＤ「０」に対応した状態情報は「良好」のままである。
【０１１７】
また、物理ブロック番号「２」及び「３」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「１」が割り当てられる。この際、物理ＩＤ「１」に対応した物理ブロック番号「２」及び「３」のうちで物理ブロック番号「２」に対応したブロックは良好な状態にあるものの、物理ブロック番号「３」に対応したブロックは不良な状態にある。
【０１１８】
また、物理ブロック番号「４」及び「５」にて示される２つのブロックが管理グループを構成し、物理ブロック情報２０１では、当該管理グループを表す物理ＩＤとして「２」が割り当てられる。この際、物理ＩＤ「２」に対応した物理ブロック番号「４」及び「５」のうちで物理ブロック番号「５」に対応したブロックは良好な状態にあるものの、物理ブロック番号「４」に対応したブロックは不良な状態にある。
【０１１９】
そこで、夫々が良好な状態を表す物理ブロック番号「２」及び「５」にて表される再利用ブロックの組み合わせによって再利用管理グループが設定される。
【０１２０】
よって、図１５に示すように、管理グループ情報５０１内には、物理ブロック番号「２」に対応付けした再利用管理グループとして、物理ブロック番号「２」及び「５」が設定される。更に、物理ブロック番号「５」に対応付けした再利用管理グループとして、物理ブロック番号「２」及び「５」が設定される。
【０１２１】
これにより、物理ＩＤ「１」には、物理ブロック番号「２」及び「５」の組み合わせによる再利用管理グループが割り当てられる。この際、物理ブロック情報２０１には、物理ＩＤ「１」に対応させて「良好」を表す状態情報が設定される。
【０１２２】
また、図１５では、物理ブロック番号「８」及び「９」にて示される２つのブロックが管理グループを構成し、当該管理グループを表す物理ＩＤとして「４」が割り当てられている。この際、物理ＩＤ「４」に対応した物理ブロック番号「９」に対応したブロックは良好な状態にあるものの、物理ブロック番号「８」に対応したブロックは不良な状態にある。よって、物理ＩＤ「４」に対応した状態情報は「不良」に書き換えられる。
【０１２３】
更に、図１５では、物理ブロック番号「１４」及び「１５」にて示される２つのブロックが管理グループを構成し、当該管理グループを表す物理ＩＤとして「７」が割り当てられる。この際、物理ＩＤ「７」に対応した物理ブロック番号「１４」及び「１５」のうちで物理ブロック番号「１４」に対応したブロックは良好な状態にあるものの、物理ブロック番号「１５」に対応したブロックは不良な状態にある。よって、物理ＩＤ「７」に対応した状態情報は「不良」に書き換えられる。
【０１２４】
ここで、上記した物理ＩＤ「４」及び「７」に対応した状態情報はいずれも「不良」を表すが、これら物理ＩＤ「４」及び「７」に夫々対応した管理グループは、いずれも「良好」な状態にあるブロックを含んでいる。
【０１２５】
そこで、物理ＩＤ「４」及び「７」に夫々対応した、「良好」な状態にあるブロックの物理ブロック番号「９」及び「１４」が、余り再利用ブロックとして余りブロック情報５０２に追記される。
【０１２６】
ここで、余りブロック情報５０２内には、管理グループを構成するブロック数の分、つまり２個の物理ブロック番号「９」及び「１４」が存在する。
【０１２７】
これにより、図１５に示すように物理ブロック番号「９」及び「１４」にて示される余り再利用ブロックの組み合わせによる再利用管理グループＧＰが設定される。
【０１２８】
よって、図１５に示すように、管理グループ情報５０１において、物理ブロック番号「９」には、物理ブロック番号「９」及び「１４」の組み合わせによる再利用管理グループが対応付けされる。更に、物理ブロック番号「１４」には、物理ブロック番号「９」及び「１４」の組み合わせによる再利用管理グループが対応付けされる。
【０１２９】
そして、ステップＳ４３及びＳ４４の実行により、図１６に示すように物理ブロック情報２０１及び余りブロック情報５０２が更新される。
【０１３０】
すなわち、物理ＩＤ「７」は、その先頭の物理ブロック番号「１４」と、物理ブロック番号「９」との組み合わせからなる再利用管理グループによって、使用可能となる。よって、物理ＩＤ「７」に対応した状態情報は、図１６に示すように「良好」に書き換えられる。かかる書き換えが完了すると、図１６に示すように余りブロック情報５０２の内容が消去される。
【０１３１】
よって、上記した一連の処理により、本来、不良状態にあるが故に使用することができなかった物理ＩＤ「７」が、使用可能な状態となる。
【０１３２】
［アクセスブロック番号決定処理］
先ず、例えばホスト装置５０から論理アドレス「１」が供給された場合に、図１６に示す管理情報（２０１、２０２、５０１）に基づく、図１４に示すステップＳ５１、Ｓ５２の実行によってアクセスブロック番号を決定する動作について説明する。
【０１３３】
図１６に示す変換テーブル２０２によれば、論理アドレス「１」に対応した物理ＩＤは「１」である。また、物理ブロック情報２０１によると、物理ＩＤ「１」に属する物理ブロック番号は「２」及び「３」である。ここで、物理ブロック番号「２」に対応した管理グループは、管理グループ情報５０１によれば、物理ブロック番号「２」及び「５」である。よって、物理ブロック番号「２」及び「５」がアクセスブロック番号となる。
【０１３４】
以上のように、図１０に示すメモリシステム１００では、夫々が複数のメモリセルを含む複数のブロックが形成されているメモリセルアレイ１０Ａのブロック及びｋ個のブロックを含む管理グループを、コントローラ１１Ａによって以下のように管理する。
【０１３５】
先ず、コントローラ１１Ａは、夫々がｋ個のブロックを含む複数の管理グループの各々毎に、当該管理グループ内に不良ブロックが存在する場合には「不良」を表す状態情報を対応付けして示す物理ブロック情報２０１を生成する。
【０１３６】
ここで、コントローラ１１Ａは、複数の管理グループのうちで「不良」を表す状態情報に対応付けされている管理グループ毎に、当該管理グループに含まれるｋ個のブロックのうちの不良ブロック以外のブロックを再利用ブロックとして、余りブロック情報５０２に設定する。そして、余りブロック情報５０２において管理グループ毎に設定された再利用ブロックの総数がｋ個となる場合にｋ個の再利用ブロックを新たな管理グループとして設定する。
【０１３７】
このように、メモリシステム１０Ａでは、不良ブロックが含まれているが故に不良状態の扱いとなった管理グループに含まれる複数のブロックのうちで、当該不良ブロック以外の良好な状態にあるブロックを再利用して、新たな管理グループを設定するのである。  
【０１３８】
これにより、管理情報の容量増加を抑えつつも、見かけ上の不良ブロック数を大幅に減少させることが可能となる。更に、ブロックの利用効率が大幅に改善されるので、メモリ寿命が長くなり、それに伴いシステムの低コスト化を図ることが可能となる。
【０１３９】
また、管理グループ情報５０１によれば、物理ＩＤに対応した管理グループの物理ブロック番号を直接、知ることができる。よって、図１に示すメモリシステム１００のように、管理グループの先頭の物理ブロック番号を用いた演算によって、その他の物理ブロック番号を求めるようにした場合に比べて、アクセス速度を高めることが可能となる。
【０１４０】
尚、上記した実施例では、メモリセルアレイ１０（１０ａ）として、ＮＡＮＤフラッシュメモリを採用しているが、ＮＯＲ型のフラッシュメモリ等のいわゆる再書き込み可能な不揮発性半導体メモリであれば良い。
【符号の説明】
【０１４１】
１０、１０Ａ    メモリセルアレイ
１１、１１Ａ    コントローラ
１２            ＲＡＭ
１００          メモリシステム
２０１          物理ブロック情報
２０２          変換テーブル
４０１          単独再利用ブロック情報
５０１          管理グループ情報
５０２          余りブロック情報
【図１】
2018169688.tif 000003
【図２】
2018169688.tif 000004
【図３】
2018169688.tif 000005
【図４】
2018169688.tif 000006
【図５】
2018169688.tif 000007
【図６】
2018169688.tif 000008
【図７】
2018169688.tif 000009
【図８】
2018169688.tif 000010
【図９】
2018169688.tif 000011
【図１０】
2018169688.tif 000012
【図１１】
2018169688.tif 000013
【図１２】
2018169688.tif 000014
【図１３】
2018169688.tif 000015
【図１４】
2018169688.tif 000016
【図１５】
2018169688.tif 000017
【図１６】
2018169688.tif 000018