(57)【要約】【課題】アドレス変換テーブルを効率よく作成することが可能なメモリ制御装置を実現する。【解決手段】フラッシュＥＥＰＲＯＭ１２内の各物理ブロック内のページ１の冗長領域には、当該物理ブロックに割り当てられた論理アドレス（ｌｏｇ）と、当該論理アドレス（ｌｏｇ）の次の論理アドレス（ｌｏｇ＋１）が割り当てられている物理ブロックの物理アドレス（ｎｅｘｔ＿ｐ）とが格納されている。アドレス変換テーブル作成部１１３は、物理ブロック１〜Ｋそれぞれに対して、ページ１の冗長領域からｌｏｇおよびｎｅｘｔ＿ｐを取得するサーチ処理を実行し、その取得したｌｏｇおよびｎｅｘｔ＿ｐに従って、物理ブロック１〜Ｋそれぞれの物理アドレスと物理ブロック１〜Ｋそれぞれに割り当てられた論理アドレスとの関係を示すアドレス変換テーブル１４を作成する。【選択図】図３
2007199846.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶領域と冗長領域とを各々が含む複数のページからそれぞれ構成される複数の物理ブロックを有する不揮発性メモリを制御するメモリ制御装置において、
前記物理ブロック毎に、当該物理ブロック内の所定ページの冗長領域に、当該物理ブロックに割り当てられた論理アドレスを示す論理アドレス情報と、当該論理アドレスの次の論理アドレスが割り当てられている物理ブロックの物理アドレスを示す物理アドレス情報とを格納する手段と、
前記不揮発性メモリの初期化時に前記複数の物理ブロックそれぞれに対して前記所定ページの冗長領域から前記論理アドレス情報および前記物理アドレス情報を取得するサーチ処理を実行し、その取得した論理アドレス情報および物理アドレス情報に従って、前記複数の物理ブロックそれぞれの物理アドレスと前記複数の物理ブロックそれぞれに割り当てられた論理アドレスとの関係を示すアドレス変換テーブルを作成するテーブル作成手段であって、前記取得した各物理アドレス情報によって指定される各物理ブロックに対しては前記サーチ処理の実行をスキップするテーブル作成手段と、
アクセス対象の論理アドレスを前記作成されたアドレス変換テーブルを用いて物理アドレスに変換し、前記変換された物理アドレスによって指定される物理ブロックをアクセスするアクセス処理手段とを具備することを特徴とするメモリ制御装置。
【請求項２】
前記アクセス処理手段は、既にデータが書き込まれているページに対する書き込み要求に応じて、前記書き込み要求されたページを含む物理ブロック内の他の全てのページの記憶内容と前記書き込み要求されたページに対する書き込みデータとを、前記不揮発性メモリの消去済みの新たな物理ブロックに書き込むと共に、前記書き込み要求されたページを含む物理ブロック内の所定ページの冗長領域に格納されている前記論理アドレス情報および前記物理アドレス情報を、前記新たな物理ブロック内の所定ページの冗長領域に書き込む手段を含むことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記テーブル作成手段は、前記取得した各物理アドレス情報によって指定される各物理ブロックに対するサーチ処理の実行をスキップしながら、前記サーチ処理を物理アドレス順に順次実行することを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記アドレス変換テーブルは、複数の論理アドレスそれぞれに対応する複数の物理アドレスを保持する複数のエントリを有し、
前記テーブル作成手段は、前記サーチ処理を実行する度に、前記サーチ処理によって取得された論理アドレス情報によって指定される論理アドレスに対応する、前記アドレス変換テーブル内のエントリに、前記サーチ処理が実行された物理ブロックの物理アドレスを格納する処理と、前記サーチ処理によって取得された論理アドレス情報によって指定される論理アドレスの次の論理アドレスに対応する、前記アドレス変換テーブル内のエントリに、前記サーチ処理によって取得された物理アドレス情報によって指定される物理アドレスを格納する処理とを実行することを特徴とする請求項１記載のメモリ制御装置。
【請求項５】
データ記憶領域と冗長領域とを各々が含む複数のページからそれぞれ構成される複数の物理ブロックを有する不揮発性メモリを制御するメモリ制御方法において、
前記物理ブロック毎に、当該物理ブロック内の所定ページの冗長領域に、当該物理ブロックに割り当てられた論理アドレスを示す論理アドレス情報と、当該論理アドレスの次の論理アドレスが割り当てられている物理ブロックの物理アドレスを示す物理アドレス情報とを格納するステップと、
前記不揮発性メモリの初期化時に前記複数の物理ブロックそれぞれに対して前記所定ページの冗長領域から前記論理アドレス情報および前記物理アドレス情報を取得するサーチ処理を実行し、その取得した論理アドレス情報および物理アドレス情報に従って、前記複数の物理ブロックそれぞれの物理アドレスと前記複数の物理ブロックそれぞれに割り当てられた論理アドレスとの関係を示すアドレス変換テーブルを作成するテーブル作成ステップであって、前記取得した各物理アドレス情報によって指定される各物理ブロックに対しては前記サーチ処理の実行をスキップするテーブル作成ステップと、
アクセス対象の論理アドレスを前記作成されたアドレス変換テーブルを用いて物理アドレスに変換し、前記変換された物理アドレスによって指定される物理ブロックをアクセスするアクセス処理ステップとを具備することを特徴とするメモリ制御方法。
【請求項６】
前記アクセス処理ステップは、既にデータが書き込まれているページに対する書き込み要求に応じて、前記書き込み要求されたページを含む物理ブロック内の他の全てのページの記憶内容と前記書き込み要求されたページに対する書き込みデータとを、前記不揮発性メモリの消去済みの新たな物理ブロックに書き込むと共に、前記書き込み要求されたページを含む物理ブロック内の所定ページの冗長領域に格納されている前記論理アドレス情報および前記物理アドレス情報を、前記新たな物理ブロック内の所定ページの冗長領域に書き込むステップを含むことを特徴とする請求項５記載のメモリ制御方法。
【請求項７】
前記テーブル作成ステップは、前記取得した各物理アドレス情報によって指定される各物理ブロックに対するサーチ処理の実行をスキップしながら、前記サーチ処理を物理アドレス順に順次実行することを特徴とする請求項５記載のメモリ制御方法。
【請求項８】
前記アドレス変換テーブルは、複数の論理アドレスそれぞれに対応する複数の物理アドレスを保持する複数のエントリを有し、
前記テーブル作成ステップは、前記サーチ処理を実行する度に、前記サーチ処理によって取得された論理アドレス情報によって指定される論理アドレスに対応する、前記アドレス変換テーブル内のエントリに、前記サーチ処理が実行された物理ブロックの物理アドレスを格納する処理と、前記サーチ処理によって取得された論理アドレス情報によって指定される論理アドレスの次の論理アドレスに対応する、前記アドレス変換テーブル内のエントリに、前記サーチ処理によって取得された物理アドレス情報によって指定される物理アドレスを格納する処理とを実行するステップを含むことを特徴とする請求項５記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリを制御するメモリ制御装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ、ＰＤＡ等の各種携帯型電子機器が開発されている。この種の携帯型電子機器の多くは、フラッシュＥＥＰＲＯＭから構成される不揮発性メモリが記憶装置として用いられている。
【０００３】
不揮発性メモリの記憶領域は複数の物理ブロック（消去ブロックとも云う）から構成されており、データの消去は物理ブロック単位で行われる。各物理ブロックは複数のページから構成され、各ページはデータ記憶領域と冗長領域とを含んでいる。データ書き込みは、通常、ページ単位で行われる。
【０００４】
このような不揮発性メモリを制御するための装置としては、物理ブロック毎に論理アドレスと物理アドレスとの対応関係を管理するためのアドレス変換テーブルを使用して論理アドレスを物理アドレスに変換する装置が知られている。
【０００５】
特許文献１には、論理／物理アドレス変換のためのアドレスマッピング情報を保持する方法に工夫を凝らし、アドレスマッピング情報を効率よく格納し管理するための方法が開示されている。
【特許文献１】特開２００５−１９６７３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、通常、論理／物理アドレス変換のためのアドレス変換テーブルはＲＡＭのような揮発性メモリ上に作成される。このため、アドレス変換テーブルの内容は電源遮断時に消失されてしまい、不揮発性メモリの初期化の度にアドレス変換テーブルを新たに作成することが必要となる。
【０００７】
例えば、各物理ブロック内の所定ページに当該物理ブロックに割り当てられている論理アドレスを示す論理アドレス情報を格納しておくという手法を採用すれば、各物理ブロック内の所定ページに格納されている論理アドレス情報に基づいてアドレス変換テーブルを作成することが可能となる。
【０００８】
しかし、このような手法を採用すると、不揮発性メモリの初期化時にその不揮発性メモリの全ての物理ブロックそれぞれをアクセスして論理アドレス情報を取得することが必要となる。このため、アクセス回数が増大し、初期化が開始されてから不揮発性メモリを実際に使用できるようになるまでに多くの時間を要することになる。
【０００９】
本発明は上述の事情を考慮してなされたものであり、アドレス変換テーブルを効率よく作成することが可能なメモリ制御装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述の課題を解決するため、本発明は、データ記憶領域と冗長領域とを各々が含む複数のページからそれぞれ構成される複数の物理ブロックを有する不揮発性メモリを制御するメモリ制御装置において、前記物理ブロック毎に、当該物理ブロック内の所定ページの冗長領域に、当該物理ブロックに割り当てられた論理アドレスを示す論理アドレス情報と、当該論理アドレスの次の論理アドレスが割り当てられている物理ブロックの物理アドレスを示す物理アドレス情報とを格納する手段と、前記不揮発性メモリの初期化時に前記複数の物理ブロックそれぞれに対して前記所定ページの冗長領域から前記論理アドレス情報および前記物理アドレス情報を取得するサーチ処理を実行し、その取得した論理アドレス情報および物理アドレス情報に従って、前記複数の物理ブロックそれぞれの物理アドレスと前記複数の物理ブロックそれぞれに割り当てられた論理アドレスとの関係を示すアドレス変換テーブルを作成するテーブル作成手段であって、前記取得した各物理アドレス情報によって指定される各物理ブロックに対しては前記サーチ処理の実行をスキップするテーブル作成手段と、アクセス対象の論理アドレスを前記作成されたアドレス変換テーブルを用いて物理アドレスに変換し、前記変換された物理アドレスによって指定される物理ブロックをアクセスするアクセス処理手段とを具備することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、アドレス変換テーブルを効率よく作成することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係るメモリ制御装置によって制御される不揮発性メモリの構成例が示されている。この不揮発性メモリは、例えばＮＡＮＤ型フラッシュメモリのようなフラッシュＥＥＰＲＯＭから構成されている。このフラッシュＥＥＰＲＯＭのデータ記憶領域は、複数の物理ブロック（物理ブロック１〜物理ブロックＫ）から構成されている。各物理ブロックは消去ブロックとも称され、記憶データの消去は物理ブロック単位で実行される。物理ブロック１〜物理ブロックＫの各々は、複数のページ（ページ１〜ページＮ）から構成されている。
【００１３】
一つのページは、例えば５１２バイトまたはそれ以上のデータ記憶サイズを有するデータ記憶領域（データ部）と、例えば数バイトのデータ記憶サイズを有する冗長領域（冗長部）とから構成されている。フラッシュＥＥＰＲＯＭに対するデータ書き込み／読み出しはページを単位として実行される。
【００１４】
各ページの冗長領域には、当該ページのデータ記憶領域に格納されたデータの正当性をチェックするエラー訂正コード（ＥＣＣ）の計算結果などの保存に使用される。
【００１５】
加えて、物理ブロック１〜物理ブロックＫの各々における特定のページ（例えばページ１）内の冗長領域は、対応する物理ブロックに割り当てられている論理アドレス（論理ブロックアドレスとも云う）を示す論理アドレス情報の保存にも利用される。この論理アドレス情報の保存により、各物理ブロックがどの論理アドレスに対応するのかを管理することができる。
【００１６】
本実施形態においては、物理ブロック１〜物理ブロックＫの各々における特定のページ（例えばページ１）内の冗長領域には、対応する物理ブロックに割り当てられた論理アドレスを示す論理アドレス情報のみならず、当該論理アドレスの次の論理アドレスが割り当てられている物理ブロックの物理アドレス（物理ブロックアドレスとも云う）を示す物理アドレス情報も格納されている。
【００１７】
例えば、物理ブロック１に割り当てられた論理アドレスの次の論理アドレスが割り当てられている物理ブロックが物理ブロック３であれば、物理ブロック１のページ１の冗長領域には、物理ブロック３を示す物理アドレスが物理アドレス情報として格納される。この物理アドレス情報を用いることにより、論理アドレスを物理アドレスに変換するためのアドレス変換テーブルの作成を効率よく実行することが可能となる。
【００１８】
図２は、複数の物理ブロックそれぞれに対応する物理アドレスと論理アドレスとの対応関係の例が示されている。このような物理アドレスと論理アドレスとの対応関係は上述のアドレス変換テーブルによって管理される。
【００１９】
図３には、各物理ブロックのページ１の冗長領域の記憶内容の例が示されている。
【００２０】
図３に示されているように、各物理ブロックのページ１の冗長領域には、論理アドレス（ｌｏｇ）、次物理アドレス（ｎｅｘｔ＿ｐ）、およびＥＣＣデータ等が格納されている。論理アドレス（ｌｏｇ）は上述の論理アドレス情報であり、当該物理ブロックに割り当てられた論理アドレスを示す。また、次物理アドレス（ｎｅｘｔ＿ｐ）は上述の物理アドレス情報であり、当該物理ブロックに割り当てられた論理アドレス（ｌｏｇ）の次の論理アドレス（ｌｏｇ＋１）が割り当てられている物理ブロックの物理アドレスを示す。
【００２１】
ＥＣＣデータは、ページ１のデータ記憶領域に格納されたデータから生成されたエラー訂正コードである。
【００２２】
各物理ブロックのページ１の冗長部に格納すべき次物理アドレス（ｎｅｘｔ＿ｐ）の値は、あらかじめ作成されているアドレス変換テーブルの内容に基づいて決定することができる。すなわち、ある物理ブロックのページ１に対しては、その物理ブロックに割り当てられた論理アドレスと、その論理アドレスの次の論理アドレスが割り当てられた物理ブロックの物理アドレスとがアドレス変換テーブルから取得され、それら取得された論理アドレスおよび物理アドレスがそれぞれ論理アドレス（ｌｏｇ）および次物理アドレス（ｎｅｘｔ＿ｐ）として冗長領域に格納される。なお、次の論理アドレスの割り当て先の物理ブロックが未定の場合には、図３の「次物理アドレス」には何も書き込まれない。
【００２３】
各物理ブロックのページ１の冗長領域に論理アドレス（ｌｏｇ）のみを格納するという方式を採用した場合には、アドレス変換テーブルの作成のために全ての物理ブロックをアクセスすることが必要となるが、図３のように、論理アドレス（ｌｏｇ）および次物理アドレス（ｎｅｘｔ＿ｐ）の双方を各物理ブロックのページ１の冗長領域に格納しておくことにより、アドレス変換テーブルの作成のためにアクセスすることが必要な物理ブロック数を単純には１／２に減らすことが可能となる。アドレス変換テーブルを作成する処理の手順については、図６で後述する。
【００２４】
図４には、本実施形態のメモリ制御装置の構成例が示されている。
【００２５】
本実施形態のメモリ制御装置は例えばパーソナルコンピュータ、ＰＤＡ等の電子機器に設けられており、ソフトウェア等からのアクセス要求に応じてフラッシュＥＥＰＲＯＭに対するアクセスを実行する。このメモリ制御装置１０は、ＣＰＵ１１、フラッシュＥＥＰＲＯＭ１２、およびＲＡＭ１３を備えている。これらＣＰＵ１１、フラッシュＥＥＰＲＯＭ１２、およびＲＡＭ１３は、例えばバス１にそれぞれ接続されている。ＣＰＵ１１は、フラッシュＥＥＰＲＯＭ１２の初期化時にアドレス変換テーブル１４をＲＡＭ１３上に作成する。そして、アドレス変換テーブル１４を参照して、ソフトウェアから指定された論理アドレスを物理アドレスに変換して、フラッシュＥＥＰＲＯＭ１２に対するリード／ライトアクセスを実行する。
【００２６】
このメモリ制御装置１０は、例えば、パーソナルコンピュータ等の装置内にメモリコントローラとして搭載して使用される。この場合、図５に示すように、メモリ制御装置１０は、ホスト１００からのアクセス要求に応じてフラッシュＥＥＰＲＯＭ１２に対するリード／ライトアクセスを実行する。ホスト１００は、例えば、パーソナルコンピュータ内のＣＰＵに相当する。
【００２７】
メモリ制御装置１０は、アクセス処理部１１１、ｌｏｇ／ｎｅｘｔ＿ｐ書き込み部１１２、およびアドレス変換テーブル作成部１１３を備えている。
【００２８】
アクセス処理部１１１は、ホスト１００によって指定されたアクセス対象の論理アドレスをアドレス変換テーブル１４を用いて物理アドレスに変換し、当該変換された物理アドレスによって指定される、フラッシュＥＥＰＲＯＭ１２内の物理ブロックをアクセスする。なお実際には、ホスト１００からの論理アドレスは論理ブロックアドレスとブロック内ページアドレスとから構成されており、フラッシュＥＥＰＲＯＭ１２をアクセスするため物理アドレスは物理ブロックアドレスとブロック内ページアドレスとから構成されている。アドレス変換テーブル１４を用いたアドレス変換においては、論理ブロックアドレスが物理ブロックアドレスに変換される。そして、この物理ブロックアドレスの下位ビット側にブロック内ページアドレスを追加することにより、フラッシュＥＥＰＲＯＭ１２をアクセスするため実際の物理アドレスが生成される。
【００２９】
また既にデータが書き込まれているページに対する書き込み要求をホスト１００から受けた場合、アクセス処理部１１１は、書き込み要求されたページを含む物理ブロック内の他の全てのページの記憶内容と、書き込み要求されたページに対する書き込みデータとを、フラッシュＥＥＰＲＯＭ１２の消去済みの新たな物理ブロックに書き込むというブロック移動処理を実行する。
【００３０】
さらに、このブロック移動処理においては、アクセス処理部１１１は、書き込み要求されたページを含む物理ブロック内のページ１の冗長領域に格納されているｌｏｇとｎｅｘｔ＿ｐを、上述の新たな物理ブロック内のページ１の冗長領域に書き込む処理を実行する。これにより、書き込み要求されたページを含む物理ブロックの内容は、書き込みデータによって更新された状態で新たな物理ブロックに移動される。
【００３１】
ｌｏｇ／ｎｅｘｔ＿ｐ書き込み部１１２は、フラッシュＥＥＰＲＯＭ１２内の物理ブロック毎に、当該物理ブロック内のページ１の冗長領域に、当該物理ブロックに割り当てられた論理アドレス（ｌｏｇ）と、当該論理アドレス（ｌｏｇ）の次の論理アドレス（ｌｏｇ＋１）が割り当てられている物理ブロックの物理アドレス（ｎｅｘｔ＿ｐ）とを格納する処理を実行する。この処理は、例えば、物理ブロックへのデータ書き込み要求がホスト１００から発行された時などに、当該物理ブロックに対して実行される。もちろん、全ての物理ブロックの各々に対してｌｏｇとｎｅｘｔ＿ｐを格納する処理を最初の初期化時等にまとめて実行してもよい。
【００３２】
アドレス変換テーブル作成部１１３は、フラッシュＥＥＰＲＯＭ１２の初期化時に、物理ブロック１〜Ｋそれぞれに対して、ページ１の冗長領域からｌｏｇおよびｎｅｘｔ＿ｐを取得するサーチ処理を実行し、その取得したｌｏｇおよびｎｅｘｔ＿ｐに従って、物理ブロック１〜Ｋそれぞれの物理アドレスと物理ブロック１〜Ｋそれぞれに割り当てられた論理アドレスとの関係を示すアドレス変換テーブル１４を作成する。各取得されたｎｅｘｔ＿ｐによって指定される物理ブロックそれぞれに対しては、上述のサーチ処理の実行はスキップされる。これにより、基本的には、フラッシュＥＥＰＲＯＭ１２内の総物理ブロック数の半分の物理ブロックに対するアクセスのみで、アドレス変換テーブル１４を作成することが可能となる。したがって、フラッシュＥＥＰＲＯＭ１２の初期化を開始してからホスト１００が実際にフラッシュＥＥＰＲＯＭ１２を使用できるようになるまでの時間を削減することができる。
【００３３】
アドレス変換テーブル１４は、複数の論理アドレスそれぞれに対応する複数の物理アドレスを保持する複数のエントリを有している。このため、アドレス変換テーブル作成部１１３は、サーチ処理を実行する度に、当該サーチ処理によって取得されたｌｏｇによって指定される論理アドレスに対応する、アドレス変換テーブル１４内のエントリに、当該サーチ処理が実行された物理ブロックの物理アドレスを格納する処理と、当該サーチ処理によって取得されたｌｏｇによって指定される論理アドレスの次の論理アドレス（ｌｏｇ＋１）に対応する、アドレス変換テーブル１４内のエントリに、当該サーチ処理によって取得されたｎｅｘｔ＿ｐを格納する処理とを実行する。
【００３４】
次に、図６のフローチャートを参照して、ＲＡＭ１３上にアドレス変換テーブル１４を作成する手順を説明する。
【００３５】
物理アドレス（ｐｈｙｓ）順に先頭の物理ブロックからサーチ処理を順次実行するので、アドレス変換テーブル作成部１１３は、まず、ステップＡ１で、最後の物理ブロックまでサーチ処理が完了したか否かをチェックする。最後の物理ブロックまでサーチ処理が完了していない場合には、アドレス変換テーブル作成部１１３は、ステップＡ２で、現在のサーチ対象の物理アドレス（ｐｈｙｓ）で指定される物理ブロックがすでに“チェック済”とマークされた物理ブロックであるかどうかをチェックする。”チェック済”とマークする処理は、後ほど説明する。“チェック済”とマークされている場合には、アドレス変換テーブル作成部１１３は、ステップＡ９にて、サーチ対象の物理アドレス（ｐｈｙｓ）を更新して次の物理ブロックの処理へと移行する。
【００３６】
“チェック済”とマークされていない場合には、アドレス変換テーブル作成部１１３は、サーチ対象の物理アドレス（ｐｈｙｓ）で指定される物理ブロックのページ１にアクセスし、冗長部を読み出す（ステップＡ３）。これにより、当該物理ブロックに割り当てられている論理アドレス（ｌｏｇ）と、この論理アドレスの次の論理アドレスが割り当てられている物理ブロックの物理アドレス（ｎｅｘｔ＿ｐ）を取得することができる。
【００３７】
アドレス変換テーブル作成部１１３は、取得された論理アドレス（ｌｏｇ）に対応するアドレス変換テーブル１４のエントリに、サーチ対象の現在の物理アドレス（ｐｈｙｓ）を登録し（ステップＡ４）、当該ｐｈｙｓを“チェック済”としてマークする（ステップＡ５）。ステップＡ４においては、すでにエントリに物理アドレスが登録されている可能性もあるが、その場合も無視して上書きすればよい。
【００３８】
次に、アドレス変換テーブル作成部１１３は、取得したｎｅｘｔ＿ｐが物理アドレスであるかどうか、つまり読み出した冗長領域にｎｅｘｔ＿ｐが登録されていたかどうかを確認する（ステップＡ６）。これは、サーチ対象の現在の物理アドレス（ｐｈｙｓ）で指定される物理ブロックに割り当てられた論理アドレスの次の論理アドレスに対してどの物理ブロックを割り当てるかが未定の場合、物理アドレス（ｐｈｙｓ）で指定される物理ブロックのページ１の冗長領域にはｎｅｘｔ＿ｐには何も登録されていないためである。取得したＮｅｘｔ＿ｐが正当な物理アドレスである場合には、アドレス変換テーブル作成部１１３は、ｌｏｇ＋１の論理アドレスに対応するアドレス変換テーブル１４のエントリに、取得したｎｅｘｔ＿ｐを保存し（ステップＡ７）、ｎｅｘｔ＿ｐを“チェック済”としてマークする（ステップＡ８）。
【００３９】
次のブロックへと進み（Ａ９）、最後の物理ブロックにまで到達した場合（ステップＡ１のＹＥＳ）、アドレス変換テーブル作成部１１３は、すべての物理ブロックが“チェック済”としてマークされているかを確認する（ステップＡ１０）。マークされていない物理ブロックがある場合には、その物理ブロックに進む（ステップＡ１１）。
【００４０】
上記のようにして、すべての物理ブロックが“チェック済”となるまで処理を繰り返す。
【００４１】
既にデータが書き込まれているページに対して新たなデータを書き込む場合には、上述したようにブロック移動処理が実行される。
【００４２】
図７は、論理アドレス２（ｌｏｇｉｃａｌ＝２）が割り当てられた物理ブロックＢへの書き込みを行う場合を示したものである。この場合、物理ブロックＤを新たに使用し、アドレス変換テーブル１４上で物理ブロックＤに論理アドレス２（ｌｏｇｉｃａｌ＝２）を割り当てると共に、物理ブロックＢの内容は削除する。このため、書き込みを行うと、フラッシュＥＥＰＲＯＭ１２の各物理ブロック内のページ１の冗長部に書かれた、次物理アドレス（ｎｅｘｔ＿ｐ）が誤った状態になる。図７での物理ブロックＡが物理ブロックＢを指したままであることがそれを示している。ただし、図６の手順でＲＡＭ１３上にアドレス変換テーブル１４を作成することにより、アドレス変換テーブル１４上ではこのような矛盾は発生しない。以下、この点について説明する。
【００４３】
ブロック移動処理により、複数の物理ブロックから指し示される物理ブロックが存在する場合、またはどの物理ブロックからも指し示されない物理ブロックが存在する場合が発生する。
【００４４】
後者の場合には、図８のように、物理アドレスＰ２の物理ブロックで更新があったため、物理アドレスＰ１０の物理ブロックが、論理アドレスＬ２の物理ブロックとして新たに割り当てられている。上記のアドレス変換テーブル作成処理を適用すると、物理アドレスＰ１０の物理ブロックは、その物理ブロックのページ１の冗長領域が実際にリードされるまで“チェック済”としてマークされることがないため、矛盾は解消できる。すなわち、Ｐ１０の物理ブロックに対するサーチ処理時に矛盾が解消される。この様子を図９に示す。
【００４５】
物理アドレスＰ１の物理ブロックに対するサーチ処理時には、物理アドレスＰ１の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ１）と次物理アドレス（Ｐ２）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ１）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ１が格納され、次の論理アドレス（Ｌ２）に対応するアドレス変換テーブル１４のエントリには、正しい物理アドレスＰ１０ではなく、取得された次物理アドレス（Ｐ２）がそのまま格納される。
【００４６】
物理アドレス（Ｐ２）は“チェック済”となるので、物理アドレスＰ２の物理ブロックに対するサーチ処理はスキップされる。
【００４７】
次に、物理アドレスＰ３の物理ブロックに対するサーチ処理が実行される。物理アドレスＰ３の物理ブロックに対するサーチ処理時には、物理アドレスＰ３の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ３）と次物理アドレス（Ｐ４）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ３）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ３が格納され、次の論理アドレス（Ｌ４）に対応するアドレス変換テーブル１４のエントリには、取得された次物理アドレス（Ｐ４）が格納される。
【００４８】
そして、物理アドレスＰ１０の物理ブロックに対するサーチ処理時には、物理アドレスＰ１０の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ２）と次物理アドレス（Ｐ３）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ２）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ１０が格納される。論理アドレス（ｌｏｇ＝Ｌ２）に対応するアドレス変換テーブル１４のエントリには、既に物理アドレスＰ２が格納されているが、この物理アドレスＰ２は物理アドレスＰ１０によって上書きされる。さらに、次の論理アドレス（Ｌ３）に対応するアドレス変換テーブル１４のエントリには、取得された次物理アドレス（Ｐ３）が格納される。論理アドレス（ｌｏｇ＝Ｌ３）に対応するアドレス変換テーブル１４のエントリには、既に物理アドレスＰ３が格納されているが、この物理アドレスＰ３は再度同じ値の物理アドレスＰ３によって上書きされる。
【００４９】
このようにして矛盾が自動的に解消されるので、正しいアドレス変換テーブル１４をＲＡＭ１３上に作成することができる。
【００５０】
図１０は、前者の矛盾の発生例を示している。図１０の物理アドレスＰ４の物理ブロックように、当初は論理アドレスＬ４のデータを保持していたが、書き換えが発生し、論理アドレスＬ４のデータは物理アドレスＰ１８の物理ブロックに移動している。さらにその後、物理アドレスＰ４の物理ブロックが、論理アドレスＬ６のデータを保持する物理ブロックとして使われると、物理アドレスＰ４の物理ブロックは、物理アドレスＰ３、およびＰ５の両物理ブロックから指し示されることになる。しかし、図１１に示すように、この矛盾も解消することできる。
【００５１】
すなわち、物理アドレスＰ１の物理ブロックに対するサーチ処理時には、物理アドレスＰ１の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ１）と次物理アドレス（Ｐ２）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ１）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ１が格納され、次の論理アドレス（Ｌ２）に対応するアドレス変換テーブル１４のエントリには、取得された次物理アドレス（Ｐ２）が格納される。
【００５２】
物理アドレス（Ｐ２）は“チェック済”となるので、物理アドレスＰ２の物理ブロックに対するサーチ処理はスキップされる。
【００５３】
次に、物理アドレスＰ３の物理ブロックに対するサーチ処理が実行される。物理アドレスＰ３の物理ブロックに対するサーチ処理時には、物理アドレスＰ３の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ３）と次物理アドレス（Ｐ４）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ３）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ３が格納され、次の論理アドレス（Ｌ４）に対応するアドレス変換テーブル１４のエントリには、取得された次物理アドレス（Ｐ４）が格納される。
【００５４】
物理アドレス（Ｐ４）は“チェック済”となるので、物理アドレスＰ４の物理ブロックに対するサーチ処理はスキップされる。
【００５５】
次に、物理アドレスＰ５の物理ブロックに対するサーチ処理が実行される。物理アドレスＰ５の物理ブロックに対するサーチ処理時には、物理アドレスＰ５の物理ブロックから論理アドレス（ｌｏｇ＝Ｌ５）と次物理アドレス（Ｐ４）が取得される。そして、論理アドレス（ｌｏｇ＝Ｌ５）に対応するアドレス変換テーブル１４のエントリには、物理アドレスＰ５が格納され、次の論理アドレス（Ｌ６）に対応するアドレス変換テーブル１４のエントリには、取得された次物理アドレス（Ｐ４）が格納される。
【００５６】
この場合、論理アドレス（Ｌ４）に対応するアドレス変換テーブル１４のエントリと、論理アドレス（Ｌ６）に対応するアドレス変換テーブル１４のエントリには、同じ物理アドレスＰ４が格納されてしまう。この矛盾は、物理アドレスＰ１８の物理ブロックのサーチ処理時に解消され、論理アドレス（Ｌ４）に対応するアドレス変換テーブル１４のエントリには正しい物理アドレスＰ１８が格納される。
【００５７】
以上のように、本実施形態によれば、ＮＡＮＤ型フラッシュＥＥＰＲＯＭのような不揮発性メモリの初期化時に行われる物理ブロックへのアクセス回数を削減することが出来るため、初期化が行われてから不揮発性メモリへのアクセスが実際に可能になるまでの時間を短縮することが可能となる。
【００５８】
なお、本実施形態では、各物理ブロックの先頭ページの冗長領域に論理アドレスと次物理アドレスとを格納したが、先頭ページに限らず、他のページの冗長領域に論理アドレスと次物理アドレスとを格納してもよい。
【００５９】
また本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態に係るメモリ制御装置で用いられる不揮発性メモリの構成例を示す図。
【図２】図１の不揮発性メモリ内の物理ブロックそれぞれの物理アドレスと論理アドレスとの対応関係の例を示す図。
【図３】図１の不揮発性メモリ内の各物理ブロックの所定ページの冗長領域の記憶内容の例を示す図。
【図４】同実施形態のメモリ制御装置の構成例を示すブロック図。
【図５】同実施形態のメモリ制御装置の構成の他の例を示すブロック図。
【図６】同実施形態のメモリ制御装置によって実行されるアドレス変換テーブル作成処理の手順を示すフローチャート。
【図７】同実施形態のメモリ制御装置におけるブロック移動処理を説明するための図。
【図８】同実施形態のメモリ制御装置における物理ブロック間の参照関係の矛盾の例を説明するための図。
【図９】同実施形態のメモリ制御装置によって実行されるアドレス変換テーブル作成処理によって図８の矛盾が解消される様子を説明するための図。
【図１０】同実施形態のメモリ制御装置における物理ブロック間の参照関係の矛盾の他の例を説明するための図。
【図１１】同実施形態のメモリ制御装置によって実行されるアドレス変換テーブル作成処理によって図１０の矛盾が解消される様子を説明するための図。
【符号の説明】
【００６１】
１１…ＣＰＵ、１２…フラッシュＥＥＰＲＯＭ、１３…ＲＡＭ、１４…アドレス変換テーブル、１１１…アクセス処理部、１１２…ｌｏｇ／ｎｅｘｔ＿ｐ書き込み部、１１３…アドレス変換テーブル作成部。
【図１】
2007199846.tif 000003
【図２】
2007199846.tif 000004
【図３】
2007199846.tif 000005
【図４】
2007199846.tif 000006
【図５】
2007199846.tif 000007
【図６】
2007199846.tif 000008
【図７】
2007199846.tif 000009
【図８】
2007199846.tif 000010
【図９】
2007199846.tif 000011
【図１０】
2007199846.tif 000012
【図１１】
2007199846.tif 000013