(57)【要約】【課題】ファイル転送をより高速に行う。【解決手段】記憶装置は、クラスタ単位でデータを記録する記録媒体と、クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える。記録媒体に記録されているファイルへのアクセスを行う情報処理装置は、メモリにアクセスするためのインタフェースを介して、メモリに格納されているFATにアクセスする。本技術は、例えば、ホスト機器と記憶装置とからなるデータアクセスシステムに適用することができる。【選択図】図５
2015185103.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ単位でデータを記録する記録媒体と、
前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリと
を備える記憶装置。
【請求項２】
前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに備える
請求項１に記載の記憶装置。
【請求項３】
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得される
請求項２に記載の記憶装置。
【請求項４】
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得される
請求項３に記載の記憶装置。
【請求項５】
前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDMA（Direct Memory Access） descriptorを用いてDMA転送される
請求項４に記載の記憶装置。
【請求項６】
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリに格納されている前記FATにアクセスするためのインタフェースと
を備える情報処理装置。
【請求項７】
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記制御部は、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得する
請求項６に記載の情報処理装置。
【請求項８】
前記制御部は、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得する
請求項７に記載の情報処理装置。
【請求項９】
前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA（Direct Memory Access） descriptorを用いてDMA転送するDMAコントローラをさらに備える
請求項８に記載の情報処理装置。
【請求項１０】
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法において、
前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含むデータアクセス方法。
【請求項１１】
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、
前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶装置、情報処理装置、データアクセス方法、およびプログラムに関し、特に、ファイル転送を高速に行うことができるようにする記憶装置、情報処理装置、データアクセス方法、およびプログラムに関する。
【背景技術】
【０００２】
いわゆるFile Allocation Table（FAT）を用いて記録媒体上のファイルを管理するFATファイルシステムを適用した記憶装置が知られている（例えば、引用文献１参照）。
【０００３】
FATファイルシステムでは、記録媒体の記憶領域はクラスタ単位で管理され、FATには、各クラスタの使用状況が記録される。記録媒体上のファイルへのアクセスの際には、そのファイルを構成するクラスタのつながりを示すクラスタチェーンの解析が行われる（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７３６５９４号公報
【非特許文献】
【０００５】
【非特許文献１】Microsoft，"The FAT File System"，[online]，［平成２６年３月２０日検索］，インターネット＜URL：http://social.technet.microsoft.com/wiki/contents/articles/6771.the-fat-file-system.aspx＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、クラスタチェーンの解析が行われる際、ファイルへのアクセスを行うホスト機器が備えるCentral Processing Unit（CPU）から記憶装置に対して、頻繁なアクセスが発生する。
【０００７】
これは、一般的なパーソナルコンピュータ（PC）等に用いられる高速なCPUでは問題とならないが、組み込み用途等で用いられる低速なCPUが用いられた場合、アクセスの際の、メディアに対する読み込みおよび書き込みや、ソフトウエアにおけるコントローラ制御関数の呼び出し等に起因するオーバーヘッドにより、クラスタチェーンの解析に時間がかかってしまう。このため、データの読み込みおよび書き込みの速度が向上しても、ファイルの転送速度はあまり向上せず、ユーザはその恩恵を受けることができなかった。
【０００８】
本技術は、このような状況に鑑みてなされたものであり、ファイル転送をより高速に行うことができるようにするものである。
【課題を解決するための手段】
【０００９】
本技術の一側面の記憶装置は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える。
【００１０】
前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに設けることができる。
【００１１】
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得されるようにすることができる。
【００１２】
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得されるようにすることができる。
【００１３】
前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDirect Memory Access（DMA） descriptorを用いてDMA転送されるようにすることができる。
【００１４】
本技術の一側面の情報処理装置は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリに格納されている前記FATにアクセスするためのインタフェースとを備える。
【００１５】
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、前記制御部には、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得させることができる。
【００１６】
前記制御部には、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得させることができる。
【００１７】
前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA descriptorを用いてDMA転送するDMAコントローラをさらに設けることができる。
【００１８】
本技術の一側面のデータアクセス方法は、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法であって、前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスするステップを含む。
【００１９】
本技術の一側面のプログラムは、クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFATを格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含む処理を実行させる。
【００２０】
本技術の一側面においては、クラスタの配置情報が記録されているFATを格納するメモリにアクセスするためのインタフェースを介して、メモリに格納されているFATにアクセスされる。
【発明の効果】
【００２１】
本技術の一側面によれば、ファイル転送をより高速に行うことが可能となる。
【図面の簡単な説明】
【００２２】
【図１】従来のホスト機器および記憶装置の構成例を示すブロック図である。
【図２】非特許文献１に開示されているディレクトリエントリおよびFATを用いたファイルアクセスについて説明する図である。
【図３】ファイルアクセス処理について説明するフローチャートである。
【図４】クラスタチェーン解析およびDMA descriptor生成処理について説明するフローチャートである。
【図５】本技術のホスト機器および記憶装置の構成例を示すブロック図である。
【図６】本技術のクラスタチェーン解析およびDMA descriptor生成処理について説明するフローチャートである。
【図７】メモリに格納されているFATについて説明する図である。
【図８】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
以下、本技術の実施の形態について図を参照して説明する。なお、説明は以下の順序で行う。
１．従来のホスト機器および記憶装置の構成と動作
２．本技術のホスト機器および記憶装置の構成
３．本技術のクラスタチェーン解析およびDMA descriptor生成処理
【００２４】
＜１．従来のホスト機器および記憶装置の構成と動作＞
図１は、従来のホスト機器および記憶装置の構成例を示している。
【００２５】
図１に示される構成において、例えば、ホスト機器１１が、記憶装置１２内の記録メディア３２に格納されているデータを読み込む場合、まず、ホスト機器１１のCPU２１が、I/F（インタフェース）２２を介して記憶装置１２に対してコマンドを発行する。記憶装置１２のコントローラ３１は、I/F３４を介して受け取ったホスト機器１１からのコマンドに基づいて、記録メディア３２上のデータを読み出す。そして、コントローラ３１は、必要に応じてメモリ３３をキャッシュとして用いながら、読み出したデータをI/F３４を介してホスト機器１１に送信する。ホスト機器１１のCPU２１は、I/F２２を介して受け取ったデータを、メモリ２３に格納する。
【００２６】
このようにして、記録メディア３２に格納されているデータの読み込みが行われる。なお、ホスト機器１１が、記憶装置１２内の記録メディア３２にデータを書き込む場合にも、上述した流れと同様にして、記録メディア３２へのデータの書き込みが行われる。
【００２７】
一般的に、CPUがハードディスク等の記録媒体にアクセスする場合、論理的な最小単位である、クラスタと呼ばれる固定長（例えば32Kバイト等）のブロック単位でアクセスが行われる。記憶装置は、論理フォーマット時に、記録媒体の記憶領域をクラスタ単位に分割し、分割された記憶領域それぞれに、クラスタ番号を付加して管理を行う。
【００２８】
一方、ユーザが扱うアプリケーション等は、記録媒体に記録されているデータ（例えば、数Ｍバイトを超えるような画像データ）に対して、ファイル単位でアクセスを行う。そのため、ファイルの読み込みが行われる場合、そのファイルがどのクラスタに格納されているのかを、別途管理されるファイル情報を用いて特定する必要がある。
【００２９】
一般的に、このようなファイル情報を管理する手法として、FAT（File Allocation Table）ファイルシステムが用いられている。
【００３０】
FATファイルシステムにおいては、記録媒体上の特定の領域に、クラスタの使用状況や配置を示す情報（以下、配置情報という）が記録されているFATと、記録媒体上のファイルのファイル名およびその先頭データが記録されている先頭クラスタ番号が記録されているディレクトリエントリとが設けられる。
【００３１】
（ディレクトリエントリおよびFATを用いたファイルアクセスについて）
図２は、非特許文献１に開示されているディレクトリエントリおよびFATを用いたファイルアクセスについて説明する図である。
【００３２】
図２において、例えば、ファイル名が"File1"であるファイルにアクセスする場合、そのファイルのディレクトリエントリに記録されている先頭クラスタ番号0002が取得される。これは、"File1"の先頭データが、クラスタ２に記録されていることを示す。
【００３３】
FATにおいては、クラスタ番号毎の領域に、対応するクラスタの配置情報として、そのクラスタが未使用である場合には0000が記録される。また、そのクラスタが使用されていて、ファイルの最後のクラスタでない場合には、後続するクラスタのクラスタ番号が記録され、ファイルの最後のクラスタである場合には、FFFFが記録される。
【００３４】
つまり、図２の例では、ディレクトリエントリに記録されている先頭クラスタ番号0002に基づいて、FATにおけるクラスタ番号２の領域に記録されているクラスタ番号0003が取得される。これは、クラスタ２に記録されている"File1"の先頭データに後続する２番目のデータが、クラスタ３に記録されていることを示す。
【００３５】
次に、FATにおけるクラスタ番号２の領域に記録されているクラスタ番号0003に基づいて、FATにおけるクラスタ番号３の領域に記録されているクラスタ番号0004が取得される。これは、クラスタ３に記録されている"File1"の２番目のデータに後続する３番目のデータが、クラスタ４に記録されていることを示す。
【００３６】
そして、FATにおけるクラスタ番号３の領域に記録されているクラスタ番号0004に基づいて、FATにおけるクラスタ番号４の領域に記録されているクラスタ番号FFFFが取得される。これは、クラスタ４に記録されているデータが、"File1"の最後のデータであることを示す。
【００３７】
以上のようにして、記録媒体上の特定の領域に記録されているFATに対するアクセスが繰り返されることで、"File1"を構成するデータが記録されている全てのクラスタのクラスタ番号が取得される。
【００３８】
このように、１つのファイルを構成するデータが記録されている一連のクラスタはクラスタチェーンと呼ばれ、ファイルアクセスが行われる場合には、上述のような手順で、FATに記録されている配置情報に基づいて、クラスタチェーンの解析が行われる。
【００３９】
また、従来、記録メディア３２からホスト機器１１にデータ転送される際に、CPU２１が、記録メディア３２上のクラスタとメモリ２３との間のデータ転送を行う代わりに、DMA（Direct Memory Access）によるデータ転送（DMA転送）が行われている。
【００４０】
DMAにおいては、CPU２１が、転送されるデータが記録されているクラスタのリストに基づいて、転送情報としてDMA descriptorを生成し、DMAコントローラ（図示せず）に供給する。DMAコントローラは、DMA descriptorを用いてデータのDMA転送を行う。
【００４１】
このようにして、DMA転送が行われることで、CPU２１の負荷を低減することができる。
【００４２】
（ファイルアクセス処理の流れ）
ここで、図３のフローチャートを参照して、ファイルアクセス処理の流れについて説明する。ここでは、ファイルの読み込みが行われるものとする。
【００４３】
ステップＳ１１において、ディレクトリエントリからアクセスの対象となるファイルの先頭クラスタ番号Csが取得される。
【００４４】
ステップＳ１２において、クラスタチェーン解析およびDMA descriptor生成処理が行われる。
【００４５】
そして、ステップＳ１３において、生成されたDMA descriptorを用いてデータのDMA転送が行われる。
【００４６】
（クラスタチェーン解析およびDMA descriptor生成処理の詳細）
次に、図４のフローチャートを参照して、図３のフローチャートのステップＳ１２におけるクラスタチェーン解析およびDMA descriptor生成処理の詳細について説明する。
【００４７】
ステップＳ３１において、先頭クラスタ番号Csがクラスタ番号Anにセットされる。
【００４８】
ステップＳ３２において、クラスタ番号Anが、解析されるクラスタチェーンにおける先頭クラスタ番号Asにセットされ、記録媒体上でクラスタAsのFAT（以下、FAT情報ともいう）が記録されている領域（クラスタ）のクラスタ番号Fnが計算される。
【００４９】
ステップＳ３３において、クラスタ番号Fnで示される、記録媒体上のクラスタFnのデータが読み込まれる。
【００５０】
ステップＳ３４において、読み込まれたデータで示されるクラスタAsのFAT情報から、注目しているクラスタのクラスタ番号Ac（注目クラスタ番号。最初は先頭クラスタ番号Asがセットされる）に後続する後続クラスタ番号が取得され、Anにセットされる。
【００５１】
ステップＳ３５において、An＝Ac＋１であるか否か、すなわち、注目クラスタ番号Acと後続クラスタ番号Anが連続しているか否かが判定される。注目クラスタ番号Acと後続クラスタ番号Anが連続している場合、処理はステップＳ３３に戻り、後続クラスタ番号Anが注目クラスタ番号Acにセットされて、ステップＳ３３，Ｓ３４の処理が繰り返される。
【００５２】
一方、注目クラスタ番号Acと後続クラスタ番号Anが連続していない場合、処理はステップＳ３６に進み、先頭クラスタ番号Asと注目クラスタ番号AcとからDMA descriptorが生成される。DMA descriptorは、先頭クラスタ番号Asから注目クラスタ番号までの連続するクラスタを転送するための情報となる。
【００５３】
ステップＳ３７において、注目クラスタ番号Acのクラスタ（クラスタAc）が、クラスタチェーンの最後のクラスタであるか否か、すなわち、アクセス対象のファイルを構成するクラスタのうちの最後のクラスタであるか否かが判定される。
【００５４】
クラスタAcが、クラスタチェーンの最後のクラスタでない場合、処理はステップＳ３２に戻り、上述した処理が繰り返される。一方、クラスタAcが、クラスタチェーンの最後のクラスタである場合、クラスタチェーン解析およびDMA descriptor生成処理は終了する。
【００５５】
ところで、上述した処理のステップＳ３２，Ｓ３３においては、クラスタチェーンの解析を行うために、ファイルへのアクセスを行うホスト機器が備えるCPUから記憶装置の記録媒体に対して、頻繁なアクセスが発生する。
【００５６】
これは、一般的なPC等のCPUでは問題とならないが、組み込み用途等で用いられる低速なCPUが用いられた場合、アクセスの際の、メディアに対する読み込みおよび書き込み、ソフトウエアにおけるコントローラ制御関数の呼び出し等に起因するオーバーヘッドにより、クラスタチェーンの解析に時間がかかってしまう。
【００５７】
そのため、実行転送速度が数Gb/sの記憶装置の場合、クラスタチェーンの解析に要する時間が、実際の転送速度（例えば３秒）と比較して、数倍（例えば１０秒以上）となってしまい、ユーザは、ファイルの転送速度向上の恩恵を受けることができなかった。
【００５８】
これは、FATを全て、ホスト機器が備えるメモリに予め読み込めば解決されると思われるが、一般的に用いられている大容量（例えば32GB）のSDメモリカードにおけるFATのサイズは数MB（例えば8MB）にもなり、組み込み用途で用いられるCPUのためにこの容量のメモリを確保するのは一般的ではない。
【００５９】
そこで、以下においては、クラスタチェーンの解析に要する時間を短縮し、ファイル転送をより高速に行う構成について説明する。
【００６０】
＜２．本技術のホスト機器および記憶装置の構成＞
図５は、本技術のホスト機器および記憶装置の構成例を示している。
【００６１】
図５に示されるホスト機器５１と記憶装置５２とからなるデータアクセスシステムにおいては、ホスト機器５１により、記憶装置５２に記録されているデータへのアクセスが行われる。
【００６２】
ホスト機器５１は、例えば、記憶装置５２に記録されているデータの記録再生を行うビデオカメラやデジタルカメラ、音楽プレーヤ等のアプリケーション機器として構成される。また、ホスト機器５１は、パーソナルコンピュータ（PC）等の機器として構成されるようにしてもよい。一方、記憶装置５２は、ディスク状の記録媒体と、FLASHメモリ等の不揮発性記憶媒体とを備える複合型記憶装置として構成されるようにしてもよいし、これに限らず、他の構成を採るようにしてもよい。
【００６３】
ホスト機器５１は、CPU６１、I/F６２、メモリ６３、DMAコントローラ（DMAC）６４、およびメモリI/F６５を備えており、記憶装置５２は、コントローラ７１、記録メディア７２、メモリ７３、I/F７４、メモリI/F７５を備えている。
【００６４】
ホスト機器５１において、CPU６１は、所定の演算処理を行い、コマンドを発行することで、I/F６２を介して、記憶装置５２の記録メディア７２に記録されているデータへのアクセスを行う。
【００６５】
メモリ６３は、CPU６１により行われる演算処理に用いられる。
【００６６】
DMAC６４は、CPU６１によって生成されるDMA descriptorを用いて、記憶装置５２の記録メディア７２に記録されているデータのDMA転送を行う。
【００６７】
メモリI/F６５は、記憶装置５２のメモリ７３にアクセスするためのI/Fであり、メモリ７３に格納されているデータのアドレス（メモリアドレス）を指定するアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなる。
【００６８】
一方、記憶装置５２において、コントローラ７１は、所定の演算処理を行い、I/F７４を介して、ホスト機器５１により発行されたコマンドを受け取り、そのコマンドに従って、ホスト機器５１による記録メディア７２に記録されているデータへのアクセスを制御する。ハードディスク等からなる記録メディア７２には、FATファイルシステムのフォーマットに従って、クラスタ単位でデータが記録される。
【００６９】
メモリ７３は、コントローラ７１により行われる演算処理に用いられる。また、メモリ７３は、記録メディア７２におけるクラスタの配置情報が記録されているFATを格納している。メモリ７３は、FLASHメモリ等の不揮発性記憶媒体として構成されるものとするが、DRAM（Dynamic Random Access Memory）等の揮発性記憶媒体として構成されるようにしてもよい。この場合、記憶装置５２の電源オン時に、FATがメモリ７３に読み込まれるようにする。
【００７０】
メモリI/F７５は、ホスト機器１１がメモリ７３にアクセスするためのI/Fであり、メモリ７３に格納されているデータのアドレスを指定するアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなる。
【００７１】
このような構成により、ホスト機器１１のCPU６１は、メモリ７３に格納されているFATに記録されている配置情報を、メモリI/F６５およびメモリI/F７５のアドレス線を介して指定されるアドレスへのデータアクセスを、データ線を介して行うことで取得することができる。
【００７２】
なお、ディレクトリエントリは、FATとともに、メモリ７３に格納されるようにしてもよいし、記録メディア７２上の特定の領域に格納されるようにしてもよい。
【００７３】
ここで、ホスト機器５１および記憶装置５２におけるファイルアクセス処理は、基本的には、図３のフローチャートを参照して説明した処理と同様にして行われる。ただし、ホスト機器５１および記憶装置５２におけるクラスタチェーン解析およびDMA descriptor生成処理は、クラスタチェーンの解析を行う際に、CPU６１から記録メディア７２に対するアクセスが頻繁に行われない点で、図４のフローチャートを参照して説明した処理とは異なる。
【００７４】
＜３．本技術のクラスタチェーン解析およびDMA descriptor生成処理＞
そこで、図６のフローチャートを参照して、本技術のクラスタチェーン解析およびDMA descriptor生成処理の詳細について説明する。
【００７５】
ステップＳ５１において、CPU６１は、メモリ７３におけるFATの格納領域（FAT領域）の先頭メモリアドレスを基準アドレスAbにセットし、アクセスの対象となるファイルの先頭クラスタ番号Csをクラスタ番号Anにセットする。
【００７６】
ステップＳ５２において、CPU６１は、クラスタ番号Anを、解析されるクラスタチェーンにおける先頭クラスタ番号Asにセットする。
【００７７】
ステップＳ５３において、CPU６１は、クラスタ番号Anを、解析されるクラスタチェーンにおいて暫定的に最後となるクラスタの暫定最終クラスタ番号Aeにセットする。
【００７８】
ステップＳ５４において、CPU６１は、メモリ７３におけるメモリアドレスAb＋(Ae×ｍ)の内容を取得し、クラスタ番号Anにセットする。ここで、ｍは、メモリ７３に格納されているFATにおいて、１つのクラスタの配置領域が占めるバイト数を示している。
【００７９】
図７は、メモリ７３に格納されているFATについて説明する図である。
【００８０】
図７においては、メモリ７３におけるFAT領域の先頭アドレスはｄとされ、FAT領域において、クラスタ番号ｉの配置情報が記録されている領域のメモリアドレスは、ｄ＋(ｉ×ｍ)とされる。
【００８１】
いま、先頭クラスタ番号Csが0002であったとすると、暫定最終クラスタ番号Aeには、クラスタ番号２がセットされているので、メモリアドレスｄ＋(２×ｍ)へのデータアクセスが行われる。図７の例では、メモリアドレスｄ＋(２×ｍ)の領域には、クラスタ番号0003が記録されており、このクラスタ番号0003が取得されて、クラスタ番号Anにセットされることになる。
【００８２】
図６のフローチャートに戻り、ステップＳ５５において、CPU６１は、An＝Ae＋１であるか否か、すなわち、暫定最終クラスタ番号Aeとクラスタ番号Anが連続しているか否かが判定される。暫定最終クラスタ番号Aeとクラスタ番号Anが連続している場合、処理はステップ５３に戻り、クラスタ番号Anが暫定最終クラスタ番号Aeにセットされて、ステップＳ５４の処理が繰り返される。
【００８３】
例えば、図７の例では、ステップＳ５５において、暫定最終クラスタ番号Aeにセットされているクラスタ番号２と、クラスタ番号Anにセットされたクラスタ番号0003が連続していると判定される。処理はステップ５３に戻り、クラスタ番号３が暫定最終クラスタ番号Aeにセットされ、ステップＳ５４において、メモリアドレスｄ＋(３×ｍ)の内容、すなわち、クラスタ番号0004が取得されて、クラスタ番号Anにセットされる。
【００８４】
そして、ステップＳ５５において、暫定最終クラスタ番号Aeにセットされているクラスタ番号３と、クラスタ番号Anにセットされたクラスタ番号0004が連続していると判定される。処理はステップ５３に戻り、クラスタ番号４が暫定最終クラスタ番号Aeにセットされ、ステップＳ５４において、メモリアドレスｄ＋(４×ｍ)の内容、すなわち、FFFFが取得されて、クラスタ番号Anにセットされる。
【００８５】
この場合、ステップＳ５５においては、暫定最終クラスタ番号Aeにセットされているクラスタ番号４と、クラスタ番号AnにセットされたFFFFが連続していないと判定され、処理はステップＳ５６に進む。
【００８６】
ステップＳ５６において、CPU６１は、先頭クラスタ番号Asと、暫定最終クラスタ番号AeとからDMA descriptorを生成する。DMA descriptorは、DMAC６４が先頭クラスタ番号Asから暫定最終クラスタ番号Aeまでの連続するクラスタを転送するための情報となる。図７の例では、クラスタ番号２からクラスタ番号４までの連続するクラスタを転送するためのDMA descriptorが生成されることになる。
【００８７】
ステップＳ５７において、CPU６１が、クラスタ番号Aeのクラスタ（クラスタAe）が、クラスタチェーンの最後のクラスタであるか否か、すなわち、アクセス対象のファイルを構成するクラスタのうちの最後のクラスタであるか否かを判定する。
【００８８】
クラスタAeが、クラスタチェーンの最後のクラスタでない場合、処理はステップＳ５２に戻り、次に連続するクラスタについて、上述した処理が繰り返される。一方、例えば、図７におけるクラスタ番号４のクラスタにように、クラスタAeが、クラスタチェーンの最後のクラスタとなる場合、クラスタチェーン解析およびDMA descriptor生成処理は終了する。
【００８９】
以上の処理によれば、クラスタチェーンの解析の際に、記憶装置のメモリに格納されているFATに記録されている配置情報が、クラスタ番号と、記憶装置のメモリに格納されているFATにおいて１つの配置領域が占めるバイト数とを用いたポインタ演算により求められるメモリアドレスへのアクセスにより取得されるようになる。これにより、クラスタチェーンの解析を行うために、ファイルへのアクセスを行うホスト機器が備えるCPUから記憶装置の記録媒体に対する頻繁なアクセスや、ソフトウエアにおけるコントローラ制御関数の呼び出しが発生することはなく、組み込み用途等で用いられる低速なCPUであっても、クラスタチェーンの解析にかかる時間を短縮することができる。
【００９０】
例えば、従来の処理では、クラスタチェーンの解析に要する時間が１０秒以上であったのに対し、本技術の処理によれば、クラスタチェーンの解析に要する時間を１秒以下とすることができ、結果として、ファイル転送をより高速に行うことが可能となる。
【００９１】
なお、図５に示されるデータアクセスシステムにおいて、メモリI/F６５およびメモリI/F７５を設けないようにしてもよい。この場合、コントローラ制御関数の呼び出しに起因するオーバーヘッドは生じるものの、クラスタチェーンの解析におけるメディアへのアクセスを、より高速なメモリアクセスに置き換えることができ、メディアに対する読み込みおよび書き込みに起因するオーバーヘッドを低減することが可能となる。
【００９２】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【００９３】
図８は、ホスト機器５１による上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【００９４】
コンピュータ９００において、CPU（Central Processing Unit）９０１，ROM（Read Only Memory）９０２，RAM（Random Access Memory）９０３は、バス９０４により相互に接続されている。
【００９５】
バス９０４には、さらに、入出力インタフェース９０５が接続されている。入出力インタフェース９０５には、入力部９０６、出力部９０７、記憶部９０８、通信部９０９、およびドライブ９１０が接続されている。
【００９６】
入力部９０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部９０７は、ディスプレイ、スピーカなどよりなる。記憶部９０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部９０９は、ネットワークインタフェースなどよりなる。ドライブ９１０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア９１１を駆動する。
【００９７】
以上のように構成されるコンピュータ９００では、CPU９０１が、例えば、記憶部９０８に記憶されているプログラムを、入出力インタフェース９０５およびバス９０４を介して、RAM９０３にロードして実行することにより、上述した一連の処理が行われる。
【００９８】
コンピュータ９００（CPU９０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア９１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００９９】
コンピュータ９００では、プログラムは、リムーバブルメディア９１１をドライブ９１０に装着することにより、入出力インタフェース９０５を介して、記憶部９０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部９０９で受信し、記憶部９０８にインストールすることができる。その他、プログラムは、ROM９０２や記憶部９０８に、あらかじめインストールしておくことができる。
【０１００】
なお、コンピュータ９００が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１０１】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１０２】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０１０３】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１０４】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１０５】
また、本技術は以下のような構成をとることができる。
（１）
クラスタ単位でデータを記録する記録媒体と、
前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリと
を備える記憶装置。
（２）
前記記録媒体に記録されているファイルへのアクセスを行う情報処理装置が、前記メモリに格納されている前記FATにアクセスするためのインタフェースをさらに備える
（１）に記載の記憶装置。
（３）
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記アドレス線を介して指定されるアドレスへのデータアクセスが、前記データ線を介して行われることで取得される
（２）に記載の記憶装置。
（４）
前記FATに記録されている前記配置情報は、前記情報処理装置によって、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスされることで取得される
（１）乃至（３）のいずれかに記載の記憶装置。
（５）
前記記録媒体に記録されているデータは、前記情報処理装置によって、取得された前記配置情報に基づいて生成されたDMA（Direct Memory Access） descriptorを用いてDMA転送される
（１）乃至（４）のいずれかに記載の記憶装置。
（６）
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリに格納されている前記FATにアクセスするためのインタフェースと
を備える情報処理装置。
（７）
前記インタフェースは、前記メモリに格納されているデータのアドレスを指定するためのアドレス線と、指定されたアドレスへのデータアクセスを行うためのデータ線とからなり、
前記制御部は、前記FATに記録されている前記配置情報を、前記アドレス線を介して指定されるアドレスへのデータアクセスを、前記データ線を介して行うことで取得する
（６）に記載の情報処理装置。
（８）
前記制御部は、前記FATに記録されている前記配置情報を、前記クラスタのクラスタ番号と、前記メモリにおいて１つの前記配置情報が占めるバイト数とを用いて求められるアドレスにアクセスすることで取得する
（６）または（７）に記載の情報処理装置。
（９）
前記記録媒体に記録されているデータを、取得された前記配置情報に基づいて生成されたDMA（Direct Memory Access） descriptorを用いてDMA転送するDMAコントローラをさらに備える
（６）乃至（８）のいずれかに記載の情報処理装置。
（１０）
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備える情報処理装置のデータアクセス方法において、
前記制御部が、前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含むデータアクセス方法。
（１１）
クラスタ単位でデータを記録する記録媒体と、前記クラスタの配置情報が記録されているFAT（File Allocation Table）を格納するメモリとを備える記憶装置に対して、前記記録媒体に記録されているファイルへのアクセスを行う制御部と、
前記メモリにアクセスするためのインタフェースとを備えるコンピュータに、
前記インタフェースを介して、前記メモリに格納されている前記FATにアクセスする
ステップを含む処理を実行させるプログラム。
【符号の説明】
【０１０６】
５１  ホスト機器，  ５２  記憶装置，  ６１  CPU，  ６２  I/F，  ６３  メモリ，  ６４  DMAC，  ６５  メモリI/F，  ７１  コントローラ，  ７２  記録メディア，  ７３  メモリ，  ７４  I/F，  ７５  メモリI/F
【図１】
2015185103.tif 000003
【図２】
2015185103.tif 000004
【図３】
2015185103.tif 000005
【図４】
2015185103.tif 000006
【図５】
2015185103.tif 000007
【図６】
2015185103.tif 000008
【図７】
2015185103.tif 000009
【図８】
2015185103.tif 000010