(57)【要約】【課題】記録媒体とのデータ入出力を適切に行うことが出来る情報処理装置、情報処理方法、および情報処理プログラムを提供する。【解決手段】情報処理装置は、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該１以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部を備える。【選択図】図３
2015138272.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれるファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部を備えた情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイル数が１である場合、
前記方針として、１つの前記ブロックを選択し、
当該選択したブロックの先頭から前記ファイルを書き込む
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記制御部は、
前記選択したブロックの先頭から書き込まれたファイルを第１のファイルとして、
前記第１のファイルに続けて、所定の時間内に第２のファイルが書き込まれる場合、
前記第２のファイルを、前記第１のファイルに続けて、同じ前記ブロックに書き込む
情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイルの数が複数である場合、
前記方針として、複数の前記ブロックを選択し、
当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込む
情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記制御部は、
前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定する
情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記制御部は、
さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定する
情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記制御部は、
さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定する
情報処理装置。
【請求項８】
制御部が、
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
情報処理方法。
【請求項９】
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部として
コンピュータを機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記録媒体にデータを書き込む際に、クラスタのアロケーション方針を動的に決定する情報処理装置、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
これまで、組み込み機器などの情報処理装置では、１つの機器が１つの機能を実現する単機能のものが殆どであった。例えば、デジタルカメラは、写真を撮影し、撮影した写真データを記録媒体に書き込むものである。また、ＳＴＢ（Set Top Box）やブルーレイ（登録商標）レコーダなどでは、受信した放送番組を録画するために記録媒体に書き込む。
【０００３】
このような単機能の機器では、写真データや録画データなど１種類のデータを記録媒体に書き込むために最適化された書き込み方法（クラスタのアロケーション方針）を静的に用いればよかった。
【０００４】
静的なクラスタのアロケーション方針を用いて、計測機器がファイルシステム上に計測データを連続的に配置する技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１３９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
また、これまでは、ＰＣ（Personal Computer）やスマートフォン、タブレット型コンピュータでも、単機能の組み込み機器とは異なり、複数の機能を実行しているにも拘わらず、１つのクラスタアロケーション方針が静的に用いられてきた。
【０００７】
例えば、スマートフォンでは、カメラアプリケーションで撮影した写真データの書き込みやワンセグアプリケーションで受信した受信データの書き込みなど複数種類の書き込み方法を行う。それにも拘わらず、書き込みのためにクラスタのアロケーションを行う方法は静的に定められた１つのものだけであった。
【０００８】
このように、ＰＣなどでは、１つのクラスタアロケーション方針を全ての種類の書き込み方法に適用するため、書き込み性能の性能保証値が低めになったり、記録媒体の寿命が短くなったり、ファイルシステムのフラグメンテーションが発生したりするなど、改善の余地があった。
【０００９】
逆に言えば、ＰＣやスマートフォン、タブレット型コンピュータでは、これらの点を許容することで、複数の機能による複数種類の書き込みを可能にしていたと言える。
【００１０】
以上のような事情に鑑み、本技術の目的は、記録媒体とのデータ入出力を適切に行うことが出来る情報処理装置、情報処理方法、および情報処理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本技術の一形態に係る情報処理装置は、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部を備える。
【００１２】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記同時書き込みのファイル数が１である場合、前記方針として、１つの前記ブロックを選択し、当該選択したブロックの先頭から前記ファイルを書き込むように構成されてもよい。
【００１３】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記選択したブロックの先頭から書き込まれたファイルを第１のファイルとして、前記第１のファイルに続けて、所定の時間内に第２のファイルが書き込まれる場合、前記第２のファイルを、前記第１のファイルに続けて、同じ前記ブロックに書き込むように構成されてもよい。
【００１４】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記同時書き込みのファイルの数が複数である場合、前記方針として、複数の前記ブロックを選択し、当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込むように構成されてもよい。
【００１５】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定するように構成されてもよい。
【００１６】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定するように構成されてもよい。
【００１７】
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定するように構成されてもよい。
【００１８】
上記目的を達成するため、本技術の一形態に係る情報処理方法では、制御部が、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する。
【００１９】
上記目的を達成するため、本技術の一形態に係る情報処理プログラムは、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部としてコンピュータを機能させる。
【発明の効果】
【００２０】
以上のように、本技術によれば、記録媒体とのデータ入出力を適切に行うことが出来る。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２１】
【図１】本実施形態に係る情報処理装置１０のハードウェア構成図である。
【図２】本実施形態に係る情報処理装置１０のソフトウェア構成を示す機能ブロック図である。
【図３】アロケーション方針決定部３０がクラスタのアロケーション方針を決定する処理の具体例について説明するためのフローチャートである。
【図４】シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
【図５】パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
【発明を実施するための形態】
【００２２】
以下、本技術に係る実施形態を、図面を参照しながら説明する。なお、以下の説明では、本技術の着目点を説明したのち、一般的な技術との相違を述べ、本実施形態における情報処理装置の構成と処理の流れを説明する。そして、最後に、具体例を挙げて処理の流れを説明する。
【００２３】
［着目点と概要について］
最初に、本技術における着目点と概要について説明する。
【００２４】
本技術では、記録媒体のうち、データを書き込む際に、まず消去ブロック単位（ブロックの単位）で書き込む部分を初期化してからデータの書き込みを行わなければならないＮＡＮＤ（ＮｏｔＡＮＤ）型フラッシュメモリを考慮している。すなわち、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体である。
【００２５】
そして、着目した点は、ＮＡＮＤ型フラッシュメモリでは、消去ブロックの先頭位置と、データを書き込む際の書き込み開始位置を一致（アライン）させることにより、書き込み速度が高速化される点である。
【００２６】
ファイルシステムを用いて記録媒体にデータを書き込む場合、ファイルシステムは、クラスタ単位で書き込む領域を管理する。そこで、本技術では、ＮＡＮＤ型フラッシュメモリにおいて、消去ブロックの先頭位置と、データを書き込む際の書き込み開始位置を一致させるために、ファイルを書くための最初のクラスタを、消去ブロックの先頭位置に設けることにした。
【００２７】
そして、さらに、本技術では、複数種類のデータ書き込み方法を実行するＰＣやスマートフォン、タブレット型コンピュータにおいて、データ入出力性能を最適化するために、これらの機器において実行される機能ごとにクラスタのアロケーション方針を最適化することを考えた。
【００２８】
本技術では、機能ごとに最適化されたアロケーション方針として、２種類のアロケーション方針を考える。
【００２９】
１つは、複数のファイルが１つずつ連続して、所定の時間内に書き込まれる場合である。この場合、本技術では、ＮＡＮＤ型フラッシュメモリを記録媒体として用いるときは、１つの消去ブロックの中にこれら複数のファイル用のクラスタを連続した領域として確保する。なお、このアロケーション方針を、以下の説明では書き込みパターン（Write Pattern）がシーケンシャル（Sequential）であることから、シーケンシャル・アロケーション方針と呼ぶ。
【００３０】
１つの消去ブロックの中に複数ファイルを連続して書き込むことで、書き込む前の消去ブロックの初期化処理の回数を減らし、書き込み速度を向上させることが出来る。
【００３１】
もう１つは、複数のファイルが同時（並列）に書き込まれる場合である。この場合、本技術では、ＮＡＮＤ型フラッシュメモリを記録媒体として用いるときは、複数の消去ブロックの先頭から、同時に書き込まれるファイルそれぞれに対応したクラスタを確保する。なお、このアロケーション方針を、以下の説明では、書き込みパターンがパラレル（Parallel）であることから、パラレル・アロケーション方針と呼ぶ。
【００３２】
この方針で書き込まれた１つのファイルに着目すると、そのファイルは、１つの消去ブロック内の先頭から連続した領域に書き込まれており、読み出す際の速度を向上させることが出来る。
【００３３】
また、例えば、同時に書かれたファイルのうち１つを消去する場合でも、ファイルがまとまった領域に書かれていることから、フラグメンテーションの発生を抑制することが出来る。
【００３４】
以上、本技術における着目点と概要について説明した。
【００３５】
［一般的な技術との相違点について］
ここでは、一般的な技術と本技術との相違点について説明する。
例えば、光ディスクにデータを書き込む際に、そのデータがＡＶ（Audio Visual）データである場合、書き込み予定の領域に欠陥セクタが有るか否かを事前に検出する技術がある。
【００３６】
この技術は、ファイルの書き込みアルゴリズムを動的には変更しているが、このアルゴリズムはクラスタのアロケーション方針に関するものではなく、本技術とは異なるものである。
【００３７】
また、Ｌｉｎｕｘ（登録商標）のfallocateシステムコールでは、ファイルを書き込むための領域として連続領域を確保するために、領域の確保方法を動的に変更する技術が使われている。
【００３８】
しかし、fallocateシステムコールでは、上述したシーケンシャル・アロケーション方針のように、消去ブロックの先頭から複数のファイルを連続した領域に書き込むことは出来ない。そのため、ＮＡＮＤ型フラッシュメモリにデータを書き込む際に書き込み性能を最適化することは出来ない。
【００３９】
また、ＢＳＤ（Berkeley Software Distribution）系Ｕｎｉｘ（登録商標）のtunefsユーティリティは、ファイルシステムにおけるアロケーション方針を、ファイルシステムのマウント・アンマウントのタイミングで静的に変更する技術であり、本技術のように、稼働中のファイルシステムに対して適用するものではない。
【００４０】
以上、一般的な技術と本技術との相違点について説明した。
【００４１】
［ハードウェア構成について］
次に、本実施形態に係る情報処理装置のハードウェア構成について説明する。図１は、本実施形態に係る情報処理装置１０のハードウェア構成図である。
【００４２】
同図に示すように、情報処理装置１０は、ＣＰＵ（Central Processing Unit、制御部）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、操作入力部１４、ネットワークインターフェイス部１５、表示部１６、記憶部１７、インターフェイス部１８を有し、これら各ブロックがバス１９を介して接続されている。
【００４３】
ＣＰＵ１１は、ＲＯＭ１２や記憶部１７に記憶された複数のプログラムのうち、操作入力部１４から与えられる命令に対応するプログラムをＲＡＭ１３に展開する。ＣＰＵ１１は、この展開されたプログラムにしたがって、後述する機能ブロックを実現し、表示部１６や記憶部１７などを適宜制御する。
【００４４】
ＲＯＭ１２は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。
【００４５】
ＲＡＭ１３は、ＣＰＵ１１の作業用領域として用いられ、ＯＳ（Operating System）、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【００４６】
操作入力部１４は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
【００４７】
ネットワークインターフェイス部１５は、外部と情報のやりとりを行う為のネットワークと結ばれており、外部のシステムと情報の遣り取りをする。なお、ネットワークは有線で接続されるものに限らず、無線で接続されるものであってもよい。
【００４８】
表示部１６は、例えば液晶ディスプレイ、ＥＬ（Electro-Luminescence）ディスプレイ、プラズマディスプレイ、ＣＲＴ（Cathode Ray Tube）ディスプレイ等である。表示部１６は、情報処理装置１０に内蔵されていてもよいし、外部接続されていてもよい。
【００４９】
記憶部１７は、記録媒体１７ａを有している。記録媒体１７ａは、例えばＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）やｅＭＭＣ（Embedded Multi Media Card）などのＮＡＮＤ型フラッシュメモリ、その他の不揮発性メモリである。記憶部１７には、ＯＳや各種アプリケーション、各種データが記憶される。
【００５０】
インターフェイス部１８は、情報処理装置１０に外付け可能な記録媒体とデータを遣り取りするためのインターフェイスを提供する。外付け可能な記録媒体は、記録媒体１７ａと同様に、例えばＨＤＤや、ＮＡＮＤ型フラッシュメモリ、その他の不揮発性メモリであってもよい。また、外付け可能な記録媒体との接続には、ＵＳＢ（Universal Serial Bus）などを用いてもよい。
【００５１】
以上、情報処理装置１０のハードウェア構成について説明した。
【００５２】
［ソフトウェア構成について］
次に、本実施形態に係る情報処理装置１０のソフトウェア構成について説明する。図２は、本実施形態に係る情報処理装置１０のソフトウェア構成を示す機能ブロック図である。なお、この図では、ＣＰＵ１１が実現する機能ブロックのうち、本技術に関係のある部分のみを示している。
【００５３】
本実施形態に係る情報処理装置１０の機能ブロックとして、動的なアロケーション方針の変更を行ってデータの書き込みを行う部分は、ファイル書き込み部２１である。
【００５４】
ファイル書き込み部２１は、カメラアプリケーションプログラムやインターネットブラウザなどのアプリケーションプログラム２０からデータの書き込み要求を受け取り、クラスタのアロケーション方針を決定して、記録媒体１７ａに対してデータを書き込む。なお、データの書き込み先としては、外付けの記録媒体を用いることも出来る。
【００５５】
ファイル書き込み部２１は、大きく分けて、アロケーション方針決定部３０とファイルシステム３１とを含んでいる。
【００５６】
アロケーション方針決定部３０は、書き込みパターン特定部４０、記録媒体特定部４１、アプリケーション命令検出部４２、および書き込み先ディレクトリ特定部４３を含んでいる。
【００５７】
書き込みパターン特定部４０は、アプリケーションプログラム２０により行われる、記録媒体１７ａへの書き込みパターンを特定する。より具体的には、書き込みパターンとは、記録媒体１７ａに同時に書き込まれるファイルの数や、それぞれのファイルのサイズ、アプリケーションプログラム２０による記録媒体１７ａへの書き込み要求数のことである。なお、ここでいう書き込み要求数は、実際に書き込まれる数と同じ場合もあるし、実際に書き込まれる数より多い数の場合もある。
【００５８】
記録媒体特定部４１は、ファイルが書き込まれる記録媒体１７ａの種類を特定する。また、記録媒体特定部４１は、内部パラメータ特定部４１ａを含んでいる。内部パラメータ特定部４１ａは、例えば不揮発メモリにおける消去ブロックのサイズなど、記録媒体１７ａに固有のパラメータを取得し、特定する。
【００５９】
アプリケーション命令検出部４２は、ファイル書き込み部２１が特定のアロケーション方針を使用するように、アプリケーションプログラム２０が自ら指示を出したか否かを検出する。
【００６０】
例えば、Ｕｎｉｘ（登録商標）などのＯＳでは、ｉｏｃｔｌシステムコールを用いることにより、アプリケーションプログラム２０が、自ら特定のアロケーション方針を、ファイル書き込み部２１に指定することが出来る。
【００６１】
書き込み先ディレクトリ特定部４３は、記録媒体１７ａ上に構築されたファイルシステム上にある、ファイルを書き込むディレクトリ（フォルダ）の使用用途を特定する。
【００６２】
例えば、記録媒体１７ａがＳＤカードであり、書き込み先のディレクトリの名前がＤＣＩＭ（Digital Camera Images）である場合、書き込み先ディレクトリ特定部４３は、書き込まれるデータが写真データであると特定することが出来る。このように、書き込まれるデータの種類を、アロケーション方針を決定する際に考慮することも出来る。
【００６３】
アロケーション方針決定部３０は、書き込みパターン特定部４０、記録媒体特定部４１、アプリケーション命令検出部４２、および書き込み先ディレクトリ特定部４３により得られた情報に基づき、実際に使用するアロケーション方針を決定する。
【００６４】
例えば、記録媒体１７ａに同時に書かれるファイルの数から、シーケンシャル・アロケーション方針とするか、パラレル・アロケーション方針とするかを決定する。
【００６５】
また、例えば、書き込まれるファイルのサイズや消去ブロックのサイズから、ファイルの書き込み開始位置を決定したり、複数のファイルをパラレルに書き込む際に、各ファイルの書き込み開始位置をどの程度の距離Ｄだけ離せばよいかを決定したりする。
【００６６】
さらに、例えば、アプリケーションプログラム２０がｉｏｃｔｌシステムコールなどを用いて特定のアロケーション方針を指定している場合、アロケーション方針決定部３０は、指定されたアロケーション方針を優先して決定する。
【００６７】
ファイル書き込み部２１は、アロケーション方針決定部３０により決定されたアロケーション方針をファイルシステム３１に設定することで、記録媒体や書き込まれるデータに最適なデータの書き込みを行う。
【００６８】
なお、ファイルシステム３１は、クラスタアロケーション部５０およびデータ書き込み部５１を含んでいる。
【００６９】
クラスタアロケーション部５０は、アプリケーションプログラム２０からファイルの書き込み指示があったとき、決定されたアロケーション方針に基づいて、必要な領域であるクラスタを確保する。
【００７０】
データ書き込み部５１は、クラスタアロケーション部５０により確保されたクラスタ領域に、データの書き込みを行う。
【００７１】
以上、本実施形態に係る情報処理装置１０のソフトウェア構成について説明した。
【００７２】
［アロケーション方針を決定する処理の具体例について］
次に、アロケーション方針決定部３０がクラスタのアロケーション方針を決定する処理の具体例について説明する。図３は、アロケーション方針決定部３０がクラスタのアロケーション方針を決定する処理の具体例について説明するためのフローチャートである。
【００７３】
なお、このフローチャートに示す処理の手順は一例であり、アロケーション方針決定部３０がアロケーション方針を決定する処理の手順はこの例に限らない。
【００７４】
まず、書き込みパターン特定部４０が、記録媒体１７ａに同時に書き込むファイルは複数であるか否かを判断する（ステップＳ１）。
【００７５】
複数である場合（ステップＳ１のＹ）、書き込みパターン特定部４０は、書き込みパターン（Write Pattern）として、パラレル（parallel）を設定する（ステップＳ２）。
【００７６】
複数ではない場合（ステップＳ１のＮ）、書き込みパターン特定部４０は、書き込みパターン（Write Pattern）として、シーケンシャル（sequential）を設定する（ステップＳ３）。なお、ステップＳ２またはＳ３において設定された書き込みパターンは、ステップＳ１０において参照され、アロケーション方針を決定するために用いられる。
【００７７】
次に、書き込みパターン特定部４０は、記録媒体１７ａに書き込まれるファイルのサイズを取得する（ステップＳ４）。
【００７８】
次に、書き込みパターン特定部４０は、同時に書き込まれるファイルが複数ある場合、それら複数のファイルの書き込みを開始する位置を離す距離Ｄを、ステップＳ４において取得したファイルサイズに予め定められた定数を乗じることにより算出する（ステップＳ５）。なお、ステップＳ５において算出された距離Ｄは、ステップＳ１０において参照され、アロケーション方針を決定するために用いられる。
【００７９】
次に、記録媒体特定部４１が、ファイルの書き込み先となる記録媒体１７ａは、ＨＤＤであるか否かを判断する（ステップＳ６）。
【００８０】
書き込み先がＨＤＤである場合（ステップＳ６のＹ）、ＨＤＤには消去ブロックという概念が無いので、記録媒体特定部４１は消去ブロックサイズを考慮しない（ステップＳ７）。
【００８１】
書き込み先がＨＤＤではない場合（ステップＳ６のＮ）、内部パラメータ特定部４１ａが、記録媒体１７ａの消去ブロックのサイズを取得し（ステップＳ８）、取得した消去ブロックサイズに基づいて、ファイルの書き込み開始位置を決定する（ステップＳ９）。なお、ステップＳ８において決定された書き込み開始位置は、ステップＳ１０において参照され、アロケーション方針を決定するために用いられる。
【００８２】
次に、アロケーション方針決定部３０が、上記のステップにおいて決定された、書き込みパターン、距離Ｄ、および書き込み開始位置に基づいて、クラスタのアロケーション方針を決定する（ステップＳ１０）。
【００８３】
次に、アプリケーション命令検出部４２が、アプリケーションプログラム２０からのｉｏｃｔｌシステムコールなどによるアロケーション方針の指示があったか否かを判断する（ステップＳ１１）。
【００８４】
アプリケーションプログラム２０からアロケーション方針の指示があった場合（ステップＳ１１のＹ）、アロケーション方針決定部３０は、ステップＳ１０において決定されたアロケーション方針を、指示されたアロケーション方針に変更する（ステップＳ１２）。
【００８５】
以上、アロケーション方針決定部３０がクラスタのアロケーション方針を決定する処理の具体例について説明した。
【００８６】
［２つのアロケーション方針の具体例について］
ここでは、上述した２つのアロケーション方針により、記録媒体上において、どのようにクラスタがアロケーションされるかを具体例により説明する。なお、ここでは情報処理装置１０に内蔵されている記憶媒体１７ａを例に説明するが、外付けの記憶媒体でも同様である。
【００８７】
最初に、シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を説明する。図４は、シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
【００８８】
記録媒体１７ａは、所定のサイズの消去ブロック１７ｂごとに区分されている。そして、消去ブロック１７ｂは、所定のサイズのクラスタ１７ｃに区分されている。図中のクラスタ１７ｃに書かれている数字は、クラスタ１７ｃがアロケーションされる順序を示している。
【００８９】
シーケンシャル・アロケーション方針では、１つの消去ブロック１７ｂの先頭から、３つのファイル、ファイルＡ（第１のファイル）、ファイルＢ（第２のファイル）、ファイルＣを１つずつ連続して書き込むように、クラスタ１７ｃのアロケーションが行われている。
【００９０】
シーケンシャル・アロケーション方針では、複数のファイルを同一の消去ブロック１７ｂの中に書き込むので、書き込み速度を最大化することが出来る。
【００９１】
次に、パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を説明する。図５は、パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
【００９２】
記録媒体１７ａにおける、消去ブロック１７ｂおよびクラスタ１７ｃの関係は、シーケンシャル・アロケーション方針で示したものと同じである。
【００９３】
パラレル・アロケーション方針では、距離Ｄだけ離れた複数の消去ブロック１７ｂの先頭から、同時に３つのファイルＡ、Ｂ、およびＣの書き込みを行うように、クラスタのアロケーションが行われる。それぞれのファイルに関しては、そのファイルが記録される領域として、連続したクラスタがアロケーションされている。
【００９４】
パラレル・アロケーション方針では、書き込み速度を最大化できるか否かは記録媒体１７ａの特性に依存する。しかし、データの読み出し速度に関しては、１つのファイルのデータが連続したクラスタに書き込まれているので、速度を最大化することが出来る。
【００９５】
以上、２つのアロケーション方針により、記録媒体上において、どのようにクラスタがアロケーションされるかを具体例により説明した。
【００９６】
［アロケーション方針の動的な変更の具体例１について］
次に、アロケーション方針の動的な変更の具体例１について説明する。なお、ここでは、スマートフォンである情報処理装置１０において、カメラ用アプリケーションプログラム２０（以下、カメラアプリと呼ぶ）で連続写真撮影を行った後、ウェブブラウザ（以下ブラウザアプリと呼ぶ）で複数のファイルをダウンロードする状況を想定する。ファイルを書き込む記録媒体としては、スマートフォンに内蔵されるＮＡＮＤ型フラッシュメモリを想定する。
【００９７】
（１−Ａ）まず、カメラアプリを起動すると、書き込みパターン特定部４０が、カメラアプリの書き込みパターンは比較的小さいサイズのファイルを一度に１ファイルずつ書き込むパターンであると特定する。
【００９８】
（１−Ｂ）同時に、記憶媒体特定部４１が、データの書き込み先となる記憶媒体１７ａがＮＡＮＤ型フラッシュメモリであることを特定し、内部パラメータ特定部４１ａが、記憶媒体１７ａの消去ブロックサイズを取得する。
【００９９】
（２）次に、アロケーション方針決定部３０が、特定された書き込みパターンと消去ブロックサイズから、アロケーション方針として、シーケンシャル・アロケーション方針を採用する。
【０１００】
（３）シーケンシャル・アロケーション方針の採用後、ユーザがカメラアプリを用いて写真の連続撮影を行うと、ファイル書き込み部２１は、シーケンシャル・アロケーション方針に従って、クラスタのアロケーションを行い、写真データの書き込みを行う。
【０１０１】
（４）連続撮影が終了し、一定時間が経過したことをカメラアプリが検知すると、カメラアプリはｉｏｃｔｌシステムコールを発行することにより、次の連続撮影に備えてファイルの書き込み開始位置を新しい消去ブロック１７ｂの先頭に合わせるよう指示する。
【０１０２】
（５）カメラアプリにより発行されたｉｏｃｔｌシステムコールをアプリケーション命令検出部４２が検出すると、ファイル書き込み部２１は、ファイルの書き込み開始位置を新しい消去ブロック１７ｂの先頭になるように再調整する。
【０１０３】
以上が、カメラアプリがシーケンシャル・アロケーション方針に基づいてデータを書き込む処理である。
【０１０４】
（６）次に、ユーザが、使用するアプリケーションプログラム２０をカメラアプリからウェブブラウザに変更し、ウェブプラウザでネットワーク上のサイトから動画データを複数同時にダウンロードしようとしたとする。
【０１０５】
（７−Ａ）ウェブブラウザが複数ファイルを同時にダウンロードする時、書き込みパターン特定部４０は、ウェブブラウザにより動画データが複数同時にダウンロードされる時の記録媒体１７ａへの書き込みパターンが大容量のファイルを同時に複数書き込むパターンであることを特定する。
【０１０６】
（７−Ｂ）また、記録媒体特定部４１は、動画データの書き込み先となる記録媒体１７ａが、カメラアプリの時と同じＮＡＮＤ型フラッシュメモリであることを特定する。
【０１０７】
（８）記録媒体１７ａがＮＡＮＤ型フラッシュメモリであることが特定されると、内部パラメータ特定部４１ａが、記録媒体１７ａの消去ブロックサイズを取得する。
【０１０８】
（９）次に、アロケーション方針決定部３０が、特定された書き込みパターンと取得された消去ブロックサイズに基づいて、アロケーション方針として、パラレル・アロケーション方針を採用する。
【０１０９】
この時点で、クラスタのアロケーション方針が、シーケンシャル・アロケーション方針から、パラレル・アロケーション方針に動的に切り替えられたことになる。
【０１１０】
（１０）その後、ウェブブラウザにより複数の動画データがダウンロードされると、ファイル書き込み部２１が、パラレル・アロケーション方針に基づいて記録媒体１７ａに動画データを書き込む。
【０１１１】
以上、アロケーション方針の動的な変更の具体例１について説明した。
【０１１２】
［アロケーション方針の動的な変更の具体例２について］
次に、アロケーション方針の動的な変更の具体例２について説明する。ここで想定する状況は、ユーザが同じアプリケーションプログラム２０を使用しているが、アプリケーションプログラム２０による記録媒体１７ａへの書き込みパターンが途中で変化したので、アロケーション方針を動的に変更するものである。
【０１１３】
具体的な例としては、ユーザがカメラアプリによる連続撮影を一時中断し、再び撮影を行う場合が挙げられる。
【０１１４】
この例では、上述したように、ユーザがカメラアプリを用いて連続撮影を開始すると、ファイル書き込み部２１は、シーケンシャル・アロケーション方針に沿ってデータを書き込む。
【０１１５】
ここで、ユーザが連続撮影を一時中断する。ファイル書き込み部２１は、一時中断を検知し、アロケーション方針をリセットする。
【０１１６】
一定時間後にユーザが再び連続撮影を開始した時点で、ファイル書き込み部２１は、再度アロケーション方針を、シーケンシャル・アロケーション方針に設定する。
【０１１７】
シーケンシャル・アロケーション方針を再設定することにより、データの書き込み開始位置が、新しい消去ブロックの先頭に位置付けられて、書き込みが開始される。
【０１１８】
以上、アロケーション方針の動的な変更の具体例２について説明した。
【０１１９】
［アロケーション方針変更の具体例３について］
次に、アロケーション方針変更の具体例３について説明する。ここで想定する状況は、ファイルの書き込み先が、情報処理装置１０に内蔵された記録媒体１７ａから外付けの記録媒体に変更された場合（またはその逆）や、記録媒体が別の種類の記録媒体に交換された場合である。
【０１２０】
例えば、内蔵の記録媒体１７ａをｅＭＭＣからＨＤＤに交換した場合や、同じ不揮発性半導体メモリではあるが、ｅＭＭＣからＳＤカードへ交換した場合などである。
【０１２１】
記録媒体がｅＭＭＣからＨＤＤに変更された場合は、消去ブロックを考慮する必要がなくなるので、上述したシーケンシャル・アロケーション方針やパラレル・アロケーション方針とは異なる第３のアロケーション方針を用いてデータの書き込みを行う。
【０１２２】
また、ｅＭＭＣからＳＤカードへの変更など、不揮発性半導体メモリの種類や容量が変更になった場合は、消去ブロックサイズなど内部パラメータの取得を再度行い、取得した情報をアロケーション方針の選択に反映させる。
【０１２３】
以上、アロケーション方針変更の具体例３について説明した。
【０１２４】
［効果］
本技術では、アプリケーションプログラムによるファイルの書き込みパターンや書き込み先となる記録媒体の種類により、アロケーション方針を動的に変更するので、以下のような効果を奏することが出来る。
【０１２５】
（１）ファイルの書き込み速度の向上
（２）書き込んだファイルの読み込み速度の向上
（３）ファイルシステムにおけるフラグメンテーションの抑制
（４）記録媒体の長寿命化
【０１２６】
なお、アロケーション方針を工夫することにより、これらの効果を同時に発揮させることが出来る。
【０１２７】
［補足事項］
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１２８】
［本技術の別の構成］
本技術は、以下に示す構成をとることも出来る。
（１）
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれるファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部を備えた情報処理装置。
（２）
前記（１）に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイル数が１である場合、
前記方針として、１つの前記ブロックを選択し、
当該選択したブロックの先頭から前記ファイルを書き込む
情報処理装置。
（３）
前記（２）に記載の情報処理装置であって、
前記制御部は、
前記選択したブロックの先頭から書き込まれたファイルを第１のファイルとして、
前記第１のファイルに続けて、所定の時間内に第２のファイルが書き込まれる場合、
前記第２のファイルを、前記第１のファイルに続けて、同じ前記ブロックに書き込む
情報処理装置。
（４）
前記（１）に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイルの数が複数である場合、
前記方針として、複数の前記ブロックを選択し、
当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込む
情報処理装置。
（５）
前記（４）に記載の情報処理装置であって、
前記制御部は、
前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定する
情報処理装置。
（６）
前記（１）から（５）のうちいずれか１つに記載の情報処理装置であって、
前記制御部は、
さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定する
情報処理装置。
（７）
前記（１）から（６）のうちいずれか１つに記載の情報処理装置であって、
前記制御部は、
さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定する
情報処理装置。
（８）
制御部が、
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
情報処理方法。
（９）
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部として
コンピュータを機能させるための情報処理プログラム。
【符号の説明】
【０１２９】
１０  …  情報処理装置
１１  …  ＣＰＵ
１２  …  ＲＯＭ
１３  …  ＲＡＭ
１４  …  操作入力部
１５  …  ネットワークインターフェイス部
１６  …  表示部
１７  …  記憶部
１７ａ…  記録媒体
１８  …  インターフェイス部
１９  …  バス
２０  …  アプリケーションプログラム
２１  …  ファイル書き込み部
３０  …  アロケーション方針決定部
３１  …  ファイルシステム
４０  …  書き込みパターン特定部
４１  …  記録媒体特定部
４１ａ…  内部パラメータ特定部
４２  …  アプリケーション命令検出部
４３  …  書き込み先ディレクトリ特定部
５０  …  クラスタアロケーション部
５１  …  データ書き込み部
【図１】
2015138272.tif 000003
【図２】
2015138272.tif 000004
【図３】
2015138272.tif 000005
【図４】
2015138272.tif 000006
【図５】
2015138272.tif 000007