JP2015138272A - 情報処理装置、情報処理方法、および情報処理プログラム - Google Patents

情報処理装置、情報処理方法、および情報処理プログラム Download PDF

Info

Publication number
JP2015138272A
JP2015138272A JP2014007662A JP2014007662A JP2015138272A JP 2015138272 A JP2015138272 A JP 2015138272A JP 2014007662 A JP2014007662 A JP 2014007662A JP 2014007662 A JP2014007662 A JP 2014007662A JP 2015138272 A JP2015138272 A JP 2015138272A
Authority
JP
Japan
Prior art keywords
information processing
files
written
file
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014007662A
Other languages
English (en)
Inventor
嵩 木田
Takashi Kida
嵩 木田
佐藤 和美
Kazumi Sato
和美 佐藤
琢麿 馬渕
Takamaro Mabuchi
琢麿 馬渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2014007662A priority Critical patent/JP2015138272A/ja
Priority to US14/584,927 priority patent/US9904620B2/en
Publication of JP2015138272A publication Critical patent/JP2015138272A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】記録媒体とのデータ入出力を適切に行うことが出来る情報処理装置、情報処理方法、および情報処理プログラムを提供する。【解決手段】情報処理装置は、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部を備える。【選択図】図3

Description

本技術は、記録媒体にデータを書き込む際に、クラスタのアロケーション方針を動的に決定する情報処理装置、情報処理方法、および情報処理プログラムに関する。
これまで、組み込み機器などの情報処理装置では、1つの機器が1つの機能を実現する単機能のものが殆どであった。例えば、デジタルカメラは、写真を撮影し、撮影した写真データを記録媒体に書き込むものである。また、STB(Set Top Box)やブルーレイ(登録商標)レコーダなどでは、受信した放送番組を録画するために記録媒体に書き込む。
このような単機能の機器では、写真データや録画データなど1種類のデータを記録媒体に書き込むために最適化された書き込み方法(クラスタのアロケーション方針)を静的に用いればよかった。
静的なクラスタのアロケーション方針を用いて、計測機器がファイルシステム上に計測データを連続的に配置する技術が開示されている(例えば、特許文献1参照)。
特開2006−113964号公報
また、これまでは、PC(Personal Computer)やスマートフォン、タブレット型コンピュータでも、単機能の組み込み機器とは異なり、複数の機能を実行しているにも拘わらず、1つのクラスタアロケーション方針が静的に用いられてきた。
例えば、スマートフォンでは、カメラアプリケーションで撮影した写真データの書き込みやワンセグアプリケーションで受信した受信データの書き込みなど複数種類の書き込み方法を行う。それにも拘わらず、書き込みのためにクラスタのアロケーションを行う方法は静的に定められた1つのものだけであった。
このように、PCなどでは、1つのクラスタアロケーション方針を全ての種類の書き込み方法に適用するため、書き込み性能の性能保証値が低めになったり、記録媒体の寿命が短くなったり、ファイルシステムのフラグメンテーションが発生したりするなど、改善の余地があった。
逆に言えば、PCやスマートフォン、タブレット型コンピュータでは、これらの点を許容することで、複数の機能による複数種類の書き込みを可能にしていたと言える。
以上のような事情に鑑み、本技術の目的は、記録媒体とのデータ入出力を適切に行うことが出来る情報処理装置、情報処理方法、および情報処理プログラムを提供することにある。
上記目的を達成するため、本技術の一形態に係る情報処理装置は、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部を備える。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記同時書き込みのファイル数が1である場合、前記方針として、1つの前記ブロックを選択し、当該選択したブロックの先頭から前記ファイルを書き込むように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記選択したブロックの先頭から書き込まれたファイルを第1のファイルとして、前記第1のファイルに続けて、所定の時間内に第2のファイルが書き込まれる場合、前記第2のファイルを、前記第1のファイルに続けて、同じ前記ブロックに書き込むように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記同時書き込みのファイルの数が複数である場合、前記方針として、複数の前記ブロックを選択し、当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込むように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定するように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定するように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理装置では、前記制御部は、さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定するように構成されてもよい。
上記目的を達成するため、本技術の一形態に係る情報処理方法では、制御部が、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する。
上記目的を達成するため、本技術の一形態に係る情報処理プログラムは、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定するように構成された制御部としてコンピュータを機能させる。
以上のように、本技術によれば、記録媒体とのデータ入出力を適切に行うことが出来る。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本実施形態に係る情報処理装置10のハードウェア構成図である。 本実施形態に係る情報処理装置10のソフトウェア構成を示す機能ブロック図である。 アロケーション方針決定部30がクラスタのアロケーション方針を決定する処理の具体例について説明するためのフローチャートである。 シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。 パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
以下、本技術に係る実施形態を、図面を参照しながら説明する。なお、以下の説明では、本技術の着目点を説明したのち、一般的な技術との相違を述べ、本実施形態における情報処理装置の構成と処理の流れを説明する。そして、最後に、具体例を挙げて処理の流れを説明する。
[着目点と概要について]
最初に、本技術における着目点と概要について説明する。
本技術では、記録媒体のうち、データを書き込む際に、まず消去ブロック単位(ブロックの単位)で書き込む部分を初期化してからデータの書き込みを行わなければならないNAND(NotAND)型フラッシュメモリを考慮している。すなわち、記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体である。
そして、着目した点は、NAND型フラッシュメモリでは、消去ブロックの先頭位置と、データを書き込む際の書き込み開始位置を一致(アライン)させることにより、書き込み速度が高速化される点である。
ファイルシステムを用いて記録媒体にデータを書き込む場合、ファイルシステムは、クラスタ単位で書き込む領域を管理する。そこで、本技術では、NAND型フラッシュメモリにおいて、消去ブロックの先頭位置と、データを書き込む際の書き込み開始位置を一致させるために、ファイルを書くための最初のクラスタを、消去ブロックの先頭位置に設けることにした。
そして、さらに、本技術では、複数種類のデータ書き込み方法を実行するPCやスマートフォン、タブレット型コンピュータにおいて、データ入出力性能を最適化するために、これらの機器において実行される機能ごとにクラスタのアロケーション方針を最適化することを考えた。
本技術では、機能ごとに最適化されたアロケーション方針として、2種類のアロケーション方針を考える。
1つは、複数のファイルが1つずつ連続して、所定の時間内に書き込まれる場合である。この場合、本技術では、NAND型フラッシュメモリを記録媒体として用いるときは、1つの消去ブロックの中にこれら複数のファイル用のクラスタを連続した領域として確保する。なお、このアロケーション方針を、以下の説明では書き込みパターン(Write Pattern)がシーケンシャル(Sequential)であることから、シーケンシャル・アロケーション方針と呼ぶ。
1つの消去ブロックの中に複数ファイルを連続して書き込むことで、書き込む前の消去ブロックの初期化処理の回数を減らし、書き込み速度を向上させることが出来る。
もう1つは、複数のファイルが同時(並列)に書き込まれる場合である。この場合、本技術では、NAND型フラッシュメモリを記録媒体として用いるときは、複数の消去ブロックの先頭から、同時に書き込まれるファイルそれぞれに対応したクラスタを確保する。なお、このアロケーション方針を、以下の説明では、書き込みパターンがパラレル(Parallel)であることから、パラレル・アロケーション方針と呼ぶ。
この方針で書き込まれた1つのファイルに着目すると、そのファイルは、1つの消去ブロック内の先頭から連続した領域に書き込まれており、読み出す際の速度を向上させることが出来る。
また、例えば、同時に書かれたファイルのうち1つを消去する場合でも、ファイルがまとまった領域に書かれていることから、フラグメンテーションの発生を抑制することが出来る。
以上、本技術における着目点と概要について説明した。
[一般的な技術との相違点について]
ここでは、一般的な技術と本技術との相違点について説明する。
例えば、光ディスクにデータを書き込む際に、そのデータがAV(Audio Visual)データである場合、書き込み予定の領域に欠陥セクタが有るか否かを事前に検出する技術がある。
この技術は、ファイルの書き込みアルゴリズムを動的には変更しているが、このアルゴリズムはクラスタのアロケーション方針に関するものではなく、本技術とは異なるものである。
また、Linux(登録商標)のfallocateシステムコールでは、ファイルを書き込むための領域として連続領域を確保するために、領域の確保方法を動的に変更する技術が使われている。
しかし、fallocateシステムコールでは、上述したシーケンシャル・アロケーション方針のように、消去ブロックの先頭から複数のファイルを連続した領域に書き込むことは出来ない。そのため、NAND型フラッシュメモリにデータを書き込む際に書き込み性能を最適化することは出来ない。
また、BSD(Berkeley Software Distribution)系Unix(登録商標)のtunefsユーティリティは、ファイルシステムにおけるアロケーション方針を、ファイルシステムのマウント・アンマウントのタイミングで静的に変更する技術であり、本技術のように、稼働中のファイルシステムに対して適用するものではない。
以上、一般的な技術と本技術との相違点について説明した。
[ハードウェア構成について]
次に、本実施形態に係る情報処理装置のハードウェア構成について説明する。図1は、本実施形態に係る情報処理装置10のハードウェア構成図である。
同図に示すように、情報処理装置10は、CPU(Central Processing Unit、制御部)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、操作入力部14、ネットワークインターフェイス部15、表示部16、記憶部17、インターフェイス部18を有し、これら各ブロックがバス19を介して接続されている。
CPU11は、ROM12や記憶部17に記憶された複数のプログラムのうち、操作入力部14から与えられる命令に対応するプログラムをRAM13に展開する。CPU11は、この展開されたプログラムにしたがって、後述する機能ブロックを実現し、表示部16や記憶部17などを適宜制御する。
ROM12は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。
RAM13は、CPU11の作業用領域として用いられ、OS(Operating System)、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
操作入力部14は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
ネットワークインターフェイス部15は、外部と情報のやりとりを行う為のネットワークと結ばれており、外部のシステムと情報の遣り取りをする。なお、ネットワークは有線で接続されるものに限らず、無線で接続されるものであってもよい。
表示部16は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ、プラズマディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等である。表示部16は、情報処理装置10に内蔵されていてもよいし、外部接続されていてもよい。
記憶部17は、記録媒体17aを有している。記録媒体17aは、例えばHDD(Hard Disk Drive)や、SSD(Solid State Drive)やeMMC(Embedded Multi Media Card)などのNAND型フラッシュメモリ、その他の不揮発性メモリである。記憶部17には、OSや各種アプリケーション、各種データが記憶される。
インターフェイス部18は、情報処理装置10に外付け可能な記録媒体とデータを遣り取りするためのインターフェイスを提供する。外付け可能な記録媒体は、記録媒体17aと同様に、例えばHDDや、NAND型フラッシュメモリ、その他の不揮発性メモリであってもよい。また、外付け可能な記録媒体との接続には、USB(Universal Serial Bus)などを用いてもよい。
以上、情報処理装置10のハードウェア構成について説明した。
[ソフトウェア構成について]
次に、本実施形態に係る情報処理装置10のソフトウェア構成について説明する。図2は、本実施形態に係る情報処理装置10のソフトウェア構成を示す機能ブロック図である。なお、この図では、CPU11が実現する機能ブロックのうち、本技術に関係のある部分のみを示している。
本実施形態に係る情報処理装置10の機能ブロックとして、動的なアロケーション方針の変更を行ってデータの書き込みを行う部分は、ファイル書き込み部21である。
ファイル書き込み部21は、カメラアプリケーションプログラムやインターネットブラウザなどのアプリケーションプログラム20からデータの書き込み要求を受け取り、クラスタのアロケーション方針を決定して、記録媒体17aに対してデータを書き込む。なお、データの書き込み先としては、外付けの記録媒体を用いることも出来る。
ファイル書き込み部21は、大きく分けて、アロケーション方針決定部30とファイルシステム31とを含んでいる。
アロケーション方針決定部30は、書き込みパターン特定部40、記録媒体特定部41、アプリケーション命令検出部42、および書き込み先ディレクトリ特定部43を含んでいる。
書き込みパターン特定部40は、アプリケーションプログラム20により行われる、記録媒体17aへの書き込みパターンを特定する。より具体的には、書き込みパターンとは、記録媒体17aに同時に書き込まれるファイルの数や、それぞれのファイルのサイズ、アプリケーションプログラム20による記録媒体17aへの書き込み要求数のことである。なお、ここでいう書き込み要求数は、実際に書き込まれる数と同じ場合もあるし、実際に書き込まれる数より多い数の場合もある。
記録媒体特定部41は、ファイルが書き込まれる記録媒体17aの種類を特定する。また、記録媒体特定部41は、内部パラメータ特定部41aを含んでいる。内部パラメータ特定部41aは、例えば不揮発メモリにおける消去ブロックのサイズなど、記録媒体17aに固有のパラメータを取得し、特定する。
アプリケーション命令検出部42は、ファイル書き込み部21が特定のアロケーション方針を使用するように、アプリケーションプログラム20が自ら指示を出したか否かを検出する。
例えば、Unix(登録商標)などのOSでは、ioctlシステムコールを用いることにより、アプリケーションプログラム20が、自ら特定のアロケーション方針を、ファイル書き込み部21に指定することが出来る。
書き込み先ディレクトリ特定部43は、記録媒体17a上に構築されたファイルシステム上にある、ファイルを書き込むディレクトリ(フォルダ)の使用用途を特定する。
例えば、記録媒体17aがSDカードであり、書き込み先のディレクトリの名前がDCIM(Digital Camera Images)である場合、書き込み先ディレクトリ特定部43は、書き込まれるデータが写真データであると特定することが出来る。このように、書き込まれるデータの種類を、アロケーション方針を決定する際に考慮することも出来る。
アロケーション方針決定部30は、書き込みパターン特定部40、記録媒体特定部41、アプリケーション命令検出部42、および書き込み先ディレクトリ特定部43により得られた情報に基づき、実際に使用するアロケーション方針を決定する。
例えば、記録媒体17aに同時に書かれるファイルの数から、シーケンシャル・アロケーション方針とするか、パラレル・アロケーション方針とするかを決定する。
また、例えば、書き込まれるファイルのサイズや消去ブロックのサイズから、ファイルの書き込み開始位置を決定したり、複数のファイルをパラレルに書き込む際に、各ファイルの書き込み開始位置をどの程度の距離Dだけ離せばよいかを決定したりする。
さらに、例えば、アプリケーションプログラム20がioctlシステムコールなどを用いて特定のアロケーション方針を指定している場合、アロケーション方針決定部30は、指定されたアロケーション方針を優先して決定する。
ファイル書き込み部21は、アロケーション方針決定部30により決定されたアロケーション方針をファイルシステム31に設定することで、記録媒体や書き込まれるデータに最適なデータの書き込みを行う。
なお、ファイルシステム31は、クラスタアロケーション部50およびデータ書き込み部51を含んでいる。
クラスタアロケーション部50は、アプリケーションプログラム20からファイルの書き込み指示があったとき、決定されたアロケーション方針に基づいて、必要な領域であるクラスタを確保する。
データ書き込み部51は、クラスタアロケーション部50により確保されたクラスタ領域に、データの書き込みを行う。
以上、本実施形態に係る情報処理装置10のソフトウェア構成について説明した。
[アロケーション方針を決定する処理の具体例について]
次に、アロケーション方針決定部30がクラスタのアロケーション方針を決定する処理の具体例について説明する。図3は、アロケーション方針決定部30がクラスタのアロケーション方針を決定する処理の具体例について説明するためのフローチャートである。
なお、このフローチャートに示す処理の手順は一例であり、アロケーション方針決定部30がアロケーション方針を決定する処理の手順はこの例に限らない。
まず、書き込みパターン特定部40が、記録媒体17aに同時に書き込むファイルは複数であるか否かを判断する(ステップS1)。
複数である場合(ステップS1のY)、書き込みパターン特定部40は、書き込みパターン(Write Pattern)として、パラレル(parallel)を設定する(ステップS2)。
複数ではない場合(ステップS1のN)、書き込みパターン特定部40は、書き込みパターン(Write Pattern)として、シーケンシャル(sequential)を設定する(ステップS3)。なお、ステップS2またはS3において設定された書き込みパターンは、ステップS10において参照され、アロケーション方針を決定するために用いられる。
次に、書き込みパターン特定部40は、記録媒体17aに書き込まれるファイルのサイズを取得する(ステップS4)。
次に、書き込みパターン特定部40は、同時に書き込まれるファイルが複数ある場合、それら複数のファイルの書き込みを開始する位置を離す距離Dを、ステップS4において取得したファイルサイズに予め定められた定数を乗じることにより算出する(ステップS5)。なお、ステップS5において算出された距離Dは、ステップS10において参照され、アロケーション方針を決定するために用いられる。
次に、記録媒体特定部41が、ファイルの書き込み先となる記録媒体17aは、HDDであるか否かを判断する(ステップS6)。
書き込み先がHDDである場合(ステップS6のY)、HDDには消去ブロックという概念が無いので、記録媒体特定部41は消去ブロックサイズを考慮しない(ステップS7)。
書き込み先がHDDではない場合(ステップS6のN)、内部パラメータ特定部41aが、記録媒体17aの消去ブロックのサイズを取得し(ステップS8)、取得した消去ブロックサイズに基づいて、ファイルの書き込み開始位置を決定する(ステップS9)。なお、ステップS8において決定された書き込み開始位置は、ステップS10において参照され、アロケーション方針を決定するために用いられる。
次に、アロケーション方針決定部30が、上記のステップにおいて決定された、書き込みパターン、距離D、および書き込み開始位置に基づいて、クラスタのアロケーション方針を決定する(ステップS10)。
次に、アプリケーション命令検出部42が、アプリケーションプログラム20からのioctlシステムコールなどによるアロケーション方針の指示があったか否かを判断する(ステップS11)。
アプリケーションプログラム20からアロケーション方針の指示があった場合(ステップS11のY)、アロケーション方針決定部30は、ステップS10において決定されたアロケーション方針を、指示されたアロケーション方針に変更する(ステップS12)。
以上、アロケーション方針決定部30がクラスタのアロケーション方針を決定する処理の具体例について説明した。
[2つのアロケーション方針の具体例について]
ここでは、上述した2つのアロケーション方針により、記録媒体上において、どのようにクラスタがアロケーションされるかを具体例により説明する。なお、ここでは情報処理装置10に内蔵されている記憶媒体17aを例に説明するが、外付けの記憶媒体でも同様である。
最初に、シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を説明する。図4は、シーケンシャル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
記録媒体17aは、所定のサイズの消去ブロック17bごとに区分されている。そして、消去ブロック17bは、所定のサイズのクラスタ17cに区分されている。図中のクラスタ17cに書かれている数字は、クラスタ17cがアロケーションされる順序を示している。
シーケンシャル・アロケーション方針では、1つの消去ブロック17bの先頭から、3つのファイル、ファイルA(第1のファイル)、ファイルB(第2のファイル)、ファイルCを1つずつ連続して書き込むように、クラスタ17cのアロケーションが行われている。
シーケンシャル・アロケーション方針では、複数のファイルを同一の消去ブロック17bの中に書き込むので、書き込み速度を最大化することが出来る。
次に、パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を説明する。図5は、パラレル・アロケーション方針に基づいて、クラスタがアロケーションされる様子を示す図である。
記録媒体17aにおける、消去ブロック17bおよびクラスタ17cの関係は、シーケンシャル・アロケーション方針で示したものと同じである。
パラレル・アロケーション方針では、距離Dだけ離れた複数の消去ブロック17bの先頭から、同時に3つのファイルA、B、およびCの書き込みを行うように、クラスタのアロケーションが行われる。それぞれのファイルに関しては、そのファイルが記録される領域として、連続したクラスタがアロケーションされている。
パラレル・アロケーション方針では、書き込み速度を最大化できるか否かは記録媒体17aの特性に依存する。しかし、データの読み出し速度に関しては、1つのファイルのデータが連続したクラスタに書き込まれているので、速度を最大化することが出来る。
以上、2つのアロケーション方針により、記録媒体上において、どのようにクラスタがアロケーションされるかを具体例により説明した。
[アロケーション方針の動的な変更の具体例1について]
次に、アロケーション方針の動的な変更の具体例1について説明する。なお、ここでは、スマートフォンである情報処理装置10において、カメラ用アプリケーションプログラム20(以下、カメラアプリと呼ぶ)で連続写真撮影を行った後、ウェブブラウザ(以下ブラウザアプリと呼ぶ)で複数のファイルをダウンロードする状況を想定する。ファイルを書き込む記録媒体としては、スマートフォンに内蔵されるNAND型フラッシュメモリを想定する。
(1−A)まず、カメラアプリを起動すると、書き込みパターン特定部40が、カメラアプリの書き込みパターンは比較的小さいサイズのファイルを一度に1ファイルずつ書き込むパターンであると特定する。
(1−B)同時に、記憶媒体特定部41が、データの書き込み先となる記憶媒体17aがNAND型フラッシュメモリであることを特定し、内部パラメータ特定部41aが、記憶媒体17aの消去ブロックサイズを取得する。
(2)次に、アロケーション方針決定部30が、特定された書き込みパターンと消去ブロックサイズから、アロケーション方針として、シーケンシャル・アロケーション方針を採用する。
(3)シーケンシャル・アロケーション方針の採用後、ユーザがカメラアプリを用いて写真の連続撮影を行うと、ファイル書き込み部21は、シーケンシャル・アロケーション方針に従って、クラスタのアロケーションを行い、写真データの書き込みを行う。
(4)連続撮影が終了し、一定時間が経過したことをカメラアプリが検知すると、カメラアプリはioctlシステムコールを発行することにより、次の連続撮影に備えてファイルの書き込み開始位置を新しい消去ブロック17bの先頭に合わせるよう指示する。
(5)カメラアプリにより発行されたioctlシステムコールをアプリケーション命令検出部42が検出すると、ファイル書き込み部21は、ファイルの書き込み開始位置を新しい消去ブロック17bの先頭になるように再調整する。
以上が、カメラアプリがシーケンシャル・アロケーション方針に基づいてデータを書き込む処理である。
(6)次に、ユーザが、使用するアプリケーションプログラム20をカメラアプリからウェブブラウザに変更し、ウェブプラウザでネットワーク上のサイトから動画データを複数同時にダウンロードしようとしたとする。
(7−A)ウェブブラウザが複数ファイルを同時にダウンロードする時、書き込みパターン特定部40は、ウェブブラウザにより動画データが複数同時にダウンロードされる時の記録媒体17aへの書き込みパターンが大容量のファイルを同時に複数書き込むパターンであることを特定する。
(7−B)また、記録媒体特定部41は、動画データの書き込み先となる記録媒体17aが、カメラアプリの時と同じNAND型フラッシュメモリであることを特定する。
(8)記録媒体17aがNAND型フラッシュメモリであることが特定されると、内部パラメータ特定部41aが、記録媒体17aの消去ブロックサイズを取得する。
(9)次に、アロケーション方針決定部30が、特定された書き込みパターンと取得された消去ブロックサイズに基づいて、アロケーション方針として、パラレル・アロケーション方針を採用する。
この時点で、クラスタのアロケーション方針が、シーケンシャル・アロケーション方針から、パラレル・アロケーション方針に動的に切り替えられたことになる。
(10)その後、ウェブブラウザにより複数の動画データがダウンロードされると、ファイル書き込み部21が、パラレル・アロケーション方針に基づいて記録媒体17aに動画データを書き込む。
以上、アロケーション方針の動的な変更の具体例1について説明した。
[アロケーション方針の動的な変更の具体例2について]
次に、アロケーション方針の動的な変更の具体例2について説明する。ここで想定する状況は、ユーザが同じアプリケーションプログラム20を使用しているが、アプリケーションプログラム20による記録媒体17aへの書き込みパターンが途中で変化したので、アロケーション方針を動的に変更するものである。
具体的な例としては、ユーザがカメラアプリによる連続撮影を一時中断し、再び撮影を行う場合が挙げられる。
この例では、上述したように、ユーザがカメラアプリを用いて連続撮影を開始すると、ファイル書き込み部21は、シーケンシャル・アロケーション方針に沿ってデータを書き込む。
ここで、ユーザが連続撮影を一時中断する。ファイル書き込み部21は、一時中断を検知し、アロケーション方針をリセットする。
一定時間後にユーザが再び連続撮影を開始した時点で、ファイル書き込み部21は、再度アロケーション方針を、シーケンシャル・アロケーション方針に設定する。
シーケンシャル・アロケーション方針を再設定することにより、データの書き込み開始位置が、新しい消去ブロックの先頭に位置付けられて、書き込みが開始される。
以上、アロケーション方針の動的な変更の具体例2について説明した。
[アロケーション方針変更の具体例3について]
次に、アロケーション方針変更の具体例3について説明する。ここで想定する状況は、ファイルの書き込み先が、情報処理装置10に内蔵された記録媒体17aから外付けの記録媒体に変更された場合(またはその逆)や、記録媒体が別の種類の記録媒体に交換された場合である。
例えば、内蔵の記録媒体17aをeMMCからHDDに交換した場合や、同じ不揮発性半導体メモリではあるが、eMMCからSDカードへ交換した場合などである。
記録媒体がeMMCからHDDに変更された場合は、消去ブロックを考慮する必要がなくなるので、上述したシーケンシャル・アロケーション方針やパラレル・アロケーション方針とは異なる第3のアロケーション方針を用いてデータの書き込みを行う。
また、eMMCからSDカードへの変更など、不揮発性半導体メモリの種類や容量が変更になった場合は、消去ブロックサイズなど内部パラメータの取得を再度行い、取得した情報をアロケーション方針の選択に反映させる。
以上、アロケーション方針変更の具体例3について説明した。
[効果]
本技術では、アプリケーションプログラムによるファイルの書き込みパターンや書き込み先となる記録媒体の種類により、アロケーション方針を動的に変更するので、以下のような効果を奏することが出来る。
(1)ファイルの書き込み速度の向上
(2)書き込んだファイルの読み込み速度の向上
(3)ファイルシステムにおけるフラグメンテーションの抑制
(4)記録媒体の長寿命化
なお、アロケーション方針を工夫することにより、これらの効果を同時に発揮させることが出来る。
[補足事項]
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
[本技術の別の構成]
本技術は、以下に示す構成をとることも出来る。
(1)
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれるファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部を備えた情報処理装置。
(2)
前記(1)に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイル数が1である場合、
前記方針として、1つの前記ブロックを選択し、
当該選択したブロックの先頭から前記ファイルを書き込む
情報処理装置。
(3)
前記(2)に記載の情報処理装置であって、
前記制御部は、
前記選択したブロックの先頭から書き込まれたファイルを第1のファイルとして、
前記第1のファイルに続けて、所定の時間内に第2のファイルが書き込まれる場合、
前記第2のファイルを、前記第1のファイルに続けて、同じ前記ブロックに書き込む
情報処理装置。
(4)
前記(1)に記載の情報処理装置であって、
前記制御部は、
前記同時書き込みのファイルの数が複数である場合、
前記方針として、複数の前記ブロックを選択し、
当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込む
情報処理装置。
(5)
前記(4)に記載の情報処理装置であって、
前記制御部は、
前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定する
情報処理装置。
(6)
前記(1)から(5)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、
さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定する
情報処理装置。
(7)
前記(1)から(6)のうちいずれか1つに記載の情報処理装置であって、
前記制御部は、
さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定する
情報処理装置。
(8)
制御部が、
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
情報処理方法。
(9)
記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
ように構成された制御部として
コンピュータを機能させるための情報処理プログラム。
10 … 情報処理装置
11 … CPU
12 … ROM
13 … RAM
14 … 操作入力部
15 … ネットワークインターフェイス部
16 … 表示部
17 … 記憶部
17a… 記録媒体
18 … インターフェイス部
19 … バス
20 … アプリケーションプログラム
21 … ファイル書き込み部
30 … アロケーション方針決定部
31 … ファイルシステム
40 … 書き込みパターン特定部
41 … 記録媒体特定部
41a… 内部パラメータ特定部
42 … アプリケーション命令検出部
43 … 書き込み先ディレクトリ特定部
50 … クラスタアロケーション部
51 … データ書き込み部

