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