(57)【要約】【課題】論理アドレスの範囲が同一のデータが書き込まれている物理ブロックが複数個存在した場合に、それらの新旧関係を正確に判断する。【解決手段】新旧識別情報を優先順位が付けられた複数個の循環番号で構成する。新たな新旧識別情報を生成するときは、優先順位が高い循環番号から順番に比較して、新旧関係が新しい新旧識別情報を抽出していき、新旧関係が新しい新旧識別情報を抽出したときは、抽出された新旧識別情報の抽出の際に比較対象になっていた優先順位の循環番号を新たな新旧識別情報のその優先順位の循環番号にする。比較対象の新旧識別情報の比較する優先順位の循環番号が全て同じ場合（比較対象の新旧識別情報が１個だけの場合も含む）は、これ以上の抽出を行わず、その循環番号を１段階進めた循環番号を新たな新旧識別情報のその優先順位の循環番号にする。【選択図】図５
2007323159.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムから与えられる情報に従って、物理ブロック単位で記憶データが消去されるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス管理手段と、
論理アドレスが同一範囲のデータが記憶されている物理ブロックの新旧関係を判別する情報であり、優先順位が付けられた複数個の循環番号を含む情報である新旧識別情報を生成する識別情報生成手段と、
前記ホストシステムから供給されたデータが書き込まれた物理ブロックに、該物理ブロックに書き込まれたデータに対応した前記新旧識別情報を書き込む書き込み手段と、
前記書き込み手段が書き込んだ前記新旧識別情報を読み出す読み出し手段と、
論理アドレスが同一範囲のデータが記憶されている物理ブロックが複数個存在する場合に、該複数個の物理ブロックの新旧関係を前記新旧識別情報に含まれる各優先順位の循環番号の先後に基づいて判断する新旧判断手段とを備え、
前記新旧識別情報は、優先順位が高い循環番号から順番に新旧関係を比較していったときに、各優先順位で比較対象となる循環番号が、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となるように生成されることを特徴とするメモリコントローラ。
【請求項２】
前記識別情報生成手段は、新たに生成する前記新旧識別情報が書込まれる物理ブロックに記憶されるデータと論理アドレスが同一範囲のデータが記憶されている物理ブロックの前記新旧識別情報に含まれる循環番号を優先順位の高い方から比較して、各優先順位で循環順序が後の循環番号を含む前記新旧識別情報を順次抽出していき、該抽出において比較対象となる循環番号が全て同じ段階になったときに該抽出を終了し、
該抽出で、比較対象になった優先順位の循環番号が１段階異なる循環番号のときは、循環順序が後の循環番号を、該優先順位の循環番号とし、比較対象になった優先順位の循環番号が全て同じ段階のときは、比較対象になった循環番号の循環順序を１段階進めた循環番号を、該優先順位の循環番号とした前記新旧識別情報を生成することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
論理アドレスが同一範囲のデータが記憶されている物理ブロックの許容個数がｎ個の場合に、前記新旧識別情報に含まれる循環番号の個数を（ｎ−１）個にすることを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
請求項１乃至３のいずれか１項に記載のメモリコントローラと、フラッシュメモリと、から構成される、
ことを特徴とするフラッシュメモリシステム。
【請求項５】
ホストシステムから与えられる情報に従って、物理ブロック単位で記憶データが消去されるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス管理ステップと、
論理アドレスが同一範囲のデータが記憶されている物理ブロックの新旧関係を判別する情報であり、優先順位が付けられた複数個の循環番号を含む情報である新旧識別情報を生成する識別情報生成ステップと、
前記ホストシステムから供給されたデータが書き込まれた物理ブロックに、該物理ブロックに書き込まれたデータに対応した前記新旧識別情報を書き込む書き込みステップと、
論理アドレスが同一範囲のデータが記憶されている物理ブロックが複数個存在する場合に、該複数個の物理ブロックの新旧関係を前記新旧識別情報に含まれる各優先順位の循環番号の先後に基づいて判断する新旧判断ステップとを含み、
前記新旧識別情報は、優先順位が高い循環番号から順番に新旧関係を比較していったときに、各優先順位で比較対象となる循環番号が、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となるように生成されることを特徴とするフラッシュメモリの制御方法。
【請求項６】
前記識別情報生成ステップでは、新たに生成する前記新旧識別情報が書き込まれる物理ブロックに記憶されるデータと論理アドレスが同一範囲のデータが記憶されている物理ブロックの前記新旧識別情報に含まれる循環番号を優先順位の高い方から比較して、各優先順位で循環順序が後の循環番号を含む前記新旧識別情報を順次抽出していき、該抽出において比較対象となる循環番号が全て同じ段階になったときに該抽出を終了し、
該抽出で、比較対象になった優先順位の循環番号が１段階異なる循環番号のときは、循環順序が後の循環番号を、該優先順位の循環番号とし、比較対象になった優先順位の循環番号が全て同じ段階のときは、比較対象になった循環番号の循環順序を１段階進めた循環番号を、該優先順位の循環番号とした前記新旧識別情報を生成することを特徴とする請求項５に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶データが複数のメモリセルからなる物理ブロック単位で消去されるフラッシュメモリへのアクセスを制御するメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関するものである。
【背景技術】
【０００２】
近年、メモリカード、シリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリ、特にＮＡＮＤ型フラッシュメモリが一般的に用いられている。このＮＡＮＤ型フラッシュメモリを使用した記憶装置では、ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を正確に管理する必要がある。このため、例えば物理ブロックの冗長領域に、該物理ブロックに書き込まれているデータに対応する論理アドレスの範囲を示す論理アドレス情報を書き込むことが一般的に行われている。
【０００３】
又、このＮＡＮＤ型フラッシュメモリに記憶されているデータを更新する場合には、記憶データが消去されている別の物理ブロックに新データを書き込み、旧データが記憶されている物理ブロックの記憶データを消去する。但し、旧データが記憶されている物理ブロックの記憶データを直ぐに消去せずに、新データが記憶されている物理ブロックと旧データが記憶されている物理ブロックを並存させる場合もある。このような場合、冗長領域に同一の論理アドレス情報が書き込まれている物理ブロックが複数個存在することになるため、この複数個の物理ブロックに記憶されているデータの新旧関係を判断する必要がある。
【０００４】
このため、特許文献１には、物理ブロックに記憶されているデータの新旧関係を示す新旧識別情報を、論理アドレス情報と共に当該物理ブロックの冗長領域に書き込むような技術が記載されている。この新旧識別情報としては、所定の周期で最初の番号に戻るような循環番号が用いられている。
【特許文献１】特開２００５−１９０２８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、かかる従来の技術において、旧データが記憶されている物理ブロックに書き込まれている循環番号と新データが記憶されている物理ブロックに書き込まれている循環番号との差が大きくなる場合があり、このような場合には循環番号に基づいて新旧関係を判断することができなくなることがある。例えば、０から開始して１５の次で０に戻るような循環番号が用いた場合について説明する。この設定で、循環番号として１２が書き込まれている物理ブロックと循環番号として１３が書き込まれている物理ブロックが存在するときに、循環番号として１４を書き込んだ物理ブロックを追加し、循環番号として１３が書き込まれている物理ブロックの記憶データを消去する。次に、循環番号として１５を書き込んだ物理ブロックを追加し、循環番号として１４が書き込まれている物理ブロックの記憶データを消去する。次に、循環番号として０を書き込んだ物理ブロックを追加し、循環番号として１５が書き込まれている物理ブロックの記憶データを消去する。このような処理を繰り返していって、循環番号として１２が書き込まれている物理ブロックと循環番号として４が書き込まれている物理ブロックが残った場合、１２から４までのステップ数（循環順序に従って循環番号を進めていったときの段階数）と４から１２までのステップが等しくなり、この循環番号に基づいて新旧関係を判断することができなくなる。
【０００６】
そこで、本発明は、アクセス対象のフラッシュメモリに論理アドレスの範囲が同一のデータが書き込まれている物理ブロックが複数個存在した場合に、それらの新旧関係を正確に判断することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のメモリコントローラは、ホストシステムから与えられる情報に従って、物理ブロック単位で記憶データが消去されるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス管理手段と、
論理アドレスが同一範囲のデータが記憶されている物理ブロックの新旧関係を判別する情報であり、優先順位が付けられた複数個の循環番号を含む情報である新旧識別情報を生成する識別情報生成手段と、
前記ホストシステムから供給されたデータが書き込まれた物理ブロックに、該物理ブロックに書き込まれたデータに対応した前記新旧識別情報を書き込む書き込み手段と、
前記書き込み手段が書き込んだ前記新旧識別情報を読み出す読み出し手段と、
論理アドレスが同一範囲のデータが記憶されている物理ブロックが複数個存在する場合に、該複数個の物理ブロックの新旧関係を前記新旧識別情報に含まれる各優先順位の循環番号の先後に基づいて判断する新旧判断手段とを備え、
前記新旧識別情報は、優先順位が高い循環番号から順番に新旧関係を比較していったときに、各優先順位で比較対象となる循環番号が、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となるように生成されることを特徴とする。
【０００８】
前記新旧識別情報に基づく新旧関係の判断では、優先順位が高い循環番号から順番に新旧関係が判断され、上位の優先順位の循環番号が同じ新旧識別情報については、下位の優先順位の循環番号に基づいて新旧識別情報の新旧関係が判別される。従って、各優先順位においては、その優先順位より優先順位が高い循環番号が同じ新旧識別情報だけが比較対象になるため、各優先順位で比較対象となる循環番号は、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となる。
【０００９】
又、前記識別情報生成手段は、新たに生成する前記新旧識別情報が書込まれる物理ブロックに記憶されるデータと論理アドレスが同一範囲のデータが記憶されている物理ブロックの前記新旧識別情報に含まれる循環番号を優先順位の高い方から比較して、各優先順位で循環順序が後の循環番号を含む前記新旧識別情報を順次抽出していき、該抽出において比較対象となる循環番号が全て同じ段階になったときに該抽出を終了し、
該抽出で、比較対象になった優先順位の循環番号が１段階異なる循環番号のときは、循環順序が後の循環番号を、該優先順位の循環番号とし、比較対象になった優先順位の循環番号が全て同じ段階のときは、比較対象になった循環番号の循環順序を１段階進めた循環番号を、該優先順位の循環番号とした前記新旧識別情報を生成することが好ましい。
【００１０】
つまり、新たな新旧識別情報を生成するときは、優先順位が高い循環番号から順番に比較して、新旧関係が新しい新旧識別情報を抽出していき、新旧関係が新しい新旧識別情報を抽出したときは、抽出された新旧識別情報の抽出の際に比較対象になっていた優先順位の循環番号を新たな新旧識別情報のその優先順位の循環番号にする。比較対象の新旧識別情報の比較する優先順位の循環番号が全て同じ場合（比較対象の新旧識別情報が１個だけの場合も含む）は、これ以上の抽出を行わず、その循環番号を１段階進めた循環番号を新たな新旧識別情報のその優先順位の循環番号にする。
【００１１】
又、論理アドレスが同一範囲のデータが記憶されている物理ブロックの許容個数がｎ個の場合に、前記新旧識別情報に含まれる循環番号の個数を（ｎ−１）個にすることが好ましい。
【００１２】
又、本発明のフラッシュメモリシステムは、前記メモリコントローラと、フラッシュメモリと、から構成されることを特徴とする。
【００１３】
又、本発明のフラッシュメモリの制御方法は、ホストシステムから与えられる情報に従って、物理ブロック単位で記憶データが消去されるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理するアドレス管理ステップと、
論理アドレスが同一範囲のデータが記憶されている物理ブロックの新旧関係を判別する情報であり、優先順位が付けられた複数個の循環番号を含む情報である新旧識別情報を生成する識別情報生成ステップと、
前記ホストシステムから供給されたデータが書き込まれた物理ブロックに、該物理ブロックに書き込まれたデータに対応した前記新旧識別情報を書き込む書き込みステップと、
論理アドレスが同一範囲のデータが記憶されている物理ブロックが複数個存在する場合に、該複数個の物理ブロックの新旧関係を前記新旧識別情報に含まれる各優先順位の循環番号の先後に基づいて判断する新旧判断ステップとを含み、
前記新旧識別情報は、優先順位が高い循環番号から順番に新旧関係を比較していったときに、各優先順位で比較対象となる循環番号が、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となるように生成されることを特徴とする。
【００１４】
又、前記識別情報生成ステップでは、新たに生成する前記新旧識別情報が書き込まれる物理ブロックに記憶されるデータと論理アドレスが同一範囲のデータが記憶されている物理ブロックの前記新旧識別情報に含まれる循環番号を優先順位の高い方から比較して、各優先順位で循環順序が後の循環番号を含む前記新旧識別情報を順次抽出していき、該抽出において比較対象となる循環番号が全て同じ段階になったときに該抽出を終了し、
該抽出で、比較対象になった優先順位の循環番号が１段階異なる循環番号のときは、循環順序が後の循環番号を、該優先順位の循環番号とし、比較対象になった優先順位の循環番号が全て同じ段階のときは、比較対象になった循環番号の循環順序を１段階進めた循環番号を、該優先順位の循環番号とした前記新旧識別情報を生成することが好ましい。
【発明の効果】
【００１５】
本発明に係るメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法によれば、アクセス対象のフラッシュメモリに論理アドレスの範囲が同一のデータが書き込まれている物理ブロックが複数個存在した場合に、それらの新旧関係を正確に判断することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明に係るメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法の好適な実施形態について、図面を参照して詳細に説明する。
図１は、本発明のフラッシュメモリシステムの一実施例の概略を示すブロック図である。図１に示すように、フラッシュメモリシステム１は、フラッシュメモリ２と、それを制御するメモリコントローラ３で構成されている。また、フラッシュメモリシステム１は、外部バス１３を介してホストシステム４と接続される。
【００１７】
ホストシステム４は、ホストシステム４の全体の動作を制御するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、フラッシュメモリシステム１との情報の授受を担うコンパニオンチップ等とから構成される。ホストシステム４は、たとえば文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
【００１８】
フラッシュメモリ２は、不揮発性メモリであり、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
【００１９】
メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、すなわち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。つまり、メモリコントローラ３から与えられたデータは、レジスタを介してメモリセルアレイに書き込まれ、メモリセルアレイに記憶されているデータはレジスタを介してメモリコントローラ３に供給される。
【００２０】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタによって構成される。ここで、一方のゲートはコントロールゲート、他方のゲートはフローティングゲートとそれぞれ呼ばれている。フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書き込み若しくはデータの消去が行われる。
【００２１】
このフローティングゲートは、周囲が絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧がコントロールゲートとフローティングゲートとの間に印加される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧がコントロールゲートとフローティングゲートとの間に印加される。
【００２２】
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「０」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「１」に対応する。
【００２３】
このようなフラッシュメモリ２のアドレス空間は、“ページ”及び“ブロック（物理ブロック）”で構成されている。ページは、フラッシュメモリ２にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ２にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。
【００２４】
ここで、図２は、フラッシュメモリ２のアドレス空間の構造を概略的に示すものであり、１個のページが、４セクタ（２０４８バイト）のユーザ領域２５と、６４バイトの冗長領域２６とで構成され、１個の物理ブロックは６４個のページで構成されている。以下、ユーザ領域２５を４分割した５１２バイトの領域をセクタ領域と言う。また、冗長領域２６も適宜分割して使用され、各セクタ領域には、分割された冗長領域（以下、部分冗長領域と言う。）がそれぞれ割り当てられる。つまり、このフラッシュメモリ２は、１ブロックあたり、２５６個のセクタ領域と各セクタ領域に割り当てられた２５６個の部分冗長領域とで構成されているとみなすことができる。
【００２５】
又、物理ブロックには、図３（ｃ）に示したように、それぞれに固有の物理ブロックアドレス（ＰＢＡ）が割り当てられている。更に、記憶領域を複数のゾーンに分割して管理する場合には、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに固有の物理ゾーン番号（ＰＺＮ）を割り当てている。各物理ゾーンに含まれる物理ブロックの、各物理ゾーン内での通番を物理ゾーン内ブロック番号（ＰＺＩＢＮ）と呼んでいる。
【００２６】
一方、ホストシステム４側のアドレス空間は、図３（ａ）に示したようにセクタ（５１２バイト）単位で分割した領域に付けた通番であるＬＢＡ（Logical Block Address）で管理されている。更に、複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。又、図３（ｂ）に示したように論理ブロックに付けられた通番を論理ブロック番号（ＬＢＮ）と呼び、論理ゾーンに付けられた通番を論理ゾーン番号（ＬＺＮ）と呼んでいる。又、各論理ゾーンに含まれる論理ブロックの、各論理ゾーン内での通番を論理ゾーン内ブロック番号（ＬＺＩＢＮ）と呼んでいる。
【００２７】
又、各論理ゾーンにはそれぞれ１個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。従って、１個の論理ブロックに含まれるセクタ数は、１個の物理ブロックに含まれるセクタ領域の個数に応じて設定される。但し、１個の論理ブロックを複数個の物理ブロックに割り当てる場合には、その複数個の物理ブロックを１個の物理ブロックとみなして１個の論理ブロックに含まれるセクタ数を設定する。
【００２８】
図３に示した例では、１個の物理ブロックが２５６個のセクタ領域で構成されたフラッシュメモリを想定しているため、２５６セクタが１個の論理ブロックに対応している。従って、ＬＢＮ＃０〜＃４９９の５００個の論理ブロックで構成されたＬＺＮ＃０の論理ゾーンは、ＬＢＡ＃０〜＃１２７９９９の１２８０００セクタの領域に対応している。以下同様に、ＬＺＮ＃１の論理ゾーンは、ＬＢＡ＃１２８０００〜＃２５５９９９の１２８０００セクタの領域に対応し、ＬＺＮ＃２の論理ゾーンは、ＬＢＡ＃２５６０００〜＃３８３９９９の１２８０００セクタの領域に対応し、ＬＺＮ＃３の論理ゾーンは、ＬＢＡ＃３８４０００〜＃５１１９９９の１２８０００セクタの領域に対応している。
【００２９】
又、ＬＢＮ＃０〜＃４９９の５００個の論理ブロックで構成されたＬＺＮ＃０の論理ゾーンは、ＰＢＡ＃０〜＃５１１の５１２個の物理ブロックで構成されたＰＺＮ＃０の物理ゾーンに割り当てられている。以下同様に、ＬＺＮ＃１の論理ゾーンは、ＰＺＮ＃１の物理ゾーンに割り当てられ、ＬＺＮ＃２の論理ゾーンは、ＰＺＮ＃２の物理ゾーンに割り当てられ、ＬＺＮ＃３の論理ゾーンは、ＰＺＮ＃３の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データと旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。
【００３０】
又、各物理ブロックには、その物理ブロックに割り当てられた論理ブロックのデータがＬＢＡの順番で書き込まれるので、物理ブロックと論理ブロックとの対応関係を管理することによって、ホストシステムから与えられるＬＢＡとフラッシュメモリ内のアクセス領域の対応関係を管理することができる。
【００３１】
なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、アドレス管理手段によって、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。すなわち、アドレス管理手段は、ホストシステムから与えられる論理アドレスとフラッシュメモリ内の物理アドレスとの対応関係を管理する。尚、論理ゾーンと物理ゾーンとの対応関係は予め設定されており、アドレス変換テーブルは論理ゾーン毎に作成することができる。
【００３２】
このアドレス変換テーブルは、物理ブロックの先頭ページの冗長領域２６に書き込まれる論理ブロックを示す情報（以下、論理アドレス情報という。）に基づいて作成される。冗長領域２６に書き込まれる論理アドレス情報としては、ＬＢＮ等の論理ブロックを特定する情報が用いられる。尚、論理ゾーンと物理ゾーンとの対応関係が予め設定されている場合は、ＬＺＩＢＮに基づいてアドレス変換テーブルを作成することができので、ＬＢＮよりデータ量の少ないＬＺＩＢＮを用いることが好ましい。
【００３３】
また、物理ブロックの先頭ページの冗長領域２６には、その物理ブロックが不良ブロックであるか否かを示すブロックステータス（フラグ）が書き込まれる。各セクタ領域に対応する部分冗長領域には、それぞれ対応するセクタ領域に書き込まれたユーザデータのエラーコレクションコード（ＥＣＣ）が書き込まれる。
【００３４】
次に、フラッシュメモリ２に対してアクセス処理を行うメモリコントローラ３について説明する。メモリコントローラ３は、フラッシュメモリ２にデータ、アドレス情報、内部コマンド等を供給することにより読み出し処理、書き込み処理、ブロック消去処理等の各処理を行う。
【００３５】
ここで、内部コマンドとは、メモリコントローラ３がフラッシュメモリ２に処理の実行を指示するためのコマンドであり、フラッシュメモリ２はメモリコントローラ３から与えられる内部コマンドに従って動作する。一方、ホストシステム４からメモリコントローラ３に与えられるコマンドを外部コマンドという。
【００３６】
メモリコントローラ３は、図１に示すように、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２とを備えている。これら機能ブロックによって構成されるメモリコントローラ３は、一つの半導体チップ上に集積される。
【００３７】
マイクロプロセッサ６は、ＲＯＭ１２に記憶されているプログラムに従って、メモリコントローラ３の全体の動作を制御する。この制御のもと、後述する新旧識別情報の生成処理や新旧識別情報に基づいた新旧関係の判別処理が行われる。マイクロプロセッサ６、ホストインターフェースブロック７、ワークエリア８、バッファ９、フラッシュメモリインターフェースブロック１０、ＲＯＭ１２を有するメモリコントローラ３は、アドレス管理手段、識別情報生成手段、書き込み手段、読み出し手段、及び新旧判断手段を構成している。
【００３８】
ＲＯＭ１２は、不揮発性の記憶素子であり、メモリコントローラ３の全体の動作を制御するプログラム等を記憶している。ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成される。上述のアドレス変換テーブルは、このワークエリア８上に作成される。
【００３９】
バッファ９は、フラッシュメモリ２から読み出されたデータ及びフラッシュメモリ２に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ２から読み出されたデータは、ホストシステム４が受け取り可能な状態となるまでバッファ９に保持され、フラッシュメモリ２に書き込むべきデータは、フラッシュメモリ２が書き込み可能な状態となるまでバッファ９に保持される。
【００４０】
ＥＣＣブロック１１は、フラッシュメモリ２に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
【００４１】
ホストインターフェースブロック７は、ホストシステム４との間で、外部バス１３を介し、データ、アドレス情報、外部コマンド等の授受を行う。ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてフラッシュメモリシステム１の内部（たとえば、バッファ９）に取り込まれる。フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００４２】
フラッシュメモリインターフェースブロック１０は、マイクロプロセッサ６によってＲＯＭ１２から読み出された各種処理を定義したコマンドセット（以下、シーケンスコマンドという）に従って読み出し、書き込み等の各種処理を実行する。この各種処理を実行するときに、フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
【００４３】
ホストインターフェースブロック７及びフラッシュメモリインターフェースブロック１０は、図４に示すような各種レジスタを備える。すなわち、ホストインターフェースブロック７は、コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３等を備えている。また、フラッシュメモリインターフェースブロック１０は、物理ブロックアドレスレジスタＲ１１、セクタ番号レジスタＲ１２、カウンタＲ１３等を備えている。
【００４４】
コマンドレジスタＲ１、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３には、ホストシステム４から与えられる情報が書き込まれる。コマンドレジスタＲ１には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタＲ２にはアクセス対象領域のセクタ数が書き込まれる。ＬＢＡレジスタＲ３には、アクセス対象領域の先頭のＬＢＡが書き込まれる。
【００４５】
物理ブロックアドレスレジスタＲ１１、セクタ番号レジスタＲ１２、カウンタＲ１３には、セクタ数レジスタＲ２及びＬＢＡレジスタＲ３に書き込まれた情報に基づく、フラッシュメモリ２内のアクセス対象領域を指示する情報が書き込まれる。
【００４６】
例えば、ＬＢＡが連続する２５６セクタの領域を、フラッシュメモリ２（１ブロックが６４ページで、１ページが４セクタの場合）の１個の物理ブロックに割り当てた場合、図３で説明したＬＢＡの下位８ビットが、各論理ブロック内のセクタに付けた通番であるセクタ番号ＳＮに対応し、この下位８ビットを除いた上位側のビットが論理ブロック番号（ＬＢＮ）に対応する。
【００４７】
つまり、ＬＢＡが連続する２５６セクタの領域を１個の論理ブロックとした場合、ＬＢＡの下位８ビットが論理ブロック内の各セクタに付けた通番であるセクタ番号ＳＮ（＃０〜＃２５５）を示し、このＬＢＡの下位８ビットを除いた上位側のビットが論理ブロック番号（ＬＢＮ）を示している。尚、ＬＢＡ、論理ブロック番号（ＬＢＮ）及びセクタ番号（ＳＮ）のビット数については、フラッシュメモリ２の容量や仕様等に応じて決定される。
【００４８】
次に、物理ブロックアドレスレジスタＲ１１、セクタ番号レジスタＲ１２、カウンタＲ１３に設定される情報について説明する。セクタ番号レジスタＲ１２には、ＬＢＡレジスタＲ３に書き込まれたＬＢＡのセクタ番号ＳＮに対応する部分が書き込まれる。
【００４９】
ここで、各物理ブロックにはＬＢＡの順番でユーザデータが書き込まれるので、上記のセクタ番号ＳＮは、各物理ブロックに含まれるセクタ領域に付けられた通番に対応する。一方、物理ブロックアドレスレジスタＲ１１には、ＬＢＡレジスタＲ３に書き込まれたＬＢＡの論理ブロック番号（ＬＢＮ）を示す部分に基づいて特定された論理ブロックと対応する物理ブロックの物理ブロックアドレス（ＰＢＡ）又は空きブロックの物理ブロックアドレス（ＰＢＡ）が書き込まれる。
【００５０】
つまり、特定された論理ブロックに対応する物理ブロックからユーザデータを読み出す場合、又は、その物理ブロックに追加書き込みをする場合には、特定された論理ブロックと対応する物理ブロックの物理ブロックアドレス（ＰＢＡ）が物理ブロックアドレスレジスタＲ１１に書き込まれる。また、特定された論理ブロックに対応するユーザデータを空きブロックに書き込む場合には、その空きブロックの物理ブロックアドレス（ＰＢＡ）が物理ブロックアドレスレジスタＲ１１に書き込まれる。カウンタＲ１３には、セクタ数レジスタＲ２に設定されたセクタ数が書き込まれる。
【００５１】
尚、ＬＢＡレジスタＲ３及びセクタ数レジスタＲ２に設定された情報に基づいて特定されるアクセス対象領域が複数の論理ブロックに跨っている場合、アクセス対象領域の物理ブロックも複数の物理ブロックに跨っているので、物理ブロックアドレスレジスタＲ１１、セクタ番号レジスタＲ１２、カウンタＲ１３に対する情報の設定は論理ブロック毎に行われる。
【００５２】
読み出しや書き込みの各種処理では、コマンドレジスタＲ１に設定された外部コマンドに対応するシーケンスコマンドがＲＯＭ１２から読み出され、このシーケンスコマンドに従ってフラッシュメモリインタフェースブロック１０が、フラッシュメモリ２を制御する。
【００５３】
読み出し処理の場合、フラッシュメモリインタフェースブロック１０が内部コマンド、アドレス情報等を出力し、フラッシュメモリ２から読み出したデータをバッファ９に保持する。ここで、フラッシュメモリ２に与えられる内部コマンドは、読み出しを指示する内部コマンドである。又、フラッシュメモリ２に与えられるアドレス情報は、物理ブロックアドレスレジスタＲ１１とセクタ番号レジスタＲ１２に設定されている設定値に基づいて生成される。尚、フラッシュメモリ２から１セクタ分のデータが読み出される毎に、セクタ番号レジスタＲ１２に設定されている設定値はインクリメント（１ずつ加算）され、カウンタＲ１３に設定されている設定値はデクリメント（１ずつ減算）され、インクリメントされたセクタ番号レジスタＲ１２の設定値に基づいて、次のアドレス情報が生成される。尚、バッファ９に格納されたデータは、ホストインターフェースブロック７と外部バス１３を介してホストシステム４に提供される。
【００５４】
この読み出し処理は、カウンタＲ１３に設定されている設定値が“０”になると終了する。つまり、この読み出し処理では、セクタ番号レジスタＲ１２に最初に設定された設定値に対応するセクタ領域から順番に、カウンタＲ１３に最初に設定されたセクタ数分のデータが読み出される。
【００５５】
書き込み処理の場合、フラッシュメモリインタフェースブロック１０が内部コマンド、アドレス情報等を出力すると共に、フラッシュメモリ２に書き込むデータを、バッファ９からフラッシュメモリ２に供給する。ここで、フラッシュメモリ２に与えられる内部コマンドは、書き込みを指示する内部コマンドである。又、フラッシュメモリ２に与えられるアドレス情報は、物理ブロックアドレスレジスタＲ１１とセクタ番号レジスタＲ１２に設定されている設定値に基づいて生成される。
【００５６】
この書き込み処理は、読み出し処理の場合と同様に、カウンタＲ１３に設定されている設定値が“０”になると終了する。つまり、この書き込み処理では、セクタ番号レジスタＲ１２に最初に設定された設定値に対応するセクタ領域から順番に、カウンタＲ１３に最初に設定されたセクタ数分のデータが書き込まれる。
【００５７】
次に、同一範囲のＬＢＡが割り当てられた物理ブロックが複数個存在する場合、つまり、ＬＢＮが同じ論理ブロックに対応する物理ブロックが複数個存在する場合について説明する。フラッシュメモリでは、データの書き換えを行うことができず、データの消去はブロック単位で行われる。従って、通常の書き換え処理では、新たなデータは別の消去状態の物理ブロックに書き込まなければならない。この際、新たなデータで置き換えられないデータを、元の物理ブロックから新たなデータを書き込んだ物理ブロックに転送すれば、元の物理ブロックに記憶されているデータを消去することができるが、この転送を行わずに、これらの物理ブロックを並存させておく場合がある。このような場合、ＬＢＮが同じ論理ブロックに対応する物理ブロックが複数個存在することになるため、同一のＬＢＡに対応するデータも複数個存在することになる。
【００５８】
同一のＬＢＡに対応するデータが、異なる物理ブロック内に存在する場合は、物理ブロックに対するデータ書き込みの先後に基づいて最新のデータを判別する。従って、データを書き込んだ物理ブロックには、この書き込みの先後を判断するための情報（以下、新旧識別情報と言う。）が、書き込み手段によって、書き込まれる。書き込み手段は、ホストシステム４から供給されたデータが書き込まれた物理ブロックに、この物理ブロックに書き込まれたデータに対応した新旧識別情報を書き込む。尚、ＬＢＮが同じ論理ブロックに対応する物理ブロックの並存を何個まで許容するかは、論理ゾーンに含まれる論理ブロックの個数とこれに対応する物理ゾーンに含まれる物理ブロックの個数等を考慮して適宜設定することができる。
【００５９】
ＬＢＮが同じ論理ブロックに対応する物理ブロックの個数が許容並存個数に達したときは、それらの物理ブロックのいずれかの物理ブロックに記憶されているデータを消去しなければならい。この消去を行う場合には、消去対象の物理ブロックに記憶されている有効データ（他の物理ブロックのデータで置き換えられていないデータ）を、消去対象でない他の物理ブロック（ＬＢＮが同じ論理ブロックに対応する物理ブロック）に転送しなければならない。従って、この消去対象の物理ブロックを選定するときには、各物理ブロックに記憶されている有効のデータの量等が考慮されるため、書き込みの先後に基づいて古いデータが記憶されている物理ブロックから順番に消去されるとは限らない。
【００６０】
次に、物理ブロックに記憶されているデータの新旧関係を判別するための情報である新旧識別情報について説明する。
【００６１】
下記の表１に示した例では、新旧識別情報が４個の循環番号を含んでいる。この４個の循環番号には、優先順位が付けられており、各循環番号は２ビットの値で４段階進むと一巡する（０、１、２、３、０の順番で循環する）。又、循環番号の先後関係は、循環番号の循環順序に従って判断し、先後関係が後の方が新旧関係が新しい方に対応する。尚、循環番号の個数は、ＬＢＮが同じ論理ブロックに対応する物理ブロックの許容並存個数から１を引いた個数に設定する。つまり、循環番号が４個の場合は、ＬＢＮが同じ論理ブロックに対応する物理ブロックが５個まで並存することができる。
【００６２】
表１に示したＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの物理ブロックには、同じ論理ブロックが割り当てられている。これらの物理ブロックに記憶されているデータの新旧関係を、各物理ブロックに付与されている新旧識別情報に基づいて判別する方法について説明する。尚、以下の説明では、ＰＺＩＢＮが＃Ａの物理ブロックに付与されている新旧識別情報を、＃Ａの新旧識別情報と省略して記載する。
【表１】
2007323159.tif 000003
【００６３】
まず、優先順位が１番目の循環番号に基づいて＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を判別する。＃Ａの新旧識別情報の優先順位が１番目の循環番号は“０”で、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の優先順位が１番目の循環番号は“１”なので、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報が＃Ａの新旧識別情報より新しいと判断する。
【００６４】
優先順位が１番目の循環番号が同じ新旧識別情報については、優先順位が２番目の循環番号に基づいて更に新旧関係を判別する。つまり、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を優先順位が２番目の循環番号に基づいて判別する。＃Ｂの新旧識別情報の優先順位が２番目の循環番号は“０”で、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の優先順位が２番目の循環番号は“１”なので、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報が＃Ｂの新旧識別情報より新しいと判断する。
【００６５】
優先順位が１〜２番目の循環番号が同じ新旧識別情報については、優先順位が３番目の循環番号に基づいて更に新旧関係を判別する。つまり、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を優先順位が３番目の循環番号に基づいて判別する。＃Ｃの新旧識別情報の優先順位が３番目の循環番号は“０”で、＃Ｄ及び＃Ｅの新旧識別情報の優先順位が３番目の循環番号は“１”なので、＃Ｄ及び＃Ｅの新旧識別情報が＃Ｃの新旧識別情報より新しいと判断する。
【００６６】
優先順位が１〜３番目の循環番号が同じ新旧識別情報については、優先順位が４番目の循環番号に基づいて更に新旧関係を判別する。つまり、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を優先順位が４番目の循環番号に基づいて判別する。＃Ｄの新旧識別情報の優先順位が４番目の循環番号は“０”で、＃Ｅの新旧識別情報の優先順位が４番目の循環番号は“１”なので、＃Ｅの新旧識別情報が＃Ｄの新旧識別情報より新しいと判断する。
【００６７】
以上のように、新旧識別情報に含まれる循環番号を優先順位が高い方から順番に、比較していくことにより、＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係が、＃Ｅの新旧識別情報、＃Ｄの新旧識別情報、＃Ｃの新旧識別情報、＃Ｂの新旧識別情報、＃Ａの新旧識別情報の順番で新旧関係が新しいことが分かる。
このように、プロセッサ６を含むメモリコントローラ３から構成される読み出し手段は、その書き込み手段が書き込んだ新旧識別情報を読み出し、新旧判断手段は、論理アドレスが同一範囲のデータが記憶されている物理ブロック（ＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの物理ブロック）が複数個存在する場合に、これら複数個の物理ブロックの新旧関係を新旧識別情報に含まれる各優先順位の循環番号の先後に基づいて判断する。以下同様に、新旧識別情報の読み出しは、読み出し手段が行い、複数個の物理ブロックの新旧関係の判断は新旧判断手段が行う。
【００６８】
次に、表２に示したような＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を判別する。
【表２】
2007323159.tif 000004
【００６９】
まず、優先順位が１番目の循環番号に基づいて＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を判別する。＃Ａ及び＃Ｂの新旧識別情報の優先順位が１番目の循環番号は“３”で、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の優先順位が１番目の循環番号は“０”なので、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報が＃Ａ及び＃Ｂの新旧識別情報より新しいと判断する。
【００７０】
優先順位が１番目の循環番号が同じ新旧識別情報については、優先順位が２番目の循環番号に基づいて更に新旧関係を判別する。つまり、＃Ａ及び＃Ｂの新旧識別情報の新旧関係と、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係をそれぞれ優先順位が２番目の循環番号に基づいて判別する。＃Ａの新旧識別情報の優先順位が２番目の循環番号は“１”で、＃Ｂの新旧識別情報の優先順位が２番目の循環番号は“２”なので、＃Ｂの新旧識別情報が＃Ａの新旧識別情報より新しいと判断する。＃Ｃの新旧識別情報の優先順位が２番目の循環番号は“０”で、＃Ｄ及び＃Ｅの新旧識別情報の優先順位が２番目の循環番号は“１”なので、＃Ｄ及び＃Ｅの新旧識別情報が＃Ｃの新旧識別情報より新しいと判断する。
【００７１】
優先順位が１〜２番目の循環番号が同じ新旧識別情報については、優先順位が３番目の循環番号に基づいて更に新旧関係を判別する。つまり、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を優先順位が３番目の循環番号に基づいて判別する。＃Ｄの新旧識別情報の優先順位が３番目の循環番号は“０”で、＃Ｅの新旧識別情報の優先順位が３番目の循環番号は“１”なので、＃Ｅの新旧識別情報が＃Ｄの新旧識別情報より新しいと判断する。
【００７２】
このように、新旧識別情報に含まれる循環番号を優先順位が高い方から順番に、比較していくことにより、＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係が、＃Ｅの新旧識別情報、＃Ｄの新旧識別情報、＃Ｃの新旧識別情報、＃Ｂの新旧識別情報、＃Ａの新旧識別情報の順番で新旧関係が新しいことが分かる。
【００７３】
以上で説明したように、新旧識別情報に基づいて新旧関係を判断するときは、優先順位が高い循環番号から順番に新旧関係を判断していき、上位の優先順位の循環番号が同じ新旧識別情報については、下位の優先順位の循環番号に基づいて新旧識別情報の新旧関係が判別される。従って、各優先順位においては、その優先順位より優先順位が高い循環番号が同じ新旧識別情報だけが比較対象になる。例えば、優先順位が３番目の循環番号を比較して新旧関係を判別するときは、優先順位の１番目と２番目の循環番号が同じ新旧識別情報同士が比較対象になる。
【００７４】
次に、表３に示したＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ及び＃Ｄの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｅの物理ブロックに付与する新旧識別情報の生成方法について説明する。新旧識別情報の生成は、識別情報生成手段によって行われる。すなわち、新旧識別情報は、論理アドレスが同一範囲のデータが記憶されている物理ブロック（ＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ、＃Ｅの物理ブロック）の新旧関係を判別する情報であり、優先順位が付けられた複数個の循環番号を含む情報である。
【表３】
2007323159.tif 000005
【００７５】
まず、＃Ａ、＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報の優先順位が１番目の循環番号が比較され、新旧関係が新しい＃Ｃ及び＃Ｄの新旧識別情報が抽出され、＃Ｃ及び＃Ｄの新旧識別情報の優先順位が１番目の循環番号が、＃Ｅの新旧識別情報の優先順位が１番目の循環番号として設定される。すなわち、＃Ｅの新旧識別情報の優先順位が１番目の循環番号を生成するときは、＃Ａ、＃Ｂ、＃Ｃ、＃Ｄの新旧識別情報の優先順位が１番目の循環番号が比較対象となり、これらの循環番号には循環順序が１段階異なる循環番号”０”と循環番号”１”が含まれているため、循環順序が１段階後の循環番号”１”が＃Ｅの新旧識別情報の優先順位が１番目の循環番号となる。
【００７６】
優先順位が１番目の循環番号に基づいて抽出された新旧関係が新しい側の新旧識別情報（＃Ｃ及び＃Ｄの新旧識別情報）の優先順位が２番目の循環番号が比較され、新旧関係が新しい＃Ｄの新旧識別情報が抽出され、＃Ｄの新旧識別情報の優先順位が２番目の循環番号が、＃Ｅの新旧識別情報の優先順位が２番目の循環番号として設定される。すなわち、＃Ｅの新旧識別情報の優先順位が２番目の循環番号を生成するときは、＃Ｃ、＃Ｄの新旧識別情報の優先順位が２番目の循環番号が比較対象となり、これらの循環番号には循環順序が１段階異なる循環番号”０”と循環番号”１”が含まれているため、循環順序が１段階後の循環番号”１”が＃Ｅの新旧識別情報の優先順位が２番目の循環番号となる。
【００７７】
優先順位が１〜２番目の循環番号に基づいて抽出された新旧関係が新しい側の新旧識別情報（＃Ｄの新旧識別情報）が１個だけなので、その新旧識別情報の優先順位が３番目の循環番号を１段階進めたものが、＃Ｅの新旧識別情報の優先順位が３番目の循環番号として設定される。すなわち、＃Ｅの新旧識別情報の優先順位が３番目の循環番号を生成するときは、＃Ｄの新旧識別情報の優先順位が３番目の循環番号だけが比較対象となり、比較対象となるのは循環番号”１”だけなので、循環番号”１”を１段階進めた循環番号”２”が＃Ｅの新旧識別情報の優先順位が３番目の循環番号となる。
【００７８】
優先順位が３番目の循環番号の比較を行うときに、比較対象となる新旧識別情報が１個だけなので、優先順位が４番目の循環番号の比較は行わず、＃Ｅの新旧識別情報の優先順位が４番目の循環番号として“０”が設定される。
【００７９】
このようにして生成された＃Ｅの新旧識別情報が、ＰＺＩＢＮが＃Ｅの物理ブロックの冗長領域に書き込まれる。
【００８０】
次に、表４に示したＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ及び＃Ｄの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｅの物理ブロックに付与する新旧識別情報の生成方法について説明する。
【表４】
2007323159.tif 000006
【００８１】
まず、＃Ａ、＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報の優先順位が１番目の循環番号が比較され、新旧関係が新しい＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報が抽出され、＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報の優先順位が１番目の循環番号が、＃Ｅの新旧識別情報の優先順位が１番目の循環番号として設定される。すなわち、＃Ｅの新旧識別情報の優先順位が１番目の循環番号を生成するときは、＃Ａ、＃Ｂ、＃Ｃ、＃Ｄの新旧識別情報の優先順位が１番目の循環番号が比較対象となり、これらの循環番号には循環順序が１段階異なる循環番号”０”と循環番号”１”が含まれているため、循環順序が１段階後の循環番号”１”が＃Ｅの新旧識別情報の優先順位が１番目の循環番号となる。
【００８２】
優先順位が１番目の循環番号に基づいて抽出された新旧関係が新しい側の新旧識別情報（＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報）の優先順位が２番目の循環番号が比較され、比較対象の循環番号（＃Ｂ、＃Ｃ及び＃Ｄの新旧識別情報の優先順位が２番目の循環番号）が全て同じなので、その循環番号を１段階進めたものが、＃Ｅの新旧識別情報の優先順位が２番目の循環番号として設定される。すなわち、＃Ｅの新旧識別情報の優先順位が２番目の循環番号を生成するときは、＃Ｂ、＃Ｃ、＃Ｄの新旧識別情報の優先順位が２番目の循環番号が比較対象となり、これらの循環番号は全て同じ段階の循環番号”１”なので、循環番号”１” を１段階進めた循環番号”２”が＃Ｅの新旧識別情報の優先順位が２番目の循環番号となる。
【００８３】
優先順位が２番目の循環番号を比較したときに、比較対象となった新旧識別情報が全て同じなので、優先順位が３〜４番目の循環番号の比較は行わず、＃Ｅの新旧識別情報の優先順位が３〜４番目の循環番号として“０”が設定される。
【００８４】
このようにして生成された＃Ｅの新旧識別情報が、ＰＺＩＢＮが＃Ｅの物理ブロックの冗長領域に書き込まれる。
【００８５】
以上で説明したように、新たな新旧識別情報を生成するときは、優先順位が高い循環番号から順番に比較して、新旧関係が新しい新旧識別情報を順次抽出していき、新旧関係が新しい新旧識別情報を抽出したときは、抽出された新旧識別情報の抽出の際に比較対象になっていた優先順位の循環番号が新たな新旧識別情報のその優先順位の循環番号になる。例えば、優先順位が２番目の循環番号に基づいて新旧関係が新しい新旧識別情報を抽出したときは、抽出された新旧識別情報の優先順位が２番目の循環番号が新たな新旧識別情報の優先順位が２番目の循環番号になる。又、各優先順位の循環番号の比較では、その優先順位より上位の優先順位の循環番号に基づいて抽出された新旧識別情報だけが比較対象になる。例えば、優先順位が３番目の循環番号の比較では、優先順位が１番目と２番目の循環番号に基づいて、抽出された新旧識別情報だけが比較対象になる。
【００８６】
比較対象の新旧識別情報の比較する優先順位の循環番号が全て同じ段階になった場合（比較対象の新旧識別情報が１個だけの場合も含む）は、これ以上の抽出を行わず、抽出を終了し、その循環番号を１段階進めた循環番号が新たな新旧識別情報のその優先順位の循環番号になる。例えば、優先順位が１番目と２番目の循環番号に基づいて抽出された新旧識別情報の優先順位が３番目の循環番号が全て同じ場合は、抽出された新旧識別情報の優先順位が３番目の循環番号を１段階進めた循環番号が新たな新旧識別情報の優先順位が３番目の循環番号になる。又、優先順位が１番目と２番目の循環番号に基づいて抽出された新旧識別情報が１個だけの場合は、その新旧識別情報の優先順位が３番目の循環番号を１段階進めた循環番号が新たな新旧識別情報の優先順位が３番目の循環番号になる。
【００８７】
このようにして生成した新旧識別情報を用いれば、ＰＺＩＢＮが＃Ａ、＃Ｂ、＃Ｃ、＃Ｄ及び＃Ｅの物理ブロックのうち、どの物理ブロックが消去された場合であっても新旧識別情報に基づいて新旧関係を的確に判別することができる。つまり、新旧識別情報の新旧関係を判別するために優先順位が高い循環番号から順番に新旧関係を判断していったときに、各優先順位で比較対象になる循環番号は、必ず循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号になる。
【００８８】
次に、新旧識別情報が２個の循環番号を含んでいる場合の新旧識別情報の生成方法について図５のフローチャートを参照して説明する。新旧識別情報が２個の循環番号を含んでいる場合、ＬＢＮが同じ論理ブロックと対応する物理ブロックは３個まで並存できる。従って、新たな新旧識別情報を生成するときには、生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが存在しない場合と１個又は２個存在する場合とがある。又、同じ論理ブロックが割り当てられた物理ブロックが３個になった場合には、このうちの１個の物理ブロックに記憶されているデータが消去される。この際、消去される物理ブロックに記憶されている有効データ（他の物理ブロックのデータで置き換えられていないデータ）は、他の２個の物理ブロックのいずれかに転送される。
【００８９】
新旧識別情報が２個の循環番号を含んでいる場合、つまり、ＬＢＮが同じ論理ブロックと対応する物理ブロックが３個までの場合は、比較的簡単に新旧識別情報を生成することができる。
【００９０】
まず、生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが存在するか否かを判断する（ステップＳ１）。続いて、生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが存在する場合（ステップＳ１：Ｙｅｓ）は、その物理ブロックが２個存在するか否かを判断する（ステップＳ２）。更に、生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが２個存在する場合（ステップＳ２：Ｙｅｓ）は、その２個の物理ブロックに付与されている優先順位が１番目の循環番号が同一であるか否かを判断する（ステップＳ３）。
【００９１】
生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが存在しない場合（ステップＳ１：Ｎｏ、後述する（表５）に相当）は、優先順位が１番目の循環番号と２番目の循環番号の値を初期値の“０”とした新旧識別情報を生成する（ステップＳ４）。尚、循環番号の初期値は適宜設定することができる。
【００９２】
生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが１個だけ存在する場合（ステップＳ２：Ｎｏ、後述する（表６）に相当）又は生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた２個の物理ブロックの優先順位が１番目の循環番号が同一である場合（ステップＳ３：Ｙｅｓ、後述する（表９）に相当）は、生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックの優先順位が１番目の循環番号を循環順序に従って１段階進めた値を、優先順位が１番目の循環番号とした新旧識別情報を生成する（ステップＳ５）。この際、優先順位が２番目の循環番号の値は初期値の“０”とする。
【００９３】
生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた２個の物理ブロックの優先順位が１番目の循環番号が、循環順序が１段階異なる値である場合（ステップＳ３：Ｎｏ、後述する（表７）及び（表８）に相当）は、優先順位が１番目の循環番号が１段階後の新旧識別情報の優先順位が２番目の循環番号を循環順序に従って１段階進めた値を、優先順位が２番目の循環番号とした新旧識別情報を生成する（ステップＳ６）。この際、優先順位が１番目の循環番号の値は、優先順位が１番目の循環番号が１段階後の新旧識別情報と同じにする。
【００９４】
次に、新旧識別情報が２個の循環番号を含んでいる場合の新旧識別情報の生成方法について具体的に説明する。
【００９５】
生成した新旧識別情報を付与する物理ブロックと同じ論理ブロックが割り当てられた物理ブロックが存在しない場合は、表５に示した＃Ａの新旧識別情報のように優先順位が１番目の循環番号と２番目の循環番号が“０”の新旧識別情報が生成される。
【表５】
2007323159.tif 000007
【００９６】
次に、表６に示したＰＺＩＢＮが＃Ａの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｂの物理ブロックに付与する新旧識別情報の生成するときは、優先順位が１番目の循環番号が循環順序に従って１段階進められる。つまり、表６に示した＃Ｂの新旧識別情報のように優先順位が１番目の循環番号が“１”、優先順位が２番目の循環番号が“０”の新旧識別情報が生成される。
【表６】
2007323159.tif 000008
【００９７】
次に、表７に示したＰＺＩＢＮが＃Ａ、＃Ｂの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｃの物理ブロックに付与する新旧識別情報の生成するときは、＃Ｂの新旧識別情報（優先順位が１番目の循環番号が１段階後の新旧識別情報）の優先順位が２番目の循環番号が循環順序に従って１段階進められる。つまり、表６に示した＃Ｃの新旧識別情報のように優先順位が１番目の循環番号が“１”、優先順位が２番目の循環番号が“１”の新旧識別情報が生成される。
【表７】
2007323159.tif 000009
【００９８】
ここで、同じ論理ブロックが割り当てられた物理ブロックが３個になったため、ＰＺＩＢＮが＃Ｂの物理ブロックに記憶されているデータが消去された場合、ＰＺＩＢＮが＃Ａ、＃Ｃの物理ブロックが残る。尚、ＰＺＩＢＮが＃Ｂの物理ブロックに記憶されているデータを消去するときに、ＰＺＩＢＮが＃Ｂの物理ブロックに記憶されている有効データ（他の物理ブロックのデータで置き換えられていないデータ）は、ＰＺＩＢＮが＃Ｃの物理ブロックに転送される。
【００９９】
次に、表８に示したＰＺＩＢＮが＃Ａ、＃Ｃの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｄの物理ブロックに付与する新旧識別情報の生成するときは、＃Ｃの新旧識別情報（優先順位が１番目の循環番号が１段階後の新旧識別情報）の優先順位が２番目の循環番号が循環順序に従って１段階進められる。つまり、表６に示した＃Ｄの新旧識別情報のように優先順位が１番目の循環番号が“１”、優先順位が２番目の循環番号が“２”の新旧識別情報が生成される。
【表８】
2007323159.tif 000010
【０１００】
ここで、同じ論理ブロックが割り当てられた物理ブロックが３個になったため、ＰＺＩＢＮが＃Ａの物理ブロックに記憶されているデータが消去された場合、ＰＺＩＢＮが＃Ｃ、＃Ｄの物理ブロックが残る。尚、ＰＺＩＢＮが＃Ａの物理ブロックに記憶されているデータを消去するときに、ＰＺＩＢＮが＃Ａの物理ブロックに記憶されている有効データ（他の物理ブロックのデータで置き換えられていないデータ）は、ＰＺＩＢＮが＃Ｃの物理ブロックに転送される。
【０１０１】
次に、表９に示したＰＺＩＢＮが＃Ｃ、＃Ｄの物理ブロックと同じ論理ブロックが割り当てられるＰＺＩＢＮが＃Ｅの物理ブロックに付与する新旧識別情報の生成するときは、＃Ｃ、＃Ｄの新旧識別情報の優先順位が１番目の循環番号が循環順序に従って１段階進められる。つまり、表６に示した＃Ｅの新旧識別情報のように優先順位が１番目の循環番号が“２”、優先順位が２番目の循環番号が“０”の新旧識別情報が生成される。
【表９】
2007323159.tif 000011
【０１０２】
尚、新旧識別情報が２個の循環番号を含んでいる場合も、優先順位が高い循環番号から順番に新旧関係を判断していきくことにより、新旧識別情報の新旧関係を判別することができる。
【０１０３】
例えば、表８に示した＃Ａ、＃Ｃ及び＃Ｄの新旧識別情報の新旧関係を判別する場合は、優先順位が１番目の循環番号に基づいて、＃Ａの新旧識別情報と＃Ｃ及び＃Ｄの新旧識別情報の新旧関係を判断し、続いて、優先順位が２番目の循環番号に基づいて、＃Ｃの新旧識別情報と＃Ｄの新旧識別情報の新旧関係を判断する。又、表９に示した＃Ｃ、＃Ｄ及び＃Ｅの新旧識別情報の新旧関係を判別する場合は、優先順位が１番目の循環番号に基づいて、＃Ｃ及び＃Ｄの新旧識別情報と＃Ｅの新旧識別情報の新旧関係を判断し、続いて、優先順位が２番目の循環番号に基づいて、＃Ｃの新旧識別情報と＃Ｄの新旧識別情報の新旧関係を判断する。
【０１０４】
以上で説明したように、優先順位が付けられた複数個の循環番号を含む新旧識別情報を上述のようにして生成すれば、各優先順位で比較対象となる循環番号が、循環順序が同じ段階の循環番号又は循環順序が１段階異なる循環番号となる。従って、論理アドレスの範囲が同一のデータが書き込まれている物理ブロックに対する消去処理が古い方から順番に行われなかった場合でも、それらの新旧関係を正確に判断することができる。
【０１０５】
尚、新旧識別情報に含まれる循環番号の数、各循環番号が一巡する段階数、各循環番号の循環順序（増加、減少）、各循環番号の初期値は適宜設定することができる。ここで、新旧識別情報に含まれる循環番号の数については、論理アドレスが同一範囲のデータが記憶されている物理ブロックの許容個数がｎ個の場合、新旧識別情報に含まれる循環番号の数が少なくとも（ｎ−１）個であればよい。又、循環番号が一巡する段階数は、３段階以上であればよい。
【図面の簡単な説明】
【０１０６】
【図１】本発明のフラッシュメモリシステムの一実施例の概略を説明するためのブロック図である。
【図２】フラッシュメモリのアドレス空間の構造を概略的に示す図である。
【図３】フラッシュメモリシステムにおけるアドレス変換の概要を説明するための図である。
【図４】ホストインターフェースブロック及びフラッシュメモリインターフェースブロックの詳細を示すブロック図である。
【図５】新旧識別情報の生成方法を説明するためのフローチャートである。
【符号の説明】
【０１０７】
１  フラッシュメモリシステム
２  フラッシュメモリ
３  メモリコントローラ
４  ホストシステム
６  マイクロプロセッサ
８  ワークエリア
９  バッファ
１０  フラッシュメモリインターフェースブロック
１１  ＥＣＣブロック
１３  外部バス
１４  内部バス
２５  ユーザ領域
２６  冗長領域
Ｒ１  コマンドレジスタ
Ｒ２  セクタ数レジスタ
Ｒ３  ＬＢＡレジスタ
Ｒ１１  物理ブロックアドレスレジスタ
Ｒ１２  セクタ番号レジスタ
Ｒ１３  カウンタ
【図１】
2007323159.tif 000012
【図２】
2007323159.tif 000013
【図３】
2007323159.tif 000014
【図４】
2007323159.tif 000015
【図５】
2007323159.tif 000016