Claims (9)

  1. 記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれるファイルの数を取得し、
    取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
    ように構成された制御部を備えた情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記制御部は、
    前記同時書き込みのファイル数が1である場合、
    前記方針として、1つの前記ブロックを選択し、
    当該選択したブロックの先頭から前記ファイルを書き込む
    情報処理装置。
  3. 請求項2に記載の情報処理装置であって、
    前記制御部は、
    前記選択したブロックの先頭から書き込まれたファイルを第1のファイルとして、
    前記第1のファイルに続けて、所定の時間内に第2のファイルが書き込まれる場合、
    前記第2のファイルを、前記第1のファイルに続けて、同じ前記ブロックに書き込む
    情報処理装置。
  4. 請求項1に記載の情報処理装置であって、
    前記制御部は、
    前記同時書き込みのファイルの数が複数である場合、
    前記方針として、複数の前記ブロックを選択し、
    当該選択した複数のブロックの先頭から、それぞれ前記複数のファイルを書き込む
    情報処理装置。
  5. 請求項4に記載の情報処理装置であって、
    前記制御部は、
    前記複数のファイルの各々のサイズ情報に基づいて、前記複数のブロックを決定する
    情報処理装置。
  6. 請求項1に記載の情報処理装置であって、
    前記制御部は、
    さらに前記書き込まれるファイルに含まれるデータの種類に基づいて、前記方針を決定する
    情報処理装置。
  7. 請求項1に記載の情報処理装置であって、
    前記制御部は、
    さらに前記書き込みを要求するアプリケーションプログラムからの書き込み要求数に基づいて、前記方針を決定する
    情報処理装置。
  8. 制御部が、
    記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
    取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
    情報処理方法。
  9. 記憶領域が所定のブロックの単位で構成され、このブロックの単位で記憶データの消去が行われる記録媒体へ書き込まれる前記ファイルの数を取得し、
    取得した前記ファイルの数に基づき、当該1以上のファイルを書き込む前記ブロックを選択する方針を決定する
    ように構成された制御部として
    コンピュータを機能させるための情報処理プログラム。
