(57)【要約】【課題】データの書き換えにおいて、書き換え後のデータを、書き換え前のデータと同じ物理ブロックに格納できる確率を高くする。【解決手段】所定の期間毎に、論理ゾーンに含まれるそれぞれの論理ブロックに対する書き込み比率を算出し、この書き込み比率に基づいて、それぞれの論理ブロックに分配する予備論理ページの分配数の比率を決定する。この予備論理ページの分配数の比率に基づいて、それぞれの論理ブロックに分配するマッピング論理ページを決定する。【選択図】図１０
2012058770.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理手段と、
少なくとも１ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理手段と、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理手段と、
前記論理ゾーンに対して、前記マッピング論理ページを第１の所定数分割り当てる論理領域割り当て手段と、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第２の所定数分割り当てる予備領域割り当て手段と、
前記論理ゾーンに割り当てられている前記第１の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配手段と、
前記論理ゾーンに割り当てられている前記第２の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定手段と、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当て手段と、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納手段と
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数手段と、
前記計数手段により計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出手段とを備え、
前記比率算出手段は、所定の期間毎に、当該期間における前記計数値の比率を算出し、
前記分配数決定手段は、前記比率算出手段により前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数を決定し、
前記マッピング論理ページ分配手段は、前記分配数決定手段により前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第３の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数を決定し、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先を決定する、
ことを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備えるフラッシュメモリシステム。
【請求項３】
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理ステップと、
少なくとも１ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理ステップと、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理ステップと、
前記論理ゾーンに対して、前記マッピング論理ページを第１の所定数分割り当てる論理領域割り当てステップと、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第２の所定数分割り当てる予備領域割り当てステップと、
前記論理ゾーンに割り当てられている前記第１の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配ステップと、
前記論理ゾーンに割り当てられている前記第２の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定ステップと、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当てステップと、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納ステップと
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数ステップと、
前記計数ステップにより計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出ステップとを備え、
前記比率算出ステップは所定の期間毎に実行されるステップであり、当該ステップでは、当該期間における前記計数値の比率が算出され、
前記分配数決定ステップは、前記比率算出ステップにより前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して実行されるステップであり、当該ステップでは、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数が決定され、
前記マッピング論理ページ分配ステップは、前記分配数決定ステップにより前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して実行されるステップであり、当該ステップでは、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第３の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数が決定され、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先が決定される、
ことを特徴とするフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置（ホストシステム）では、各種のファイルデータを保存するためにフラッシュメモリを記憶媒体として用いたＣＦ（Compact Flash）カード、ＳＳＤ（Solid State Drive）等の情報記憶装置（フラッシュメモリシステム）が使われることが多くなっている。このようなフラッシュメモリシステムでは、ホストシステムから与えられるアクセス指示に基づいて、フラッシュメモリに対するアクセスが行われる。また、ホストシステムから与えられるアクセス指示では、セクタ（５１２バイト）単位の領域に付けられたアドレスでアクセス対象の領域が指示される。
【０００３】
このようなフラッシュメモリシステムの記憶媒体として一般的に使用されているＮＡＮＤ型フラッシュメモリでは、ページ（物理ページ）単位でデータの書き込みが行われ、複数の物理ページを含む物理ブロック単位で記憶データの消去が行われる。従って、ホストシステムからはセクタ単位での書き換えを前提とした書き込み指示が与えられるにも関わられず、この様なフラッシュメモリでは、ページ単位でデータの書き込みを実行し、データの書き換えに伴うデータ消去をブロック単位で実行しなければならない。
【０００４】
ＮＡＮＤ型フラッシュメモリを用いたフラッシュメモリシステムでは、ホストシステム側で管理されているアドレスが付けられたセクタ単位の領域を１個又は複数個集めた論理ページを物理ページに割り当てている。この論理ページと物理ページの対応関係の管理が煩雑になることを回避するため、複数個の論理ページを集めた論理ブロックを形成し、ブロック単位で論理ブロックと物理ブロックの対応関係を管理している。尚、論理ブロックに含まれる論理ページと、その論理ブロックと対応する物理ブロックに含まれる物理ページの対応関係については、固定されている場合と固定されていない場合がある。
【０００５】
論理ブロックに含まれる論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係が固定された記憶領域の管理方式（以下、「ページ対応関係固定方式」と言う）は、例えば、特許文献１に記載されている。このページ対応関係固定方式では、ホストシステムからのアクセス指示に従ってデータを書き込むときに、そのアクセス指示により指定された書き込み先の論理ページを含んだ論理ブロックに対応する物理ブロック内に、データが書き込まれていない物理ページがあっても、上記書き込み先の論理ページに対応する物理ページにデータが書き込まれていれば、上記書き込み先の論理ページを含んだ論理ブロックに別の物理ブロックが新たに割り当てられ、その物理ブロックにデータが書き込まれる。従って、ページ対応関係固定方式では、ホストシステムから与えられる新たなデータをフラッシュメモリに書き込むときに、フラッシュメモリに記憶されているデータが別の物理ブロックに転送される頻度が高くなる。
【０００６】
論理ブロックに含まれる論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係が固定されていない記憶領域の管理方式（以下、「ページ対応関係可変方式」と言う）は、例えば、特許文献２に記載されている。このページ対応関係可変方式では、ホストシステムから与えられる各論理ページに対応するデータが、物理ブロック内のデータが書き込まれていない物理ページに先頭から順番に書き込まれていく。従って、ページ対応関係可変方式では、上記のようなデータ転送の頻度は低くなるが、論理ページと物理ページの対応関係を管理する必要が生じる。
【０００７】
フラッシュメモリシステムに保存されるファイルデータは、通常、ＦＡＴ（File Allocation Table）ファイルシステム・ＮＴファイルシステム等のファイルシステムで管理されている。従って、フラッシュメモリシステムには、ファイルデータだけでなく、ファイルデータを管理するための情報も保存される。例えば、ＦＡＴファイルシステムの場合には、ルートディレクトリを含む情報や、ファイルが使用するクラスタの番号の情報が保存される。ＮＴファイルシステムの場合にも、ファイル名やインデックスを含む情報が保存される。
【０００８】
また、ＦＡＴファイルシステム・ＮＴファイルシステム等で管理されるファイルデータは、所定のクラスタサイズのデータに分割され、分割されたデータがフラッシュメモリに保存される。このクラスタサイズは、フラッシュメモリシステムの記憶容量が大きくなるにつれて５１２バイト・１ｋバイト・２ｋバイト・４ｋバイトというように段階的に大きくなっていく。そして、ホストシステムから与えられる書き込み指示に基づいて書き込まれるデータがファイルデータの場合、このクラスタ単位でデータの書き込みが指示される。つまり、書き込まれるデータがファイルデータの場合は、このクラスタサイズよりも小さい単位で、データの書き込みが指示されることがない。一方、書き込まれるデータがファイルデータを管理するための情報の場合は、このクラスタサイズよりも小さい単位（例えばセクタ単位）で、データの書き込みが指示されることがある。
【０００９】
この小さい容量でデータの書き込みが指示される領域（以下、「小容量アクセス領域」と言う）としては、例えば、ＦＡＴファイルシステムやＮＴファイルシステムにおけるファイルデータを管理するための情報が保存される領域が挙げられる。ＦＡＴファイルシステムであれば、ファイル名やルートディレクトリを含む情報が保存されるディレクトリ領域や、クラスタの番号の情報が保存されるＦＡＴ領域が、小容量アクセス領域に該当する。ＮＴファイルシステムであれば、ファイル名やインデックスを含む情報が保存されるＭＦＴ（Master File Table）領域（管理レコードに割り当てられた領域）が、小容量アクセス領域に該当する。
【００１０】
このようなファイルデータを管理するための情報は書き換えられる頻度が高いため、小容量アクセス領域に対応するデータは書き換え頻度が高い場合が多い。従って、小容量アクセス領域が属する論理ブロックについては、割り当てられる論理ページ数を少なくして、予備の物理ページを増やすことが好ましい。つまり、データの書き換えの際に、旧データが格納されている物理ブロック内の物理ページに新データを書き込むことができる場合が多くなる。書き換えに利用できる物理ページが増えることにより、フラッシュメモリに記憶されているデータが別の物理ブロックに転送される頻度が低くなり、パフォーマンスを向上させることができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平１１−１１０２８３号公報
【特許文献２】特開２００５−１９６７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ホストシステムに電気的に接続されるフラッシュメモリシステムは、ホストシステムから与えられるアクセス指示に基づいてフラッシュメモリシステム内のフラッシュメモリにアクセスする。このホストシステムから与えられるアクセス指示には、書き込みや読み出しを指示するコマンドと、アクセス対象の領域を指定する論理アドレスとが含まれている。フラッシュメモリシステムは、ホストシステムから与えられる論理アドレスと、フラッシュメモリ内の記憶領域に割り当てられている物理アドレスとの対応関係を管理し、この対応関係に基づいて、ホストシステムから与えられるデータをフラッシュメモリに書き込んだり、フラッシュメモリに記憶されているデータをフラッシュメモリから読み出したりする。この対応関係は、物理ブロック単位の対応関係及び物理ページ単位の対応関係として管理されている。つまり、論理ブロックと物理ブロックの対応関係、及び論理ページと物理ページの対応関係が管理されている。
【００１３】
物理ブロックに含まれる物理ページの個数より論理ブロックに含まれる論理ページの個数が少ないと予備の物理ページを確保できる為、1個の物理ブロック内でデータの書き替えを行うことができる。
【００１４】
また、ホストシステムからのアクセスにおいて、頻繁に書き込み指示の対象になる論理ページ（論理アドレス）と、ほとんど書き込み指示の対象にならない論理ページ（論理アドレス）がある。従来のフラッシュメモリシステムでは、書き込み頻度に関わらず、論理ブロックの容量、つまり、論理ブロックに含まれる論理ページの個数が固定であった。
【００１５】
そこで、本発明は、各論理ブロックに関する書き込み頻度に応じて、各論理ブロックに含まれる論理ページの個数を調整する事が可能なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の側面に従う、メモリコントローラは、
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理手段と、
少なくとも１ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理手段と、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理手段と、
前記論理ゾーンに対して、前記マッピング論理ページを第１の所定数分割り当てる論理領域割り当て手段と、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第２の所定数分割り当てる予備領域割り当て手段と、
前記論理ゾーンに割り当てられている前記第１の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配手段と、
前記論理ゾーンに割り当てられている前記第２の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定手段と、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当て手段と、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納手段と
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数手段と、
前記計数手段により計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出手段とを備え、
前記比率算出手段は、所定の期間毎に、当該期間における前記計数値の比率を算出し、
前記分配数決定手段は、前記比率算出手段により前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数を決定し、
前記マッピング論理ページ分配手段は、前記分配数決定手段により前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第３の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数を決定し、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先を決定する。
【００１７】
本発明の第２の側面に従う、フラッシュメモリシステムは、
前記第１の側面に従うメモリコントローラと、
このメモリコントローラにより制御されるフラッシュメモリを備える。
【００１８】
本発明の第３の側面に従う、フラッシュメモリの制御方法は、
ホストシステムから与えられるアクセス指示に従って、複数個の物理ページを含む物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記アクセス指示により指定される論理アドレスが割り当てられているセクタ単位の領域が複数個含まれる所定セクタ数の領域をマッピング論理ページとして管理する論理ページ管理ステップと、
少なくとも１ページの前記マッピング論理ページが含まれる領域を論理ブロックとして管理する論理ブロック管理ステップと、
前記論理ブロックが複数個含まれる領域を論理ゾーンとして管理する論理ゾーン管理ステップと、
前記論理ゾーンに対して、前記マッピング論理ページを第１の所定数分割り当てる論理領域割り当てステップと、
前記論理ゾーンに対して、前記論理アドレスが割り当てられているセクタ単位の領域が含まれない予備論理ページを第２の所定数分割り当てる予備領域割り当てステップと、
前記論理ゾーンに割り当てられている前記第１の所定数の前記マッピング論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配先を決定するマッピング論理ページ分配ステップと、
前記論理ゾーンに割り当てられている前記第２の所定数の前記予備論理ページを、当該論理ゾーンに含まれる前記論理ブロックに分配する際の分配数を決定する分配数決定ステップと、
前記論理ブロックをフラッシュメモリ内の物理ブロックに割り当てる論理ブロック割り当てステップと、
前記論理ブロックに含まれる前記マッピング論理ページに対応するデータを、当該論理ブロックが割り当てられている物理ブロックの物理ページに格納するデータ格納ステップと、
前記論理ブロック毎に、当該論理ブロックに含まれるそれぞれの前記マッピング論理ページに対応するデータをフラッシュメモリに格納する処理が実行された回数を計数する計数ステップと、
前記計数ステップにより計数された計数値に基づいて、前記論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率を算出する比率算出ステップとを備え、
前記比率算出ステップは所定の期間毎に実行されるステップであり、当該ステップでは、当該期間における前記計数値の比率が算出され、
前記分配数決定ステップは、前記比率算出ステップにより前記論理ゾーンにおける前記計数値の比率が算出されたことに応答して実行されるステップであり、当該ステップでは、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに対応する前記計数値の比率に、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数の比率が近似するように、当該分配数が決定され、
前記マッピング論理ページ分配ステップは、前記分配数決定ステップにより前記論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記予備論理ページの分配数が決定されたことに応答して実行されるステップであり、当該ステップでは、それぞれの前記論理ブロックに含まれる前記マッピング論理ページと前記予備論理ページを合わせた総数が第３の所定数になるように、当該論理ゾーンに含まれるそれぞれの前記論理ブロックに分配される前記マッピング論理ページの分配数が決定され、更に、当該分配数に基づいて、当該論理ゾーンに割り当てられているそれぞれの前記マッピング論理ページの分配先が決定される。
【発明の効果】
【００１９】
本発明によれば、書き込み頻度が高い論理ページが含まれる論理ブロックに分配される論理ページの総数が相対的に少なくなるように、各論理ブロックに分配される論理ページの分配数が調整されるため、書き込み頻度が高い論理ページが含まれる論理ブロックに関するデータの書き換えにおいて、書き換え後のデータを、書き換え前のデータと同じ物理ブロックに格納できる確率が高くなる。
【図面の簡単な説明】
【００２０】
【図１】図１は、本実施の形態に係るフラッシュメモリシステム１を概略的に示す図である。
【図２】図２は、本実施の形態に係る論理空間を示す図である。
【図３】図３は、本実施の形態に係る論理ゾーンと論理ブロックの関係を示す図である。
【図４】図４は、本実施の形態に係る論理ブロックを構成するマッピング論理ページと予備論理ページを示す図である。
【図５】図５は、本実施の形態に係るページ変換テーブルを示す図である。
【図６】図６は、本実施の形態に係る論理空間を具体的に示す図である。
【図７】図７は、本実施の形態に係る論理ゾーンと論理ブロックの関係を具体的に示す図である。
【図８】図８は、本実施の形態に係る論理ブロックを構成するマッピング論理ページと予備論理ページを具体的に示す図である。
【図９】図９は、本実施の形態に係るページ変換テーブルを具体的に示す図である。
【図１０】図１０は、本実施の形態に係る各論理ブロックにおけるマッピング論理ページ数と予備物理ページ数の初期値を示す図である。
【図１１】図１１は、本実施の形態に係る書き込み頻度におけるマッピング論理ページ数と予備物理ページ数の変更値を示す図である。
【図１２】図１２は、本実施の形態に係る各論理ブロックにおけるマッピング論理ページ数と予備物理ページ数の変更後の値を示す図である。
【図１３】図１３は、本実施の形態に係る書き込み頻度におけるマッピング論理ページ数の変更イメージを示す図である。
【図１４】図１４は、本実施の形態に係る各論理ブロックにおけるマッピング論理ページ数と予備物理ページ数の変更の為のブロックコピーを示す図である。
【発明を実施するための形態】
【００２１】
図１に示されているように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３とで構成されている。メモリコントローラ３は、内部バス１４を介してフラッシュメモリ２と接続されている。
【００２２】
フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続されている。ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Central Processing Unit）、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム４は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００２３】
メモリコントローラ３は、図１に示されているように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ＳＲＡＭ８と、バッファメモリ９と、フラッシュメモリインターフェースブロック１０と、誤り訂正ブロック１１と、ＲＯＭ（Read Only Memory）１２とから構成される。これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
【００２４】
ホストインターフェースブロック７は、ホストシステム４との間で行われるデータ、アドレス情報、ステータス情報、外部コマンド等の送受信を制御する。つまり、フラッシュメモリシステム１は、ホストインターフェースブロック７を介して、ホストシステム４から供給されるデータ等を取り込む。また、フラッシュメモリシステム１は、ホストインターフェースブロック７を介して、データ等をホストシステム４に供給する。外部コマンドとは、ホストシステム４がフラッシュメモリシステム１に対して処理の実行を指示するためのコマンドである。
【００２５】
ホストインターフェースブロック７は、コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３を備えている。コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３には、ホストシステム４から与えられる情報が書き込まれる。コマンドレジスタＲ１には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタＲ２には、書き込むデータ又は読み出すデータのセクタ数が書き込まれる。ＬＢＡレジスタＲ３には、書き込み又は読み出しを開始する論理セクタに対応するＬＢＡ（Logical Block Address）が書き込まれる。ＬＢＡは、５１２バイトの容量を持った論理セクタに割り当てられたアドレスである。
【００２６】
ＳＲＡＭ（Static Random Access Memory）８は、フラッシュメモリ２の制御に必要な情報を一時的に格納する揮発性メモリである。フラッシュメモリ２にアクセスするために必要な各種のテーブルは、ＳＲＡＭ８に保持され、ＳＲＡＭ８上で更新される。フラッシュメモリ２にアクセスするために必要なテーブルが、ＳＲＡＭ８に保持されていない場合は、そのテーブルはＳＲＡＭ８上で作成される。但し、そのテーブルが、フラッシュメモリ２に格納されている場合は、格納されているテーブルがフラッシュメモリ２から読み出され、ＳＲＡＭ８に保持される。上記各種テーブルには、アドレス変換テーブル、検索テーブル、不良ブロックテーブル等が含まれる。アドレス変換テーブルは、論理ブロックと物理ブロックの対応関係を管理するためのテーブルである。検索テーブルは、空きブロックを検索するためのテーブルである。不良ブロックテーブルは不良ブロックを管理するためのテーブルである。
【００２７】
バッファメモリ９は、フラッシュメモリ２から読み出したデータ、又はフラッシュメモリ２に書き込むデータを、一時的に保持する揮発性メモリである。
【００２８】
フラッシュメモリインターフェースブロック１０は、フラッシュメモリ２との間で行われるデータ、アドレス情報、ステータス情報、内部コマンド等の送受信を制御する。ここで、内部コマンドとは、メモリコントローラ３がフラッシュメモリ２に処理の実行を指示するためのコマンドであり、フラッシュメモリ２は、メモリコントローラ３から与えられる内部コマンドに従って動作する。
【００２９】
誤り訂正ブロック１１は、フラッシュメモリ２にデータを書き込むときに、そのデータをＢＣＨ符号の誤り訂正符号（ＥＣＣ：Error Correcting Code）に符号化し、フラッシュメモリ２から符号化されたデータを読み出したときに、その符号化されたデータを復号化する。つまり、フラッシュメモリ２に書き込まれるデータは、冗長ビットが付加されたＢＣＨ符号に符号化されてフラッシュメモリ２に書き込まれ、その符号化されたデータ（冗長ビットが付加されたデータ）は、読み出されたときに復号化される。この復号化では、符号化の際に付加される冗長ビットのビット数に応じて、所定のビット数までのビットエラーが訂正される。更に、誤り訂正ブロック１１は、このＢＣＨ符号に基づいた訂正機能に加えて、当該訂正機能の訂正能力を超えるビット数のビットエラーが発生したことを検出する検出機能を備えている。
【００３０】
ＲＯＭ１２は、フラッシュメモリ２を制御するために必要なファームウェアを格納するための不揮発性の記憶素子である。尚、フラッシュメモリシステム１を起動させるために必要な最小限のファームウェアだけをＲＯＭ１２に格納し、その他のファームウェアをフラッシュメモリ２に格納するようにしてもよい。
【００３１】
マイクロプロセッサ６は、ＲＯＭ１２又はフラッシュメモリ２から、ファームウェアを読み込み、ファームウェアに従って動作する。メモリコントローラ３に含まれる機能ブロックは、マイクロプロセッサ６により制御される。
【００３２】
フラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリであり、レジスタと、複数のメモリセルが２次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。尚、フラッシュメモリには、ＳＬＣ(Single Level Cell)タイプのメモリセルで構成されたものと、ＭＬＣ(Multi Level Cell)タイプのメモリセルで構成されたものがある。
【００３３】
ＮＡＮＤ型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック（物理ブロック）単位で行われる。それぞれの物理ブロックは、複数のページ（物理ページ）で構成され、それぞれの物理ページは、ユーザ領域と冗長領域で構成されている。例えば、１ページの物理ページは、４セクタ（２０４８バイト）のユーザ領域と、６４バイトの冗長領域とで構成され、１ページの物理ブロックは、６４ページの物理ページで構成されている。ユーザ領域は、ホストシステム４から与えられるデータを主に格納するための領域であり、冗長領域は、論理アドレス情報、ブロックステータス（フラグ）等の付加データを主に格納するための領域である。
【００３４】
論理アドレス情報は、当該情報に係る物理ブロックと対応する論理ブロックを特定するための情報である。ブロックステータス（フラグ）は、当該情報に係る物理ブロックが、不良ブロック（正常にデータの書き込み等を行うことができない物理ブロック）であるか否かを示すフラグである。尚、不良ブロックには、初期不良の不良ブロックと後発不良の不良ブロックがある。初期不良の不良ブロックは、出荷前に検出された不良ブロックである。後発不良の不良ブロックは、使用中に生じた不良ブロックである。初期不良の物理ブロックについては、不良ブロックであることを示すブロックステータス（フラグ）が製造メーカによって書き込まれている。また、この初期不良の物理ブロックを示すブロックステータス（フラグ）を、ユーザ領域に書き込んでいる製造メーカもある。不良ブロックか否かの判断基準は、設計の際に決められる。
【００３５】
図２に示されているように、メモリコントローラ３は、複数の論理ブロックを形成し、論理ブロック単位でアドレス管理を行う。論理ブロックは、複数の論理ページから構成されており、論理ブロック番号（ＬＢＮ：Logical Block Number）で管理されている。論理ページは、複数の論理セクタから構成されており、論理ページ番号（ＬＰＮ：Logical Page Number）で管理されている。論理セクタは、ＬＢＡが割り当てられている。それぞれの論理ページを構成する複数の論理セクタは、論理セクタ番号（ＬＳＮ：Logical Sector Number）で管理されている。図４に示されているように、論理ブロックは、論理ページ番号が割り当てられている論理ページ（マッピング論理ページ）と、論理ページ番号が割り当てられていない論理ページ（予備論理ページ）で構成されている。そして、論理ブロックに含まれるマッピング論理ページのページ数（ａページ）と予備論理ページのページ数（ｂページ）の総和（ａ＋ｂページ）は、常に一定になるように管理されている。
【００３６】
本実施の形態では、図８に示されているように、それぞれの論理ブロックが２５６ページの論理ページから構成されている。そして、図６に示されているように、初期化された状態では、それぞれの論理ブロックに、２０６ページのマッピング論理ページが振り分けられている。従って、それぞれの論理ブロックは、２０６ページのマッピング論理ページと５０ページの予備論理ページから構成されている。つまり、初期化された状態では、論理ブロック番号０の論理ブロックは、論理ページ番号０から論理ページ番号２０５までの２０６ページの論理ページをマッピング論理ページとして有する。尚、論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和は、任意で設定することができる。例えば、論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和を、２００ページ、又は２５０ページにしてもよい。論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数の総和を２００ページにした場合、マッピング論理ページのページ数は、１ページから２００ページの範囲で変更することができる。
【００３７】
このマッピング論理ページに対応する論理ページは、８個の論理セクタから構成されている。つまり、それぞれ論理ページは、論理セクタ番号０から論理セクタ番号７までの８個の論理セクタを有する。尚、ホストシステム４は、ＬＢＡ０からＬＢＡ１０５４７１の範囲をアクセスするものとして、本実施の形態のフラッシュメモリシステム１を説明する。このアクセス範囲は、論理ページ単位で論理ブロック番号０から論理ブロック番号６３までの６４個の論理ブロックに振り分けられる。
【００３８】
図３に示されているように、論理ゾーンは、複数の論理ブロックから構成されており、論理ゾーン番号（ＬＺＮ：Logical Zone Number）で管理されている。図３（ａ）に示されている論理ゾーンは、論理ゾーン数おきの論理ブロックで構成されている。このように、論理ブロックが各論理ゾーンに順次振り分けられている場合、それぞれの論理ゾーンは連続していない論理ブロックで構成されている。図３（ｂ）に示されている論理ゾーンは、連続した論理ブロックで構成されている。論理ゾーンの構成はどちらの構成でもよい。
【００３９】
本実施の形態では、図７に示されているように、それぞれ論理ゾーンは、８個の論理ブロックで構成されている。論理ゾーン番号０の論理ゾーンは、論理ブロック番号０、８、１６、２４、３２、４０、４８、５６の論理ブロックを有する。論理ゾーン番号１の論理ゾーンは、論理ブロック番号１、９、１７、２５、３３、４１、４９、５７の論理ブロックを有する。論理ゾーン番号２の論理ゾーンは、論理ブロック番号２、１０、１８、２６、３４、４２、５０、５８の論理ブロックを有する。論理ゾーン番号３の論理ゾーンは、論理ブロック番号３、１１、１９、２７、３５、４３、５１、５９の論理ブロックを有する。論理ゾーン番号４の論理ゾーンは、論理ブロック番号４、１２、２０、２８、３６、４４、５２、６０の論理ブロックを有する。論理ゾーン番号５の論理ゾーンは、論理ブロック番号５、１３、２１、２９、３７、４５、５３、６１の論理ブロックを有する。論理ゾーン番号６の論理ゾーンは、論理ブロック番号６、１４、２２、３０、３８、４６、５４、６２の論理ブロックを有する。論理ゾーン番号７の論理ゾーンは、論理ブロック番号７、１５、２３、３１、３９、４７、５５、６３の論理ブロックを有する。
【００４０】
図５に示されているように、フラッシュメモリシステム１は、論理ページ番号に対応する物理ページ番号を格納するページ変換テーブルを有する。このページ変換テーブルは、論理ブロックに含まれるマッピング論理ページと、その論理ブロックに対応する物理ブロックに含まれる物理ページとの対応関係を管理するためテーブルである。このページ変換テーブルは、論理ブロックに含まれるそれぞれのマッピング論理ページに対応する物理ページの物理ページ番号が格納される物理ページ番号格納領域で構成されている。
【００４１】
例えば、論理ブロックに論理ページ番号０から論理ページ番号２０５までの２０６ページの論理ページがマッピング論理ページとして含まれている場合、図９に示されているように、論理ページ番号０から論理ページ番号２０５までのそれぞれの論理ページに対応する物理ページ番号が格納される。物理ブロックは、物理ページ番号０から物理ページ番号２５５までの２５６ページの物理ページで構成されているので、それぞれの物理ページ番号格納領域には、物理ページ番号０から物理ページ番号２５５までのいずれかの物理ページ番号が格納される。尚、論理ブロックに含まれるマッピング論理ページが、論理ページ番号０から論理ページ番号９５までの９６ページの論理ページに変更された場合は、論理ページ番号０から論理ページ番号９５までのそれぞれの論理ページに対応する物理ページ番号が格納される。この場合、論理ページ番号０から論理ページ番号９５までのそれぞれの論理ページに対応する９６ページの物理ページ番号格納領域に物理ページ番号が格納される。
【００４２】
図１０に示されているように、論理ゾーン番号０の論理ゾーンは、論理ブロック番号０、８、１６、２４、３２、４０、４８、５６の８個の論理ブロックから構成されている。論理ゾーン番号０の論理ゾーンには、１６４８ページ（２０６×８ページ）のマッピング論理ページが割り当てられている。初期状態では、この１６４８ページ（２０６×８ページ）のマッピング論理ページが、２０６ページずつ各物理ブロックに分配されている。尚、論理ゾーン全体としては、割り当てられているマッピング論理ページは変更されないが、各論理ブロックに分配されるマッピング論理ページのページ数は、後述する方法で変更される。
【００４３】
各論理ブロックに分配されるマッピング論理ページのページ数は、マッピングテーブルで管理されている。このマッピングテーブルには、各論理ブロックに分配されているマッピング論理ページのページ数であるマッピング数が格納される。初期値状態では、各論理ブロックのマッピング数は、２０６に設定される。そして、後述する方法により、論理ブロック番号０の論理ブロックに分配されるマッピング論理ページのページ数が９６に変更された場合、論理ブロック番号０の論理ブロックに対応するマッピング数は、９６に変更される。また、論理ブロック番号１の論理ブロックに分配されるマッピング論理ページのページ数が１５６に変更された場合、論理ブロック番号１の論理ブロックに対応するマッピング数は、１５６に変更される。このマッピング数に基づいて、論理ブロックに含まれるそれぞれのマッピング論理ページとＬＢＡの対応関係を判別することができる。
【００４４】
次に、各物理ブロックに分配されるマッピング論理ページのページ数を変更する方法について説明する。この分配ページ数の変更は、論理ゾーン毎に行われる。この分配ページ数の変更は、論理ゾーンに含まれる各論理ブロックの書き込み頻度に基づいて行われる。この書き込み頻度は、各論理ブロックに関する書き込み回数に基づいて算出される。この書き込み回数は、論理ブロックに含まれる各論理ページに対応するデータを書き込んだ回数をカウントしたカウント値に対応する。書き込み頻度の算出は、所定の周期毎に行われる。この書き込み頻度の算出が行われたときに、書き込み回数（カウント値）が一旦クリアされる。つまり、書き込み回数（カウント値）は、所定の周期毎のカウント値に対応する。尚、所定の周期としては、論理ページ単位での書き込みの延べ回数が所定の回数に達するまでの期間、論理ページ単位での読み出しの延べ回数が所定の回数に達するまでの期間、論理ページ単位での書き込みおよび読み出しの延べ回数が所定の回数に達するまでの期間、ホストシステムから書き込みコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからの読み出しコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからの書き込みコマンドまたは読み出しコマンドを与えられた延べ回数が所定の回数に達するまでの期間、ホストシステムからコマンドを与えられた延べ回数が所定の回数に達するまでの期間、物理ブロック単位の消去を実行した延べ回数が所定の回数に達するまでの期間等のいずれかに基づいた周期を適用することができる。
【００４５】
例えば、論理ゾーン番号０の論理ゾーンにおいて、1周期の間の書き込み回数が、論理ブロック番号０の論理ブロックについては８００回で、論理ブロック番号８の論理ブロックについては５００回で、論理ブロック番号１６の論理ブロックについては２５０回で、論理ブロック番号２４の論理ブロックについては２５０回で、論理ブロック番号３２の論理ブロックについては１２０回で、論理ブロック番号４０の論理ブロックについては７０回で、論理ブロック番号４８の論理ブロックについては１０回であった場合について説明する。
【００４６】
この場合、図１１に示されているように、論理ゾーン番号０の論理ゾーンにおいて、論理ブロック番号０の論理ブロックの書き込み比率は４０％になり、論理ブロック番号８の論理ブロックの書き込み比率は２５％になり、論理ブロック番号１６の論理ブロックの書き込み比率は１２．５％になり、論理ブロック番号２４の論理ブロックの書き込み比率は１２．５％になり、論理ブロック番号３２の論理ブロックの書き込み比率は６％になり、論理ブロック番号４０の論理ブロックの書き込み比率は３．５％になり、論理ブロック番号４８の論理ブロックの書き込み比率は０．５％になり、論理ブロック番号５６の論理ブロックの書き込み比率は０％になる。この書き込み頻度の割合に応じて、各論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数が変更される。
【００４７】
本実施の形態では、各論理ブロックに含まれるマッピング論理ページのページ数の初期値が２０６に設定され、予備論理ページのページ数の初期値が５０に設定されている。つまり、各論理ゾーンに割り当てられているマッピング論理ページの合計は、１６４８ページになっている。また、予備論理ページ数の合計は、４００ページになっている。このマッピング論理ページのページ数の合計と予備論理ページのページ数の合計は、各論理ブロックに含まれるマッピング論理ページのページ数と予備物理ページのページ数が変更されても変化しない。
【００４８】
論理ブロック番号０の論理ブロックの書き込み比率が４０．０％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の４０．０％である１６０ページに変更される。この変更に伴い、論理ブロック番号０の論理ブロックに分配されるマッピング論理ページのページ数は９６ページ（２５６ページ−１６０ページ）に変更される。論理ブロック番号８の論理ブロックの書き込み比率が２５．０％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の２５．０％である１００ページに変更される。この変更に伴い、論理ブロック番号８の論理ブロックに分配されるマッピング論理ページのページ数は１５６ページ（２５６ページ−１００ページ）に変更される。論理ブロック番号１６の論理ブロックの書き込み比率が１２．５％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の１２．５％である５０ページのまま変更されない。従って、論理ブロック番号１６の論理ブロックに分配されるマッピング論理ページのページ数も２０６ページ（２５６ページ−５０ページ）のままで変更されない。論理ブロック番号２４の論理ブロックの書き込み比率が１２．５％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の１２．５％である５０ページのまま変更されない。従って、論理ブロック番号２４の論理ブロックに分配されるマッピング論理ページのページ数も２０６ページ（２５６ページ−５０ページ）のままで変更されない。論理ブロック番号３２の論理ブロックの書き込み比率が６．０％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の６．０％である２４ページに変更される。この変更に伴い、論理ブロック番号３２の論理ブロックに分配されるマッピング論理ページのページ数は２３２ページ（２５６ページ−２４ページ）に変更される。論理ブロック番号４０の論理ブロックの書き込み比率が３．５％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の３．５％である１４ページに変更される。この変更に伴い、論理ブロック番号４０の論理ブロックに分配されるマッピング論理ページのページ数は２４２ページ（２５６ページ−１４ページ）に変更される。論理ブロック番号４８の論理ブロックの書き込み比率が０．５％である為、この論理ブロックに含まれる予備論理ページのページ数は、全体の０．５％である２ページに変更される。この変更に伴い、論理ブロック番号４８の論理ブロックに分配されるマッピング論理ページのページ数は２５４ページ（２５６ページ−２ページ）に変更される。論理ブロック番号５６の論理ブロックの書き込み比率が０．０％である為、この論理ブロックに含まれる論理ページのページ数は、全体の０．０％である０ページに変更される。この変更に伴い、論理ブロック番号５６の論理ブロックに分配されるマッピング論理ページのページ数は２５６ページ（２５６ページ−０ページ）に変更される。尚、書き込み比率で算出した予備論理ページのページ数が、論理ブロックを構成する論理ページの総数（２５６ページ）以上になった場合、この例では、書き込み比率が６４％以上になった場合、予備論理ページのページ数を２５５ページとする。つまり、論理ブロックに含まれるマッピング論理ページのページ数は少なくとも１ページになるようにする。そして、予備論理ページの総数からこの２５５ページを引いて余った１４５ページは、残りの論理ブロックにそれぞれの書き込み比率に応じて分配する。
【００４９】
図１２に示されているように、図１１の書き込み比率により、図１０の初期状態から、各論理ブロックに含まれるマッピング論理ページのページ数と予備論理ページのページ数が変更される。論理ブロック番号０の論理ブロックを構成する論理ページは、マッピング論理ページが９６ページに、予備論理ページが１６０ページになる。論理ブロック番号８の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が１５６ページに、予備論理ページのページ数が１００ページになる。論理ブロック番号１６と３２の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が２０６ページ、予備論理ページのページ数が５０ページのまま変更されない。論理ブロック番号４０の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が２３２ページに、予備物理ページのページ数が２４ページになる。論理ブロック番号４８の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が２４２ページに、予備論理ページのページ数が１４ページになる。論理ブロック番号５６の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が２５４ページに、予備物理ページのページ数が２ページになる。論理ブロック番号５６の論理ブロックを構成する論理ページは、マッピング論理ページのページ数が２５６ページに、予備物理ページのページ数が０ページになる。
【００５０】
このマッピング論理ページの分配比率の変更により、マッピングテーブルに格納されている各論理ブロックのマッピング数が更新される。論理ブロック０の論理ブロックのマッピング数は９６に、論理ブロック８の論理ブロックのマッピング数は１５６に、論理ブロック３２の論理ブロックのマッピング数は２３２に、論理ブロック４０の論理ブロックのマッピング数は２４２に、論理ブロック４８の論理ブロックのマッピング数は２５４に、論理ブロック５６の論理ブロックのマッピング数は２５６に変更される。尚、論理ブロック１６の論理ブロックと論理ブロック２４の論理ブロックのマッピング数は２０６のままで変更されない。
【００５１】
図１３に示されているように、書き込み頻度により、各論理ブロックに分配されるマッピング論理ページの分配比率が変更となる。また、論理ゾーンに割り当てられているマッピング論理ページの総ページ数は変わらない。
【００５２】
本実施の形態では、論理ブロック単位で論理ブロックと物理ブロックの対応関係を管理している。従って、論理ブロックに含まれる各マッピング論理ページに対応するデータは、その論理ブロックに対応する物理ブロック内の物理ページに格納されなければならない。したがって、論理ブロックを構成する論理ページが変更された場合、つまり、論理ブロックに含まれるマッピング論理ページが変更された場合、その変更に応じて、論理ブロックに含まれるマッピング論理ページに対応するデータをその論理ブロックに対応する物理ブロックに格納し直す必要がある。ここで、論理ブロックに含まれるマッピング論理ページが変更された場合とは、その論理ブロックに含まれるマッピング論理ページに対応するＬＢＡの範囲が変更された場合である。従って、その論理ブロックに含まれるマッピング論理ページのページ数が変更されない場合でも、論理ブロックに含まれるマッピング論理ページが変化する場合がある。
【００５３】
この格納データを格納し直す処理を、図１４を参照して説明する。論理ブロック番号０の新論理ブロックには、論理ブロック番号０の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ９５までのマッピング論理ページが含まれる。従って、論理ブロック番号０の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号０の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ９５までのマッピング論理ページに対応するデータが格納される。
【００５４】
論理ブロック番号８の新論理ブロックには、論理ブロック番号０の旧論理ブロックに含まれていたＬＰＮ９６からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号８の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページが含まれる。従って、論理ブロック番号８の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号０の旧論理ブロックに含まれていたＬＰＮ９６からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号８の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータが格納される。
【００５５】
論理ブロック番号１６の新論理ブロックには、論理ブロック番号８の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号１６の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページが含まれる。従って、論理ブロック番号１６の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号８の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号１６の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータが格納される。
【００５６】
論理ブロック番号２４の新論理ブロックには、論理ブロック番号１６の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号２４の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページが含まれる。従って、論理ブロック番号２４の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号１６の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号２４の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータが格納される。
【００５７】
論理ブロック番号３２の新論理ブロックには、論理ブロック番号２４の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号３２の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ７１までのマッピング論理ページが含まれる。従って、論理ブロック番号３２の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号２４の旧論理ブロックに含まれていたＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号３２の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ７１までのマッピング論理ページに対応するデータが格納される。
【００５８】
論理ブロック番号４０の新論理ブロックには、論理ブロック番号３２の旧論理ブロックに含まれていたＬＰＮ７２からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号４０の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ１０７までのマッピング論理ページが含まれる。従って、論理ブロック番号４０の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号３２の旧論理ブロックに含まれていたＬＰＮ７２からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号４０の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ１０７までのマッピング論理ページに対応するデータが格納される。
【００５９】
論理ブロック番号４８の新論理ブロックには、論理ブロック番号４０の旧論理ブロックに含まれていたＬＰＮ１０８からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号４８の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ１５５までのマッピング論理ページが含まれる。従って、論理ブロック番号４８の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号４０の旧論理ブロックに含まれていたＬＰＮ１０８からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号４８の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ１５５までのマッピング論理ページに対応するデータが格納される。
【００６０】
論理ブロック番号５６の新論理ブロックには、論理ブロック番号４８の旧論理ブロックに含まれていたＬＰＮ１５６からＬＰＮ２０５までのマッピング論理ページと論理ブロック番号５６の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ２０５までのマッピング論理ページが含まれる。従って、論理ブロック番号５６の新論理ブロックに割り当てられた物理ブロックには、論理ブロック番号４８の旧論理ブロックに含まれていたＬＰＮ１５６からＬＰＮ２０５までのマッピング論理ページに対応するデータと論理ブロック番号５６の旧論理ブロックに含まれていたＬＰＮ０からＬＰＮ２０５までのマッピング論理ページに対応するデータが格納される。
【００６１】
以上のように再格納するため、物理ブロック間でデータ転送が行われる。論理ブロック番号０の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ９５までのマッピング論理ページに対応するデータは、論理ブロック番号０の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号０の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ９６からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号８の新論理ブロックに割り当てられた物理ブロックへコピーされる。論理ブロック番号８の旧に割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータは、論理ブロック番号８の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号８の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号１６の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号１６の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータは、論理ブロック番号１６の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号１６の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号２４の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号２４の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ４５までのマッピング論理ページに対応するデータは、論理ブロック番号２４の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号２４の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ４６からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号３２の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号３２の論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ７１までのマッピング論理ページに対応するデータは、論理ブロック３２番号の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号３２の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ７２からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号４０の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号４０の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ１０７までのマッピング論理ページに対応するデータは、論理ブロック番号４０の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号４０の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ１０８からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号４８の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号４８の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ１５５までのマッピング論理ページに対応するデータは、論理ブロック番号４８の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号４８に割り当てられている物理ブロックに格納されているＬＰＮ１５６からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック番号５６の新論理ブロックに割り当てられた物理ブロックにコピーされる。論理ブロック番号５６の旧論理ブロックに割り当てられている物理ブロックに格納されているＬＰＮ０からＬＰＮ２０５までのマッピング論理ページに対応するデータは、論理ブロック５６用の新論理ブロックに割り当てられた物理ブロックにコピーされる。
【００６２】
以上、本発明の実施の形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施の形態にのみ限定する趣旨ではない。本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。
【００６３】
例えば、複数のフラッシュメモリをアクセスするために複数のチャンネルのバスを備えたフラッシュメモリシステムにおいても本発明は有効である。各チャンネルに接続された複数のフラッシュメモリから、それぞれ選択された複数の物理ブロックを、ひとつの仮想ブロックとして定義する。さらにその仮想ブロックを構成する複数の物理ブロックにそれぞれ含まれる複数の物理ページを、ひとつの仮想ページと定義する。この様な仮想空間に対しても本発明は適用可能である。その場合、ホストシステムのＬＢＡ空間からフラッシュメモリ内の物理アドレスへのアドレス変換は、仮想ブロックの単位で行われる。つまり、ひとつの論理ブロックはひとつの仮想ブロックに割り当てられ、ひとつの論理ページはひとつの仮想ページに割り当てられる。従って、論理ページのサイズは、仮想ページのユーザデータ領域の合計値に一致する。
【産業上の利用可能性】
【００６４】
本発明は、種々のデジタル情報を取り扱うパーソナルコンピュータやデジタルスチルカメラ等の電子機器に装着又内蔵される情報記憶（記録）装置に適用することができる。
【符号の説明】
【００６５】
１…フラッシュメモリシステム、２…フラッシュメモリ、３…メモリコントローラ
【図１】
2012058770.tif 000003
【図２】
2012058770.tif 000004
【図３】
2012058770.tif 000005
【図４】
2012058770.tif 000006
【図５】
2012058770.tif 000007
【図６】
2012058770.tif 000008
【図７】
2012058770.tif 000009
【図８】
2012058770.tif 000010
【図９】
2012058770.tif 000011
【図１０】
2012058770.tif 000012
【図１１】
2012058770.tif 000013
【図１２】
2012058770.tif 000014
【図１３】
2012058770.tif 000015
【図１４】
2012058770.tif 000016