(57)【特許請求の範囲】
【請求項１】
複数の消去単位領域を有する記憶領域を備える半導体メモリと、
前記半導体メモリを制御するメモリ制御装置と
を備え、
前記記憶領域は、所定データが複数に分割されて得られる複数の分割データを記憶し、
前記複数の分割データは、それぞれが圧縮された分割データである複数の圧縮分割データを含み、
前記複数の圧縮分割データのそれぞれのデータ量は、前記消去単位領域の記憶容量以下であり、
前記メモリ制御装置は、
前記半導体メモリの前記記憶領域に記憶される前記複数の圧縮分割データを伸張する伸張部と、
前記伸張部で得られる伸張データを、前記記憶領域に書き込む制御部と
を備え、
前記制御部は、前記消去単位領域内のすべての前記圧縮分割データが伸張された場合、当該消去単位領域内のデータを消去して、当該消去単位領域を空き領域として使用する、記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記複数の圧縮分割データに含まれる第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、
前記第１消去単位領域は、前記複数の分割データのうち前記第１圧縮分割データのみを記憶する、記憶装置。
【請求項３】
請求項２に記載の記憶装置であって、
前記複数の圧縮分割データは、前記複数の消去単位領域に含まれる、前記第１消去単位領域を含む複数の第２消去単位領域にそれぞれ記憶される、記憶装置。
【請求項４】
請求項１に記載の記憶装置であって、
前記複数の圧縮分割データに含まれる複数の第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、
前記第１消去単位領域は、前記複数の分割データのうち前記複数の第１圧縮分割データのみを記憶する、記憶装置。
【請求項５】
請求項２乃至請求項４のいずれか一つに記載の記憶装置であって、
前記第１消去単位領域の全領域は、前記圧縮分割データで占められている、記憶装置。
【請求項６】
請求項２乃至請求項４のいずれか一つに記載の記憶装置であって、
前記第１消去単位領域において、前記圧縮分割データで占められていない部分領域の全領域は、ランダムデータで占められている、記憶装置。
【請求項７】
請求項１乃至請求項６のいずれか一つに記載の記憶装置であって、
前記複数の圧縮分割データのそれぞれは、データ量が前記消去単位領域の記憶容量に一致する分割データが圧縮されて得られる、記憶装置。
【請求項８】
請求項１乃至請求項７のいずれか一つに記載の記憶装置であって、
前記複数の分割データのうち、それを圧縮したときの圧縮率がしきい値よりも小さい分割データは圧縮されずに前記記憶領域に記憶され、
前記複数の分割データのうち、それを圧縮したときの圧縮率が前記しきい値よりも大きい分割データは圧縮されて前記圧縮分割データとして前記記憶領域に記憶される、記憶装置。
【請求項９】
請求項１乃至請求項８のいずれか一つに記載の記憶装置であって、
前記複数の分割データのうち、前記所定データにおいて初期に使用されるデータは圧縮されずに前記記憶領域に記憶される、記憶装置。
【請求項１０】
請求項１乃至請求項９のいずれか一つに記載の記憶装置であって、
前記制御部は、前記記憶領域内でのデータを管理する管理情報に基づいて、前記記憶領域に対するデータ書き込み及びデータ読み出しを行い、
前記制御部は、前記消去単位領域内のすべての前記圧縮分割データが伸張されて得られる伸張データを前記記憶領域に書き込んだ後に、前記管理情報を更新し、
前記制御部は、前記消去単位領域内のすべての前記圧縮分割データが伸張されて得られる伸張データを前記記憶領域に書き込んだ後に、当該消去単位領域内のデータを消去する、記憶装置。
【請求項１１】
請求項１乃至請求項１０のいずれか一つに記載の記憶装置であって、
前記メモリ制御装置を制御する上位装置が前記メモリ制御装置にアクセスしていない間に、前記伸張部が前記圧縮分割データを伸張して前記制御部が伸張された前記圧縮分割データを前記記憶領域に書き込む、記憶装置。
【請求項１２】
請求項１乃至請求項１１のいずれか一つに記載の記憶装置であって、
前記メモリ制御装置を制御する上位装置は、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知し、
前記伸張部は、前記伸張優先度に応じて前記圧縮分割データを伸張する、記憶装置。
【請求項１３】
請求項１２に記載の記憶装置の前記メモリ制御装置を制御する上位装置であって、
前記上位装置は、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知する、上位装置。
【請求項１４】
請求項１乃至請求項１２のいずれか一つに記載の記憶装置と、
前記記憶装置の前記メモリ制御装置を制御する上位装置と
を備える、データ処理システム。
【請求項１５】
請求項１乃至請求項１２のいずれか一つに記載の記憶装置にデータを書き込むデータ書込み装置であって、
前記データ書き込み装置は、前記記憶装置の前記メモリ制御装置を通じて、前記記憶装置の前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む、データ書き込み装置。
【請求項１６】
請求項１乃至請求項１２のいずれか一つに記載の記憶装置にデータを書き込むためのデータ書き込みプログラムであって、
コンピュータ装置を、前記記憶装置の前記メモリ制御装置を通じて、前記記憶装置の前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込むデータ書き込み装置として機能させるためのデータ書き込みプログラム。
【請求項１７】
請求項１２に記載のメモリ制御装置を制御するコンピュータ装置を、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知する通知部として機能させるための制御プログラム。
【請求項１８】
複数の消去単位領域を有する記憶領域を備え、
前記記憶領域は、所定データが複数に分割されて得られる複数の分割データを記憶し、
前記複数の分割データは、それぞれが圧縮された分割データである複数の圧縮分割データを含み、
前記複数の圧縮分割データのそれぞれのデータ量は、前記消去単位領域の記憶容量以下であり、
前記複数の圧縮分割データに含まれる少なくとも一つの第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、
前記複数の圧縮分割データは、前記複数の消去単位領域に含まれる、前記第１消去単位領域と隣接する第２消去単位領域と、前記第１消去単位領域とにまたがって記憶される第２圧縮分割データを含み、
前記第１消去単位領域は、前記第２圧縮分割データの一部及び前記少なくとも一つの第１圧縮分割データのみを記憶し、
前記第１消去単位領域の全領域は、前記圧縮分割データで占められている、半導体メモリ。
【請求項１９】
複数の消去単位領域を有する記憶領域を備え、
前記記憶領域は、所定データが複数に分割されて得られる複数の分割データを記憶し、
前記複数の分割データは、それぞれが圧縮された分割データである複数の圧縮分割データを含み、
前記複数の圧縮分割データのそれぞれのデータ量は、前記消去単位領域の記憶容量以下であり、
前記複数の圧縮分割データに含まれる少なくとも一つの第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、
前記複数の圧縮分割データは、
前記複数の消去単位領域に含まれる、前記第１消去単位領域の一方端と隣接する第２消去単位領域と、前記第１消去単位領域とにまたがって記憶される第２圧縮分割データと、
前記複数の消去単位領域に含まれる、前記第１消去単位領域の他方端と隣接する第３消去単位領域と、前記第１消去単位領域とにまたがって記憶される第３圧縮分割データと
を含み、
前記第１消去単位領域は、前記第２圧縮分割データの一部、前記第３圧縮分割データの一部及び前記少なくとも一つの第１圧縮分割データのみを記憶し、
前記第１消去単位領域の全領域は、前記圧縮分割データで占められている、半導体メモリ。
【請求項２０】
請求項１８及び請求項１９のいずれか一つに記載の半導体メモリにデータを書き込むデータ書き込み装置であって、
前記データ書き込み装置は、前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む、データ書き込み装置。
【請求項２１】
請求項１８及び請求項１９のいずれか一つに記載の半導体メモリにデータを書き込むためのデータ書き込みプログラムであって、
コンピュータ装置を、前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込むデータ書き込み装置として機能させるためのデータ書き込みプログラム。
【請求項２２】
請求項１８及び請求項１９のいずれか一つに記載の半導体メモリにデータを書き込むデータ書き込み方法であって、
前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む工程を備える、データ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリに関する。
【背景技術】
【０００２】
特許文献１及び２に記載されているように、従来から半導体メモリに関して様々な技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３３９２７１号公報
【特許文献２】特表２０１１−５３０７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、半導体メモリのデータ書き込み時間は短い方が好ましい。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、半導体メモリのデータ書き込み時間を短くすることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る半導体メモリの一態様は、複数の消去単位領域を有する記憶領域を備え、前記記憶領域は、所定データが複数に分割されて得られる複数の分割データを記憶し、前記複数の分割データは、それぞれが圧縮された分割データである複数の圧縮分割データを含み、前記複数の圧縮分割データのそれぞれのデータ量は、前記消去単位領域の記憶容量以下である。
【０００７】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データに含まれる第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、前記第１消去単位領域は、前記複数の分割データのうち前記第１圧縮分割データのみを記憶する。
【０００８】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データは、前記複数の消去単位領域に含まれる、前記第１消去単位領域を含む複数の第２消去単位領域にそれぞれ記憶される。
【０００９】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データに含まれる複数の第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、前記第１消去単位領域は、前記複数の分割データのうち前記複数の第１圧縮分割データのみを記憶する。
【００１０】
また、本発明に係る半導体メモリの一態様では、前記第１消去単位領域の全領域は、前記圧縮分割データで占められている。
【００１１】
また、本発明に係る半導体メモリの一態様では、前記第１消去単位領域において、前記圧縮分割データで占められていない部分領域の全領域は、ランダムデータで占められている。
【００１２】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データに含まれる少なくとも一つの第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、前記複数の圧縮分割データは、前記複数の消去単位領域に含まれる、前記第１消去単位領域と隣接する第２消去単位領域と、前記第１消去単位領域とにまたがって記憶される第２圧縮分割データを含み、前記第１消去単位領域は、前記第２圧縮分割データの一部及び前記少なくとも一つの第１圧縮分割データのみを記憶し、前記第１消去単位領域の全領域は、前記圧縮分割データで占められている。
【００１３】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データに含まれる少なくとも一つの第１圧縮分割データは、前記複数の消去単位領域に含まれる第１消去単位領域のみに記憶され、前記複数の圧縮分割データは、前記複数の消去単位領域に含まれる、前記第１消去単位領域の一方端と隣接する第２消去単位領域と、前記第１消去単位領域とにまたがって記憶される第２圧縮分割データと、前記複数の消去単位領域に含まれる、前記第１消去単位領域の他方端と隣接する第３消去単位領域と、前記第１消去単位領域とにまたがって記憶される第３圧縮分割データとを含み、前記第１消去単位領域は、前記第２圧縮分割データの一部、前記第３圧縮分割データの一部及び前記少なくとも一つの第１圧縮分割データのみを記憶し、前記第１消去単位領域の全領域は、前記圧縮分割データで占められている。
【００１４】
また、本発明に係る半導体メモリの一態様では、前記複数の圧縮分割データのそれぞれは、データ量が前記消去単位領域の記憶容量に一致する分割データが圧縮されて得られる。
【００１５】
また、本発明に係る半導体メモリの一態様では、前記複数の分割データのうち、それを圧縮したときの圧縮率がしきい値よりも小さい分割データは圧縮されずに前記記憶領域に記憶され、前記複数の分割データのうち、それを圧縮したときの圧縮率が前記しきい値よりも大きい分割データは圧縮されて前記圧縮分割データとして前記記憶領域に記憶される。
【００１６】
また、本発明に係る半導体メモリの一態様では、前記複数の分割データのうち、前記所定データにおいて初期に使用されるデータは圧縮されずに前記記憶領域に記憶される。
【００１７】
また、本発明に係るメモリ制御装置の一態様は、上記の半導体メモリを制御するメモリ制御装置であって、前記半導体メモリの前記記憶領域に記憶される前記複数の圧縮分割データを伸張する伸張部と、前記伸張部で得られる伸張データを、前記記憶領域に書き込む制御部とを備え、前記制御部は、前記消去単位領域内のすべての前記前記圧縮分割データが伸張された場合、当該消去単位領域内のデータを消去して、当該消去単位領域を空き領域として使用する。
【００１８】
また、本発明に係るメモリ制御装置の一態様では、前記制御部は、前記記憶領域内でのデータを管理する管理情報に基づいて、前記記憶領域に対するデータ書き込み及びデータ読み出しを行い、前記制御部は、前記消去単位領域内のすべての前記圧縮分割データが伸張されて得られる伸張データを前記記憶領域に書き込んだ後に、前記管理情報を更新し、前記制御部は、前記消去単位領域内のすべての前記圧縮分割データが伸張されて得られる伸張データを前記記憶領域に書き込んだ後に、当該消去単位領域内のデータを消去する。
【００１９】
また、本発明に係るメモリ制御装置の一態様では、前記メモリ制御装置を制御する上位装置が前記メモリ制御装置にアクセスしていない間に、前記伸張部が前記圧縮分割データを伸張して前記制御部が伸張された前記圧縮分割データを前記記憶領域に書き込む。
【００２０】
また、本発明に係るメモリ制御装置の一態様では、前記メモリ制御装置を制御する上位装置は、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知し、前記伸張部は、前記伸張優先度に応じて前記圧縮分割データを伸張する。
【００２１】
また、本発明に係る記憶装置の一態様は、上記のメモリ制御装置と、前記メモリ制御装置に制御される半導体メモリとを備える。
【００２２】
また、本発明に係る上位装置の一態様は、前記メモリ制御装置を制御する上位装置であって、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知する。
【００２３】
また、本発明に係るデータ処理システムの一態様は、上記のメモリ制御装置と、前記メモリ制御装置に制御される半導体メモリと、前記メモリ制御装置を制御する上位装置とを備える。
【００２４】
また、本発明に係るデータ書き込み装置の一態様は、上記の半導体メモリにデータを書き込むデータ書き込み装置であって、前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む。
【００２５】
また、本発明に係るデータ書き込みプログラムの一態様は、上記の半導体メモリにデータを書き込むためのデータ書き込みプログラムであって、コンピュータ装置を、前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込むデータ書き込み装置として機能させるためのものである。
【００２６】
また、本発明に係るデータ書き込み装置の一態様は、上記の記憶装置にデータを書き込むデータ書込み装置であって、前記記憶装置の前記メモリ制御装置を通じて、前記記憶装置の前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む。
【００２７】
また、本発明に係るデータ書き込みプログラムの一態様は、上記の記憶装置にデータを書き込むためのデータ書き込みプログラムであって、コンピュータ装置を、前記記憶装置の前記メモリ制御装置を通じて、前記記憶装置の前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込むデータ書き込み装置として機能させるためのものである。
【００２８】
また、本発明に係る制御プログラムの一態様は、上記のメモリ制御装置を制御するコンピュータ装置を、前記圧縮分割データの伸張優先度を前記メモリ制御装置に通知する通知部として機能させるためのものである。
【００２９】
また、本発明に係るデータ書き込み方法の一態様は、上記の半導体メモリにデータを書き込むデータ書き込み方法であって、前記半導体メモリの前記記憶領域に対して前記複数の分割データを書き込む工程を備える。
【発明の効果】
【００３０】
本発明の一態様によれば、半導体メモリのデータ書き込み時間が短くなる。
【図面の簡単な説明】
【００３１】
【図１】データ処理システムの構成を示す図である。
【図２】記憶領域の構成を示す図である。
【図３】アプリケーションデータを記憶する方法を説明するための図である。
【図４】記憶領域がデータを記憶する様子を示す図である。
【図５】記憶領域にデータを書き込むコンピュータ装置の構成を示す図である。
【図６】記憶装置の動作を示すフローチャートである。
【図７】記憶領域がデータを記憶する様子を示す図である。
【図８】記憶領域がデータを記憶する様子を示す図である。
【図９】記憶領域がデータを記憶する様子を示す図である。
【図１０】記憶領域がデータを記憶する様子を示す図である。
【図１１】データを記憶するブロックを示す図である。
【図１２】データを記憶するブロックを示す図である。
【図１３】記憶領域がデータを記憶する様子を示す図である。
【図１４】記憶領域がデータを記憶する様子を示す図である。
【図１５】記憶領域がデータを記憶する様子を示す図である。
【図１６】記憶領域がデータを記憶する様子を示す図である。
【図１７】記憶領域がデータを記憶する様子を示す図である。
【図１８】記憶領域がデータを記憶する様子を示す図である。
【図１９】記憶領域がデータを記憶する様子を示す図である。
【図２０】記憶領域がデータを記憶する様子を示す図である。
【発明を実施するための形態】
【００３２】
＜データ処理システムの全体構成＞
図１はデータ処理システム１の構成を示す図である。データ処理システム１は、ホスト装置２と、記憶装置３とを備えている。ホスト装置２は、記憶装置３を制御する上位装置である。記憶装置３は、半導体メモリの一種であるフラッシュメモリ５を有する。
【００３３】
ホスト装置２は、データ処理システム１全体の動作を統括的に管理する。ホスト装置２は、データ処理システム１の本体装置であると言える。ホスト装置２は、記憶装置３からデータを読み出したり、記憶装置３にデータを書き込んだりする。具体的には、ホスト装置２が記憶装置３に対してデータ送信要求（「送信要求」及び「データ読み出し要求」とも呼ばれる）を出力すると、それを受け取った記憶装置３は、フラッシュメモリ５内のデータを読み出してホスト装置２に出力する。また、ホスト装置２が記憶装置３に対してデータ記録要求（「データ書き込み要求」とも呼ばれる）を出力すると、それを受け取った記憶装置３は、ホスト装置２からのデータをフラッシュメモリ５内に書き込む。
【００３４】
記憶装置３の形状は、例えば、カード型となっている。カード型の記憶装置３がホスト装置２に対して装着されることによって、記憶装置３とホスト装置２とが接続される。記憶装置３はホスト装置２に対して着脱可能となっている。なお、記憶装置３とホスト装置２との接続方法はこれに限られない。また、記憶装置３の形状はカード型に限られない。
【００３５】
フラッシュメモリ５はアプリケーションデータ８０を記憶している。後述するように、アプリケーションデータ８０は圧縮された状態でフラッシュメモリ５に記憶される。ホスト装置２は、フラッシュメモリ５内のアプリケーションデータ８０を記憶装置３から読み出し、読み出したアプリケーションデータ８０を処理する。
【００３６】
ここで、アプリケーションデータは、アプリケーションプログラム（アプリケーションソフトウェア）と、当該アプリケーションプログラムの実行で使用される各種データ（当該アプリケーションプログラムに付随する各種データ）とを含む。言い換えれば、アプリケーションデータは、アプリケーションプログラムと、当該アプリケーションプログラムの実行によって実現される所定の処理の進行で用いられる各種データとを含んでいる。アプリケーションデータ８０が、例えばゲームデータである場合には、アプリケーションデータ８０には、ゲームプログラムと、当該ゲームプログラムの実行によって実現されるゲームの進行で用いられる、キャラクタデータ及びイメージデータ等の各種データとが含まれる。アプリケーションデータ８０が、ゲームデータである場合には、記憶装置３が例えばゲームカートリッジとして機能する。そして、ホスト装置２がゲーム機本体として機能する。ホスト装置２が、記憶装置３から読み出したゲームプログラムを実行することによって、データ処理システム１ではゲームが進行する。
【００３７】
＜ホスト装置の構成＞
ホスト装置２は、一種のコンピュータ装置であって、制御部２０、記憶部２１及びＩ／Ｆ回路２２を備える。制御部２０は、ＣＰＵ（Central Processing Unit）等で構成されており、ホスト装置２の動作を統括的に管理する。記憶部２１は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）等の、制御部２０（ＣＰＵ）が読み取り可能な非一時的な記録媒体で構成されている。記憶部２１には、ホスト装置２の動作を制御するための制御プログラム２１０等が記憶されている。ホスト装置２の各種機能は、制御部２０のＣＰＵが記憶部２１内の制御プログラム２１０を実行することによって実現される。Ｉ／Ｆ回路２２は、ホスト装置２と記憶装置３と接続するための回路であって、記憶装置３からの信号を制御部２０に入力したり、制御部２０からの信号を記憶装置３に出力したりする。
【００３８】
なお、記憶部２１は、ＲＯＭ及びＲＡＭ以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていても良い。記憶部２１は、例えば、小型のハードディスクドライブ及びＳＳＤ（Solid State Drive）等を備えていても良い。
【００３９】
制御部２０は、データの送信要求を示す送信要求信号、データの記録要求を示す記録要求信号などの各種制御信号を生成する。制御部２０で生成された制御信号はＩ／Ｆ回路２２から記憶装置３に入力される。また制御部２０は、記憶装置３から読み出されたデータに対して各種処理を行う。
【００４０】
＜記憶装置の構成＞
記憶装置３は、メモリ制御装置（メモリ制御回路）４及びフラッシュメモリ５を備えている。メモリ制御装置４は、一種のコンピュータ装置であって、フラッシュメモリ５を制御する。メモリ制御装置４は、制御部４０、伸張部４１、Ｉ／Ｆ回路４２及び揮発性メモリ４３を備えている。
【００４１】
制御部４０は、ＣＰＵ等で構成されており、記憶装置３の動作を統括的に管理する。制御部４０は、メモリ制御装置４の動作を制御するための制御プログラムを記憶している。メモリ制御装置４の各種機能は、制御部４０において、ＣＰＵが制御プログラムを実行することによって実現される。伸張部４１は、フラッシュメモリ５内の圧縮データを伸張する伸張回路である。データの伸張は「データの解凍」とも呼ばれる。Ｉ／Ｆ回路４２は、記憶装置３とホスト装置２とを接続するための回路であって、ホスト装置２からの信号を制御部４０に入力したり、制御部４０からの信号をホスト装置２に出力したりする。揮発性メモリ４３は、例えばＳＲＡＭ（Static RAM）で構成されており、制御部４０がデータ処理する際のワークメモリとして機能する。なお、揮発性メモリ４３は、ＤＲＡＭ（Dynamic RAM）であっても良い。
【００４２】
フラッシュメモリ５は、例えばＮＡＮＤ型メモリである。フラッシュメモリ５の記憶領域（メモリセルアレイ）６には、記憶領域６内でのデータを管理する管理情報７０、アプリケーションデータ８０が記憶されている。
【００４３】
なお、本実施の形態では、伸張部４１は、制御部４０とは独立したハードウェア回路で構成されているが、制御部４０において、ＣＰＵが制御プログラムを実行することによって当該制御部４０に実現される機能ブロックであっても良い。また、本実施の形態では、制御部４０は、ＣＰＵ等で構成されているが、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。また、メモリ制御装置４全体が、その機能の実現にソフトウェアを必要としないハードウェア回路で構成されても良い。
【００４４】
＜フラッシュメモリの記憶領域の構成＞
図２はフラッシュメモリ５の記憶領域６の構成を示す図である。図２に示されるように、記憶領域６は、連続するＮ（Ｎ≧２）個のブロック６０で構成されている。例えば、Ｎは数百以上の値に設定される。各ブロック６０は複数のページ６１で構成される。フラッシュメモリ５では、記憶領域６内のデータはブロック６０単位で消去される。したがって、各ブロック６０は、データの消去単位である消去単位領域であると言える。また、フラッシュメモリ５では、記憶領域６に対するデータの書き込み及びデータの読み出しは、ページ６１単位で行うことが可能である。本実施の形態では、Ｎ個のブロック６０を、ブロックアドレスが小さいものから順にブロック６０−０〜６０−（Ｎ−１）と呼ぶことがある。
【００４５】
＜フラッシュメモリでのアプリケーションデータの記憶方法＞
本実施の形態では、アプリケーションデータ８０は、分割及び圧縮された状態でフラッシュメモリ５の記憶領域６に書き込まれる。図３はアプリケーションデータ８０が分割及び圧縮される様子を示す図である。
【００４６】
図３に示されるように、アプリケーションデータ８０は複数の分割データ８１に分割される。そして、各分割データ８１は圧縮されて圧縮分割データ８２となっている。本実施の形態では、記憶領域６には、アプリケーションデータ８０がそのまま書き込まれるのではなく、アプリケーションデータ８０から得られる複数の圧縮分割データ８２が書き込まれる。
【００４７】
各圧縮分割データ８２のデータ量は、一つのブロック６０の記憶容量以下となっている。つまり、一つのブロック６０の記憶容量をＭバイトであるとすると、各圧縮分割データ８２のデータ量はＭバイト以下となっている。したがって、一つの圧縮分割データ８２のすべてを、一つのブロック６０に記憶させることができる。本実施の形態では、各分割データ８１のデータ量が、例えば、一つのブロック６０の記憶容量と一致している。したがって、本実施の形態では、各圧縮分割データ８２のデータ量は、一つのブロック６０の記憶容量未満となっている。以後、アプリケーションデータ８０から得られる複数の圧縮分割データ８２をまとめて「圧縮分割データ群８２０」と呼ぶことがある。
【００４８】
図４は記憶領域６が圧縮分割データ群８２０を記憶している様子を示す図である。図４に示されるように、複数の圧縮分割データ８２は、連続する複数のブロック６０−１〜６０−ｎにそれぞれ記憶される。本実施の形態では、一つのブロック６０には、一つの圧縮分割データ８２が記憶される。圧縮分割データ８２がブロック６０に記憶される際には、例えば、当該ブロック６０内でのページアドレスが最小のページ６１から複数のページ６１にわたって連続して記憶される。
【００４９】
後述するように、記憶領域６内の各圧縮分割データ８２は伸張部４１で伸張される。そして、伸張部４１で得られた伸張データは記憶領域６の空き領域に記憶される。
【００５０】
また、記憶領域６のブロック６０−０には管理情報７０が記憶される。管理情報７０では、記憶領域６内のどの領域にどのようなデータが記憶されているかが管理されている。したがって、管理情報７０を参照することによって、圧縮分割データ８２及び伸張データが記憶領域６のどの領域に記憶されているかを特定することができる。また管理情報７０では、ブロック６０内の各圧縮分割データ８２が伸張済みか否かが管理され、さらに、圧縮分割データ８２と、それを伸張することによって得られる伸張データとの対応関係も管理されている。
【００５１】
本実施の形態では、分割データ８１が圧縮された状態で記憶領域６に書き込まれることから、記憶領域６に対してアプリケーションデータ８０を書き込む際の書き込み時間を短縮することができる。また、本実施の形態では、アプリケーションデータ８０を構成する複数の分割データ８１のそれぞれが圧縮された状態で記憶領域６に書き込まれることから、アプリケーションデータ８０の書き込み時間をさらに短縮することができる。
【００５２】
フラッシュメモリ５へのデータの書き込みは、例えば、フラッシュメモリ５の製造工程において実行される。本実施の形態では、図４に示されるように圧縮分割データ群８２０を記憶領域６に記憶するフラッシュメモリ５が搭載された記憶装置３が製造されて製品出荷される。
【００５３】
図５は、フラッシュメモリ５へのデータの書き込みを説明するための図である。図５に示されるように、フラッシュメモリ５へのデータの書き込みには、コンピュータ装置１００が使用される。
【００５４】
コンピュータ装置１００は、例えばパーソナルコンピュータ（ＰＣ）等で構成されており、制御部１１０、記憶部１２０及びＩ／Ｆ回路１３０を備える。制御部１１０は、ＣＰＵ等で構成されており、コンピュータ装置１００の動作を統括的に管理する。記憶部１２０は、ＲＯＭ及びＲＡＭ等の、制御部１１０（ＣＰＵ）が読み取り可能な非一時的な記録媒体で構成されている。記憶部１２０には、コンピュータ装置１００の動作を制御するためのデータ書き込みプログラム１２１が記憶されている。また記憶部１２０には、フラッシュメモリ５に書き込む管理情報７０及び圧縮分割データ群８２０が記憶されている。Ｉ／Ｆ回路１３０は、コンピュータ装置１００とフラッシュメモリ５とを接続するための回路であって、制御部１１０からの各種信号をフラッシュメモリ５に出力する。
【００５５】
なお、記憶部１２０は、ＲＯＭ及びＲＡＭ以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていても良い。記憶部１２０は、例えば、小型のハードディスクドライブ及びＳＳＤ（Solid State Drive）等を備えていても良い。
【００５６】
コンピュータ装置１００は、制御部１１０のＣＰＵが記憶部１２０内のデータ書き込みプログラム１２１を実行することによって、フラッシュメモリ５に対して記憶部１２０内の圧縮分割データ群８２０等のデータを書き込むデータ書き込み装置として機能する。制御部１１０のＣＰＵがデータ書き込みプログラム１２１を実行すると、制御部１１０がＩ／Ｆ回路１３０を通じてフラッシュメモリ５を制御して、記憶部１２０内の管理情報７０及び圧縮分割データ群８２０をフラッシュメモリ５の記憶領域６に書き込む。このとき、制御部１１０は、管理情報７０及び圧縮分割データ群８２０を、それらが上述の図４のように記憶されるように記憶領域６に書き込む。圧縮分割データ群８２０のデータ量は、圧縮されていないアプリケーションデータ８０のデータ量よりも小さいことから、コンピュータ装置１００は、短時間で圧縮分割データ群８２０を記憶領域６に書き込むことができる。よって、製造コストを抑えることができる。
【００５７】
以上のようにして、製造工程においてデータが書き込まれたフラッシュメモリ５は、記憶装置３に搭載される。そして、記憶装置３が製品出荷される。
【００５８】
なお、フラッシュメモリ５に書き込む圧縮分割データ群８２０は、それをフラッシュメモリ５に書き込むコンピュータ装置１００が生成しても良いし、他のコンピュータ装置が生成してコンピュータ装置１００に入力しても良い。
【００５９】
また、上記の例では、記憶装置３に搭載される前にフラッシュメモリ５に対してデータを書き込んでいるが、記憶装置３に搭載された後にフラッシュメモリ５に対してデータを書き込んでも良い。この場合には、コンピュータ装置１００のＩ／Ｆ回路１３０を、記憶装置３のメモリ制御装置４のＩ／Ｆ回路４２に接続できるようにする。そして、記憶装置３の製造工程において、記憶装置３に接続されたコンピュータ装置１００が、メモリ制御装置４を通じて、フラッシュメモリ５に対して圧縮分割データ群８２０等を書き込む。つまり、コンピュータ装置１００は、制御部１１０のＣＰＵが記憶部１２０内のデータ書き込みプログラム１２１を実行することによって、記憶装置３のメモリ制御装置４を通じて、フラッシュメモリ５に対して記憶部１２０内の圧縮分割データ群８２０等のデータを書き込むデータ書き込み装置として機能する。
【００６０】
また、ホスト装置２が、コンピュータ装置１００と同様に、フラッシュメモリ５に対して圧縮分割データ群８２０等を書き込むデータ書き込み装置として機能しても良い。この場合には、ホスト装置２の記憶部２１に対して、コンピュータ装置１００が記憶するデータ書き込みプログラム１２１と同様のデータ書き込みプログラムと、管理情報７０と、圧縮分割データ群８２０とが記憶される。ホスト装置２の制御部２０が、記憶部２１内のデータ書き込みプログラムを実行すると、制御部２０は、Ｉ／Ｆ回路２２を通じて、フラッシュメモリ５を制御するメモリ制御装置４を制御し、フラッシュメモリ５の記憶領域６に対して、管理情報７０及び圧縮分割データ群８２０を書き込む。
【００６１】
このように、ホスト装置２がデータ書き込み装置として機能する場合には、製造が完了したホスト装置２を使用して、記憶装置３の製造工程において、フラッシュメモリ５に対して圧縮分割データ群８２０等を書き込むことができる。
【００６２】
＜記憶装置のデータ読み出し動作＞
図６は、記憶装置３がフラッシュメモリ５からデータを読み出す際の当該記憶装置３の実運用中の動作を示すフローチャートである。図６に示されるように、ステップｓ１において、制御部４０は、ホスト装置２からの送信要求信号をＩ／Ｆ回路４２を通じて受信すると、ステップｓ２において、受信した送信要求信号によって送信が要求されるデータ（以後、「送信対象データ」と呼ぶ）が伸張済みかどうかを判定する。ステップｓ２では、制御部４０は、記憶領域６から管理情報７０を読み出して揮発性メモリ４３に書き込む。そして、制御部４０は、揮発性メモリ４３内の管理情報７０を参照して、送信対象データが伸張済みかどうか、つまり記憶領域６に非圧縮の送信対象データが記憶されているかどうかを判定する。
【００６３】
ステップｓ２において、送信対象データが伸張済みであると判定されると、ステップｓ３において、制御部４０は記憶領域６から送信対象データを読み出す。そして、ステップｓ４において、制御部４０は、Ｉ／Ｆ回路４２を通じて、読み出した送信対象データ（非圧縮データ）をホスト装置２に送信する。これにより、ホスト装置２は、記憶装置３に対して送信を要求したデータを取得することができる。
【００６４】
一方で、ステップｓ２において、送信対象データが伸張済みでないと判定されると、ステップｓ５において、制御部４０は、揮発性メモリ４３内の管理情報７０を参照して、送信対象データが記憶されるブロック６０を特定する。そして、制御部４０は、特定したブロック６０から圧縮分割データ８２を読み出して揮発性メモリ４３に記憶する。この圧縮分割データ８２には送信対象データが含まれている。
【００６５】
次にステップｓ６において、制御部４０は、揮発性メモリ４３から圧縮分割データ８２を読み出して伸張部４１に入力し、伸張部４１は入力された圧縮分割データ８２を伸張する。これにより、送信対象データは伸張される。つまり、非圧縮の送信対象データが得られる。伸張部４１で得られた伸張データ、つまり非圧縮の分割データ８１は、制御部４０に入力される。制御部４０は、入力された伸張データを揮発性メモリ４３に記憶する。
【００６６】
次にステップｓ７において、制御部４０は、揮発性メモリ４３からステップｓ６で得られた伸張データを読み出して、読み出した伸張データを、記憶領域６の空きブロック（未使用ブロック）６０に書き込む。図７は、圧縮分割データ８２が伸張されることによって得られた伸張データ（以後、「伸張分割データ」と呼ぶことがある）が記憶領域６に記憶されている様子の一例を示す図である。図７の例では、ブロック６０−１に記憶されている圧縮分割データ８２が伸張されることによって得られた伸張分割データ８５が、空きブロック６０−（ｎ＋１）に記憶されている。伸張分割データ８５は、非圧縮の分割データ８１であることから、伸張分割データ８５のデータ量は、ブロック６０の記憶容量と一致する。したがって、ブロック６０−（ｎ＋１）に記憶される伸張分割データ８５は、ブロック６０−（ｎ＋１）の全領域を占める。
【００６７】
ステップｓ７の後、ステップｓ８において、制御部４０は、圧縮分割データ８２の伸張（ステップｓ６）と、それによって得られた伸張分割データ８５の記憶領域６の書き込み（ステップｓ７）とに応じて、揮発性メモリ４３内の管理情報７０を更新する。そして、制御部４０は、更新後の管理情報７０を記憶領域６に書き込む。ステップｓ８の後、制御部４０は、ステップｓ４において、ステップｓ６で得られた非圧縮の送信対象データをＩ／Ｆ回路４２を通じてホスト装置２に送信する。
【００６８】
記憶装置３は、ホスト装置２からの送信要求信号を受信するたびに（ステップｓ１）、ステップｓ２を実行する。ステップｓ２の後の処理は上記と同様である。
【００６９】
以上の説明から理解できるように、本実施の形態では、メモリ制御装置４は、実運用中において、圧縮分割データ８２を記憶するブロック６０に対する初めての読み出し処理の際に、当該ブロック６０内の圧縮分割データ８２を伸張する。したがって、圧縮分割データ８２を記憶する各ブロック６０に対して読み出し処理が１回でも行われれば、記憶領域６内のすべての圧縮分割データ８２が伸張されることになる。
【００７０】
上述のステップｓ６において、記憶領域６に記憶されている圧縮分割データ８２が伸張された後は、当該圧縮分割データ８２を記憶領域６から消去することができる。よって、制御部４０は、ブロック６０内のすべての圧縮分割データ８２を伸張した後に、当該ブロック６０内のデータを消去することによって、当該ブロック６０を空きブロック６０（空き領域）として使用することができる。その結果、記憶領域６の有効利用を図ることができる。例えば、圧縮分割データ８２を記憶するあるブロック６０内のデータを消去した場合、当該あるブロック６０に対して、別のブロック６０内の圧縮分割データ８２を伸張して得られる伸張分割データ８５を書き込むことができる。制御部４０は、圧縮分割データ８２を記憶するブロック６０内のデータを消去したときには、それに応じて管理情報７０を更新する。
【００７１】
圧縮分割データ８２を記憶するブロック６０内のデータを消去する消去処理は、当該ブロック６０内のすべての圧縮分割データ８２が伸張された後であればいつでも実行されて良い。例えば、当該消去処理は、ステップｓ６の直後に実行されても良いし、ステップｓ７の直後に実行されても良い。また当該消去処理は、ステップｓ８の直後に実行されても良いし、ステップｓ８の後のステップｓ４の後に実行されても良い。図８は、図７の例において、ブロック６０−１内のデータが消去された様子を示す図である。図９は、図８の例において、空きブロックとなったブロック６０-１に対して、ブロック６０-４内の圧縮分割データ８２が伸張されて得られた伸張分割データ８５が記憶されている様子を示す図である。
【００７２】
なお、制御部４０は、ステップｓ６の直後に、つまり、ブロック６０内の圧縮分割データ８２を伸張した直後に、当該ブロック６０内のデータを消去する場合には、その伸張によって得られた伸張分割データ８５を、データ消去したブロック６０に記憶しても良い。
【００７３】
制御部４０は、本実施の形態のように、ブロック６０内のすべての圧縮分割データ８２を伸張することによって得られる伸張データを記憶領域６に書き込んだ後に管理情報７０を更新する方が望ましい。さらに、ブロック６０内のデータの消去は、当該ブロック６０内のすべての圧縮分割データ８２が伸張されることによって得られる伸張データが記憶領域６に記憶された後に実行されることが望ましい。以下にこの点について説明する。
【００７４】
伸張分割データ８５を記憶領域６に書き込んでいる場合に、記憶装置３の電源が遮断したりして、伸張分割データ８５の記憶領域６に対する書き込みが失敗することがある。記憶領域６に対する伸張分割データ８５の書き込みが完了する前に、伸張分割データ８５の書き込みの完了を見越して管理情報７０が更新される場合には、伸張分割データ８５の書き込みが失敗したときにも管理情報７０が更新されることになる。したがって、この場合には、管理情報７０では、伸張分割データ８５の書き込みが成功していることになる。そのため、上述のステップｓ２では、送信対象データを含む伸張分割データ８５の書き込み失敗により、非圧縮の送信対象データが記憶領域６に記憶されていないにもかかわらず、送信対象データが伸張済みと判断されて、ステップｓ３において記憶領域６から誤ったデータが読み出される可能性がある。その結果、ステップｓ４では、誤ったデータがホスト装置２に送信される可能性がある。
【００７５】
これに対して、制御部４０が、伸張分割データ８５を記憶領域６に書き込んだ後に管理情報７０を更新する場合には、伸張分割データ８５の書き込みが失敗した場合に管理情報７０が更新されることを抑制することができる。よって、送信対象データを含む伸張分割データ８５の書き込みに失敗している場合には、ステップｓ２においては送信対象データが伸張済みでないと判定される。これにより、送信対象データを含む圧縮分割データ８２が記憶領域６内に存在する場合には、当該圧縮分割データ８２を再度伸張することが可能となる。その結果、ステップｓ４において、誤ったデータがホスト装置２に送信されることを抑制することができる。
【００７６】
また、ブロック６０内の圧縮分割データ８２が伸張されることによって得られる伸張分割データ８５が記憶領域６に書き込まれる前に、当該ブロック６０内のデータが消去される場合には、当該伸張分割データ８５の記憶領域６に対する書き込みが失敗したときに、当該伸張分割データ８５の元の圧縮分割データ８２が記憶領域６内に存在しなくなる。したがって、この場合には、書き込みに失敗した伸張分割データ８５の元の圧縮分割データ８２を再度伸張することができない。
【００７７】
これに対して、制御部４０が、ブロック６０内の圧縮分割データ８２を伸張することによって得られる伸張分割データ８５を記憶領域６に書き込んだ後に、つまり、ステップｓ７の後に、当該ブロック６０内のデータを消去する場合には、伸張分割データ８５の記憶領域６に対する書き込みが失敗したときに、当該伸張分割データ８５の元の圧縮分割データ８２が記憶領域６から消去されることがない。よって、送信対象データを含む伸張分割データ８５の書き込みに失敗したときに、送信対象データを含む圧縮分割データ８２が記憶領域６から消去されることがない。これにより、送信対象データを含む伸張分割データ８５の書き込みに失敗したとしても、送信対象データを含む圧縮分割データ８２を再度伸張することが可能となる。その結果、ステップｓ４において、誤ったデータがホスト装置２に送信されることを抑制することができる。
【００７８】
また、本実施の形態では、アプリケーションデータ８０から得られる複数の圧縮分割データ８２を記憶領域６に記憶し、各圧縮分割データ８２のデータ量が、ブロック６０の記憶容量以下となっていることから、揮発性メモリ４３において伸張処理の際に必要な記憶容量を小さくすることができる。以下にこの点について説明する。
【００７９】
図１０は、アプリケーションデータ８０が分割されずにそのまま圧縮された状態で記憶領域６に記憶されている様子を示す図である。図１０に示されるように、アプリケーションデータ８０がそのまま圧縮されることによって得られる圧縮データ１８０は、複数のブロック６０−１〜６０−（ｎ−１）にわたって記憶されている。
【００８０】
圧縮データ１８０については、その一部のデータだけを伸張することはできない。したがって、ブロック６０内のデータを消去して空きブロック６０を生成するためには、記憶領域６から圧縮データ１８０のすべてを読み出して、圧縮データ１８０を伸張する必要がある。そのため、揮発性メモリ４３には、圧縮データ１８０のすべてを記憶する必要がある。そして、圧縮データ１８０を伸張することによって得られる伸張データのすべてを揮発性メモリ４３に記憶する必要がある。
【００８１】
これに対して、本実施の形態では、複数の圧縮分割データ８２が記憶領域６に記憶されており、各圧縮分割データ８２のデータ量が、ブロック６０の記憶容量以下となっていることから、当該複数の圧縮分割データ８２のすべてを記憶領域６から読み出して伸張することなく、空きブロック６０を生成することが可能となる。図４に示されるように、一つブロック６０に一つの圧縮分割データ８２が記憶される場合には、ブロック６０内の一つの圧縮分割データ８２を読み出して伸張することによって、当該ブロック６０を空きブロック６０として使用することが可能となる。よって、揮発性メモリ４３において伸張処理に必要な記憶容量を小さくすることができる。
【００８２】
また、本実施の形態では、複数の圧縮分割データ８２のすべてを記憶領域６から読み出して伸張することなく、空きブロック６０を生成することが可能となることから、記憶領域６の記憶容量を小さくすることができる。以下に、この点について説明する。
【００８３】
まず、図１０に示される圧縮データ１８０を伸張し、それによって得られる伸張データ（非圧縮のアプリケーションデータ８０）を記憶領域６に記憶した後に、複数のブロック６０−１〜６０−（ｎ−１）内のデータを消去する場合を考える。この場合には、複数のブロック６０−１〜６０−（ｎ−１）内のデータが消去されるまでは、記憶領域６は、圧縮データ１８０と、それを伸張することによって得られる伸張データとを同時に記憶することになる。つまり、記憶領域６の記憶容量としては、圧縮データ１８０と、それを伸張することによって得られる伸張データとを同時に記憶することができるだけの記憶容量が必要となる。言い換えれば、記憶領域６の記憶容量としては、非圧縮のアプリケーションデータ８０と、当該アプリケーションデータ８０の圧縮データとを同時に記憶することができるだけの記憶容量が必要となる。図１０の例では、圧縮データ１８０の伸張の後に、圧縮データ１８０を記憶する複数のブロック６０−１〜６０−（ｎ−１）内のデータを消去することになり、圧縮データ１８０を伸張しつつ、空きブロックを生成することはできない。
【００８４】
これに対して、本実施の形態では、複数の圧縮分割データ８２のすべてを記憶領域６から読み出して伸張することなく、空きブロック６０を生成することが可能であることから、言い換えれば、伸張されていない圧縮分割データ８２が記憶領域６に記憶されている状態において、空きブロック６０を生成することができる。したがって、複数の圧縮分割データ８２を伸張しつつ、空きブロック６０を生成することができる。つまり、圧縮分割データ８２の伸張の開始から、すべての圧縮分割データ８２の伸張の終了までに、空きブロック６０を生成しつつ、それに伸張分割データ８５を書き込むことができる。よって、記憶領域６は、アプリケーションデータ８０から得られる圧縮分割データ群８２０と、それを伸張することによって得られる伸張データとを同時に記憶する必要はない。その結果、記憶領域６の記憶容量を小さくすることができる。
【００８５】
また本実施の形態では、一つの圧縮分割データ８２は一つのブロック６０のみに記憶され、一つのブロック６０は、複数の圧縮分割データ８２のうちの一つの圧縮分割データ８２のみを記憶している。そのため、ブロック６０内の一つの圧縮分割データ８２を伸張するだけで、当該ブロック６０を空きブロックとして使用することが可能となる。よって、圧縮分割データ８２を記憶するブロック６０をすぐに空きブロックとして使用することが可能になる。その結果、記憶領域６を有効利用することができる。
【００８６】
また本実施の形態では、アプリケーションデータ８０が複数に分割されることによって得される複数の分割データ８１のそれぞれのデータ量が、ブロック６０の記憶容量と一致する。そのため、各圧縮分割データ８２のデータ量を容易にブロック６０の記憶容量以下とすることができる。よって、各圧縮分割データ８２の生成が容易となる。
【００８７】
なお上記の例では、製造工程においてフラッシュメモリ５に圧縮分割データ群８２０等を書き込んでいるが、記憶装置３が出荷された後、実運用中の記憶装置３のフラッシュメモリ５に圧縮分割データ群８２０等を書き込んでも良い。この場合には、記憶装置３の実運用中において、フラッシュメモリ５内の圧縮分割データ群８２０を別のものに書き換えることができる。つまり、フラッシュメモリ５内のアプリケーションデータを他のアプリケーションデータに書き換えることができる。例えば、ホスト装置２がインターネット等を通じて新しい圧縮分割データ群８２０を受信し、受信した新しい圧縮分割データ群８２０をフラッシュメモリ５に書き込んでも良い。
【００８８】
＜各種変形例＞
以下に本実施の形態の各種変形例について説明する。
【００８９】
＜データ保持特性の向上＞
上述の図４の例では、圧縮分割データ８２のデータ量は、ブロック６０の記憶容量未満であることから、図１１に示されるように、ブロック６０には、圧縮分割データ８２で占められていない部分領域６００が存在する。この部分領域６００は未使用領域である。ブロック６０内のデータが消去されると、当該ブロック６０内のデータは、例えば、すべて“１”となることから、未使用の部分領域６００内のデータの値もすべて“１”になることがある。また、製造工程において、未使用の部分領域６００には、フラッシュメモリ５の動作確認等のために、“０１０１”あるいは“１０１０”といった繰り返しパターンが書き込まれることがある。
【００９０】
このように、あるブロック６０内の未使用の部分領域６００内のデータパターンが繰り返しパターンである場合には、上記の特許文献２にも記載されているように、当該あるブロック６０内の圧縮分割データ８２が本来の値から変化することがある。つまり、フラッシュメモリ５のデータ保持特性が劣化することがある。
【００９１】
そこで、以下に、フラッシュメモリ５のデータ保持特性を向上させるためのいくつかの方法について説明する。
【００９２】
＜第１変形例＞
図１２は第１変形例を説明するための図である。図１２に示されるように、第１変形例では、ブロック６０の部分領域６００の全領域にランダムデータ（乱数データ）２００を記憶させる。具体的には、圧縮分割データ８２を記憶する各ブロック６０の部分領域６００のすべてにランダムデータ２００を記憶させる。
【００９３】
このように、ブロック６０の部分領域６００の全領域がランダムデータ２００で占められることにより、当該ブロック６０内の圧縮分割データ８２が本来の値から変化することを抑制することができる。その結果、フラッシュメモリ５のデータ保持特性が向上する。
【００９４】
＜第２変形例＞
図１３は第２変形例を説明するための図である。図１３に示されるように、第２変形例では、ブロック６０の全領域が圧縮分割データ８２で占められるようにする。図１３の例では、圧縮分割データ８２を記憶する各ブロック６０は、その全領域を埋めるように、２つの圧縮分割データ８２を記憶している。
【００９５】
このように、ブロック６０の全領域が圧縮分割データ８２で占められることによって、ブロック６０内の圧縮分割データ８２が本来の値から変化することを抑制することができる。その結果、フラッシュメモリ５のデータ保持特性が向上する。
【００９６】
また、第２変形例では、第１変形例とは異なり、ブロック６０にランダムデータ２００を書き込む必要がないことから、フラッシュメモリ５に対するデータ書き込み時間が増加することを抑制することができる。
【００９７】
なお、図１３の例では、各ブロック６０に２つの圧縮分割データ８２が記憶されているが、ブロック６０に記憶させる複数の圧縮分割データ８２の数はこれに限られない。例えば、図１４に示されるブロック６０−２のように、ブロック６０に３つの圧縮分割データ８２を記憶させても良い。また、図１４に示されるブロック６０−４のように、ブロック６０に４つの圧縮分割データ８２を記憶させても良い。
【００９８】
あるブロック６０に対して、その全領域を埋めるように複数の圧縮分割データ８２を記憶させる場合には、記憶領域６に記憶する圧縮分割データ群８２０の中から、データ量の合計がブロック６０の記憶容量と一致する複数の圧縮分割データ８２の組み合わせを決定する。そして、決定した組み合わせに係る複数の圧縮分割データ８２をブロック６０に書き込む。分割データ８１を圧縮する際の圧縮率は、その分割データ８１のデータ内容に応じて変化することから、複数の圧縮分割データ８２の間で、データ量が同じであるとは限らない。なお、ブロック６０に書き込む複数の圧縮分割データ８２の組み合わせの決定は、圧縮分割データ群８２０をフラッシュメモリ５に書き込むデータ書込み装置（上記のコンピュータ装置１００など）が行っても良いし、他のコンピュータ装置が行って、その結果を示す組み合わせ情報をデータ書き込み装置に入力しても良い。
【００９９】
また、図１５に示されるブロック６０−４のように、圧縮分割データ８２でその全領域を占めることができないブロック６０が存在する場合には、上記の第１変形例と同様に、当該ブロック６０での、圧縮分割データ８２で占められない部分領域６００にランダムデータ２００を記憶させても良い。図１５に示されるブロック６０−４では、圧縮分割データ群８２０のうち３つの圧縮分割データ８２のみが記憶され、ブロック６０−４に記憶される３つの圧縮分割データ８２は、ブロック６０−４のみに記憶されている。
【０１００】
また、非圧縮の分割データ８１のデータ量がブロック６０の記憶容量よりも大きく設定される場合であって、ブロック６０の記憶容量と一致するデータ量を有する圧縮分割データ８２が存在する場合には、図１６のブロック６０−３に示されるように、ブロック６０に当該圧縮分割データ８２だけを記憶させても良い。
【０１０１】
ブロック６０が複数の圧縮分割データ８２を記憶する場合には、当該複数の圧縮分割データ８２をまとめて伸張する。具体的には、制御部４０は、上記のステップｓ５において、送信対象データを記憶するブロック６０に複数の圧縮分割データ８２が記憶されている場合には、当該複数の圧縮分割データ８２のすべてを当該ブロック６０から読み出す。そして、ステップｓ６において、伸張部４１はステップｓ５で読み出された複数の圧縮分割データ８２のそれぞれを伸張して、複数の伸張分割データ８５を生成する。その後、ステップｓ７において、制御部４０は、ステップｓ６で得られた複数の伸張分割データ８５を記憶領域６に書き込む。その後、ステップｓ８で管理情報７０が更新される。
【０１０２】
このように、ブロック６０が複数の圧縮分割データ８２を記憶する場合に、当該複数の圧縮分割データ８２をまとめて伸張することによって、当該ブロック６０をすぐに空きブロック６０として使用することが可能となる。よって、本変形例においても、記憶領域６を有効利用することができる。
【０１０３】
なお、メモリ制御装置４は、送信対象データを記憶するブロック６０に複数の圧縮分割データ８２が記憶されている場合であっても、送信対象データを含む圧縮分割データ８２だけを読み出して伸張しても良い。一つのブロック６０が複数の圧縮分割データ８２を記憶する場合には、一つのブロック６０が一つの圧縮分割データ８２だけを記憶する場合と比較して、記憶領域６には空きブロック６０が多く存在する。したがって、メモリ制御装置４が、送信対象データを記憶するブロック６０に複数の圧縮分割データ８２が記憶されている場合に、送信対象データを含む圧縮分割データ８２だけを読み出して伸張し、当該ブロック６０がすぐに空きブロック６０とならないとしても、空きブロック６０が足らなくなることを抑制することができる。
【０１０４】
＜第３変形例＞
上記の第２変形例では、隣接する２つのブロック６０にまたがって記憶される圧縮分割データ８２は存在していなかったが、存在しても良い。以後、隣接する２つのブロック６０にまたがって記憶される圧縮分割データ８２を「またがり圧縮データ８２」と呼ぶことがある。また、複数のブロック６０にまたがって記憶されていない圧縮データ８２、つまり、そのすべてが一つのブロック６０に記憶されている圧縮分割データ８２を「非またがり圧縮データ８２」と呼ぶことがある。
【０１０５】
図１７は第３変形例を説明するための図である。図１７に示されるように、第３変形例では、圧縮分割データ８２でその全領域が占められるブロック６０は、非またがり圧縮データ８２と、当該ブロック６０に隣接する隣接ブロック６０と当該ブロック６０とにまがって記憶されるまたがり圧縮データ８２の一部とのみを記憶している。
【０１０６】
図１７の例では、圧縮分割データ８２でその全領域が占められるブロック６０−１は、非またがり圧縮データ８２ａと、当該ブロック６０−１の隣接ブロック６０−２と当該ブロック６０−１とにまがって記憶されるまたがり圧縮データ８２ｂの一部とのみを記憶している。また、圧縮分割データ８２でその全領域が占められるブロック６０−２は、非またがり圧縮データ８２ｃと、当該ブロック６０−２の隣接ブロック６０−１と当該ブロック６０−２とにまがって記憶されるまたがり圧縮データ８２ｂの一部とのみを記憶している。図１７の例では、連続する２つのブロック６０−１，６０−２から成る領域６１２は、その全領域が埋められるように３つの圧縮分割データ８２ａ．８２ｂ，８２ｃのみを記憶している。領域６１２では、ブロック６０間の境界にまたがり圧縮データ８２ｂが記憶されているものの、領域６１２と、それに隣接する隣接領域とにまたがって記憶される圧縮分割データ８２は存在しない。領域６１２の両端のそれぞれは、当該領域６１２に含まれる非またがり圧縮データ８２の端となっている。
【０１０７】
また、圧縮分割データ８２でその全領域が占められるブロック６０−３は、非またがり圧縮データ８２ｄと、当該ブロック６０−３の隣接ブロック６０−４と当該ブロック６０−３とにまがって記憶されるまたがり圧縮データ８２ｅの一部とのみを記憶している。そして、圧縮分割データ８２でその全領域が占められるブロック６０−４は、非またがり圧縮データ８２ｆと、当該ブロック６０−４の隣接ブロック６０−３と当該ブロック６０−４とにまがって記憶されるまたがり圧縮データ８２ｅの一部とのみを記憶している。図１７の例では、連続する２つのブロック６０−３，６０−４から成る領域６３４は、その全領域が埋められるように３つの圧縮分割データ８２ｄ．８２ｅ，８２ｆのみを記憶している。領域６３４では、ブロック６０間の境界にまたがり圧縮データ８２ｅが記憶されているものの、領域６３４と、それに隣接する隣接領域とにまたがって記憶される圧縮分割データ８２は存在しない。領域６３４の両端のそれぞれは、当該領域６３４に含まれる非またがり圧縮データ８２の端となっている。
【０１０８】
このように、圧縮分割データ８２でその全領域が占められるブロック６０が、非またがり圧縮データ８２と、またがり圧縮データ８２の一部とのみを記憶している場合であっても、当該ブロック６０内の圧縮分割データ８２が本来の値から変化することを抑制することができる。その結果、フラッシュメモリ５のデータ保持特性が向上する。
【０１０９】
なお、図１７の例では、ブロック６０が、一つの非またがり圧縮データ８２を記憶しているが、図１８に示されるように、複数の非またがり圧縮データ８２を記憶しても良い。図１８の例では、ブロック６０が、２つの非またがり圧縮データ８２と、またがり圧縮データ８２の一部とを記憶している。
【０１１０】
また、ブロック６０は、当該ブロック６０のブロックアドレスよりも一つ前のブロックアドレスを有する隣接ブロック６０（以後、「第１隣接ブロック６０」と呼ぶ）と当該ブロック６０とにまたがって記憶されるまたがり圧縮データ８２（以後、「第１またがり圧縮データ８２」と呼ぶことがある）の一部と、当該ブロック６０のブロックアドレスよりも一つの後のブロックアドレスを有する隣接ブロック６０（以後、「第２隣接ブロック６０」と呼ぶ）と当該ブロック６０とにまたがって記憶されるまたがり圧縮データ８２（以後、「第２またがり圧縮データ８２」と呼ぶことがある）の一部とを記憶しても良い。言い換えれば、ブロック６０は、当該ブロック６０の一端と隣接する隣接ブロック６０と当該ブロック６０とにまたがって記憶されるまたがり圧縮データ８２の一部と、当該ブロック６０の他端と隣接する隣接ブロック６０と当該ブロック６０とにまたがって記憶されるまたがり圧縮データ８２の一部とを記憶しても良い。
【０１１１】
図１９の例では、ブロック６０−２は、ブロック６０−１と当該ブロック６０−２とにまたがって記憶される第１またがり圧縮データ８２ｘの一部と、ブロック６０−３と当該ブロック６０−２とにまたがって記憶される第２またがり圧縮データ８２ｙの一部とを記憶している。図１９の例では、３つのブロック６０−１，６０−２，６０−３から成る領域６１２３が、その全領域が埋まるように５つの圧縮分割データ８２のみを記憶している。領域６１２３では、ブロック６０間の各境界にまたがり圧縮データ８２（圧縮データ８２ｘ，８２ｙ）が記憶されているものの、領域６１２３と、それに隣接する隣接領域とにまたがって記憶される圧縮分割データ８２は存在しない。領域６１２３の両端のそれぞれは、当該領域６１２３に含まれる非またがり圧縮データ８２の端となっている。
【０１１２】
第３変形例では、圧縮分割データ８２が２つのブロック６０にまたがって記憶されることを許容している。そのため、第２変形例とは異なり、各ブロック６０について、圧縮分割データ群８２０の中から、データ量の合計がブロック６０の記憶容量と一致する複数の圧縮分割データ８２の組み合わせを決定する必要はない。よって、圧縮分割データ群８２０をどのように記憶領域６に記憶するかを設計する際の設計自由度が向上する。
【０１１３】
第３変形例のように、少なくとも一つの非またがり圧縮データ８２と、当該ブロック６０に隣接する隣接ブロック６０と当該ブロック６０とにまがって記憶されるまたがり圧縮データ８２の一部とのみを記憶するブロック６０内の圧縮分割データ８２を伸張する場合には、当該少なくとも一つの非またがり圧縮データ８２と、当該またがり圧縮データ８２とをまとめて伸張する。例えば、図１７に示されるブロック６０−１については、当該ブロック６０−１に記憶される非またがり圧縮データ８２ａと、当該ブロック６０−１にその一部が記憶されるまたがり圧縮データ８２ｂとをまとめて伸張する。また図１８に示されるブロック６０−１については、当該ブロック６０−１に記憶される２つの非またがり圧縮分割データ８２と、当該ブロック６０−１にその一部が記憶されるまたがり圧縮データ８２とをまとめて伸張する。制御部４０は、上記のステップｓ５において、送信対象データを記憶するブロック６０が、少なくとも一つの非またがり圧縮データ８２と、またがり圧縮データ８２の一部とのみを記憶している場合には、当該少なくとも一つの非またがり圧縮データ８２と、当該またがり圧縮データ８２とを当該ブロック６０から読み出す。そして、ステップｓ６において、伸張部４１はステップｓ５で読み出された少なくとも一つの非またがり圧縮データ８２とまたがり圧縮データ８２のそれぞれを伸張して、複数の伸張分割データ８５を生成する。その後、ステップｓ７において、制御部４０は、ステップｓ６で得られた複数の伸張分割データ８５を記憶領域６に書き込む。その後、ステップｓ８で管理情報７０が更新される。
【０１１４】
このように、ブロック６０が、少なくとも一つの非またがり圧縮データ８２とまたがり圧縮データ８２の一部とのみを記憶している場合に、当該少なくとも一つの非またがり圧縮データ８２と当該またがり圧縮データ８２とをまとめて伸張することにより、当該ブロック６０をすぐに空きブロック６０として使用することが可能となる。
【０１１５】
これに対して、ブロック６０が、少なくとも一つの非またがり圧縮データ８２とまたがり圧縮データ８２の一部とのみを記憶している場合に、当該またがり圧縮分割データ８２のみを伸張した場合には、当該ブロック６０には当該少なくとも一つの非またがり圧縮データ８２が残るため、当該ブロック６０をすぐに空きブロック６０として使用することができない。上記のように、少なくとも一つの非またがり圧縮データ８２とまたがり圧縮データ８２とをまとめて伸張することにより、ブロック６０をすぐに空きブロック６０として使用することが可能となり、記憶領域６を有効利用することができる。図１７，１８の例では、領域６１２内のすべての圧縮分割データ８２をまとめて伸張しても良い。
【０１１６】
また、少なくとも一つの非またがり圧縮データ８２と、当該ブロック６０に隣接する第１隣接ブロック６０と当該ブロック６０とにまがって記憶される第１またがり圧縮データ８２の一部と、当該ブロック６０に隣接する第２隣接ブロック６０と当該ブロック６０とにまがって記憶される第２またがり圧縮データ８２の一部とのみを記憶するブロック６０内の圧縮分割データ８２を伸張する場合には、当該少なくとも一つの非またがり圧縮データ８２と、当該第１またがり圧縮データ８２と、当該第２またがり圧縮データ８２とをまとめて伸張する。これより、当該ブロック６０をすぐに空きブロックとして使用することができる。よって、このような場合であっても、記憶領域６を有効利用することができる。図１９の例では、領域６１２３内のすべての圧縮分割データ８２をまとめて伸張しても良い。
【０１１７】
なお、第２変形例と第３変形例とを組み合わせても良い。つまり、複数のブロック６０には、複数の非またがり圧縮データ８２のみを記憶するブロック６０と、少なくとも一つの非またがり圧縮データ８２及びまたがり圧縮データ８２の一部とのみを記憶するブロック６０とが含まれても良い。また、複数のブロック６０には、複数の非またがり圧縮データ８２のみを記憶するブロック６０と、少なくとも一つの非またがり圧縮データ８２、第１またがり圧縮データ８２の一部及び第２またがり圧縮データ８２の一部のみを記憶するブロック６０とが含まれても良い。また、複数のブロック６０には、複数の非またがり圧縮データ８２のみを記憶するブロック６０と、少なくとも一つの非またがり圧縮データ８２及びまたがり圧縮データ８２の一部とのみを記憶するブロック６０と、少なくとも一つの非またがり圧縮データ８２、第１またがり圧縮データ８２の一部及び第２またがり圧縮データ８２の一部のみを記憶するブロック６０とが含まれても良い。
【０１１８】
＜ホスト装置からの送信要求に対する応答時間の短縮＞
上述の例では、メモリ制御装置４は、送信対象データが伸張されていない場合には、ホスト装置２からの送信要求があったとき、送信対象データを含む圧縮分割データ８２を伸張している。そのため、メモリ制御装置４が、ホスト装置２からの送信要求を受けてから、非圧縮の送信対象データをホスト装置２に送信するまで時間がかかることがある。つまり、メモリ制御装置４では、ホスト装置２からの送信要求に対する応答時間が長くなることがある。
【０１１９】
そこで、以下に、メモリ制御装置４での、ホスト装置２からの送信要求に対する応答時間を短縮するためのいくつかの方法について説明する。
【０１２０】
＜第４変形例＞
上述のように、分割データ８１を圧縮する際の圧縮率は、その分割データ８１のデータ内容に応じて変化する。したがって、複数の圧縮分割データ８２には、圧縮率が小さい圧縮分割データ８２が存在する。製造工程などにおいて、圧縮率が小さい圧縮分割データ８２を記憶領域６に書き込む場合には、書き込み時間の短縮効果は比較的小さい。
【０１２１】
そこで、第４変形例では、アプリケーションデータ８０を分割して得られる複数の分割データ８１のうち、それを圧縮した際の圧縮率がしきい値よりも小さい分割データ８１は圧縮されずに記憶領域６に書き込まれる。一方で、複数の分割データ８１のうち、それを圧縮した際の圧縮率がしきい値よりも大きい分割データ８１は、上記の例のように、圧縮されて記憶領域６に書き込まれる。圧縮率がしきい値と一致する分割データ８１は、圧縮されずに記憶領域６に書き込まれても良いし、圧縮されて記憶領域６に書き込まれても良い。
【０１２２】
図２０は、圧縮されていない分割データ８１と、圧縮された分割データ８１、つまり圧縮分割データ８２とが記憶領域６に記憶されている様子を示す図である。図２０では、圧縮されていない分割データ８１は、非圧縮分割データ８１ａとして示されている。
【０１２３】
このように、圧縮率が小さい分割データ８１は圧縮されずに記憶領域６に記憶されることによって、当該分割データ８１に含まれる送信対象データについては伸張する必要がない。一方で、圧縮率が大きい分割データ８１は圧縮されて記憶領域６に記憶されることから、当該分割データ８１の記憶領域６に対する書き込み時間を短縮することができる。よって、アプリケーションデータ８０の書き込み時間を短縮しつつ、ホスト装置２からの送信要求に対する応答時間を短縮することができる。
【０１２４】
＜第５変形例＞
記憶装置３がホスト装置２に装着されている場合であっても、ホスト装置２は常に記憶装置３にアクセスしているわけではなく、ホスト装置２が記憶装置３にアクセスしていない状態が存在する。例えば、アプリケーションデータ８０がゲームデータであり、データ処理システム１がゲームシステムである場合を考える。この場合には、ホスト装置２に記憶装置３が接続されているものの、ユーザがゲームをしていないとき、ホスト装置２は、フラッシュメモリ５内のアプリケーションデータ８０を処理する必要がないことから、記憶装置３に対してアクセスを実行しない。また、ユーザがゲームをしている場合であっても、ホスト装置２は記憶装置３にアクセスしないときがある。例えば、ホスト装置２が、アプリケーションデータ８０に含まれる、ゲームのあるステージに関するステージデータをまとめてフラッシュメモリ５から読み出する場合には、ホスト装置２は、当該ステージデータを処理している間は、記憶装置３にアクセスしない。
【０１２５】
そこで、第５変形例では、ホスト装置２が記憶装置３にアクセスしていない間に、言い換えれば、ホスト装置２がメモリ制御装置４にアクセスしていない間に、メモリ制御装置４は、圧縮分割データ８２の伸張と伸張分割データ８５の記憶領域６への書き込みを行う。つまり、メモリ制御装置４は、ホスト装置２にアクセスされていないときに、記憶領域６内の圧縮分割データ８２を伸張してそれによって得られた伸張分割データ８５を記憶領域６に書き込む伸張書き込み処理を行う。メモリ制御装置４は、ホスト装置２から、データ送信要求等のアクセス要求が所定時間以上無い場合には、ホスト装置２にアクセスされていないと判断して、圧縮分割データ８２の伸張書き込み処理を行う。メモリ制御装置４は、ホスト装置２からのアクセス要求を受け取るまで、圧縮分割データ８２の伸張書き込み処理を繰り返し行う。そして、メモリ制御装置４は、ホスト装置２からアクセス要求があると、圧縮分割データ８２の伸張書き込み処理を中断して、当該アクセス要求に応じた処理を行う。その後、メモリ制御装置４は、再度ホスト装置２にアクセスされていないと判断すると、圧縮分割データ８２の伸張書き込み処理を行う。なお、記憶領域６内のすべての圧縮分割データ８２について伸張書き込み処理が実行されると、メモリ制御装置４では、伸張書き込み処理が実行されなくなる。
【０１２６】
このように、ホスト装置２がメモリ制御装置４にアクセスしていない間に、メモリ制御装置４が、圧縮分割データ８２の伸張書き込み処理を行うことによって、メモリ制御装置４は、ホスト装置２からデータ送信要求のあった送信対象データをすぐにホスト装置２に送信することが可能となる。よって、ホスト装置２からの送信要求に対する応答時間を短縮することができる。
【０１２７】
＜第６変形例＞
ホスト装置２は、記憶装置３が装着された直後に、当該記憶装置３に対するアクセスを開始することがある。例えば、データ処理システム１がゲームシステムである場合を考える。この場合には、ユーザは、カード型の記憶装置３をホスト装置２に装着した直後に、ゲームを開始することがある。このとき、ホスト装置２は、記憶装置３が装着された直後に、当該記憶装置３に対するアクセスを開始する。第５変形例のように、ホスト装置２がメモリ制御装置４にアクセスしていない間に、メモリ制御装置４が、圧縮分割データ８２の伸張書き込み処理を行う場合であっても、ホスト装置２に記憶装置３が装着された直後に、ホスト装置２が記憶装置３に対するアクセスを開始するときには、アクセス開始時に、アプリケーションデータ８０において初期に使用されるデータが伸張されていない可能性がある。そのため、メモリ制御装置４は、ホスト装置２から、アプリケーションデータ８０において初期に使用されるデータのデータ送信要求を受け取ったとき、当該データをすぐに送信できない可能性がある。
【０１２８】
そこで、第６変形例では、アプリケーションデータ８０を複数に分割して得られる複数の分割データ８１のうち、当該アプリケーションデータ８０において初期に使用されるデータ（以後、「初期使用データ」と呼ぶことがある）は圧縮されずに記憶領域６に書き込まれる。そして、複数の分割データ８１のうち、初期使用データ以外のデータは圧縮されて記憶領域６に書き込まれる。上述の図２０を用いて説明すると、非圧縮分割データ８１ａが初期使用データである。アプリケーションデータ８０がゲームデータである場合には、ゲームの初期で使用される、ゲームプログラムの一部などのデータが、圧縮されずに記憶領域６に記憶される。これにより、ホスト装置２に記憶装置３が装着された直後に、ホスト装置２が記憶装置３に対するアクセスを開始する場合であっても、メモリ制御装置４は、ホスト装置２から要求される初期使用データをすぐにホスト装置２に送信することが可能となる。よって、ホスト装置２からの送信要求に対する応答時間を短縮することができる。アプリケーションデータ８０のうち、初期使用データ以外のデータに相当する複数の圧縮分割データ８２は、第５変形例と同様に、ホスト装置２がメモリ制御装置４にアクセスしていない間に伸張される。
【０１２９】
＜第７変形例＞
第５変形例のように、ホスト装置２がメモリ制御装置４にアクセスしていない間に、メモリ制御装置４が、圧縮分割データ８２の伸張書き込み処理を行う場合、メモリ制御装置４が任意の順番で圧縮分割データ８２の伸張書き込み処理を行うと、ホスト装置２から要求のあった送信対象データが未だ伸張されていないことがある。この場合には、ホスト装置２からのデータ送信要求に対する応答時間が長くなる。
【０１３０】
そこで、第７変形例では、メモリ制御装置４は、ホスト装置２から通知される、圧縮分割データ８２の伸張優先度に応じて、圧縮分割データ８２を伸張する。ホスト装置２は、例えば、記憶装置３がはじめて接続された直後に、圧縮分割データ８２の伸張優先度を記憶装置３のメモリ制御装置４に通知する。メモリ制御装置４は、ホスト装置２から通知される伸張優先度を例えばフラッシュメモリ５に記憶する。そして、メモリ制御装置４は、ホスト装置２がメモリ制御装置４にアクセスしていない間に、伸張優先度に応じて圧縮分割データ８２の伸張書き込み処理を行う。
【０１３１】
記憶領域６に記憶される複数の圧縮分割データ８２のそれぞれには、固有の伸張優先度が設定される。ホスト装置２は、複数の圧縮分割データ８２のそれぞれに設定された伸張優先度をメモリ制御装置４に通知する。伸張優先度は、例えば、ホスト装置２がアクセスする順番が早い圧縮分割データ８２の伸張優先度ほど高く設定される。また、伸張優先度は、ホスト装置２がアクセスする頻度が多い圧縮分割データ８２の伸張優先度ほど高く設定されても良い。ホスト装置２がアクセスする頻度が多い圧縮分割データ８２は、記憶装置３がホスト装置２に初めて接続された後、早くホスト装置２にアクセスされる可能性が高い。したがって、ホスト装置２がアクセスする頻度が多い圧縮分割データ８２の伸張優先度ほど高く設定することによって、ホスト装置２に早くアクセスされる可能性が高い圧縮分割データ８２の伸張優先度が高くなる。また、圧縮分割データ８２の伸張優先度は、ホスト装置２が当該圧縮分割データ８２にアクセスする順番及びアクセスする頻度に基づいて決定されても良い。
【０１３２】
ホスト装置２は、自ら伸張優先度を決定しても良い。また、外部装置からホスト装置２に対して伸張優先度を入力しても良い。例えば、ホスト装置２をインターネット等を介して外部装置に接続し、外部装置が、実運用中でのホスト装置２の記憶装置３に対するアクセスを解析する。そして、外部装置は、その解析結果に基づいて、伸張優先度を決定する。外部装置で決定された伸張優先度は、新しく製造されたホスト装置２に対して当該外部装置からインターネット等を通じて入力される。ホスト装置２は、外部装置から入力された伸張優先度を記憶部２１に記憶する。そして、ホスト装置２は、記憶装置３がはじめて接続された直後に、記憶部２１内の伸張優先度を当該記憶装置３に通知する。
【０１３３】
メモリ制御装置４は、ホスト装置２がメモリ制御装置４にアクセスしていない間に、複数の圧縮分割データ８２を伸張優先度が高い順に伸張する。これにより、ホスト装置２によるアクセスの順番が早い圧縮分割データ８２あるいはホスト装置２によるアクセス頻度が多い圧縮分割データ８２が先に伸張される。よって、メモリ制御装置４は、ホスト装置２から要求のあった送信対象データをすぐにホスト装置２に送信することが可能となる。よって、ホスト装置２からのデータ送信要求に対する応答時間を短くすることができる。
【０１３４】
なお、上記の第２変形例のように、ブロック６０内の複数の圧縮分割データ８２をまとめて伸張する場合には、当該複数の圧縮分割データ８２には同じ伸張優先度が設定される。また、上記の第３変形例のように、少なくとも一つの非またがり圧縮データ８２と、当該ブロック６０に隣接する隣接ブロック６０と当該ブロック６０とにまがって記憶されるまたがり圧縮データ８２の一部とのみを記憶するブロック６０が存在する場合には、当該少なくとも一つの非またがり圧縮分割データ８２及び当該またがり圧縮データ８２には同じ伸張優先度が設定される。また、上記の第３変形例のように、少なくとも一つの非またがり圧縮データ８２、第１またがり圧縮データ８２の一部及び第２またがり圧縮データ８２の一部とのみを記憶するブロック６０が存在する場合には、当該少なくとも一つの非またがり圧縮分割データ８２、当該第１またがり圧縮データ８２及び当該第２またがり圧縮データ８２には同じ伸張優先度が設定される。
【０１３５】
以上のように、データ処理システム１は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０１３６】
１  データ処理システム
２  ホスト装置
３  記憶装置
４  メモリ制御装置
５  フラッシュメモリ
４０  制御部
４１  伸張部
７０  管理情報
８０  アプリケーションデータ
８１  分割データ
８２  圧縮分割データ
１００  コンピュータ装置
１２１  データ書き込みプログラム
２１０  制御プログラム
【図１】
0006471012.tif 000002
【図２】
0006471012.tif 000003
【図３】
0006471012.tif 000004
【図４】
0006471012.tif 000005
【図５】
0006471012.tif 000006
【図６】
0006471012.tif 000007
【図７】
0006471012.tif 000008
【図８】
0006471012.tif 000009
【図９】
0006471012.tif 000010
【図１０】
0006471012.tif 000011
【図１１】
0006471012.tif 000012
【図１２】
0006471012.tif 000013
【図１３】
0006471012.tif 000014
【図１４】
0006471012.tif 000015
【図１５】
0006471012.tif 000016
【図１６】
0006471012.tif 000017
【図１７】
0006471012.tif 000018
【図１８】
0006471012.tif 000019
【図１９】
0006471012.tif 000020
【図２０】
0006471012.tif 000021