JP2014007662A 2014-01-20 2014-01-20 情報処理装置、情報処理方法、および情報処理プログラム Pending JP2015138272A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014007662A JP2015138272A (ja) 2014-01-20 2014-01-20 情報処理装置、情報処理方法、および情報処理プログラム
US14/584,927 US9904620B2 (en) 2014-01-20 2014-12-29 Information processing apparatus and method for writing data to a storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014007662A JP2015138272A (ja) 2014-01-20 2014-01-20 情報処理装置、情報処理方法、および情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2015138272A true JP2015138272A (ja) 2015-07-30

Family

ID=53544926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014007662A Pending JP2015138272A (ja) 2014-01-20 2014-01-20 情報処理装置、情報処理方法、および情報処理プログラム

Country Status (2)

Country Link
US (1) US9904620B2 (ja)
JP (1) JP2015138272A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2461446A1 (en) * 2002-08-29 2004-03-11 Matsushita Electric Industrial Co., Ltd. Semiconductor memory apparatus and method for writing data into the flash memory device
US7610434B2 (en) * 2003-11-18 2009-10-27 Panasonic Corporation File recording apparatus
JP2006113964A (ja) 2004-10-18 2006-04-27 Keyence Corp 計測データ収集装置及び計測データ収集システム
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
JP4738038B2 (ja) * 2005-03-25 2011-08-03 株式会社東芝 メモリカード
US9495116B2 (en) * 2007-12-26 2016-11-15 Sandisk Il Ltd. Storage device coordinator and a host device that includes the same
US20110167197A1 (en) * 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US8966164B1 (en) * 2013-09-27 2015-02-24 Avalanche Technology, Inc. Storage processor managing NVME logically addressed solid state disk array

