(57)【要約】【課題】ライトバック処理の発生頻度を抑制することができるようにする。【解決手段】メモリ制御部は、不揮発性メモリに書き込む書き込みデータを有する上位層としてのファイルシステム制御部から、書き込みサイズ通知により、書き込みデータのサイズを取得する。メモリ制御部は、取得された書き込みデータのサイズの空き領域を検索し、検索結果に基づき、書き込みデータの書き込み先の論理アドレスを上位層に通知する。本技術は、例えば、不揮発性メモリを制御するメモリ制御装置に適用できる。【選択図】図１２
2013050880.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得する取得部と、
取得された前記書き込みデータのサイズの空き領域を検索する検索部と、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する通知部と
を備えるメモリ制御装置。
【請求項２】
前記不揮発性メモリに前記書き込みデータを書き込む制御を行う書き込み制御部をさらに備え、
前記取得部は、さらに、前記上位層から、前記通知部が通知した前記論理アドレスを書き込み先とする書き込み命令を取得し、
前記書き込み制御部は、前記書き込み命令に基づいて、前記書き込みデータを書き込む
請求項１に記載のメモリ制御装置。
【請求項３】
前記検索部は、検索された前記書き込みデータのサイズ以上の空き領域のなかから、前記書き込みデータと同一サイズの空き領域を、前記検索結果とする
請求項１に記載のメモリ制御装置。
【請求項４】
前記検索部は、検索された前記空き領域のなかから、これまでの書き換え回数が少ない空き領域を、前記検索結果とする
請求項１に記載のメモリ制御装置。
【請求項５】
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、
取得された前記書き込みデータのサイズの空き領域を検索し、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する
ステップを含むメモリ制御方法。
【請求項６】
コンピュータに、
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、
取得された前記書き込みデータのサイズの空き領域を検索し、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する
処理を実行させるためのプログラム。
【請求項７】
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知する通知部と、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得する取得部と
を備え、
前記通知部は、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
データ管理装置。
【請求項８】
前記通知部は、前記メモリ制御装置に書き込まれたデータのうち、消去可能なデータが記録された論理アドレスも通知する
請求項７に記載のデータ管理装置。
【請求項９】
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、
取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
ステップを含むデータ管理方法。
【請求項１０】
コンピュータに、
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、
取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メモリ制御装置およびその方法、データ管理装置およびその方法、並びに、プログラムに関し、特に、ライトバック処理の発生頻度を抑制することができるようにするメモリ制御装置およびその方法、データ管理装置およびその方法、並びに、プログラムに関する。
【背景技術】
【０００２】
フラッシュメモリなどの不揮発性メモリは、パーソナルコンピュータ、デジタルスチルカメラ、オーディオレコーダ等の多くの電子機器で記憶媒体として利用されている。
【０００３】
不揮発性メモリでは、データの書き換え回数が有限であるため、ライトバック処理の発生頻度を抑えることが重要であり、そのための手法が本出願人により提案されている（例えば、特許文献１参照）。ここで、ライトバック処理とは、簡単に言うと、書き込み先の論理ブロックに対応するキャッシュ領域の物理ブロック（キャッシュブロック）に空きがない場合に、キャッシュブロック内の残すべきデータを他のブロックにコピーし、コピー後にキャッシュブロックのデータを消去する処理である。ライトバック処理ではデータの書き換えが必要となるため、できるだけライトバック処理の発生頻度を抑制させる必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第4356782号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法では、上位層から、書き込み先の論理アドレスが指定され、デバイス側は上位層から指定された論理アドレスに書き込んでいた。このとき、上位層は、デバイス側の書き込み状態に関係なく、書き込み先の論理アドレスを指定するので、ライトバック処理の発生頻度を抑制する点においては不効率となる場合があった。
【０００６】
本技術は、このような状況に鑑みてなされたものであり、ライトバック処理の発生頻度を抑制することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の第１の側面のメモリ制御装置は、不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得する取得部と、取得された前記書き込みデータのサイズの空き領域を検索する検索部と、検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する通知部とを備える。
【０００８】
本技術の第１の側面のメモリ制御方法は、不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、取得された前記書き込みデータのサイズの空き領域を検索し、検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知するステップを含む。
【０００９】
本技術の第１の側面のプログラムは、コンピュータに、不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、取得された前記書き込みデータのサイズの空き領域を検索し、検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する処理を実行させるためのものである。
【００１０】
本技術の第１の側面においては、不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズが取得され、取得された前記書き込みデータのサイズの空き領域が検索され、検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスが前記上位層に通知される。
【００１１】
本技術の第２の側面のデータ管理装置は、不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知する通知部と、前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得する取得部とを備え、前記通知部は、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する。
【００１２】
本技術の第２の側面のデータ管理方法は、不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知するステップを含む。
【００１３】
本技術の第２の側面のプログラムは、コンピュータに、不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する処理を実行させるためのものである。
【００１４】
本技術の第２の側面においては、不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズが通知され、前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスが取得され、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令が前記メモリ制御装置に通知される。
【００１５】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【００１６】
メモリ制御装置およびデータ管理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００１７】
本技術の第１及び第２の側面によれば、ライトバック処理の発生頻度を抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】本技術が適用された電子機器の一実施の形態の構成例を示すブロック図である。
【図２】記録データ制御に関する機能ブロック図である。
【図３】不揮発性メモリの構造について説明する図である。
【図４】起動シーケンスを説明するフローチャートである。
【図５】従来の書き込み制御を説明する図である。
【図６】従来の書き込み制御を説明する図である。
【図７】従来の書き込み制御を説明する図である。
【図８】従来の書き込み制御を説明する図である。
【図９】従来の書き込み制御を説明する図である。
【図１０】従来の書き込み制御を説明する図である。
【図１１】従来の書き込み制御を説明するフローチャートである。
【図１２】書き込みデータサイズがブロックサイズ未満である場合の書き込み制御を説明する図である。
【図１３】書き込みデータサイズがブロックサイズ未満である場合の書き込み制御を説明する図である。
【図１４】書き込みデータサイズがブロックサイズ未満である場合の書き込み制御を説明する図である。
【図１５】従来の書き込み制御について説明する図である。
【図１６】従来の書き込み制御について説明する図である。
【図１７】書き込みデータサイズがブロックサイズである場合の書き込み制御を説明する図である。
【図１８】図１７の書き込み制御を説明するフローチャートである。
【図１９】１回の書き込みサイズ通知に対して２回の書き込みを行う例を示したフローチャートである。
【図２０】１回の書き込みサイズ通知に対して２回の書き込みを行う例を示す図である。
【図２１】消去命令を行う処理のフローチャートである。
【図２２】ファイルシステム制御部とメモリ制御部の詳細機能ブロック図である。
【発明を実施するための形態】
【００１９】
以下、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．  電子機器の構成例
２．  書き込みデータ制御に関する機能ブロック図
３．  不揮発性メモリの動作の前提条件
４．  起動シーケンス
５．  従来手法による書き込み制御の説明
６．  書き込みデータサイズがブロックサイズ未満である場合の書き込み制御の説明
７．  書き込みデータサイズがブロックサイズである場合の書き込み制御の説明
８．  書き込み回数が複数回の例
９．  データの消去命令
１０．  ファイルシステム制御部とメモリ制御部の詳細機能ブロック図
【００２０】
［電子機器の構成例］
図１は、本技術が適用された電子機器の一実施の形態の構成例を示すブロック図である。
【００２１】
図１に示される電子機器１は、例えば、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、オーディオレコーダ等の、画像データや音声データなどの所定のデータを記録する機器である。
【００２２】
電子機器１は、例えば、ＭＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、入出力インタフェース１５、操作入力デバイス１６、表示デバイス１７、及び、通信インタフェース１８を備える。また、電子機器１は、データの伝送路としてのバス１９で各構成要素間を接続する。
【００２３】
ＭＰＵ１１は、ＭＰＵ（Micro Processing Unit）や、制御機能を実現するための複数の回路が集積された集積回路などで構成され、電子機器１全体を制御する制御部として機能する。
【００２４】
ＭＰＵ１１は、電子機器１の電源投入とともに、オペレーティングシステム（OS)を起動実行し、FAT（File Allocation Tables）やUDF（Universal Disk Format）などのファイルシステムによって、不揮発性メモリ１３に記録されている画像や音声のデータをファイルとして管理する。
【００２５】
ＲＯＭ（Read Only Memory）１２は、起動プログラムや演算パラメータなどの制御用データを記憶する。ＲＡＭ（Random Access Memory）１３は、例えば、ＭＰＵ１１により実行されるアプリケーションプログラムなどを一時記憶する。
【００２６】
不揮発性メモリ１４は、NAND型のフラッシュメモリであり、画像データや音声データなど、様々なデータを記憶する記録媒体である。不揮発性メモリ１４はまた、ＭＰＵ１１により実行される、オペレーティングシステム、デバイスドライバ、およびアプリケーションプログラムも記憶する。
【００２７】
入出力インタフェース１５は、操作入力デバイス１６および表示デバイス１７を接続する。入出力インタフェース１５としては、例えば、ＵＳＢ（Universal Serial Bus）端子や、ＤＶＩ（Digital Visual Interface）端子、ＨＤＭＩ（High-Definition Multimedia Interface）端子、各種処理回路などが挙げられるが、上記に限られない。
【００２８】
操作入力デバイス１６は、操作部として機能し、また、表示デバイス１７は、表示部として機能する。操作入力デバイス１６としては、例えば、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられるが、上記に限られない。また、表示デバイス１７としては、例えば、液晶ディスプレイ（Liquid Crystal Display；ＬＣＤ）や有機ＥＬディスプレイ（organic ElectroLuminescence display。または、ＯＬＥＤディスプレイ（Organic Light Emitting Diode display）ともよばれる。）などが挙げられるが、上記に限られない。
【００２９】
なお、入出力インタフェース１５は、電子機器１の外部装置としての操作入力デバイス（例えば、キーボードやマウスなど）や、表示デバイス（例えば、外部ディスプレイなど）と接続することもできる。また、表示デバイス１７は、例えばタッチスクリーンなど、表示とユーザ操作とが可能なデバイスであってもよい。
【００３０】
通信インタフェース１８は、ネットワークを介して（あるいは、直接的に）、サーバなどの外部装置と無線または有線で通信を行うための通信部として機能する。ここで、通信インタフェース１８としては、例えば、通信アンテナおよびＲＦ回路（無線通信）や、ＩＥＥＥ８０２．１５．１ポートおよび送受信回路（無線通信）、ＩＥＥＥ８０２．１１ｂポートおよび送受信回路（無線通信）、あるいはＬＡＮ端子および送受信回路（有線通信）などが挙げられる。
【００３１】
ここで、本実施の形態に係るネットワークとしては、例えば、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの有線ネットワーク、基地局を介した無線ＷＡＮ（ＷＷＡＮ；Wireless Wide Area Network）や無線ＭＡＮ（ＷＭＡＮ；Wireless Metropolitan Area Network）などの無線ネットワーク、あるいは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などの通信プロトコルを用いたインターネットなどが挙げられる。
【００３２】
電子機器１は、以上のように構成される。なお、本実施の形態に係る電子機器１のハードウェア構成は、図１に示す構成に限られない。
【００３３】
［書き込みデータ制御に関する機能ブロック図］
上述した電子機器１において、例えば、撮影された画像データや、受信した放送信号に基づく画像データが、不揮発性メモリ１４に記録される場合、MPU１１は、それらの画像データをファイルとして、不揮発性メモリ１４に記録させる。
【００３４】
図２は、不揮発性メモリ１４にデータを書き込む場合の制御に関する機能ブロック図を示している。
【００３５】
不揮発性メモリ１４へのデータの書き込みは、MPU１１により実行されるオペレーティングシステム４２により制御・管理される。オペレーティングシステム４２は、いわゆる基本プログラムであり、例えば、電子機器１のハードウェアなどのリソースの取り扱いを制御する。オペレーティングシステム４２には、ファイルシステム制御部６１とメモリ制御部６２が少なくとも含まれる。
【００３６】
オペレーティングシステム４２上で実行されるアプリケーションプログラム４１は、各種の処理を実行して、ファイルの書き込みおよび読み出しをオペレーティングシステム４２に要求する。アプリケーションプログラム４１は、オペレーティングシステム４２のファイルシステム制御部６１に対して、ファイル単位（レベル）でのアクセス（読み出しまたは書き込み）を要求（指示）する。
【００３７】
ファイルシステム制御部６１は、例えば、FATファイルシステムであり、不揮発性メモリ１４に記録されているデータの書き込みおよび読み出しをTU（Translation Unit）単位で管理する。ここで、TU単位とは、不揮発性メモリ１４のデータの書き込みおよび読み出し単位をページ、消去単位をブロックとすると、ページサイズ以上、ブロックサイズ未満で構成されるサイズである。従って、ファイルシステム制御部６１は、データの書き込みおよび読み出しについては、TU単位でランダムにメモリ制御部６２に指示し、データの消去については、ブロック単位でランダムにメモリ制御部６２に指示することができる。
【００３８】
ファイルシステム制御部６１は、アプリケーションプログラム４１から一つのファイルのデータの書き込みが要求された場合、メモリ制御部６２に対して一度の書き込み命令で行うのではなく、複数回の書き込み命令をTU単位で行う。なお、ファイルシステム制御部６１は、メモリ制御部６２に、複数TUを指定して、まとめて書き込むことは可能である。
【００３９】
メモリ制御部６２は、例えば、デバイスドライバで構成され、不揮発性メモリ１４の動作に必要な情報を上位層であるファイルシステム制御部６１に供給し、ファイルシステム制御部６１の制御に基づいて、不揮発性メモリ１４に対するデータの書き込みまたは読み出しなど、不揮発性メモリ１４の動作を制御する。
【００４０】
メモリ制御部６２は、ファイルシステム制御部６１からのTU単位（レベル）でのアクセス（読み出しまたは書き込み）の要求（指示）に対して、ページ単位で不揮発性メモリ１４にアクセスする。また、メモリ制御部６２は、データを消去する場合には、上述したように、ブロック単位で消去する。
【００４１】
不揮発性メモリ１４は、主記憶領域８１とキャッシュ領域８２とで構成される。主記憶領域８１は、データが最終的に記憶されるデータ領域であり、主記憶領域８１のサイズ（記憶容量）が、ユーザ側（ファイルシステム制御部６１側）で認識される不揮発性メモリ１４のメモリサイズとなる。キャッシュ領域８２は、データを一時的に保存する領域である。
【００４２】
［不揮発性メモリの動作の前提条件］
図３を参照して、不揮発性メモリ１４を制御するための前提となる不揮発性メモリ１４の制御構造について説明する。
【００４３】
不揮発性メモリ１４の記憶領域（物理領域）は、複数の物理ブロックで構成される。主記憶領域８１は、複数の物理ブロックで構成され、主記憶領域８１を構成する各物理ブロックをユーザブロックと呼ぶ。
【００４４】
一方、キャッシュ領域８２は、複数の物理ブロックで構成され、キャッシュ領域８２を構成する各物理ブロックをキャッシュブロックと呼ぶ。ユーザブロックとキャッシュブロックは、同一のブロックサイズである。
【００４５】
また、ファイルシステム制御部６１は、LBA(Logical Block Address)空間でデータの書き込み等を、メモリ制御部６２に指示するため、主記憶領域８１を構成する各ユーザブロックと１対１に、論理ブロックが割り当てられている。
【００４６】
論理ブロックは、複数の論理TU（以下、LTUという。）で構成され、論理TUに対応する物理領域の単位が、上述したTUである。従って、主記憶領域８１の各ユーザブロックは、複数のTUで構成される。ファイルシステム制御部６１は、不揮発性メモリ１４に対するデータの書き込みおよび読み出しの制御をLTU単位で行い、データの消去の制御を、論理ブロック単位で行う。なお、本実施の形態では、図３に示されるように、１つの論理ブロックは、４つのLTUで構成されている。
【００４７】
また、メモリ制御部６２では、１つの論理ブロックに対して割り当て可能なキャッシュブロックの個数、および、キャッシュブロックを割り当てられる論理ブロックの個数が制限条件として決められている。メモリ制御部６２は、その制限条件の下、データが記憶されていない（消去済み）物理ブロックである消去済みブロックを、所定の論理ブロックに対応するキャッシュブロックとして割り当てることができる。本実施の形態では、１つの論理ブロックに対して割り当て可能なキャッシュブロックの個数と、キャッシュブロックを割り当てられる論理ブロックの個数は、いずれも３個であるとする。従って、本実施の形態の不揮発性メモリ１４は、物理的な記憶領域として、少なくとも１２個の物理ブロックを有していることになる。
【００４８】
ユーザブロックおよびキャッシュブロックは、そこに記録されていたデータが消去され、消去済みブロックとされると、その後、再び、ユーザブロックまたはキャッシュブロックとして利用することができる。
【００４９】
メモリ制御部６２は、LBA(Logical Block Address)空間で表される論理領域と、不揮発性メモリ１４の物理領域との対応関係を管理し、ファイルシステム制御部６１からの論理アドレスに対応する不揮発性メモリ１４の物理領域にアクセスする。
【００５０】
図３で示される不揮発性メモリ１４の主記憶領域８１は、３個の論理ブロック０乃至３に対応するユーザブロック０乃至３で構成されている。そして、論理ブロック１に対して、３個のキャッシュブロック１−１乃至１−３が割り当てられ、それ以外の論理ブロック０および２には、キャッシュブロックが割り当てられていない状態を示している。
【００５１】
図３において、物理ブロックを構成する各TUに付された符号は、物理領域の各TUの絶対番地（絶対アドレス）を表すものとする。図３においては、理解を容易にするため、ユーザブロック０乃至２と、キャッシュブロック１−１乃至１−３に対して、絶対番地の小さい方から順に割り当てた例を示しているが、どの物理ブロックがユーザブロックまたはキャッシュブロックとして割り当てられるかはメモリ制御部６２の制御によって異なる。即ち、物理ブロックは、メモリ制御部６２の制御によって、ユーザブロックともなり得るし、キャッシュブロックともなり得る。
【００５２】
また、図３において、グレー色で塗りつぶされたTUは、データが記録済みのTUであることを示し、以降の図においても同様に表す。
【００５３】
不揮発性メモリ１４の制御および構成についてまとめると、次のように言うことができる。主記憶領域８１は、複数のユーザブロックで構成され、キャッシュ領域８２は、複数のキャッシュブロックで構成される。主記憶領域８１は、不揮発性メモリ１４としてのメモリ容量と同一の容量を有し、キャッシュ領域８２は、不揮発性メモリ１４としてのメモリ容量と同一の容量を有する必要が無い。主記憶領域８１とキャッシュ領域８２は、異なるデバイスである必要が無く、同じデバイス内の物理ブロックごとに主記憶領域８１またはキャッシュ領域８２を割り当てることが可能である。
【００５４】
本実施の形態の主記憶領域８１とキャッシュ領域８２は、上述したように、一つのデバイス（記憶領域）を、主記憶領域８１またはキャッシュ領域８２として適宜使い分けるようにして構成されるが、主記憶領域８１とキャッシュ領域８２は、それぞれ異なるデバイスとして予め区別して設けられてもよい。
【００５５】
［起動シーケンス］
図４は、電子機器１の電源が投入され、オペレーティングシステム４２が起動したときに、ファイルシステム制御部６１とメモリ制御部６２との間で行われる処理を説明するフローチャートである。
【００５６】
オペレーティングシステム４２が起動されると、ステップＳ１において、ファイルシステム制御部６１は、メモリ制御部６２にLTUのサイズ（LTUサイズ）と論理ブロックのサイズ（論理ブロックサイズ）を要求する。
【００５７】
ステップＳ２において、メモリ制御部６２は、ファイルシステム制御部６１からの要求に応じて、LTUのサイズと論理ブロックのサイズをファイルシステム制御部６１に返答（出力）する。
【００５８】
以上の処理により、ファイルシステム制御部６１はLTUのサイズと論理ブロックのサイズを認識し、LTU単位による制御が可能となる。
【００５９】
［従来手法による書き込み制御の説明］
次に、図５乃至図１１を参照して、従来行われていた不揮発性メモリ１４に対する書き込み制御について説明する。なお、図５乃至図１１の説明において、便宜上、ファイルシステム制御部６１とメモリ制御部６２が行うものとして説明する。
【００６０】
図５は、データを書き込み前の不揮発性メモリ１４の状態を示している。
【００６１】
データ書き込み前の不揮発性メモリ１４の状態は、図３に示した状態と同様に、論理ブロック１と、それに割り当てられた３個のキャッシュブロック１−１乃至１−３の全てのTUがデータ書き込み済みの状態である。なお、書き込み済みの各TUのうち、有効なデータは、ユーザブロック１のTU４と、キャッシュブロック１−１のTU１３、キャッシュブロック１−２のTU１８、及び、キャッシュブロック１−３のTU２３であるとする。
【００６２】
不揮発性メモリ１４の状態が、図５に示す状態であるとき、ファイルシステム制御部６１から、開始LTUアドレスとして「５（LTU５）」、書き込みTU数として「２」の書き込み命令が供給された場合の従来手法による制御を、以下で説明する。
【００６３】
初めに、メモリ制御部６２は、書き込み対象のLTU５およびLTU６が含まれる論理ブロック１に対応するユーザブロック１に割り当てられたキャッシュブロック１−１乃至１−３の各TUがいずれも書き込み済みであるので、図６に示されるように、他の消去済みブロックを確保する。図６の例では、TU３２乃至TU３５で構成される物理ブロックが消去済みブロックとして確保されている。
【００６４】
そして、メモリ制御部６２は、確保した消去済みブロックに、論理ブロック１の有効なデータをコピーする。具体的には、図６に示すように、ユーザブロック１のTU４、キャッシュブロック１−１のTU１３、キャッシュブロック１−２のTU１８、及び、キャッシュブロック１−３のTU２３のデータを、確保した消去済みブロックのTU３２乃至TU３５にコピーする。
【００６５】
次に、メモリ制御部６２は、図７に示されるように、コピー完了により不要になった、TU４乃至TU７で構成されるユーザブロック１と、TU１２乃至TU２３で構成されるキャッシュブロック１−１乃至１−３のデータを消去する。
【００６６】
そして、メモリ制御部６２は、図８に示されるように、先ほど有効なデータをコピーした元消去済みブロックを、論理ブロック１に対応する新たなユーザブロック１として割り当てる。換言すれば、論理ブロック１に対応するユーザブロック１が、TU４乃至TU７で構成される物理ブロックから、TU３２乃至TU３５で構成される物理ブロックに変更される。
【００６７】
以上のように、書き込み先の論理ブロックに対応するキャッシュブロックに空きがない場合に、ユーザブロック及びキャッシュブロック内の有効なデータを新たな物理ブロックにコピーし、コピー後に現在のキャッシュブロックのデータを消去する処理がライトバック処理と呼ばれる。
【００６８】
ライトバック処理の後、メモリ制御部６２は、図９に示されるように、１つの消去済みブロックをさらに確保し、論理ブロック１に対応する１個目のキャッシュブロック１−１として割り当て、書き込み命令とともに供給されたデータを、そこに書き込む。図９では、TU２０乃至TU２３で構成される物理ブロックが、キャッシュブロック１−１として割り当てられ、そのうちのTU２０とTU２１に、ファイルシステム制御部６１から供給されたデータが書き込まれている。このとき、メモリ制御部６２では、論理ブロック１のLTU５に対して新キャッシュブロック１−１のTU２０が、論理ブロック１のLTU６に対して新キャッシュブロック１−１のTU２１が参照されるようなアドレス変換が設定される。
【００６９】
図１０は、開始LTUアドレス：５、書き込みTU数：２の書き込み命令による書き込み処理完了後の不揮発性メモリ１４の最終的な状態を示している。
【００７０】
図１１は、図５乃至図１０を参照して説明した従来の書き込み制御を説明するフローチャートである。
【００７１】
ファイルシステム制御部６１は、上位のアプリケーションプログラム４１からのデータ書き込み命令を受けて、ステップＳ１１において、開始LTUアドレス：５（LTU５）、書き込みTU数：２の書き込み命令をメモリ制御部６２に出力する。
【００７２】
メモリ制御部６２は、ステップＳ１２において、書き込み対象のLTU５およびLTU６が含まれる論理ブロック１に対応するユーザブロック１に割り当てられたキャッシュブロック１−１乃至１−３の各TUがいずれも書き込み済みであるので、ライトバック処理を行う。即ち、メモリ制御部６２は、ユーザブロック及びキャッシュブロック内の有効なデータを、（新ユーザブロックとなる）新たな物理ブロックにコピーし、コピー後に現在のユーザブロック及びキャッシュブロックのデータを消去する処理を行う。
【００７３】
ステップＳ１３において、メモリ制御部６２は、新キャッシュブロックとなる消去済みブロックを確保し、書き込み命令とともにファイルシステム制御部６１から供給されたデータを、確保した新キャッシュブロックに書き込む。
【００７４】
そして、ステップＳ１４において、メモリ制御部６２は、書き込み完了後、書き込み命令に対する終了応答を、ファイルシステム制御部６１に返信して、終了する。
【００７５】
以上のように、従来の手法では、デバイス側の書き込み状態に関係なく、上位層であるファイルシステム制御部６１が独自にデータの書き込み先（開始LTUアドレス）を指定していた。従って、上述した例で言えば、論理ブロック０または論理ブロック２をデータの書き込み先に指定すれば、ライトバック処理を回避できた場合までも、ライトバック処理が行われることとなっていた。
【００７６】
［書き込みデータサイズがブロックサイズ未満である場合の書き込み制御の説明］
そこで、図１２および図１３を参照して、ファイルシステム制御部６１とメモリ制御部６２とで行われる、本技術を適用した書き込み制御を説明する。なお、図１２および図１３を参照して説明する書き込み制御方法は、書き込むデータのデータサイズがブロックサイズ未満、即ち、TU数が４個未満である場合の方法である。書き込むデータのデータサイズがブロックサイズであるときの書き込み制御方法については後述する。
【００７７】
図１２は、ファイルシステム制御部６１とメモリ制御部６２とで行われる本技術を適用した書き込み制御のフローチャートである。
【００７８】
ファイルシステム制御部６１は、上位のアプリケーションプログラム４１からのデータ書き込み命令を受けると、ステップＳ３１において、書き込みサイズを通知する書き込みサイズ通知を、メモリ制御部６２に出力する。上述した例でいうと、TU数：２を書き込みサイズとして指定した書き込みサイズ通知が、ファイルシステム制御部６１からメモリ制御部６２に供給される。
【００７９】
ステップＳ３２において、メモリ制御部６２は、キャッシュブロックのデータの書き込み状態に基づいて、ライトバック処理を発生させず、指定された書き込みサイズのデータを書き込み可能な書き込み先を検索する。検索結果として、例えば、LTUアドレス８と９が検索されたとする。
【００８０】
そして、ステップＳ３３において、メモリ制御部６２は、検索結果に基づいて、開始LTUアドレスとして、先頭のLTUアドレス（８）を通知する開始LTUアドレス通知を、ファイルシステム制御部６１に出力する。
【００８１】
ステップＳ３４において、ファイルシステム制御部６１は、ステップＳ３１で先に通知した書き込みサイズと、開始LTUアドレス通知で指定された開始LTUアドレスを指定した書き込み命令をメモリ制御部６２に出力する。即ち、ファイルシステム制御部６１は、開始LTUアドレス：８（LTU８）、書き込みTU数：２の書き込み命令をメモリ制御部６２に出力する。
【００８２】
ステップＳ３５において、メモリ制御部６２は、書き込み命令とともにファイルシステム制御部６１から供給されたデータを、指定された開始LTUアドレスから書き込む。指定された開始LTUアドレスが含まれる論理ブロックに対応するキャッシュブロックは、必要に応じて割り当てられる。
【００８３】
そして、ステップＳ３５において、メモリ制御部６２は、書き込み完了後、書き込み命令に対する終了応答を、ファイルシステム制御部６１に返信して、終了する。
【００８４】
図１３は、図１２で説明した処理を図示したものである。なお、図１３において、データを書き込む前の不揮発性メモリ１４の状態は、図５に示した従来例と同様である。
【００８５】
図１３に示されるように、メモリ制御部６２は、TU数：２の書き込みサイズが通知されたとき、上限値の３個のキャッシュブロックが割り当てられ、かつ、その全てでデータが書き込み済みである論理ブロック１を除外したなかから、例えば、論理ブロック２のLTUアドレス８と９を書き込み先として検索し、決定する。そして、メモリ制御部６２は、LTUアドレス：８を開始LTUアドレスとして通知する。
【００８６】
ファイルシステム制御部６１は、開始LTUアドレス通知で指定された開始LTUアドレス（LTUアドレス：８）を指定して、書き込み命令をメモリ制御部６２に出力する。
【００８７】
書き込み前の状態では、論理ブロック２に対しては１個のキャッシュブロックも割り当てられておらず、また、キャッシュブロックが割り当てられている論理ブロックも論理ブロック１の１個だけである。従って、論理ブロック２に対してキャッシュブロックを割り当てることができる。そこで、メモリ制御部６２は、論理ブロック２に対して１個目のキャッシュブロック２−１として、TU２８乃至TU３１で構成される１個の消去済みブロックを確保し、先頭の２つのTUにデータを書き込む。
【００８８】
以上のように、ファイルシステム制御部６１は、データの書き込み命令を出力する前に、最適な書き込み先、即ち、ライトバック処理が発生しない書き込み先をメモリ制御部６２から取得する。そして、ファイルシステム制御部６１は、取得した書き込み先を開始LTUアドレスで指定して、書き込み命令をメモリ制御部６２に出力する。
【００８９】
このように、メモリ制御部６２が最適な書き込み先を予め指定することで、ライトバック処理を行うことなく、データを書き込むことができる。即ち、本技術を適用した書き込み制御方法によれば、ライトバック処理の発生頻度を抑制することができる。
【００９０】
なお、上述した例のように、選択可能な論理ブロック０と論理ブロック２に対応するキャッシュブロックの書き込み状態が同一条件である場合には、メモリ制御部６２は、論理ブロック０と論理ブロック２のどちらを書き込み先として選択してもよい。
【００９１】
一方、例えば、図１４に示されるように、選択可能な論理ブロック０と論理ブロック２に対応するキャッシュブロックの書き込み状態が同一でない場合には、メモリ制御部６２は、書き込みサイズと同一のキャッシュブロックの空きTU数を有する論理ブロックを書き込み先として指定する。
【００９２】
図１４の例では、論理ブロック０に対応するキャッシュブロック０−２の空きTU数は３であり、論理ブロック２に対応するキャッシュブロック２−１の空きTU数は２である。従って、メモリ制御部６２は、論理ブロック２のLTUアドレス１０を、書き込み先として指定する。これにより、キャッシュブロックを効率よく使用することができ、不揮発性メモリ１４全体としての書き換え回数を抑制することができる。
【００９３】
［書き込みデータサイズがブロックサイズである場合の書き込み制御の説明］
次に、書き込むデータのデータサイズがブロックサイズであるときの書き込み制御について説明する。
【００９４】
初めに、図１５および図１６を参照して、従来行われていた書き込み制御について説明する。
【００９５】
従来の手法では、上述したように、デバイス側の書き込み状態に関係なく、上位層であるファイルシステム制御部６１が独自にデータの書き込み先（開始LTUアドレス）を指定する。
【００９６】
例えば、図１５に示されるように、論理ブロック０および論理ブロック１のそれぞれに対して、上限数のキャッシュブロックが割り当てられ、かつ、全てのTUにデータが書き込み済みであるような状態において、LTU３乃至LTU６に対応する4個のTUにデータを書き込む場合について説明する。
【００９７】
この場合、LTU３とLTU４乃至LTU６とは異なる論理ブロックであるため、ファイルシステム制御部６１は、論理ブロックの境界を跨って連続するLTUを１回の書き込み命令で書き込むことはできない。
【００９８】
そこで、従来では、図１６に示すような制御が行われる。
【００９９】
図１６は、書き込みデータサイズがブロックサイズである場合の従来の書き込み制御を説明するフローチャートである。なお、図１６においても、上述した例と同様、ファイルシステム制御部６１とメモリ制御部６２が制御を行うものとして説明する。
【０１００】
ファイルシステム制御部６１は、上位のアプリケーションプログラム４１からのデータ書き込み命令を受けると、初めに、LTUアドレスが小さい方の論理ブロック０に対する書き込みを行う。即ち、ステップＳ５１において、開始LTUアドレス：３（LTU３）、書き込みTU数：１の書き込み命令をメモリ制御部６２に出力する。
【０１０１】
メモリ制御部６２は、ステップＳ５２において、書き込み対象のLTU３に対応するユーザブロック０に割り当てられたキャッシュブロック０−１乃至０−３の各TUがいずれも書き込み済みであるので、ライトバック処理を行う。即ち、メモリ制御部６２は、ユーザブロック及びキャッシュブロック内の有効なデータを、（新ユーザブロックとなる）新たな物理ブロックにコピーし、コピー後に現在のキャッシュブロックのデータを消去する処理を行う。
【０１０２】
そして、ステップＳ５３において、メモリ制御部６２は、新キャッシュブロックとなる新たな消去済みブロックを確保し、書き込み命令とともにファイルシステム制御部６１から供給されたデータを、確保した新キャッシュブロックに書き込む。
【０１０３】
そして、ステップＳ５４において、メモリ制御部６２は、書き込み完了後、書き込み命令に対する終了応答をファイルシステム制御部６１に返信する。
【０１０４】
次に、残りの論理ブロック１に対する書き込みを行う。即ち、ステップＳ５５において、開始LTUアドレス：４（LTU４）、書き込みTU数：３の書き込み命令をメモリ制御部６２に出力する。
【０１０５】
メモリ制御部６２は、ステップＳ５６において、書き込み対象のLTU４乃至LTU６に対応するユーザブロック１に割り当てられたキャッシュブロック１−１乃至１−３の各TUがいずれも書き込み済みであるので、ライトバック処理を行う。即ち、メモリ制御部６２は、ユーザブロック及びキャッシュブロック内の有効なデータを、（新ユーザブロックとなる）新たな物理ブロックにコピーし、コピー後に現在のキャッシュブロックのデータを消去する処理を行う。
【０１０６】
そして、ステップＳ５７において、メモリ制御部６２は、新キャッシュブロックとなる新たな消去済みブロックを確保し、書き込み命令とともにファイルシステム制御部６１から供給されたデータを、確保した新キャッシュブロックに書き込む。
【０１０７】
そして、ステップＳ５８において、メモリ制御部６２は、書き込み完了後、書き込み命令に対する終了応答をファイルシステム制御部６１に返信し、終了する。
【０１０８】
以上のように、従来の書き込み制御によれば、論理ブロック０および論理ブロック１のそれぞれについてライトバック処理が行われる。
【０１０９】
次に、図１７を参照して、ファイルシステム制御部６１とメモリ制御部６２とで行われる本技術を適用した書き込み制御について説明する。
【０１１０】
本技術を適用した書き込み制御方法では、上述したように、最初に、メモリ制御部６２が、ファイルシステム制御部６１から通知された書き込みサイズに応じて、開始LTUアドレスを決定し、ファイルシステム制御部６１に通知する。図１５に示した書き込み前の状態においては、メモリ制御部６２は、図１７に示すように、データが記録済みではないユーザブロックに対応する論理ブロックで、かつ、ライトバック処理が発生しない論理ブロック２の先頭のLTUアドレス：８を、開始LTUアドレスとして、ファイルシステム制御部６１に通知する。
【０１１１】
そして、開始LTUアドレス通知に応じて、ファイルシステム制御部６１から、開始LTUアドレス：８（LTU８）、書き込みTU数：４の書き込み命令が供給された場合、メモリ制御部６２は、キャッシュブロックではなく、ユーザブロックに直接書き込む。即ち、メモリ制御部６２は、ブロックサイズ分のデータがくることが分かっている場合には、キャッシュブロックではなく、ユーザブロックに直接書き込む。これにより、キャッシュ領域８２（キャッシュブロック）に保存する時間と、ライトバック処理を行った場合のキャッシュ領域８２のデータを消去する時間を削減でき、かつ、キャッシュ領域８２の書き換え回数を減らすことができる。
【０１１２】
図１８は、図１７を参照して説明した書き込み制御のフローチャートである。
【０１１３】
ファイルシステム制御部６１は、上位のアプリケーションプログラム４１からのデータ書き込み命令を受けると、ステップＳ７１において、書き込みサイズを通知する書き込みサイズ通知を、メモリ制御部６２に出力する。ここで通知される書き込みサイズは、ブロックサイズであるTU数：４である。
【０１１４】
ステップＳ７２において、メモリ制御部６２は、キャッシュブロックへのデータの書き込み状態に基づいて、ライトバック処理を発生させず、指定された書き込みサイズのデータを書き込み可能な書き込み先を検索する。図１７の例では、LTUアドレス８乃至１１の論理ブロック２が検索される。
【０１１５】
そして、ステップＳ７３において、メモリ制御部６２は、検索結果に基づいて、開始LTUアドレスとして、論理ブロック２の先頭のLTUアドレス：８を通知する開始LTUアドレス通知を、ファイルシステム制御部６１に出力する。
【０１１６】
ステップＳ７４において、ファイルシステム制御部６１は、ステップＳ７１で先に通知した書き込みサイズと、開始LTUアドレス通知で指定された開始LTUアドレスを指定して、書き込み命令をメモリ制御部６２に出力する。即ち、ファイルシステム制御部６１は、開始LTUアドレス：８（LTU８）、書き込みTU数：４の書き込み命令をメモリ制御部６２に出力する。
【０１１７】
ステップＳ７５において、メモリ制御部６２は、論理ブロック２に対応するユーザブロック２に、直接、ファイルシステム制御部６１から供給されたデータを書き込む。
【０１１８】
そして、ステップＳ７５において、メモリ制御部６２は、書き込み完了後、書き込み命令に対する終了応答をファイルシステム制御部６１に返信して、終了する。
【０１１９】
以上のように、メモリ制御部６２が最適な書き込み先を予め指定することで、ライトバック処理を行うことなく、データを書き込むことができる。また、書き込むデータのデータサイズがブロックサイズである場合には、データが、キャッシュ領域８２（キャッシュブロック）ではなく、主記憶領域８１（ユーザブロック）に直接書き込まれる。これにより、キャッシュ領域８２に保存する時間とキャッシュ領域８２のデータを消去する時間を削減でき、かつ、キャッシュ領域８２の書き換え回数を減らすことができる。
【０１２０】
なお、ブロックサイズの書き込み先として指定可能な複数の論理ブロックがある場合、対応するユーザブロックのこれまでの書き換え回数の少ない方の論理ブロックを指定することができる。これにより、不揮発性メモリ１４の各物理ブロックの書き換え回数を平均化することができる。
【０１２１】
また、上述した実施の形態では、ファイルシステム制御部６１がメモリ制御部６２に通知する書き込みサイズ通知において、書き込む予定のサイズ（書き込みサイズ）のみを通知するようにしたが、書き込む予定の開始LTUアドレスも通知するようにしてもよい。
【０１２２】
従って、本技術を適用した書き込み制御方法によれば、不揮発性メモリ１４の書き換えの頻度を減らすことで、メモリシステムとしての寿命を延ばすことができる。また、ライトバック処理の発生頻度が減ることで、書き込み速度も高速化することができる。
【０１２３】
［書き込み回数が複数回の例］
上述した例は、いずれも、フィルシステム制御部６１からの１回の書き込みサイズ通知に対して、フィルシステム制御部６１から、書き込み命令が１回のみ通知される場合の例であった。しかし、ファイルシステム制御部６１は、書き込みサイズ通知により予め通知した書き込みサイズの領域を、何回の書き込み命令によって使用するか（書き込むか）は任意である。
【０１２４】
図１９は、１回の書き込みサイズ通知に対して、２回の書き込みを行う例を示したフローチャートである。
【０１２５】
即ち、図１９の処理では、ステップＳ９１乃至Ｓ９３の処理により、ファイルシステム制御部６１が書き込みサイズを通知して、それに応じてメモリ制御部６２が最適な開始LTUアドレスを通知する。
【０１２６】
そして、ファイルシステム制御部６１は、ステップＳ９４乃至Ｓ９６の処理からなる１回目の書き込み処理と、ステップＳ９７乃至Ｓ９９の処理からなる２回目の書き込み処理により、指定した書き込みサイズの領域にデータを書き込んでいる。
【０１２７】
ステップＳ９１乃至Ｓ９３の処理は、上述した図１８のステップＳ７１乃至Ｓ７３の処理と、開始LTUアドレスとTU数が異なるだけで、基本的に同様の処理であるので、詳細な説明は省略する。また、ステップＳ９４乃至Ｓ９６の処理及びステップＳ９７乃至Ｓ９９の処理も同様に、上述した図１８のステップＳ７４乃至Ｓ７６の処理と、基本的に同様の処理であるので、詳細な説明は省略する。
【０１２８】
図１９で説明した書き込み処理を図示すると、図２０Aに示すようになる。図２０Aでは、確保されたLTUアドレス４乃至７に対して、１TUを書き込む１回目の書き込みと、３TUを書き込む２回目の書き込みの計２回の書き込みが行われている。
【０１２９】
その他、図２０Bに示されるように、確保されたLTUアドレス４乃至７に対して、４回の書き込みにより、最終的に４TUの書き込みを行ってもよいし、図２０Cに示されるように２TUの２回の書き込みにより、最終的に４TUの書き込みを行ってもよい。
【０１３０】
［データの消去命令］
本技術を適用した書き込み制御によれば、上述したように、メモリ制御部６２は、書き込みサイズ通知により指定されたサイズの空き領域を検索して書き込み先を返答するが、処理が進むにつれて、空き領域が少なくなる。デバイス側のメモリ制御部６２は、不要なデータと必要なデータの違いがわからないため、書き込まれたデータをすべて残そうとする。その結果、最終的には空き領域がなくなり、書き込み先を指定できないという事態が想定される。
【０１３１】
そのため、ファイルシステム制御部６１には、消去命令のコマンドが用意されており、不要となり、消去可能なデータを、メモリ制御部６２に通知することができる。なお、消去単位はブロックサイズであるため、消去命令は論理ブロック単位で指定される。
【０１３２】
図２１は、消去命令を行う処理のフローチャートである。
【０１３３】
初めに、ステップＳ１２１において、ファイルシステム制御部６１は、消去可能な論理ブロックの先頭のLTUアドレスを開始LTUアドレスとし、TU数をブロックサイズの４とする消去命令をメモリ制御部６２に通知する。
【０１３４】
ステップＳ１２２において、メモリ制御部６２は、消去命令により指定された論理ブロックを消去する消去処理を実行し、ステップＳ１２３において、終了応答を返信して、処理を終了する。
【０１３５】
以上のように、ファイルシステム制御部６１が消去命令を通知し、メモリ制御部６２が消去処理を実行することにより、空き領域を増やすことができ、書き込み先を指定できないという事態を防止することができる。ファイルシステム制御部６１は、例えば、主記憶領域８１の全容量における空き領域の比率が所定の比率以下となったときや、自身がアイドル状態となったときに、消去命令を通知することができる。
【０１３６】
なお、消去命令の代わりに、その論理ブロック内のデータが無効なもの（不要なもの）であることを示す無効化命令を送信してもよい。即ち、指定された論理ブロックを実際に消去するものでなく、消去可能であることを通知するだけでもよい。
【０１３７】
［ファイルシステム制御部６１とメモリ制御部６２の詳細機能ブロック図］
図２２は、上述したファイルシステム制御部６１とメモリ制御部６２の機能をまとめた、ファイルシステム制御部６１とメモリ制御部６２の詳細な機能ブロック図を示している。
【０１３８】
ファイルシステム制御部６１は、通知部１０１と取得部０２を少なくとも有し、メモリ制御部６２は、取得部１１１、検索部１１２、通知部１１３、及び書き込み部１１４を少なくとも有する。
【０１３９】
ファイルシステム制御部６１の通知部１０１は、メモリ制御部６２の取得部１１１に、不揮発性メモリ１４に書き込む書き込みデータのサイズを通知する。また、通知部１０１は、取得部１０２から取得された書き込み先の開始LTUアドレス（論理アドレス）を書き込み先として、書き込みデータの書き込み命令を、メモリ制御部６２の取得部１１１に通知する。
【０１４０】
ファイルシステム制御部６１の取得部１０２は、メモリ制御部６２の通知部１１３から供給される、書き込みデータの書き込み先の開始LTUアドレスを取得し、通知部１０１に供給する。
【０１４１】
メモリ制御部６２の取得部１１１は、上位層としてのファイルシステム制御部６１から、書き込みデータのサイズを取得する。メモリ制御部６２の検索部１１２は、取得部１１１で取得された書き込みデータのサイズを少なくとも有する空き領域を検索する。
【０１４２】
メモリ制御部６２の通知部１１３は、検索部１１２の検索結果に基づき、書き込みデータの書き込み先の開始LTUアドレスを、ファイルシステム制御部６１に通知する。
【０１４３】
メモリ制御部６２の書き込み部１１４は、取得部１１１で取得された書き込み命令に基づいて、不揮発性メモリ１４の主記憶領域８１またはキャッシュ領域８２に書き込みデータを書き込む。また、書き込み部１１４は、取得部１１１で取得された消去命令に基づいて、主記憶領域８１またはキャッシュ領域８２に書き込み済みのデータを消去する。
【０１４４】
ファイルシステム制御部６１とメモリ制御部６２は、以上のように構成される。
【０１４５】
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
【０１４６】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１４７】
なお、本技術は以下のような構成も取ることができる。
（１）
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得する取得部と、
取得された前記書き込みデータのサイズの空き領域を検索する検索部と、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する通知部と
を備えるメモリ制御装置。
（２）
前記不揮発性メモリに前記書き込みデータを書き込む制御を行う書き込み制御部をさらに備え、
前記取得部は、さらに、前記上位層から、前記通知部が通知した前記論理アドレスを書き込み先とする書き込み命令を取得し、
前記書き込み制御部は、前記書き込み命令に基づいて、前記書き込みデータを書き込む
前記（１）に記載のメモリ制御装置。
（３）
前記検索部は、検索された前記書き込みデータのサイズ以上の空き領域のなかから、前記書き込みデータと同一サイズの空き領域を、前記検索結果とする
前記（１）または（２）に記載のメモリ制御装置。
（４）
前記検索部は、検索された前記空き領域のなかから、これまでの書き換え回数が少ない空き領域を、前記検索結果とする
前記（１）乃至（３）のいずれかに記載のメモリ制御装置。
（５）
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、
取得された前記書き込みデータのサイズの空き領域を検索し、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する
ステップを含むメモリ制御方法。
（６）
コンピュータに、
不揮発性メモリに書き込む書き込みデータを有する上位層から、前記書き込みデータのサイズを取得し、
取得された前記書き込みデータのサイズの空き領域を検索し、
検索結果に基づき、前記書き込みデータの書き込み先の論理アドレスを前記上位層に通知する
処理を実行させるためのプログラム。
（７）
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知する通知部と、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得する取得部と
を備え、
前記通知部は、取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
データ管理装置。
（８）
前記通知部は、前記メモリ制御装置に書き込まれたデータのうち、消去可能なデータが記録された論理アドレスも通知する
前記（７）に記載のデータ管理装置。
（９）
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、
取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
ステップを含むデータ管理方法。
（１０）
コンピュータに、
不揮発性メモリを制御するメモリ制御装置に、前記不揮発性メモリに書き込む書き込みデータのサイズを通知し、
前記書き込みデータのサイズの通知に応答して、前記メモリ制御装置から供給される、前記書き込みデータの書き込み先の論理アドレスを取得し、
取得された前記論理アドレスを書き込み先として、前記書き込みデータの書き込み命令を前記メモリ制御装置に通知する
処理を実行させるためのプログラム。
【符号の説明】
【０１４８】
１  電子機器，  １１  MPU，  １４  不揮発性メモリ，  ４２  オペレーティングシステム，  ６１  ファイルシステム制御部，  ６２  メモリ制御部，  ８１  主記憶領域，  ８２  キャッシュ領域
【図１】
2013050880.tif 000003
【図２】
2013050880.tif 000004
【図３】
2013050880.tif 000005
【図４】
2013050880.tif 000006
【図５】
2013050880.tif 000007
【図６】
2013050880.tif 000008
【図７】
2013050880.tif 000009
【図８】
2013050880.tif 000010
【図９】
2013050880.tif 000011
【図１０】
2013050880.tif 000012
【図１１】
2013050880.tif 000013
【図１２】
2013050880.tif 000014
【図１３】
2013050880.tif 000015
【図１４】
2013050880.tif 000016
【図１５】
2013050880.tif 000017
【図１６】
2013050880.tif 000018
【図１７】
2013050880.tif 000019
【図１８】
2013050880.tif 000020
【図１９】
2013050880.tif 000021
【図２０】
2013050880.tif 000022
【図２１】
2013050880.tif 000023
【図２２】
2013050880.tif 000024