(57)【要約】【課題】記憶装置のガベージコレクション処理の実行によって外部アクセスについてのタイムアウトが発生しないようにする。【解決手段】記憶装置１は、外部アクセスに係るデータが入出力される入出力部１１と、入力されたデータを、一時的に記憶するキャッシュ領域を用いながら複数の領域に分けて記憶可能なメモリ１５と、外部アクセスに基づいてメモリ１５にアクセスし、外部アクセスに基づくメモリ１５へのアクセス中にキャッシュ領域を含む複数の領域についてのガベージコレクション処理を実行してキャッシュ領域を開放する制御部１６とを有する。制御部１６は、外部アクセスに基づくメモリ１５へのアクセス中に実行するキャッシュ領域を含む複数の領域についてのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行し、当該複数回に分割されたガベージコレクション処理の間に、外部アクセスに対して応答する。【選択図】図１
2011192240.tif 000002
【特許請求の範囲】
【請求項１】
外部アクセスに係るデータが入出力される入出力部と、
前記入出力部から入力されたデータを、入力されたデータを一時的に記憶するキャッシュ領域を用いながら複数の領域に分けて記憶可能なメモリと、
前記外部アクセスに基づいて前記メモリにアクセスし、前記外部アクセスに基づく前記メモリへのアクセス中に前記キャッシュ領域を含む複数の領域についてのガベージコレクション処理を実行して前記キャッシュ領域を開放する制御部と
を有し、
前記制御部は、
前記外部アクセスに基づく前記メモリへのアクセス中に実行する前記キャッシュ領域を含む複数の領域についてのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行し、
当該複数回に分割されたガベージコレクション処理の間に、前記外部アクセスに対して応答する
記憶装置。
【請求項２】
前記制御部は、
前記メモリの一部の領域を前記キャッシュ領域として利用し、
前記キャッシュ領域が規定数をオーバーした場合、前記外部アクセスに基づく前記メモリへのアクセス中に前記キャッシュ領域を含む複数の領域についての前記ガベージコレクション処理を実行する
請求項１記載の記憶装置。
【請求項３】
前記制御部は、
当該複数回に分割されたガベージコレクション処理の間に、前記外部アクセスに対してアクセス処理の完了を応答し、
当該アクセス処理完了の応答後に、残りの分割されたガベージコレクション処理を実行する
請求項１または２記載の記憶装置。
【請求項４】
前記制御部は、
当該複数回に分割されたガベージコレクション処理の間、および、分割された最後のガベージコレクション処理を実行した後の各々のタイミングにおいて、前記外部アクセスに対して応答する
請求項１または２記載の記憶装置。
【請求項５】
ホスト機器と、
前記ホスト機器によりアクセス可能な記憶装置と
を有し、
前記記憶装置は、
前記ホスト機器のアクセスに係るデータが入出力される入出力部と、
前記入出力部から入力されたデータを、入力されたデータを一時的に記憶するキャッシュ領域を用いながら複数の領域に分けて記憶可能なメモリと、
前記外部アクセスに基づいて前記メモリにアクセスし、前記外部アクセスに基づく前記メモリへのアクセス中に前記キャッシュ領域を含む複数の領域についてのガベージコレクション処理を実行して前記キャッシュ領域を開放する制御部と
を有し、
前記制御部は、
前記外部アクセスに基づく前記メモリへのアクセス中に実行する前記キャッシュ領域を含む複数の領域についてのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行し、
当該複数回に分割されたガベージコレクション処理の間に、前記外部アクセスに対して応答する
記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部アクセス可能な記憶装置および記憶システムに関する。
【背景技術】
【０００２】
記憶装置には、例えばフラッシュメモリがある。
フラッシュメモリは、コンピュータシステムなどにおいて、ホスト機器がデータを書込んで保存するデータの記憶部として利用できる（特許文献１）。
そして、フラッシュメモリは、たとえば書込み可能なキャッシュブロックが不足する場合などにおいて、利用可能なキャッシュブロックを確保するためのガベージコレクション処理を実行する必要がある。
ガベージコレクション処理では、データが書込まれたキャッシュブロックを含む複数個の論理ブロックの有効なデータを単一の論理ブロックにまとめる処理を実行した後、当該キャッシュブロックの初期化処理を実行する。
これにより、ガベージコレクション処理済みのキャッシュブロックは、新たなデータを書込み可能なキャッシュブロックとして開放される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０５８８４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ガベージコレクション処理は、たとえば記憶装置の記憶領域の状態に応じて実行されるものであり、ホスト機器による記憶装置へのアクセスとは無関係に、記憶装置のファームウェアなどにより実行される。
このため、記憶装置がガベージコレクションを実行する場合、ホスト機器などにおいて、記憶装置へのアクセスにおいてタイムアウトが発生することがある。
【０００５】
たとえばホスト機器が記憶装置に書込みアクセスする場合において使用中のキャッシュブロックの個数が規定数をオーバーするとき、記憶装置は、書込みアクセス中に、キャッシュブロックを含む複数のブロックについてのガベージコレクション処理を実行する。
また、記憶装置は、キャッシュブロックを含む複数のブロックについてのガベージコレクション処理の後に、ホスト機器へ書込みアクセスに対して応答する。
そして、このキャッシュメモリのガベージコレクション処理では、キャッシュメモリを含む複数のブロックについてガベージコレクション処理を実行する必要があるため、処理に時間がかかる。
その結果、記憶装置によるホスト機器の書込みアクセスに対する応答が遅れ、ホスト機器において書込みアクセスのタイムアウトが発生することがある。
【０００６】
このように記憶装置では、ガベージコレクション処理の実行によって外部アクセスについてのタイムアウトが発生しないようにすることが求められている。
【課題を解決するための手段】
【０００７】
本発明の第１の観点の記憶装置は、外部アクセスに係るデータが入出力される入出力部と、入出力部から入力されたデータを、入力されたデータを一時的に記憶するキャッシュ領域を用いながら複数の領域に分けて記憶可能なメモリと、外部アクセスに基づいてメモリにアクセスし、外部アクセスに基づくメモリへのアクセス中にキャッシュ領域を含む複数の領域についてのガベージコレクション処理を実行してキャッシュ領域を開放する制御部とを有する。そして、制御部は、外部アクセスに基づくメモリへのアクセス中に実行するキャッシュ領域を含む複数の領域についてのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行し、当該複数回に分割されたガベージコレクション処理の間に、外部アクセスに対して応答する。
【０００８】
第１の態様では、外部アクセスに基づくメモリへのアクセス中の、複数のキャッシュ領域についてのガベージコレクション処理は、複数回のガベージコレクション処理に分割して実行される。
また、制御部は、当該複数回に分割されたガベージコレクション処理の間に、外部アクセスに対して応答する。
よって、外部アクセス中に複数のキャッシュ領域についてのガベージコレクション処理を実行したとしても、記憶装置は、外部アクセスに対して適切なタイミングで応答することができる。
【０００９】
本発明の第２の観点の記憶システムは、ホスト機器と、ホスト機器によりアクセス可能な記憶装置とを有する。記憶装置は、ホスト機器のアクセスに係るデータが入出力される入出力部と、入出力部から入力されたデータを、入力されたデータを一時的に記憶するキャッシュ領域を用いながら複数の領域に分けて記憶可能なメモリと、外部アクセスに基づいてメモリにアクセスし、外部アクセスに基づくメモリへのアクセス中にキャッシュ領域を含む複数の領域についてのガベージコレクション処理を実行してキャッシュ領域を開放する制御部とを有する。そして、制御部は、外部アクセスに基づくメモリへのアクセス中に実行するキャッシュ領域を含む複数の領域についてのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行し、当該複数回に分割されたガベージコレクション処理の間に、外部アクセスに対して応答する。
【発明の効果】
【００１０】
本発明では、ガベージコレクション処理の実行によって外部アクセスについてのタイムアウトが発生しないようにできる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施形態に係るメモリカードのブロック図である。
【図２】図２は、図１の不揮発性メモリの記憶領域の構造の説明図である。
【図３】図３は、キャッシュブロックのガベージコレクション処理の説明図である。
【図４】図４は、図１のメモリカードを用いたカメラシステムの概略構成図である。
【図５】図５は、データ書込み処理におけるガベージコレクション処理の流れを示すシーケンスチャートである。
【図６】図６は、比較例でのデータ書込み処理におけるガベージコレクション処理の流れを示すシーケンスチャートである。
【図７】第２実施形態のデータ書込み処理におけるガベージコレクション処理の流れを示すシーケンスチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に関連付けて説明する。
説明は以下の順に行う。
第１実施形態（分割した複数のガベージコレクション処理の途中で書き込み完了を応答する例）
第２実施形態（分割した複数のガベージコレクション処理の途中で処理中を応答し、すべてのガベージコレクション処理の完了後に書き込み完了を応答する例）
【００１３】
＜第１実施形態＞
［メモリカードおよびホスト機器の構成］
図１は、本発明の実施形態に係るメモリカード１のブロック図である。
図１のメモリカード１は、デバイス入出力部（D_I/O）１１、プロセッサ（Processor）１２、内部ＲＡＭ（Internal RAM）１３、バッファＲＡＭ（Buffer RAM）１４、および不揮発性メモリ（Non-Volatile Memory）１５を有する。
図１のメモリカード１は、ホスト機器に接続して使用するカード型のメモリカード１である。
メモリカード１は、たとえばホスト機器に対して着脱可能に装着されるメモリースティック（登録商標）、ＳＤなどである。
【００１４】
不揮発性メモリ１５は、たとえばＮＡＮＤ型のフラッシュメモリなどの不揮発性の半導体メモリである。
図２は、不揮発性メモリ１５の記憶領域の構造の説明図である。
不揮発性メモリ１５は、複数の物理ブロック２１を有する。物理ブロック２１は、複数の物理ページ２２を有する。物理ページ２２は、データを保持する複数のセルを有する。
そして、不揮発性メモリ１５は、物理ページ２２の単位で、データの書込みおよび読出しが可能である。
また、不揮発性メモリ１５は、物理ブロック２１単位で、データの消去（初期化）が可能である。
不揮発性メモリ１５は、電源供給が遮断された後にも、書き込まれたデータを保持記憶する。
なお、ＮＡＮＤ型のフラッシュメモリの各セルは、初期化処理により所定の値（例えば１）に初期化される。また、書込み処理では、各セルに、他の値（例えば０）が書込まれる。
【００１５】
そして、メモリカード１のプロセッサ１２（制御部１６）は、不揮発性メモリ１５の記憶領域を、複数の論理ブロック３１で管理する。
論理ブロック３１は、１つ以上の物理ブロック２１により構成される。
ホスト機器（２）が利用するアドレスについての任意の一定範囲のアドレスに対する書き込みデータは、同一の論理ブロック３１に書き込まれる。
アドレスに対応付けられた論理ブロック３１にデータを追記できない場合、メモリカード１は、一時書き込み用の論理ブロック（キャッシュブロック）を取得し、キャッシュブロックにデータを書き込む。
【００１６】
なお、不揮発性メモリ１５の記憶領域は有限である。
このため、不揮発性メモリ１５の記憶領域の一部を用いるキャッシュブロックの個数も有限である。
よって、たとえばメモリカード１が保持できる有限個のキャッシュブロックが全て使用済みで、別の範囲に該当するアドレスへの書き込み時にキャッシュブロックを取得する必要が生じた場合、メモリカード１は、ガベージコレクション処理を実行する。
このガベージコレクション処理により、使用済みのキャッシュブロックが解放される。
また、キャッシュブロックを含む複数個の論理ブロックの有効なデータは、単一の論理ブロックにまとめられる。
【００１７】
［キャッシュブロックのガベージコレクション処理］
図３は、キャッシュブロック３２を開放するためのガベージコレクション処理の説明図である。
図３では、１つの論理ブロック３１−１と、対応する１つのキャッシュブロック３２とに、当該論理ブロック３１−１のアドレスに対応するデータが記憶されている。
この場合において、ガベージコレクション処理を実行すると、それらのブロックに記憶されていた有効なデータが、他の論理ブロック３１−２にコピーされ、まとめて記憶される。
【００１８】
近年の不揮発性メモリ１５の進化により、ブロックサイズが肥大化している。
このため、リアルタイム性の求められるシステムでは、物理ブロック及び論理ブロックの肥大化に起因するガベージコレクションの処理時間の長期化により、ホスト機器からの命令に対する応答制限時間を満たせない場合がある。
たとえば、ホスト機器からの書込みアクセス命令の実行中に、使用中のキャッシュブロック３２を開放するためのガベージコレクション処理を実行した場合、書込みアクセスの応答制限時間内に書込み処理を完了して応答することができないことがある。
【００１９】
図４は、図１のメモリカード１を用いたカメラシステム３の概略構成図である。
図４のカメラシステム３は、図１のメモリカード１と、ホスト機器としてのカメラ装置２とを有する。
図４のカメラ装置２は、撮像部（ＣＡＭ）４１、操作部（ＫＥＹ）４２、表示部（ＤＩＳＰ）４３、ＣＰＵ４４、メモリ（ＭＥＭ）４５、ホスト入出力部（Ｈ＿Ｉ／Ｏ）４６、およびこれらを接続するシステムバス４７を有する。
【００２０】
撮像部４１は、たとえばＣＭＯＳセンサ、ＣＣＤなどを有する。
そして、撮像部４１は、画像および音声を含む動画データなどを生成し、動画データを含む信号をＣＰＵ４４へ出力する。
【００２１】
操作部４２は、たとえば撮像ボタン、十字キーなどを有する。
そして、操作部４２は、操作されたキーに応じた信号をＣＰＵ４４へ出力する。
【００２２】
表示部４３は、たとえばＴＦＴディスプレイ、有機ＥＬディスプレイなどを有する。
そして、表示部４３は、ＣＰＵ４４から映像信号が入力され、映像信号の画像を表示する。
【００２３】
メモリ４５は、ＣＰＵ４４が実行するプログラムやデータ記憶する。
ＣＰＵ４４は、メモリ４５に記憶されているプログラムを読み込んで実行する。
これにより、ＣＰＵ４４には、カメラ装置２の制御部１６が実現される。
制御部１６は、撮像部４１、表示部４３、ホスト入出力部４６などを管理して制御する。
【００２４】
ホスト入出力部４６は、コネクタを有し、ホスト機器のホスト入出力部４６に着脱可能に接続される。
ホスト入出力部４６は、たとえばＰＣＩ  Ｅｘｐｒｅｓｓ、ＵＳＢなどの規格に準拠した通信方式により、デバイス入出力部１１とデータ通信する。
ホスト機器は、メモリカード１にアクセスし、メモリカード１にデータを書き込み、メモリカード１からデータを読み出す。
【００２５】
図１のメモリカード１は、ホスト入出力部４６のスロットまたはポートに脱着可能に装着される。
カメラ装置２のＣＰＵ４４は、たとえば動画を撮像し、撮像した動画データをメモリカード１に書込む。このとき、カメラ装置２のＣＰＵ４４は、メモリカード１に書込みアクセスする。
また、カメラ装置２は、たとえばメモリカード１から画像データを読み込み、表示部４３に表示する。このとき、カメラ装置２のＣＰＵ４４は、メモリカード１に読出しアクセスする。
【００２６】
図１のデバイス入出力部１１は、ホスト入出力部４６に接続される。
デバイス入出力部１１は、たとえばＰＣＩ  Ｅｘｐｒｅｓｓ、ＵＳＢ３．０などの高速シリアルデータ通信により、ホスト入出力部４６とデータ通信する。
たとえばホスト機器（２）により書込みアクセスされる場合、デバイス入出力部１１には、ホスト入出力部４６から、書込みコマンド、書込みデータなどが入力される。デバイス入出力部１１は、ホスト入出力部４６へ、書込み完了を応答する。
ホスト機器（２）により読出しアクセスされる場合、デバイス入出力部１１には、ホスト入出力部４６から、読出しコマンドなどが入力される。デバイス入出力部１１は、ホスト入出力部４６へ、読出しデータを出力し、読出し完了を応答する。
【００２７】
バッファＲＡＭ１４は、たとえばＳＲＡＭ、ＤＲＡＭなどである。
バッファＲＡＭ１４は、デバイス入出力部１１、不揮発性メモリ１５、プロセッサ１２に接続される。
そして、バッファＲＡＭ１４には、ホスト機器（２）が不揮発性メモリ１５に書込んだ書込みデータが、デバイス入出力部１１により書き込まれる。
バッファＲＡＭ１４に書込まれた書込みデータは、プロセッサ１２の制御の下、不揮発性メモリ１５に読み込まれる。
また、バッファＲＡＭ１４は、ホスト機器（２）が不揮発性メモリ１５から読み出す読出しデータが、プロセッサ１２の制御の下、不揮発性メモリ１５から書き込まれる。
バッファＲＡＭ１４に書込まれた読出しデータは、デバイス入出力部１１により読み出される。
【００２８】
内部ＲＡＭ１３は、たとえばＳＲＡＭ、ＤＲＡＭなどである。
内部ＲＡＭ１３は、プロセッサ１２、不揮発性メモリ１５に接続される。
そして、内部ＲＡＭ１３は、たとえば不揮発性メモリ１５の物理アドレスと、ホスト機器（２）がメモリカード１にアクセスする場合に使用する論理アドレスとの変換テーブル（論物変換テーブル）を記憶する。
【００２９】
プロセッサ１２は、デバイス入出力部１１、内部ＲＡＭ１３、バッファＲＡＭ１４、不揮発性メモリ１５に接続される。
プロセッサ１２は、ＣＰＵ４４と、メモリ４５とを有する。
プロセッサ１２のＣＰＵ４４は、メモリ４５に記憶されているファームウェアプログラムを読み込んで実行する。
これにより、プロセッサ１２は、メモリカード１の制御部１６として機能する。
【００３０】
制御部１６は、デバイス入出力部１１を通じてホスト機器と通信し、ホスト機器から受信したアクセスコマンドを解釈し、コマンドに対応する処理を実行する。
【００３１】
たとえば書込みアクセスにおいてデバイス入出力部１１に新たな書込みアドレスが入力されると、制御部１６は、書込み処理を実行する。
書込み処理において、制御部１６は、論物変換テーブルを用いて当該書込みアドレス（論理アドレス）に対応する物理アドレスを特定する。
制御部１６は、当該物理アドレスを指定し、不揮発性メモリ１５にバッファＲＡＭ１４の書込みデータを読み込ませる。
これにより、不揮発性メモリ１５は、所定のアドレスのデータとして書込みデータを記憶する。
また、制御部１６は、論物変換テーブルを更新する。
【００３２】
また、読出しアクセスにおいてデバイス入出力部１１に新たな読出しアドレスが入力されると、制御部１６は、読出し処理を実行する。
読出し処理において、制御部１６は、論物変換テーブルを用いて当該読出しアドレス（論理アドレス）に対応する最新の物理アドレスを特定する。
制御部１６は、当該物理アドレスを指定し、不揮発性メモリ１５に当該物理アドレスの最新の読出しデータをバッファＲＡＭ１４に書込ませる。
デバイス入出力部１１は、バッファＲＡＭ１４から当該読出しデータを読み込み、ホスト機器（２）へ出力する。
【００３３】
また、制御部１６は、不揮発性メモリ１５の記憶領域の一部を使用して複数のキャッシュブロック３２を管理する。
そして、新たな書込みデータの書き込み処理中に必要なキャッシュブロック３２を取得することができない場合、制御部１６は、使用中のキャッシュブロック３２を開放するためのガベージコレクション処理を実行する。
使用中のキャッシュブロック３２を開放するためのガベージコレクション処理では、制御部１６は、当該キャッシュブロック３２の有効なデータを、対応する論理ブロック３１の有効なデータと統合し、他の論理ブロック３１−２に書込み、論物変換テーブルを更新する。
また、制御部１６は、処理を終えたキャッシュブロック３２および論理ブロック３１を初期化する。
これにより、キャッシュブロック３２が開放され、新たなデータの書込みが可能なキャッシュブロック３２が生成される。
制御部１６は、このキャッシュブロック３２を取得し、新たな書込みデータを書き込む。
【００３４】
次に、第１実施形態のメモリカード１の動作を説明する。
ここでは、ホスト機器（２）がメモリカード１に書込みアクセスする場合を例に説明する。
【００３５】
［書込みアクセス中のキャッシュブロックのガベージコレクション処理］
図５は、第１実施形態に係るデータ書込み処理の流れを示すシーケンスチャートである。
図５には、ホスト機器（２）、メモリカード１の制御部１６、不揮発性メモリ１５が図示されている。また、図５において、時間は上から下に流れている。
なお、図５は、キャッシュブロック３２を開放するために、４ページ分のガベージコレクション処理を、２回のガベージコレクション処理ＧＣ１，ＧＣ２に分割して処理する場合の例である。
【００３６】
メモリカード１に書込みアクセスする場合、ホスト機器（２）のＣＰＵ４４は、書込みコマンドをメモリカード１へ出力する（ステップＳＴ１）。
書込みコマンドは、ホスト入出力部４６からデバイス入出力部１１へ送信され、プロセッサ１２に実現された制御部１６に受信される。
【００３７】
書込みコマンドを受信すると、制御部１６は、ホスト機器（２）へデータリクエストを送信する（ステップＳＴ２）。
データリクエストは、デバイス入出力部１１からホスト入出力部４６へ送信され、ホスト機器（２）のＣＰＵ４４に受信される。
ホスト機器（２）は、書込みデータをメモリカード１へ送信する（ステップＳＴ３）。
書込みデータは、ホスト入出力部４６からデバイス入出力部１１へ送信され、バッファＲＡＭ１４に書込まれる。
【００３８】
バッファＲＡＭ１４に書込みデータが書込まれると、制御部１６は、書込み処理を開始する。
制御部１６は、論物変換テーブルを参照し、不揮発性メモリ１５に書き込み先の物理アドレスを指定する（ステップＳＴ４）。
このとき、不揮発性メモリ１５の書き込み先の物理アドレスに未使用の初期化されたままの物理ページ２２が存在しない場合、制御部１６は、当該論理アドレスに対応するキャッシュブロック３２を取得し、キャッシュブロック３２の物理アドレスを指定する。
不揮発性メモリ１５は、バッファＲＡＭ１４から書込みデータを読み込み、指定された物理アドレスに書込みデータを記憶する（ステップＳＴ５）。
不揮発性メモリ１５は、書込みデータの保存処理が完了すると、制御部１６に書込み完了信号を出力する（ステップＳＴ６）。
【００３９】
最初に取得した書込みデータについての不揮発性メモリ１５への書込みが完了すると、制御部１６は、次の書込みデータのリクエストをホスト機器（２）へ送信する（ステップＳＴ７）。
ホスト機器（２）は、次の書込みデータをメモリカード１へ送信する（ステップＳＴ８）。
書込みデータは、バッファＲＡＭ１４に書込まれる。
制御部１６は、次の書込みデータの書き込み先として、たとえばキャッシュブロック３２の物理アドレスを指定する（ステップＳＴ９）。
不揮発性メモリ１５は、バッファＲＡＭ１４から書込みデータを読み込んで、指定されたキャッシュブロック３２に書込みデータを記憶する（ステップＳＴ１０）。
また、不揮発性メモリ１５は、制御部１６に書込み完了信号を出力する（ステップＳＴ１１）。
【００４０】
そして、図５の例では、この２回目の書込みデータの書込み時点において、未使用のキャッシュブロック３２が無くなる。
この場合、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を実行する。
制御部１６は、たとえばキャッシュブロック３２の規定数をオーバーした場合に、ホスト機器（２）の書込みアクセス期間中に、キャッシュブロック３２を含む複数のブロックについてのガベージコレクション処理を実行する。
【００４１】
キャッシュブロック３２を開放するためのガベージコレクション処理において、制御部１６は、まず、分割された１回目のガベージコレクション処理ＧＣ１を実行する。
この分割された１回目のガベージコレクション処理では、キャッシュブロック３２を含む複数のブロックの有効なデータの一部のデータについてのコピー処理などを実行する。
具体的には、制御部１６は、キャッシュブロック３２および対応する論理ブロック３１のデータのうちで有効な１ページ分のデータについての内部処理を指示する（ステップＳＴ１２）。
不揮発性メモリ１５は、指定されたデータを、新たな未使用の他の論理ブロック３１−２にコピーする。また、この処理により、キャッシュブロック３２または論理ブロック３１についての有効データをすべてコピーし終えた場合には、不揮発性メモリ１５は、当該キャッシュブロック３２または論理ブロック３１を初期化する（ステップＳＴ１３）。
不揮発性メモリ１５は、以上の処理を終えると、制御部１６に完了信号を出力する（ステップＳＴ１４）。
制御部１６は、新たに有効なデータを記憶する当該他の論理ブロック３１−２を、論物変換テーブルに登録する。
【００４２】
キャッシュブロック３２および論理ブロック３１についての１ページ目のコピー処理を終えると、制御部１６は、未処理の次の有効ページのコピー処理を開始する。
制御部１６は、有効な２ページ目のデータについての内部処理を指示する（ステップＳＴ１５）。
不揮発性メモリ１５は、有効な２ページ目のコピー処理および必要な初期化処理を実行し（ステップＳＴ１６）、制御部１６に完了信号を出力する（ステップＳＴ１７）。
制御部１６は、論物変換テーブルを更新する。
２ページ分のキャッシュブロック３２のガベージコレクション処理を終えると、制御部１６は、分割された１回目のガベージコレクション処理を中断する。
そして、制御部１６は、ホスト機器（２）へ書込み完了を送信する（ステップＳＴ１８）。
【００４３】
ホスト機器（２）のＣＰＵ４４は、メモリカード１から書込み完了の応答を受信する。
これにより、ホスト機器（２）は、メモリカード１へ送信した書込みデータの完了が正常に終了したと判断できる。
【００４４】
ホスト機器（２）へ書込み完了を送信した後、制御部１６は、分割された２回目のガベージコレクション処理ＧＣ２を実行する。これにより、ガベージコレクション処理が再開される。
この分割された２回目のガベージコレクション処理では、キャッシュブロック３２を含む複数のブロックについての、残りのすべての有効データのコピー処理などを実行する。
具体的には、制御部１６は、キャッシュブロック３２および論理ブロック３１についての有効な３ページ目のデータについての内部処理を指示する（ステップＳＴ１９）。
不揮発性メモリ１５は、有効な３ページ目のコピー処理および必要な初期化処理を実行し（ステップＳＴ２０）、制御部１６に完了信号を出力する（ステップＳＴ２１）。
制御部１６は、論物変換テーブルを更新する。
次に、制御部１６は、キャッシュブロック３２および論理ブロック３１についての有効な４ページ目のデータについての内部処理を指示する（ステップＳＴ２２）。
不揮発性メモリ１５は、有効な４ページ目のコピー処理および必要な初期化処理を実行し（ステップＳＴ２３）、制御部１６に完了信号を出力する（ステップＳＴ２４）。
制御部１６は、論物変換テーブルを更新する。
【００４５】
以上の複数に分割されたガベージコレクション処理により、制御部１６は、ホスト機器（２）の書込みアクセス期間中に、キャッシュブロック３２を開放するためのガベージコレクション処理を実行する。
これにより、複数のキャッシュブロック３２は、初期化され、開放される。
【００４６】
［比較例での書込みアクセス中のキャッシュブロックのガベージコレクション処理］
次に、比較例のガベージコレクション処理を説明する。
なお、比較例の説明では、説明の便宜のために、第１実施形態と同一の符号及び名称を使用する。
図６は、比較例のデータ書込み処理の流れを示すシーケンスチャートである。
図６には、ホスト機器（２）、メモリカード１の制御部１６、不揮発性メモリ１５が図示されている。また、図６において、時間は上から下に流れている。
なお、図６は、図５と同様に、キャッシュブロック３２を開放するために、４ページ分のガベージコレクション処理を、１回のガベージコレクション処理ＧＣにより処理する場合の例である。
【００４７】
図６の比較例では、制御部１６は、ホスト機器（２）から書込みコマンドを受信すると、データをリクエストして読み込む。
また、不揮発性メモリ１５は、バッファＲＡＭ１４に書込まれた書込みデータを読み込んで記憶する（ステップＳＴ１〜ＳＴ１１）。
また、２番目の書込み処理により未使用のキャッシュブロック３２が無くなると、制御部１６は、ホスト機器（２）の書込みアクセス期間中に、キャッシュブロック３２を開放するためのガベージコレクション処理を実行する。
制御部１６は、キャッシュブロック３２および対応する論理ブロック３１における４ページの有効なデータのコピー処理を実行する（ステップＳＴ１２〜ＳＴ２４）。
また、制御部１６は、キャッシュブロック３２および対応する論理ブロック３１を初期化し、キャッシュブロック３２を開放する。
その後、制御部１６は、ホスト機器（２）へ書込み完了を送信する（ステップＳＴ３１）。
【００４８】
これに対して、ホスト機器（２）では、図６のステップＳＴ３２のタイミングにおいて、書込みアクセスの応答制限時間がタイムアウトしている。
よって、メモリカード１は、ホスト機器（２）がタイムアウトする前に、ホスト機器（２）へ書込み完了を送信することができない。
【００４９】
このように第１実施形態では、ホスト機器（２）がタイムアウトする前に、ホスト機器（２）へ書込み完了を送信することができる。
よって、第１実施形態では、図４に示すような動画をリアルタイムにメモリカード１へ保存するシステムにおいて、書込みアクセス期間中のキャッシュブロック３２を開放するためのガベージコレクション処理によってタイムアウトが生じることはない。
すなわち、第１実施形態では、ＮＡＮＤ型のフラッシュメモリなどの不揮発性の半導体メモリ４５を動画の記憶部などとして、リアルタイムシステムを実現できる。
【００５０】
以上のように、第１実施形態では、ホスト機器（２）のアクセスに基づくメモリ４５へのアクセス中での、キャッシュブロック３２を開放するためのガベージコレクション処理は、複数回のガベージコレクション処理に分けて実行される。
また、制御部１６は、当該複数回に分割されたガベージコレクション処理の間に、ホスト機器（２）のアクセスに対して処理完了を応答する。
よって、第１実施形態では、ホスト機器（２）のアクセス中にキャッシュブロック３２を開放するためのガベージコレクション処理を実行したとしても、メモリカード１からホスト機器（２）へ適切なタイミングで処理完了を応答できる。
その結果、第１実施形態では、ホスト機器（２）においてアクセスのタイムアウトが発生しなくなる。
【００５１】
＜第２実施形態＞
［メモリカードおよびホスト機器の構成］
第２実施形態に係るメモリカード１およびホスト機器（２）の構成は、図１から図４に示す第１実施形態に係るメモリカード１と同様である。
このため、第２実施形態のメモリカード１およびホスト機器（２）の各部には、第１実施形態と同一の名称および符号を使用して説明する。
ただし、第２実施形態の制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理の内容が、第１実施形態とは異なる。
具体的には、第２実施形態では、分割した複数のガベージコレクション処理の途中で処理中を応答し、すべてのガベージコレクション処理の完了後に書き込み完了を応答する。
なお、メモリカード１は、分割した複数のガベージコレクション処理の途中で書き込み完了を応答し、すべてのガベージコレクション処理の完了後に別の応答をしてもよい。各タイミングでの応答内容は、使用するシステムに応じて適宜変更可能である。
【００５２】
［書込みアクセス中のキャッシュブロックのガベージコレクション処理］
次に、第２実施形態のメモリカード１の動作を説明する。
ここでは、ホスト機器（２）がメモリカード１に書込みアクセスする場合を例に説明する。
図７は、第２実施形態に係るデータ書込み処理の流れを示すシーケンスチャートである。
図７には、ホスト機器（２）、メモリカード１の制御部１６、不揮発性メモリ１５が図示されている。また、図７において、時間は上から下に流れている。
なお、図７は、キャッシュブロック３２を開放するために、４ページ分のガベージコレクション処理を、４回のガベージコレクション処理ＧＣ１〜ＧＣ４に分割して処理する場合の例である。
【００５３】
図７では、制御部１６は、ホスト機器（２）から書込みコマンドを受信すると、データをリクエストして読み込む。また、不揮発性メモリ１５は、バッファＲＡＭ１４に書込まれた書込みデータを読み込んで記憶する（ステップＳＴ１〜ＳＴ１１）。
また、２番目の書込み処理により未使用のキャッシュブロック３２が無くなると、制御部１６は、ホスト機器（２）の書込みアクセス期間中に、キャッシュブロック３２を開放するためのガベージコレクション処理を実行する。
【００５４】
キャッシュブロック３２を開放するためのガベージコレクション処理において、制御部１６は、まず、キャッシュブロック３２および論理ブロック３１についての１ページ目の有効なデータの内部処理を指示する（ステップＳＴ１２）。
不揮発性メモリ１５は、１ページ目の有効なデータのコピー処理および必要な初期化処理を実行し（ステップＳＴ１３）、制御部１６に完了信号を出力する（ステップＳＴ１４）。
制御部１６は、論物変換テーブルを更新する。
【００５５】
１回目のガベージコレクション処理を終えると、制御部１６は、ガベージコレクション処理を中断する。
そして、制御部１６は、ホスト機器（２）へ書込み処理中を送信する（ステップＳＴ４１）。
【００５６】
ホスト機器（２）へ書込み処理中を送信した後、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を再開する。
制御部１６は、２回目のガベージコレクション処理を実行する（ステップＳＴ１５〜ＳＴ１７）。
２回目のガベージコレクション処理を終えると、制御部１６は、ガベージコレクション処理を中断する。
そして、制御部１６は、ホスト機器（２）へ書込み処理中を送信する（ステップＳＴ４２）。
【００５７】
ホスト機器（２）へ書込み処理中を送信した後、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を再開する。
制御部１６は、３回目のガベージコレクション処理を実行する。
３回目のガベージコレクション処理を終えると、制御部１６は、ガベージコレクション処理を中断する。
そして、制御部１６は、ホスト機器（２）へ書込み処理中を送信する。
【００５８】
ホスト機器（２）へ書込み処理中を送信した後、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を再開する。
制御部１６は、４回目のガベージコレクション処理を実行する（ステップＳＴ２２〜ＳＴ２４）。
４回目の最後のガベージコレクション処理を終えると、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を終了する。
その後、制御部１６は、ホスト機器（２）へ書込み完了を送信する（ステップＳＴ４３）。
【００５９】
以上の複数に分割されたガベージコレクション処理により、制御部１６は、複数のキャッシュブロック３２についてのガベージコレクション処理を実行する。
これにより、複数のキャッシュブロック３２は、初期化され、開放される。
【００６０】
以上のように、第２実施形態では、ホスト機器（２）のアクセスに基づくメモリ４５へのアクセス中での、キャッシュブロック３２を開放するためのガベージコレクション処理は、複数回のガベージコレクション処理に分けて実行される。
また、制御部１６は、当該複数回に分割されたガベージコレクション処理の間に、ホスト機器（２）のアクセスに対して、処理中の応答および書込み完了を応答する。
よって、第２実施形態では、ホスト機器（２）のアクセス中にキャッシュブロック３２を開放するためのガベージコレクション処理を実行したとしても、ホスト機器（２）は、メモリカード１からの応答が無い状態に放置されなくなる。
その結果、第２実施形態では、ホスト機器（２）おいてアクセスのタイムアウトが発生しなくなる。
【００６１】
上記各実施形態は、本発明の好適な実施形態の例であるが、本発明はこれに限定されるものではなく、発明の要旨を逸脱しない範囲において種々の変形または変更が可能である。
【００６２】
たとえば上記実施形態では、制御部１６は、キャッシュブロック３２を開放するためのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行する。
この他にも例えば、制御部１６は、複数のキャッシュブロック３２を開放するためのガベージコレクション処理を、複数回のガベージコレクション処理に分割して実行してもよい。
【００６３】
上記実施形態では、制御部１６は、ホスト機器（２）の書込みアクセス時に、複数に分割されたガベージコレクション処理を実行している。
この他にも例えば、制御部１６は、ホスト機器（２）の読出しアクセス時に、複数に分割されたガベージコレクション処理を実行してもよい。
【００６４】
上記実施形態では、１個のプロセッサ１２が、ホスト機器（２）のアクセスに基づく制御処理と、ガベージコレクション処理とを実行する。
この他にも例えば、ホスト機器（２）のアクセスに基づく制御処理と、ガベージコレクション処理とを別々のプロセッサ１２により実行してもよい。
【００６５】
上記実施形態では、不揮発性メモリ１５として、ＮＡＮＤ型のフラッシュメモリを使用している。
この他にも例えば、不揮発性メモリ１５として、ＮＯＲ型のフラッシュメモリを使用してもよい。
【００６６】
上記実施形態のメモリカード１は、カード型の記憶装置である。
この他にも例えば、記憶装置は、ＵＳＢメモリ、装置内に内蔵されるＳＳＤ、ｅＭＭＣなどであってもよい。
【００６７】
上記実施形態のホスト機器は、カメラ装置２である。
この他にも例えば、ホスト機器は、コンピュータ装置、携帯電話機、電子機器、ＰＤＡ、ナビゲーション装置、再生装置などであってもよい。
【００６８】
上記実施形態のデバイス入出力部１１は、ホスト入出力部４６に接続され、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＵＳＢ３．０などの高速シリアルデータ通信によりホスト入出力部４６とデータ通信する。
この他にも例えばデバイス入出力部１１は、ホスト入出力部４６と短距離無線通信などによりデータ通信してもよい。
【符号の説明】
【００６９】
１…メモリカード（記憶装置）、２…カメラ装置（ホスト機器）、３…カメラシステム（記憶システム）、１１…デバイス入出力部（入出力部）、１５…不揮発性メモリ（メモリ）、１６…制御部、３２…キャッシュブロック（キャッシュ領域）
【図１】
2011192240.tif 000003
【図２】
2011192240.tif 000004
【図３】
2011192240.tif 000005
【図４】
2011192240.tif 000006
【図５】
2011192240.tif 000007
【図６】
2011192240.tif 000008
【図７】
2011192240.tif 000009