Also Published As

Publication number Publication date
US9904620B2 (en) 2018-02-27
US20150205718A1 (en) 2015-07-23

Similar Documents

Publication Publication Date Title
US9405485B2 (en) Method and apparatus for writing data to a flash memory
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP2014513338A5 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
US10795599B2 (en) Data migration method, host and solid state disk
WO2017107415A1 (zh) 应用加载方法和装置
JP5827403B2 (ja) メモリタイプ間でデータを移動させるための技術
US20090157756A1 (en) File System For Storing Files In Multiple Different Data Storage Media
JP4886866B2 (ja) 主記憶装置へのアクセスを高速化する方法および記憶装置システム
JPWO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP4992835B2 (ja) ディスク記憶装置およびプログラム
JP2015138272A (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2016515258A (ja) 最適化ファイル動作のためのファイル集合化
US20170357657A1 (en) Systems and methods for implementing dynamic file systems
JP5594647B2 (ja) ストレージ装置及びその制御方法
JP2006252137A (ja) 不揮発性記憶装置の最適化方法
WO2015161443A1 (zh) 一种文件管理方法及文件系统
JP2007140628A (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
CN105528307A (zh) 一种信息处理的方法及电子设备
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium
US20110106861A1 (en) Interface Techniques Providing Contiguous Storage For Files
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
TW201546614A (zh) 電子裝置以及資料寫入方法
JP2006260158A (ja) 情報処理装置、情報処理方法、プログラム
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
US9208076B2 (en) Nonvolatile storage device and method of storing data thereof