(57)【特許請求の範囲】
【請求項１】
消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部に対して、データの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行う制御部を備え、
上記制御部は、
上記書込制御によりデータが書き込まれるごとに、該書き込みにより書込対象物理ブロック内におけるデータの論理アドレスが不連続となるか否かに関わらず、該書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御する処理と、
対象とする物理ブロック内において、最終使用済み物理ページに上記論理・物理アドレス管理情報が書き込まれていなかった場合は、該最終使用済み物理ページの１つ前の物理ページである最終直前物理ページから先頭側の物理ページに向かって上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する共に、該取得した論理・物理アドレス管理情報と、上記最終直前物理ページから該取得した論理・物理アドレス管理情報が書き込まれていた物理ページの１つ後の物理ページまでの物理ページについて取得した論理アドレスとに基づき、論理・物理アドレス管理情報を更新する処理とを行う
制御装置。
【請求項２】
上記制御部は、
上記論理・物理アドレス管理情報として、１つの物理ブロックごとの上記物理ページアドレスと論理アドレスとの対応関係を表す情報を生成する
請求項１に記載の制御装置。
【請求項３】
上記制御部は、
上記論理・物理アドレス対応情報として、複数の物理ブロックごとの上記物理ページアドレスと論理アドレスとの対応関係を表す情報を生成する
請求項１に記載の制御装置。
【請求項４】
上記制御部は、
ＮＡＮＤ型フラッシュメモリである上記メモリ部に対して書込制御を行う請求項１に記載の制御装置。
【請求項５】
消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部と、
上記メモリ部に対してデータの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行う制御部とを備え、
上記制御部は、
上記書込制御によりデータが書き込まれるごとに、該書き込みにより書込対象物理ブロック内におけるデータの論理アドレスが不連続となるか否かに関わらず、該書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御する処理と、
対象とする物理ブロック内において、最終使用済み物理ページに上記論理・物理アドレス管理情報が書き込まれていなかった場合は、該最終使用済み物理ページの１つ前の物理ページである最終直前物理ページから先頭側の物理ページに向かって上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する共に、該取得した論理・物理アドレス管理情報と、上記最終直前物理ページから該取得した論理・物理アドレス管理情報が書き込まれていた物理ページの１つ後の物理ページまでの物理ページについて取得した論理アドレスとに基づき、論理・物理アドレス管理情報を更新する処理とを行う
記憶装置。
【請求項６】
消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部に対して、データの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行うと共に、
上記書込制御によりデータが書き込まれるごとに、該書き込みにより書込対象物理ブロック内におけるデータの論理アドレスが不連続となるか否かに関わらず、該書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御し、
対象とする物理ブロック内において、最終使用済み物理ページに上記論理・物理アドレス管理情報が書き込まれていなかった場合は、該最終使用済み物理ページの１つ前の物理ページである最終直前物理ページから先頭側の物理ページに向かって上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する共に、該取得した論理・物理アドレス管理情報と、上記最終直前物理ページから該取得した論理・物理アドレス管理情報が書き込まれていた物理ページの１つ後の物理ページまでの物理ページについて取得した論理アドレスとに基づき、論理・物理アドレス管理情報を更新する
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、制御装置、記憶装置、記憶制御方法に関し、特に論理アドレス−物理アドレスの変換のための管理情報の処理に関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２００９−７００９８号公報
【特許文献２】特開２００７−３３４８５２号公報
【特許文献３】特開２００７−１９３８３８号公報
【特許文献４】特開２００７−５８８４０号公報
【背景技術】
【０００３】
例えばＮＡＮＤ型フラッシュメモリなどの不揮発性メモリを用いた記憶装置が普及している。不揮発性メモリは、例えば各種電子機器、情報処理装置などで使用されるメモリカード、ＳＳＤ（Solid State Drive）、ｅＭＭＣ（Embedded MultiMedia Card）などで利用されている。
上記特許文献１〜４にはフラッシュメモリを用いた記憶装置が開示されている。
【０００４】
不揮発性メモリでは、物理的な記憶領域のアドレスとして物理アドレスが使用される。これにより物理ブロック、物理ページ、物理セクタが設定されている。複数の物理セクタで物理ページが構成され、複数の物理ページで物理ブロックが構成される。
消去（イレーズ）は物理ブロック単位で行われ、書込（プログラム）及び読出（リード）は物理ページ単位で可能とされる。
ホスト機器側からのアドレス指定は、論理アドレスが用いられる。論理アドレスによる論理ブロック、論理ページが、上記の物理アドレスに対応づけられる。これによりアクセス要求時には論理アドレスが物理アドレスに変換されて、実際のフラッシュメモリへのアクセスが実行される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、ＮＡＮＤ型フラッシュメモリ等を記憶デバイスとして用いる記憶装置においては、ホスト機器から指示される論理アドレスと、その論理アドレスに対応したデータがフラッシュメモリ上のどの物理ブロックのどの物理ページにあるかを示す物理アドレスの変換を行う必要がある。
従って、この変換を行うための管理情報を構築しなければならない。
【０００６】
このような管理情報の構築を高速に行うことを可能とするため、物理ブロック内においては、論理アドレスが必ず連続となるようにデータの書き込みを行うように制限をする手法が提案されている。この手法によれば、管理情報の構築は、物理ブロック内の最終使用済み物理ページを見つけ出し、その物理ページに記録されたデータの論理アドレスを取得することで高速に行うことができる。
【０００７】
但し、この手法では物理ブロックに書き込むデータは常に論理アドレスが連続である必要があり、ホストデバイスが非連続な論理アドレスのデータを書き込もうとした場合や、既に書き込み済みの論理アドレスデータを更新するといった場合には、別の物理ブロックを確保し、該確保した物理ブロックにデータをコピーするいわゆるガベージコレクションが多発し、デバイス寿命、及び書き込み速度を著しく低下させてしまうという問題がある。
【０００８】
一方、物理ブロックに非連続な論理アドレスを持つデータを連続に書き込むことを許容するという手法もある。
この手法によれば、非連続な論理アドレスデータの書き込みが行われても上記のようなガベージコレクションの発生を回避できるが、物理ブロック内に論理アドレスが非連続なデータが連続するため、管理情報の構築に時間を要するものとなってしまう。具体的にこの場合における管理情報の構築は、対象とする物理ブロック内における全ての物理ページの論理アドレスを取得して行うものとされており、結果として管理情報の取得までに多くの時間を要し、この点において書き込み／読み出し速度の低下が生じてしまうものである。
【０００９】
本技術は上記のような事情に鑑み為されたものであり、物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことを許容してガベージコレクションが多発する事態の回避を図ると共に、論理・物理アドレスの管理情報の取得を高速化して、書き込み／読み出し速度の向上が図られるようにすることを課題とする。
【課題を解決するための手段】
【００１０】
上記課題の解決のため、本技術では制御装置を以下のように構成することとした。
すなわち、本技術の制御装置は、消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部に対して、データの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行う制御部を備え、上記制御部は、上記書込制御によりデータが書き込まれるごとに、該書き込みにより書込対象物理ブロック内におけるデータの論理アドレスが不連続となるか否かに関わらず、該書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御する処理と、
対象とする物理ブロック内において、最終使用済み物理ページに上記論理・物理アドレス管理情報が書き込まれていなかった場合は、該最終使用済み物理ページの１つ前の物理ページである最終直前物理ページから先頭側の物理ページに向かって上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する共に、該取得した論理・物理アドレス管理情報と、上記最終直前物理ページから該取得した論理・物理アドレス管理情報が書き込まれていた物理ページの１つ後の物理ページまでの物理ページについて取得した論理アドレスとに基づき、論理・物理アドレス管理情報を更新する処理とを行うものである。
【００１１】
また本技術では記憶装置を以下のように構成することとした。
つまり、本技術の記憶装置は、消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部を備える。
また、上記メモリ部に対してデータの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行う制御部を備え、上記制御部は、上記書込制御によりデータが書き込まれるごとに、該書き込みにより書込対象物理ブロック内におけるデータの論理アドレスが不連続となるか否かに関わらず、該書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御する処理と、
対象とする物理ブロック内において、最終使用済み物理ページに上記論理・物理アドレス管理情報が書き込まれていなかった場合は、該最終使用済み物理ページの１つ前の物理ページである最終直前物理ページから先頭側の物理ページに向かって上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する共に、該取得した論理・物理アドレス管理情報と、上記最終直前物理ページから該取得した論理・物理アドレス管理情報が書き込まれていた物理ページの１つ後の物理ページまでの物理ページについて取得した論理アドレスとに基づき、論理・物理アドレス管理情報を更新する処理とを行うものである。
【００１２】
上記のように本技術では、論理・物理アドレス管理情報を生成し、これをメモリ部に書き込むものとしている。これにより、物理ブロック内において論理アドレスが必ず連続となるようにデータの書き込みを行うというような制限を課す必要性はなくなり、物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことを許容して、ガベージコレクションが多発する事態を回避できる。
そして本技術では、論理・物理アドレス管理情報を、書込対象物理ブロック内に書き込むものとしている。従来、物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことを許容する手法では、論理・物理アドレス管理情報を取得するにあたっては、該論理・物理アドレス管理情報が管理する全ての物理ページを読み出すようにされていたが、上記本技術によれば、論理・物理アドレス管理情報は、１つの物理ページを読み出すことで取得できる。このように管理情報の取得が高速化されることで、書き込み／読み出し速度の向上が図られる。
【発明の効果】
【００１３】
本技術によれば、物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことが許容されガベージコレクションが多発する事態の回避が図られると共に、論理・物理アドレスの管理情報の取得が高速化され、書き込み／読み出しの速度向上が図られる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態としての記憶装置の内部構成を示したブロック図である。
【図２】実施の形態における物理ブロックと物理ページとの関係を模式的に示した図である。
【図３】物理ブロック内において論理アドレスが必ず連続となるようにデータを書き込む従来方式についての説明図である。
【図４】図３に示す従来方式の問題点についての説明図である。
【図５】物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことを許容する従来方式についての説明図である。
【図６】実施の形態としての書込手法についての説明図である。
【図７】管理テーブルのデータ構造を示した図である。
【図８】実施の形態の管理テーブル構築処理のフローチャートである。
【図９】実施の形態のデータ書き込み時の処理のフローチャートである。
【図１０】複数の物理ブロック分の論理・物理アドレスの対応関係を表す管理テーブルの概念を模式的に示した図である。
【図１１】複数の物理ブロック分の論理・物理アドレスの対応関係を表すとした場合の管理テーブルのデータ構造を示した図である。
【発明を実施するための形態】
【００１５】
以下、本技術に係る実施の形態について説明する。
なお、説明は以下の順序で行う。
＜１．記憶装置の構成＞
＜２．従来の書込方式について＞
＜３．実施の形態の書込手法＞
＜４．処理手順＞
＜５．変形例＞
【００１６】
＜１．記憶装置の構成＞
図１のブロック図は、本技術の記憶装置に係る実施の形態としてのメモリカード１の内部構成を示している。
メモリカード１はホスト機器２に接続され、記憶装置として用いられる。ホスト機器２としては、例えばパーソナルコンピュータ、デジタルスチルカメラ、ビデオカメラ、オーディオプレーヤ、ビデオプレーヤ、ゲーム機器、携帯電話機、ＰＤＡ（Personal Digital Assistant）等の情報端末など、各種の電子機器、情報処理装置が想定される。
【００１７】
メモリカード１は、制御部１１、インターナルＲＡＭ（Random Access Memory）１２、デバイスインターフェース１３、バッファＲＡＭ１４、及びフラッシュメモリ１５を備える。
【００１８】
制御部１１はＣＰＵ（Central Processing Unit）によって形成され、メモリカード１の全体を制御する。このため制御部１１はインターナルＲＡＭ１２に置かれた命令コードを逐次実行する。主に制御部１１は、ホスト機器２からのコマンドに応じたデータの書き込みや読み出しを実行させる。このため制御部１１は、デバイスインターフェース１３のホスト機器２とのデータ送受信動作制御、バッファＲＡＭ１４の書込／読出動作の制御、フラッシュメモリ１５へのアクセス動作の制御を行う。
【００１９】
インターナルＲＡＭ１２は例えばＳＲＡＭ（Static Random Access Memory）で構成される。インターナルＲＡＭ１２は、制御部１１が実行するプログラム（ファームウェア）の記憶や、ワーク領域として使用される。
デバイスインターフェース１３はホスト機器２との間の通信を行う。
バッファＲＡＭ１４はホスト機器２との間の転送データ（書込データや読出データ）のバッファリングに用いられる。
フラッシュメモリ１５は、不揮発性（Non-Volatile Memory）のメモリであり、本例ではＮＡＮＤ型フラッシュメモリが用いられている。
【００２０】
メモリカード１の基本的な動作としては、データ書込時には、ホスト機器２から書込要求とともに、書込アドレス（論理アドレス）、データサイズ、さらに書き込むべきデータが送られてくる。
ホスト機器２から送られてくるデータは、デバイスインターフェース１３で受信されてバッファＲＡＭ１４にバッファリングされる。そして制御部１１の制御の下、データがフッラシュメモリ１５に書き込まれる。制御部１１は書込要求、書込アドレス、データサイズに応じてこれらの動作を制御する。
データ読出時にはホスト機器２から読出要求とともに、読出アドレス（論理アドレス）、データサイズが送られてくる。制御部１１は、読出アドレス、データサイズに基づいてフラッシュメモリ１５から指示されたデータの読み出しを行い、バッファＲＡＭ１４にバッファリングする。また制御部１１はバッファリングされた読出データに対してエラー訂正処理等を行う。そして読出データはバッファＲＡＭ１４からデバイスインターフェース１３に転送され、ホスト機器２に送信される。
【００２１】
ところで、フラッシュメモリ１５は、物理的な記憶領域のアドレスとして物理アドレスが使用される。これにより物理ブロック（Physical Block）、物理ページ（Physical Page）、物理セクタ（Physical Sector）が設定されている。複数の物理セクタで物理ページが構成され、また複数の物理ページで物理ブロックが構成される。
【００２２】
図２は、物理ブロックと物理ページとの関係を模式的に示している。
本実施の形態では、１つの物理ブロックが１２８個の物理ページで構成されているとする。
なお、図示はしていないが、物理ページ内は複数の物理セクタに分けられている。
【００２３】
消去（イレーズ）は物理ブロック単位で行われる。また、書き込み（プログラム）及び読み出し（リード）は物理ページ単位で可能とされる。つまり物理ブロックが物理的消去単位（最小消去単位）、物理ページが物理的書込単位（書込最小単位）となる。
【００２４】
ホスト機器２側からのアドレス指定は、論理アドレスが用いられる。論理アドレスによる論理ブロック、論理ページ、論理セクタが、上記の物理アドレスに対応づけられる。すなわち、制御部１１は論理アドレスと物理アドレスとを対応づけて論理・物理アドレス管理情報を形成し、ホスト機器２からのアクセス要求時には、指定される論理アドレスを論理・物理アドレス管理情報を参照して物理アドレスに変換する。そして物理アドレスにより、実際のフラッシュメモリ１５へのアクセスを実行する。
【００２５】
ここで以下、ホスト機器２から書き込みや読み出しが要求されるデータ（ホスト機器２が論理アドレスで管理するデータ）のことを「ホストデータ」と表記する。
【００２６】
＜２．従来の書込方式について＞
従前の一般的な書込方式の１つとしては、図３に示すように、物理ブロック内において論理アドレスが必ず連続となるようにデータを書き込む方式を挙げることができる。
この図３では、ホストデータとして０〜５の論理アドレス（ページ単位の論理アドレス）の付された６ページ分に対応するデータの書き込みが指示された場合の様子を示している。
物理ブロックは物理ページ番号＝０の物理ページから順に使用されていくため、この場合のホストデータ（論理アドレス＝０〜５）は、図のように連続した物理ページに書き込まれる。
【００２７】
このように論理アドレスが必ず連続となるようにデータを書き込む方式としておけば、次回、物理ブロック内に書き込まれたホストデータの情報を取得する場合に、物理ブロック内の最終使用済み物理ページを見つけ出し、その物理ページの冗長エリアに書き込まれているホストデータの論理アドレスを読み出すことで、当該物理ブロック内におけるホストデータの記録態様を把握できる。すなわち、当該物理ブロック内での論理アドレスと物理アドレスの対応関係を把握できるものである。
ここで確認のため述べておくと、最終使用済み物理ページとは、その時点で過去に最新のデータ書込が行われた物理ページを意味する。前述のように物理ブロックは物理ページ番号＝０の物理ページから順に使用されていくため、物理ブロック内で論理アドレスの連続性が保証される下では、最終使用済み物理ページに記録されたデータの論理アドレスが判明すれば、その物理ブロック内における論理・物理アドレスの対応関係が把握されるものである。
【００２８】
ただし、図３に示す方式を採る場合、図４に示すような問題が生じる。
図４では、１回目の書込時におけるホストデータが０〜４の論理アドレスを持つデータ（５ページ分のデータ）とされ、２回目の書き込みとして、論理アドレス＝１のデータについての書き換えが行われる場合を例示している。
この場合、１回目書込時におけるホストデータ（論理アドレス＝０〜４）は物理ブロックＭに対して行われたとする。
【００２９】
２回目書込時については、物理ブロック内における論理アドレスの連続性を保証する必要があるため、新たに書き込まれるべき論理アドレス＝１のデータを、物理ブロックＭに対して書き込むことができない。また消去単位は物理ブロック単位であるため、物理ブロックＭに記録されている論理アドレス＝１のデータを消去して、そこに２回目の書き込みで指示された論理アドレス＝１のデータを新たに書き込むということもできない。
よってこの場合は、物理ブロックＭとは別の物理ブロックＮを新たに確保し、物理ブロックＭ内に記録されている論理アドレス＝０，２，３，４のデータと２回目に書き込み指示された論理アドレス＝１のデータとを、このように確保した物理ブロックＮに対して論理アドレスが連続となるように書き込むことになる。
【００３０】
このように論理アドレスの連続性を保証する方式では、既に書き込み済みの論理アドレスのホストデータを更新する場合に、別の物理ブロックＮへホストデータをコピーするいわゆるガベージコレクションが発生する。
また図示による説明は省略するが、このようなガベージコレクションは、物理ブロックに対して非連続な論理アドレスのホストデータを書き込むとした場合にも生じるものとなる。すなわち、論理アドレスの連続性を保証する従来方式は、ガベージコレクションが多発する事態を招くものとなる。
このようにガベージコレクションが多発することで、デバイス寿命、及び書き込み速度を著しく低下させてしまう。
【００３１】
一方、従来の別の書込方式として、物理ブロック内に非連続な論理アドレスを持つホストデータを連続に書き込むことを許容する方式がある。
この方式を採った場合には、図５に示されるように、先の図４と同様に論理アドレス＝０〜４のホストデータの書き込み後、２回目書込時に論理アドレス＝１の書き換えが指示された場合に、該２回目書込時の論理アドレス＝１のホストデータを、物理ページ番号＝５としての続き部分に対して書き込むことができる。
つまりこの点からも理解されるように、物理ブロック内における論理アドレスの非連続性を許容する方式によれば、ガベージコレクションが多発する事態を効果的に回避できる。
【００３２】
しかしながら従来方式では、管理情報の構築は、対象とする物理ブロック内における全ての物理ページの論理アドレスを取得して行うものとされており、結果として管理情報の取得までに多くの時間を要し、この点において書き込み／読み出し速度の低下が生じていた。
【００３３】
本実施の形態では、これら従来技術の有する問題点に鑑み、物理ブロック内に非連続な論理アドレスを持つデータを連続に書き込むことを許容してガベージコレクションが多発する事態の回避を図ると共に、論理・物理アドレスの管理情報の取得を高速化して、書き込み／読み出しの速度向上が図られるようにする。
【００３４】
＜３．実施の形態の書込手法＞
先ず、本実施の形態では、物理ブロック内における論理アドレスの非連続性を許容できるようにするべく、論理・物理アドレス管理情報により、物理ブロック内における論理・物理アドレスの対応関係を管理するものとする。具体的には、後述する管理テーブルである。
物理ブロック内における論理アドレスの非連続性を許容することで、前述のようなガベージコレクションの発生回数を減少させることができる。
【００３５】
そして本実施の形態では、上記のような論理・物理アドレス管理情報による管理を前提とした場合において、該論理・物理アドレス管理情報の取得を効率的に短時間で実行できるようにして、ホストデータの書き込み／読み出しとしてのアクセス速度の向上を図るものとする。
具体的に本実施の形態では、ホストデータの書き込みを行ったことに応じて、論理・物理アドレス管理情報をホストデータと同じ物理ブロック内に書き込むという手法を採る。
なお以下、論理・物理アドレス管理情報は、管理テーブルとも表記する。
【００３６】
図６は、実施の形態としての書込手法についての説明図である。
なおこの図では、書込対象とされた或る物理ブロック（未記録の物理ブロックであったとする）に対し、１回目のホストデータとして論理アドレス＝０〜４のデータの書き込みが指示され、２回目のホストデータとして論理アドレス＝１の書き換えが指示され、その後ｎ回目のホストデータとして論理アドレス＝２００のデータの書き込みが指示された場合を例示している。
【００３７】
先ず、１回目のホストデータの書き込み指示に対応しては、指示された論理アドレス＝０〜４のデータを物理ブロック内の物理ページ番号０〜４の物理ページに書き込む。
前述のように物理ブロックは、物理ページ番号＝０の物理ページから順に使用されていくものである。
そして、これら書き込んだデータについての論理・物理アドレスの対応関係を表す管理テーブルを生成し、該管理テーブルを、ホストデータの書き込みを行った物理ブロック内に書き込む。具体的に本例の場合、管理テーブルはホストデータの書き込みを行った物理ブロック内の最終使用済み物理ページの次の物理ページに対して書き込む。つまりこの図の例の場合には、管理テーブルの書き込みを行う時点で最終使用済み物理ページとなっている物理ページ番号＝４の物理ページの次の物理ページである、物理ページ番号＝５の物理ページに対して管理テーブルを書き込むことになる。
【００３８】
以降のホストデータの書込時も同様に、管理テーブルの書き込みが行われる。
具体的に、２回目のホストデータの書き込み（論理アドレス＝１のデータの書き換え）が指示されたことに応じては、図のように書き込み指示された論理アドレス＝１のホストデータを物理ページ番号＝６の物理ページに書き込んだ後、物理ページ番号＝０〜６までの物理ページにおける論理・物理アドレスの対応関係を表す管理テーブルを生成し、該生成した管理テーブルを最終使用済み物理ページの次の物理ページ、すなわちこの場合は物理ページ番号＝７の物理ページに対して書き込む。
【００３９】
また図６では、その後に物理ページ番号＝１２３の物理ページまでが使用され、さらにその後、ｎ回目のホストデータの書き込み（論理アドレス＝２００のデータ）が指示された場合を例示しているが、該ｎ回目の書込時には、指示された論理アドレス＝２００のデータを物理ページ番号＝１２４の物理ページに対して書き込んだ後、物理ページ番号＝０〜１２４までの物理ページにおける論理・物理アドレスの対応関係を表す管理テーブルを生成し、該生成した管理テーブルを最終使用済み物理ページの次の物理ページ、すなわちこの場合は物理ページ番号＝１２５の物理ページに対して書き込む。
【００４０】
図７は、管理テーブルのデータ構造を示している。
この図７に示すように、管理テーブルは論理アドレスと物理ページ番号とを対応づけた情報となる。
本例の場合、１つの管理テーブルは、１つの物理ブロック内における論理・物理アドレスの対応関係を管理する情報とされている。ここで言う論理アドレスは、対象とする物理ブロック内の物理ページに対して書き込まれたホストデータに付されている論理アドレスであり、管理テーブルでは、論理アドレスごとに、その論理アドレスの付されたホストデータが書き込まれた物理ページ番号の情報が対応づけられる。
【００４１】
上記のように本実施の形態では、フラッシュメモリ１５における物理ブロック内に対して管理テーブルを書き込むものとしている。このことで、その後に当該物理ブロックについての読み出し／書き込みを行うにあたり論理・物理アドレスの管理情報を取得する際には、当該物理ブロック内における最終使用済み物理ページの内容を読み出せばよいものとでき、結果、従来方式の場合よりも高速に論理・物理アドレス管理情報の取得を行うことができる。
具体的に、物理ブロック内における論理アドレスの非連続性を許容する従来方式では、論理・物理アドレス管理情報の取得のためには対象とする物理ブロック内の全ての物理ページを読み出す必要があったが、本実施の形態によれば、論理・物理アドレス管理情報の取得は対象とする物理ブロック内の１つの物理ページ（本例の場合は最終使用済み物理ページ）を読み出すことで実現できるため、より高速な管理情報の取得が可能となるものである。
この結果、従来方式との比較で、読み出し／書き込み速度の向上が図られる。
【００４２】
また、図６の説明からも理解されるように、本例では、管理テーブルの書き込みは、ホストデータの書き込みごとに実行するものとしている。このことで、当該物理ブロック内では過去の論理・物理アドレス管理情報も保存されるものとなり、その物理ブロック内における最新の管理テーブルが何らかの理由で読み出すことができない場合に、これら保存された過去の管理テーブルを利用して論理・物理アドレス管理情報の復旧を効率的に行うことができる。
なお、後の図８に示す処理では、このように過去に書き込まれた管理テーブルの情報を利用して効率的に管理情報の復旧が為されるように図っている。
【００４３】
なお、制御部１１は、管理テーブルの生成をインターナルＲＡＭ１２上で行う。
前述のように、制御部１１では、ホスト機器２側からのコマンドにより書き込むべきデータの論理アドレスが把握される。
制御部１１は、書き込みが指示されたホストデータの論理アドレスとそのホストデータを書き込むべき物理ページの物理ページ番号とを対応づけた情報を、管理テーブルのエントリ情報としてインターナルＲＡＭ１２上に蓄積していく。この結果、管理テーブルが生成される。このように生成された管理テーブルを、ホストデータの書き込みを行った物理ブロック内の最終使用済み物理ページの次の物理ページに書き込むものである。
【００４４】
＜４．処理手順＞
図８及び図９のフローチャートにより、上記により説明した実施の形態としての書込手法を実現するために実行されるべき具体的な処理の手順を説明する。
なおこれら図８、図９に示される処理は、制御部１１が例えばフラッシュメモリ１５等の所定の記憶装置に記憶されたプログラムに従って実行するものである。
【００４５】
図８は、管理テーブルの構築処理を示している。
この図８に示す管理テーブルの構築処理は、少なくとも起動時において実行されればよい。
【００４６】
図８において、制御部１１は、ステップＳ１０１にて対象の物理ブロック内の最終使用済み物理ページの検索を行う。例えば２分検索などとして最終使用済み物理ページを探すことができる。前述のように最終使用済み物理ページとは、その時点で過去に最新のデータ書き込みが行われた物理ページを意味するものである。
上記２分検索とは、例えば中央の物理ページを確認しながら最終使用済み物理ページを探索する手法となる。仮に、物理ブロックが８個の物理ページ（０〜７）で成る場合には、中央部に位置する例えば物理ページ番号＝４の物理ページを先ず確認する。この物理ページ番号＝４の物理ページが書込済みであれば、最終使用済み物理ページは当該物理ページ番号＝４以降の物理ページにあることが分かる。そこで次に、物理ページ番号＝５〜７の範囲の中央部に位置する物理ページ番号＝６の物理ページを確認する。この物理ページ番号＝６の物理ページが書込済みであれば、最終使用済み物理ページは物理ページ番号＝７と特定できる。このように中央部の物理ページを確認しながら追い込んでいき、最終使用済み物理ページを探索する。
【００４７】
最終使用済み物理ページを発見したら、制御部１１は、ステップＳ１０２において該最終使用済み物理ページの読み出しを実行する。
そして続くステップＳ１０３において、当該最終使用済み物理ページに、管理テーブルが書き込まれているか否かを判別する。
【００４８】
ステップＳ１０３において、最終使用済み物理ページに管理テーブルが書き込まれていたとして肯定結果が得られた場合、制御部１１はステップＳ１０４に進み、当該管理テーブルを取り込む。すなわち、最終使用済み物理ページに管理テーブルが書き込まれているということは、該管理テーブルは対象物理ブロック内における論理・物理アドレスの対応関係の最新状況を表す情報（換言すれば、その時点の当該物理ブロックに書き込まれている全てのホストデータについての論理・物理アドレスの対応関係を示す情報）であるので、これをそのままインターナルＲＡＭ１２上に保持しておく。
【００４９】
一方ステップＳ１０３において、最終使用済み物理ページに管理テーブルが書き込まれていないとの否定結果が得られた場合は、その物理ブロック内には、最新の管理テーブルは存在していないこととなる。考えられ得るケースとしては、何らかの理由で管理テーブルの書き込みが為されなかったか、或いは書き込みが為されたとしてもデータ破損等により読み出しが不能となっている場合等が挙げられる。
このように最終使用済み物理ページに管理テーブルが書き込まれていないとされた場合には、最新の管理テーブルを復旧すべく、制御部１１は、以下のステップＳ１０５〜Ｓ１１０の処理を実行する。
【００５０】
具体的に、制御部１１は、ステップＳ１０３にて否定結果が得られた場合、ステップＳ１０５に進み、物理ページに記録されたホストデータの論理アドレスを取得する。すなわち、先のステップＳ１０２、又は後のステップＳ１０７で読み出しを行った物理ページに記録されたホストデータの論理アドレスを取得する。
【００５１】
このように論理アドレスを取得した後、制御部１１は、ステップＳ１０６において当該物理ページが対象の物理ブロックの先頭の物理ページであるか否かを判別する。
ステップＳ１０６において、物理ブロックの先頭の物理ページでないとの否定結果が得られた場合、制御部１１はステップＳ１０７に進み、１つ前の物理ページの読み出しを行った後、ステップＳ１０８においてその物理ページに管理テーブルが書き込まれているか否かを判別する。
【００５２】
ステップＳ１０８において管理テーブルが書き込まれていないとの否定結果が得られた場合は、ステップＳ１０５〜Ｓ１０８の処理が繰り返される。これにより、管理テーブルが発見されるまで、順次物理ページを遡って論理アドレスの取得が行われる。換言すれば、最終使用済み物理ページから順番に前の物理ページをたぐって、各物理ページのホストデータの論理アドレスを記憶しながら、管理テーブルが記憶されている物理ページを探し出す処理が実行されるものである。
【００５３】
そしてステップＳ１０８において、管理テーブルが書き込まれているとの肯定結果が得られた場合、制御部１１は、ステップＳ１０９に進んで最新状態を表す管理テーブルを作成する。すなわち、ステップＳ１０８で発見された管理テーブルの情報内容（管理テーブルが発見された物理ページの１つの前の物理ページから物理ページ番号＝０の物理ページまでについての論理・物理アドレスの対応関係情報）に、ステップＳ１０５〜Ｓ１０８の処理で取得した論理アドレスに基づき生成される論理・物理アドレスの対応関係情報（最終使用済み物理ページから管理テーブルが発見された物理ページの１つ後の物理ページまで）を追加して、最新の情報内容を有する管理テーブルを作成する。これは、過去に書き込まれた管理テーブルを最新状態に更新する処理とも換言できる。
なお前述もしたように、管理テーブルの作成は、インターナルＲＡＭ１２上で行われるものであり、従ってこのように最新状態に更新された管理テーブルもインターナルＲＡＭ１２上に置かれるものである。
【００５４】
ここで、ステップＳ１０６において、物理ブロックの先頭ページであるとの肯定結果が得られた場合は、当該物理ブロック内にて管理テーブルが発見されなかったことを意味する。
そこでこの場合、制御部１１は、ステップＳ１１０に進んで管理テーブルの作成を行う。具体的には、逐次ステップＳ１０５の処理で取得された論理アドレスの情報と該論理アドレスが取得された物理ページの物理ページ番号とを対応づけて、最終使用済み物理ページから物理ページ番号＝０の物理ページまでの論理・物理アドレスの対応関係を表す管理テーブルを作成するものである。
【００５５】
この図８に示す構築処理が少なくとも起動時に実行されることで、ホスト機器２からの書き込み／読み出し指示が為される時点で、制御部１１がフラッシュメモリ１５内の各物理ブロックについての論理・物理アドレスの最新の対応関係を把握している状態を得ることができる。
【００５６】
図９は、ホストデータの書き込み時に対応して実行されるべき処理を示している。
図９において、制御部１１は、ステップＳ２０１において、ホスト機器２からデータ書き込み要求に応じて書き込みを行うホストデータの取り込みや論理アドレスの取得等を行う。
具体的に制御部１１は、送信されてくるホストデータについてはデバイスインターフェース１３を介してバッファＲＡＭ１４に一時格納させる。また制御部１１は、デバイスインターフェース１３を介して送信される書き込み要求のコマンドにより、書き込むホストデータの論理アドレスとデータ量を把握する。
【００５７】
ステップＳ２０２では、今回のデータ書込に対応すべく管理テーブルを作成又は更新する。
先の図８に示した構築処理が実行されることで、制御部１１は、現時点（ホストデータの書き込み前時点）における、書き込み対象とする物理ブロック内の論理・物理アドレスの対応関係を把握した状態にある。
対象とする物理ブロックに対し過去にホストデータの書き込みが実行されていた場合には、当該ステップＳ２０２の処理は、これから書き込むべきホストデータについての論理・物理アドレスの対応関係情報に基づき、既にインターナルＲＡＭ１２上に置かれた管理テーブルを更新する処理となる。或いは、対象とする物理ブロックが今回初めて使用される場合には、当該ステップＳ２０２の処理は、これから書き込むべきホストデータについての論理・物理アドレスの対応関係情報に基づき、管理テーブルを新規に作成する処理となる。
【００５８】
ステップＳ２０２による管理テーブルの作成／更新処理を実行した後、制御部１１は、ステップＳ２０３にてホストデータの書き込みを実行する。
前述のように物理ブロックは物理ページ番号＝０から順に使用するものとされるので、制御部１１は、ホスト機器２側から指示されたホストデータを、対象とする物理ブロックの最終使用済み物理ページの次の物理ページから順に書き込む。
【００５９】
ホストデータの書き込みを実行した後、制御部１１は、ステップＳ２０４にて最終使用済み物理ページの次の物理ページに対して管理テーブルの書き込みを実行する。すなわち、先のステップＳ２０２によりインターナルＲＡＭ１２上にて作成／更新された管理テーブルを、ステップＳ２０３でホストデータの書き込みを行った物理ブロックの最終使用済み物理ページの次の物理ページに対して書き込むものである。
【００６０】
なお、図９では、ホストデータの書き込みごとに管理テーブルの書き込みを実行するものとしたが、管理テーブルの書き込みを実行するタイミングは、必ずしもホストデータの書き込みごとに限定されるべきものではない。
例えば、前回の管理テーブルの書き込みから、ホストデータの書き込みが所定回数以上あった場合に管理テーブルの書き込みを行う、或いは、物理ブロック内に論理アドレスが不連続となる場合に管理テーブルの書き込みを行う、などの各種手法を採ることができる。
【００６１】
また、図８に示した管理テーブルの構築処理（ＲＡＭ上での管理テーブルの作成／更新処理）は、起動時のみでなく、例えばホスト機器２からの書き込みや読み出しの要求の都度行うなどということも考えられる。
【００６２】
＜５．変形例＞
以上、本技術に係る実施の形態について説明したが、本技術はこれまでで説明した具体例に限定されるべきものではない。
例えば、これまでの説明では、管理テーブルは、１つの物理ブロック分の論理・物理アドレスの対応関係を表す情報としたが、管理テーブルは、複数の物理ブロック分の論理・物理アドレスの対応関係を表す情報とすることもできる。
【００６３】
図１０は、その場合の管理テーブルの概念を模式的に示している。
この図１０の例では、物理ブロックＭ，Ｎ，Ｏの３つの物理ブロック分の論理・物理アドレスの対応関係を表す管理テーブルを例示している。
この場合、３つの物理ブロックは一体で管理され、管理テーブルは、これら３つの物理ブロック内の所定の物理ページに対して書き込む。例えばこの場合の管理テーブルは、これら３つの物理ブロック内における最終使用済み物理ページの次の物理ページに対して書き込む。これにより、先の図８のように管理テーブルの取得に最終使用済み物理ページを検索する手法を採ることで、管理テーブルが最新であるか否かを容易に知ることができる。
【００６４】
図１１は、このように複数の物理ブロック分の論理・物理アドレスの対応関係を表すとした場合の管理テーブルのデータ構造を示している。
複数の物理ブロック分の論理・物理アドレスの対応関係を表す場合、管理テーブルとしては、論理アドレスと、その論理アドレスの付されたデータが書き込まれた物理ページの番号（物理ページ番号）と共に、その論理アドレスの付されたデータの書き込まれた物理ブロックのアドレス（物理ブロックアドレス）とを対応づける。
【００６５】
複数の物理ブロック分の論理・物理アドレスの対応関係を１つの管理テーブルで管理しようとした場合、該管理テーブルのデータサイズが大となる傾向となり、システム環境に応じて、１つの物理ブロック分の対応関係を管理する管理テーブルとするか、複数の物理ブロック分の対応関係を管理する管理テーブルとするかを選択することができる。
【００６６】
上記のように複数の物理ブロック分の論理・物理アドレスの対応関係を管理する管理テーブルとすれば、従来方式では複数の物理ブロック内の全ての書き込み済み物理ページを読み出して論理・物理アドレス管理情報を取得しなければならなかったものを、１つの管理テーブルの読み出しを行えば済むものとでき、結果、書き込み／読み出し速度のさらなる向上を図ることができる。
【００６７】
また、これまでの説明では、本技術がＮＡＮＤ型フラッシュメモリを有する記憶装置に適用される場合を例示したが、本技術は、消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部に対してデータの書き込みが行われる場合に好適に適用できるものである。
【００６８】
また、本技術は以下のような構成も採ることができる。
（１）
消去単位である物理ブロックのサイズが書込最小単位である物理ページのサイズよりも大とされたメモリ部に対して、データの書込制御を行うと共に、該書込制御によってデータが書き込まれた書込対象物理ブロック内における物理ページアドレスと論理アドレスとの対応関係を表す論理・物理アドレス管理情報を生成し、該論理・物理アドレス管理情報が上記書込対象物理ブロック内に書き込まれるように制御を行う制御部を備える
制御装置。
（２）
上記制御部は、
上記書込対象物理ブロック内の最終使用済み物理ページの次の物理ページに対して上記論理・物理アドレス管理情報が書き込まれるように制御する
上記（１）に記載の制御装置。
（３）
上記制御部は、
対象とする物理ブロック内で、最終使用済みの物理ページから先頭側の物理ページに向かって順に上記論理・物理アドレス管理情報が書き込まれた物理ページを検索し、最初に発見された上記論理・物理アドレス管理情報を取得する処理を行うと共に、
該取得した論理・物理アドレス管理情報と、論理・物理アドレス管理情報が書き込まれていなかった物理ページの論理アドレスとを用いて、論理・物理アドレス管理情報を更新する処理を行う
上記（２）に記載の制御装置。
（４）
上記制御部は、
上記論理・物理アドレス管理情報として、１つの物理ブロック分の上記物理ページアドレスと論理アドレスとの対応関係を表す情報を生成する
上記（１）乃至（３）何れかに記載の制御装置。
（５）
上記制御部は、
上記論理・物理アドレス管理情報として、複数の物理ブロック分の上記物理ページアドレスと論理アドレスとの対応関係を表す情報を生成する
上記（１）乃至（３）何れかに記載の制御装置。
（６）
上記制御部は、
ＮＡＮＤ型フラッシュメモリである上記メモリ部に対して書込制御を行う上記（１）乃至（５）何れかに記載の制御装置。
【符号の説明】
【００６９】
１  メモリカード、２  ホスト機器、１１  制御部、１２  インターナルＲＡＭ、１３  デバイスインターフェース、１４  バッファＲＡＭ、１５  フラッシュメモリ
【図１】
0005949122.tif 000002
【図２】
0005949122.tif 000003
【図３】
0005949122.tif 000004
【図４】
0005949122.tif 000005
【図５】
0005949122.tif 000006
【図６】
0005949122.tif 000007
【図７】
0005949122.tif 000008
【図８】
0005949122.tif 000009
【図９】
0005949122.tif 000010
【図１０】
0005949122.tif 000011
【図１１】
0005949122.tif 000012