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