(57)【要約】【課題】  ＵＳＢ等によって外部の機器と接続される情報処理装置において、該外部の機器からの転送要求コマンドに対する応答性を向上する。【解決手段】  本情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルのアドレスと、前記各ファイルの識別情報を対応づけたリストとする。【選択図】図１
2010049734.tif 000002
【特許請求の範囲】
【請求項１】
ファイル単位でデータを記録する記録装置と、
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
外部機器からの所定の容量のデータの転送要求を入力する入力部と、
前記外部機器より転送要求されるデータと同一ファイルに含まれるデータを前記リストから特定し、前記所定の容量より大きな容量で読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報から、前記複数のファイルに含まれる各ファイルのアドレスと、前記各ファイルの識別情報とを対応付けたリストを生成することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報に含まれる、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも１以上の情報を削除したファイルリストを生成することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、
前記生成部は、前記外部機器と接続された場合に前記リストを生成することを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、
前記制御部は、前記外部機器より転送要求されるデータの容量が前記所定の容量より大きいか否かを検知し、前記所定の容量より小さい場合には前記メモリ部に保持せず前記送信部により送信するよう制御することを特徴とする情報処理装置。
【請求項６】
請求項１ないし５のいずれか1項に記載の情報処理装置は、
前記外部機器とＵＳＢ（Universal Serial Bus）インタフェースを介して通信することを特徴とする情報処理装置。
【請求項７】
ＵＳＢにて外部機器と通信を行い、該通信を行う場合には、ＵＳＢデバイスとして動作する情報処理装置であって、
複数のファイルを記録する記録部と、
前記外部の機器よりファイルの一部のデータの転送要求を受信する受信部と、
前記転送要求されるデータを含むファイルと同一のファイルに含まれるデータを読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部に保持されたデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、第１のファイルの一部のデータの転送要求と、第２のファイルの一部のデータの転送要求とを受信した場合には、前記第１のファイルに含まれるデータと、前記第２のファイルに含まれるデータの両方を保持することを特徴とする情報処理装置。
【請求項８】
第１の情報処理装置と、第２の情報処理装置との間でデータを転送する転送システムであって、
前記第２の情報処理装置は、
前記第１の情報処理装置に所定の容量のデータの転送要求コマンドを送信する第２の送信部と、
前記第１の情報処理装置から送信されるデータを受信する第２の受信部と、を備え、
前記第１の情報処理装置は、
複数のファイルを記録可能な記録装置と、  
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
前記転送要求コマンドを受信する第１の受信部と、
前記第２の情報処理装置より転送要求されるデータと同一ファイルに含まれるデータを前記所定の容量より大きな容量で保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する第１の送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、その中でも例えば、パーソナルコンピュータなどの外部機器に対する着脱式デバイスとして利用可能な、ビデオカメラやデジタルカメラなどに代表される情報記録再生装置に関する。
【背景技術】
【０００２】
ＵＳＢ（Universal Serial Bus）は、パーソナルコンピュータ（以下、パソコンと呼ぶ）と、マウスやキーボード等の周辺機器とを比較的低価格で簡単に接続するためのデータ転送路の規格として発表された。現在、ＵＳＢはパソコンに搭載されている標準的なインタフェースである。パソコンにＵＳＢが搭載されると、様々な周辺装置にもＵＳＢが搭載されるようになった。例えば、ＵＳＢメモリ等の着脱自在な外部記憶装置がある。一方、コンシューマエレクトロニクスの分野においても、ＵＳＢは搭載されている。例えばビデオカメラやデジタルカメラなどである。ＵＳＢを利用してパソコンと接続することが可能となり、ＵＳＢメモリと同じように、ビデオカメラやデジタルカメラが持つストレージがパソコンと相互にデータのやり取りを行うことができる。
【０００３】
なお、ＵＳＢ通信においては、1台の機器が親機となって、ポーリング（問い合わせ）によって子機側と通信をする。機器間の通信制御は主に親機が行い、子機側から勝手に通信を開始することはできない。また、一般に親機をホスト、子機をデバイスと呼ぶ。
【０００４】
特許文献１の記録再生装置は、バッファメモリとして容量の大きいメモリを持ち、ストレージから読み出したデータを、まずこのメモリに一時保持すると共に、このメモリに対して、常に現在再生出力されているデータの時系列的に前後となるデータが保持されるように制御する。これにより、ユーザによるキュー／レビュー操作が行われた場合に、ディスクに直接アクセスしなくとも、キュー／レビューに必要なデータをメモリから即座に読み出すことが可能となる。そして、ユーザーに対してスムーズなキュー／レビュー操作を提供することが可能となる。
【０００５】
【特許文献１】特開２００３−３４６４２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ビデオカメラやデジタルカメラが持つストレージからパソコンへＵＳＢを介して大きいファイルを転送する場合、パソコンのソフトウェアは決まったサイズごとにデータ転送要求（リードコマンド）を出す。例えば、MS Windows（登録商標）がインストールされたパソコンの場合、ビデオカメラとＵＳＢで接続するとＰＣからは64KByteごとのデータ転送要求が出される。
【０００７】
また、デジタルカメラやビデオカメラ等は、ＵＳＢによってＰＣ等と接続されると、デバイスとして認識される場合が多い。そして、デジタルカメラ等がデバイスとして機能する場合には、リードコマンドによって指定されたアドレスのデータをストレージから読み出す処理を行っていた。そして、ＰＣからのコマンドを受信すると、ビデオカメラは、６４ｋ毎のデータを、内蔵するストレージデバイスから送信していた。このため、データ転送要求の度に、ビデオカメラはストレージに対してデータ転送要求を行うため、実際は64Kbyteよりも大きいファイルを転送する場合には、何度もデータ転送要求の送受を行わなければならず、データ転送に無駄な時間がかかってしまう。
【０００８】
この問題に対して、特許文献１によると、時間的に前後のデータをメモリに入れることで、キューレビュー操作の応答性を向上していた。
【０００９】
しかし、特許文献１においては、ファイルのコピーあるいはバックアップ等、ファイルの転送処理の応答性を向上させる事や、転送速度を向上させる事については検討されていない。一方、本願発明は、このファイルのコピーやバックアップ等に関する。
【００１０】
ここで、まず、特許文献１にも記載されているファイルの再生と、本願が対象とする、コピーやバックアップ等のファイル転送処理との一致点及び相違点について説明する。
【００１１】
一般に、パソコンにインストールされた動画再生アプリケーションを使用して情報記録再生装置のＨＤＤに蓄積してあるストリームデータを再生する場合、データ転送の方法は、ただ単純にストリームデータをパソコンにバックアップする場合と同様の通信手順である。再生を行う場合も、ファイルの転送を行う場合もパソコンからデータ転送要求が情報記録再生装置に送られ、情報記録再生装置はＨＤＤからデータを取得して、パソコンにデータを転送する。
【００１２】
しかし、再生時とバックアップ時では、データ転送レート（データ転送速度）の考えに違いがある。つまり、再生時はデータ転送レートを制御する必要がある一方、バックアップ等の転送時では、データ転送は速ければ速い方が良いので、この場合データ転送レートがより大きくなることが望ましい。
【００１３】
通常、情報記録再生装置は、あるビットレートで動画を記録する。ビットレートとは映像一秒間あたりのデータ量のことである。このビットレートよりもデータ転送レートが遅いと再生する際、映像がストップしたり、あるいは乱れたりしてしまう。反対にデータ転送レートが速すぎると動画再生アプリケーションが持つバッファにデータが収まりきらず溢れてしまう。通常、動画再生アプリケーションはデータ転送レートをコントロールしながら、情報記録再生装置にデータ転送要求を送るためである。
【００１４】
そして、特許文献１においては、以下示す状況下、外部機器からの応答性を向上させる事については、検討されていなかった。
【００１５】
例えば、ファイルのコピーやバックアップにおいては、映像音声の再生とは異なり、ファイルの転送は、複数のファイルを一度に転送する場合が多い。
【００１６】
そして、１つのファイルの一部に対するリードコマンドと、他のファイルの一部に対するリードコマンドとを交互に受信する場合がある。この場合、転送にかかるデータに前後するファイルをメモリに読み出しておく構成では、ある時点では、１つのファイルに対するデータをメモリに読み出し、次の時点では、他のファイルに対応するデータでメモリを更新するという処理を繰り返すことになり、転送速度の向上が行えないという場合がある。あるいは、ストレージ中における、１つのファイルが格納されているアドレスと、他のファイルが格納されているファイルのアドレスが離れている場合、これらの離れているアドレスに交互にアクセスする必要があり、読み取りヘッドの移動時間がかかる場合がある。
【００１７】
また、例えば、単に転送コマンドに示されるアドレス値に前後するアドレスの転送を行うのみでは、メモリ内に格納されているファイルが既に転送が完了しているか否かがわからない。既に転送が完了しているファイルのデータをメモリに残したままとすると、メモリの空き容量が圧迫される。一方、未だ転送が完了していないファイルのデータをメモリから消してしまうと、当該ファイルに含まれるデータに対する転送コマンドを受信した場合に、もう一度データをストレージから読み出す時間がかかる。
【００１８】
特許文献１においては、上記の問題は検討されていなかった。
【００１９】
本発明は、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することを課題とする。
【課題を解決するための手段】
【００２０】
本発明の情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルの論理ブロック番号と、前記各ファイルの識別情報を対応づけたリストとする。
【発明の効果】
【００２１】
本発明によると、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下図面について、本発明の一実施の形態を詳述する。
【００２３】
情報処理装置の例としては、例えばＨＤＤレコーダ等のレコーダ、ＨＤＤカメラ、ＢＤカメラ等のビデオカメラ、静止画カメラ等、情報を記録し、外部の機器へ転送する機能を有する装置がある。外部の機器には、例えば、ホームサーバやＰＣ等の機器であり、ビデオカメラ等と通信を行う。
【００２４】
以下、情報記録再生装置とパソコンを例に説明を行う。
【実施例１】
【００２５】
（１）情報記録再生装置の構成
【００２６】
まず、情報記録再生装置１００のハードウェア構成及び、ソフトウェアの機能について図１、及び図２を用いて説明する。なお、情報記録再生装置１００は、入力された映像情報と音声情報を、記録装置に記録し、前記記録した情報を再生する装置である。なお、映像情報や音声情報を記録する際には、各記録媒体で定められた規格に従って記録し、再生する。また、本情報記録再生装置は、バッファに読み出すデータの制御を行う事により、外部機器からの要求に対する応答速度を向上させる装置である。
【００２７】
図１は、情報記録再生装置のハードウェア構成を示すブロック図である。実線矢印はデータの方向を示し、破線矢印は制御の方向を示す。
【００２８】
図１において、１００は情報記録再生装置である。この情報記録再生装置１００は、システム制御部１０１、撮像部１０２、メモリ１０３、多重／分離部１０４、映像圧縮伸張部１０５、音声圧縮伸張部１０６、記録制御部１０７、記録装置１０８、ＵＳＢ制御部１０９、モニタ部１１０、及びマイク部１１３から主に構成されている。
【００２９】
システム制御部１０１は、情報記録再生装置１００のシステム全体を制御する。具体的にはシステム制御部１０１は、各機能部１０２ないし１１３の実行を制御する。システム制御部１０１は、例えばＣＰＵ等の制御装置によって構成する。
【００３０】
撮像部１０２は、被写体を撮像した映像画像を光電変換して映像データにする。代表的なものとしては、ＣＣＤやＣＭＯＳイメージセンサ等がある。
【００３１】
メモリ１０３は、例えば半導体メモリ等により構成する記憶部である。また、メモリ１０３は、例えばバッファＡ２１２、バッファＢ２１３等、複数の記憶領域を有する。また、メモリ１０３は、ファイルリスト２１０、バッファ管理情報２１１を保持ないし一時記憶する。システム制御部１０１がこのバッファに関して行う制御や、ファイル２１０、バッファ管理情報２１１についての具体的な形式について、後段で詳述する。
【００３２】
マイク部１１３は、被写体を撮影した音声を圧電変換して音声データとして取り込む。
【００３３】
多重／分離部１０４は、デジタル化された映像データを映像圧縮伸張部１０５に送信し、デジタル化された音声データを音声圧縮伸張部１０６に送信する。映像圧縮伸張部１０５によりデジタル化された映像データを圧縮し、音声圧縮伸張部でデジタル化された音声データを圧縮すると、多重／分離部１０４はデジタル化された映像データとデジタル化音声データとを時間軸に沿って同期させ、１つの圧縮データとして合成されたストリームデータ１１２を生成する。また、多重／分離部１０４は、合成されたストリームデータ１１２をデジタル化された映像データとデジタル化音声データとに分離して、夫々のデータを映像圧縮伸張部１０５と音声圧縮伸張部１０６とに送信する。なお、ストリームデータ１１２は、静止画データや動画データをいい、最終的に情報記録再生装置１００内に記録されるデータをいう。
【００３４】
映像圧縮伸張部１０５では、デジタル化された映像データを圧縮し、又は伸張して圧縮された映像データを元のデジタル化された映像データに戻す。
【００３５】
音声圧縮伸張部１０６では、デジタル化された音声データを圧縮し、又は伸張して圧縮された音声データを元のデジタル化された音声データに戻す。
【００３６】
ＨＤＤ用制御部１０７は、ストリームデータ１１２を記録装置１０８に格納するデータ量や格納タイミングを制御する。
【００３７】
記録装置１０８は、ストリームデータ１１２が格納されたファイルや、ストリームデータ１１２の管理情報等を格納する。本実施例において、記録装置１０８は、システム制御部１０１の要求に応じて、転送しているファイルの一部または全部をバッファＡ２１２、バッファＢ２１３等に転送する。また、情報記録再生装置１００において、記録装置１０８はたとえばＨＤＤで構成する。なお、記録装置１０８は、情報記録再生装置１００に内蔵されていても良いし、着脱式でも良い。着脱式であれば、記録装置１０８に記録されたデータを持ち運ぶことができるため、データを他の機器に移すことも容易である。
【００３８】
なお、記録装置１０８として、ＨＤＤ以外のメモリやストレージなどでも実施可能である。具体的な記録媒体としては、ＢＤ／ＤＶＤ等の光ディスクドライブ、ＳＤメモリカードなどの半導体メモリが挙げられる。これらの半導体メモリを情報記録再生装置１００内に一つ又は複数搭載することも可能である。
【００３９】
ＵＳＢ制御部１０９は、ＵＳＢ入出力端子１１１を介してパソコン等の外部機器とのＵＳＢ通信処理を行う。具体的には、ＵＳＢ制御部１０９及びＵＳＢ入出力端子１１１は、パソコン等の外部機器からの所定データの転送要求コマンドを入力する入力部として機能する。また、パソコン等の外部機器に対してデータの送受信を行う送信部、受信部として機能する。なお、データの送受信を行う通信手段には、ＵＳＢインタフェース以外の汎用周辺機器インタフェースでも適用可能である。
【００４０】
モニタ部１１０は、情報記録再生装置１００の動作メニュー、撮像部１０２で入力される映像データ、又は記録装置１０８に記録されたストリームデータ１１２を再生した場合の映像情報を表示する。
【００４１】
ここで、多重／分離部１０４、映像圧縮伸張部１０５、音声圧縮伸張部１０６、及びＨＤＤ制御部１０７は、回路としてハードウェア的に動作を実行する構成にしても良いし、システム制御部１０１内にプログラムとして記憶させ、ソフトウェア的に処理を実行する構成としても良い。映像記録再生装置１００は、ハードウェア的に処理を実行する場合には、ソフトウェア的に処理を実行する場合に比して、処理の高速化を図ることが可能となる。
【００４２】
１０９はＵＳＢ制御部であり、パソコン３００など外部機器とのＵＳＢ通信を制御する。なお、本実施例では、ＵＳＢ通信について説明しているが、例えば、その他、パソコン３００等が親機となって、子機側の情報記録再生装置１００と通信を行う構成としてもよい。例えば、機器間の通信に主従の関係がある通信方法において、本実施例の情報記録再生装置１００の構成を適用してもよい。主従の関係がある制御とは、例えば、１台の機器が親機となって、ポーリング（問い合わせ）によって子機側と通信をするものであり、パソコン同士でＬＡＮ経由によるファイル転送とは通信方法が異なる。
【００４３】
次に、図１中のパソコン３００の構成について説明する。パソコン３００は、記録部３０１、ＵＳＢ制御部３０２、ＵＳＢ入出力端子３０３、ＣＰＵ３１０を有する。記録部３０１は、例えば、ＨＤＤによって構成される記録装置である。ＵＳＢ制御部３０２は、ＵＳＢ入出力端子３０３を介して情報記録再生装置とのＵＳＢ通信処理を行う。具体的には、ＵＳＢ制御部３０２及びＵＳＢ出力端子３０３は、情報記録再生装置１００にコマンドを出力する出力部として機能する。また、情報記録再生装置１００に対してデータの送受信を行う送信部、受信部として機能する。
【００４４】
また、図１中の、バッファＡ２１２、バッファＢ２１３は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録することが可能であるものとする。例えば、メモリ１０３の容量が５１２ＭＢとし、バッファＡ２１２、バッファＢ２１３の容量を１９２ＭＢとする。
【００４５】
図２は、情報記録再生装置１００が、ＵＳＢ機器のデバイスとして機能する際の、ソフトウェアにて処理される各機能の関係を示したブロック図である。また、図２は、パソコン３００側がＵＳＢホストとして機能する際の各機能の関係を示したブロック図も併せて示す。
【００４６】
情報記録再生装置１００は、各種プログラムを実行するためのＣＰＵ２００、メモリ１０３、情報記録再生装置１００内でストリームデータ１１２を処理・格納するための記録再生アプリケーション２０８、後述のファイルリストを作成するためのアプリケーションであるファイルリスト作成アプリケーション２０９、ファイルシステム２０７、ファイルシステム２０７とストリームデータ１１２を格納する記録装置１０８との橋渡しを行うＡＴＡコントローラドライバ２０４、ＡＴＡコマンドとＵＳＢコマンドとを相互に変換するコマンドブリッジ２０３、情報記録再生装置１００をＵＳＢデバイスとして扱うＵＳＢマスストレージ２０２、及び、パソコン３００とＵＳＢケーブル２２０を介して接続（以下、ＵＳＢ接続という）を行うためのＵＳＢインタフェース２０１から主に構成される。
【００４７】
記録装置１０８には、上述したストリームデータ１１２が格納される。
【００４８】
ＵＳＢ接続前は、情報記録再生装置１００は、記憶再生アプリケーション２０８からの指示を、ファイルシステム２０７、ＡＴＡコントローラドライバ２０４を介して記録装置１０８にアクセスすることが可能である。
【００４９】
一方、ＵＳＢ接続後は、情報記録再生装置１００は、記録装置１０８からＡＴＡコントローラドライバ２０４を介して、コマンドブリッジ２０３がＡＴＡコマンドからＵＳＢコマンドに変換した後、ＵＳＢコマンドを、ＵＳＢマスストレージ２０２を介してＵＳＢインタフェース２０１から外部機器に送信する。外部危機から情報記録再生装置１００の記録装置１０８にアクセスする場合は、情報記録再生装置１００が、ＵＳＢインタフェースからＵＳＢコマンドを取り込むと、ＵＳＢマスストレージ２０２を介してコマンドブリッジ２０３でコマンドを変換後、ＡＴＡコントローラドライバ２０４を介して記録装置１０８までアクセスすることができる。
【００５０】
パソコン３００は、各種プログラムを制御するＣＰＵ３１０、アプリケーション３１１、ファイルシステム３１２、ＵＳＢコマンドのコマンドを解析し当該コマンドに従った制御を行うためのコマンド制御部３１３及びＵＳＢインタフェース３１４から主に構成されている。
【００５１】
なお、コマンド制御部３１３では、マスストレージのクラスドライバが必要であり、接続するデバイスがサポートするプロトコル、コマンド体系に合わせたサブクラスを実装している必要がある。
【００５２】
ここで、ＵＳＢデバイス（情報記録再生装置１００）とＵＳＢホスト（パソコン３００）とが接続された場合の一般的な接続処理、及び、切断処理について簡単に説明しておく。
【００５３】
ＵＳＢホストは、ＵＳＢ接続により発生した割り込みによって、デバイスの接続を認識する。そしてＵＳＢホストは、接続されたデバイスに対してエニュメレーションを行う。このエニュメレーションで、ＵＳＢデバイスはＵＳＢホストに各種ディスクリプタの情報を提供し、ＵＳＢホストは取得した各種情報などからデバイスアドレスの設定の他、必要に応じてコンフィグレーションの設定などを行う。
【００５４】
その後、ＵＳＢホストは、取得したデバイス情報から該当するクラスドライバ（ＵＳＢマスストレージ２０２）の接続処理を行い、該当するクラスのデータ転送に必要な通信手段の準備を行う。データ転送の準備が整うとＵＳＢホストとＵＳＢデバイス間でデータ転送が行われる。
【００５５】
一方、ＵＳＢ接続が切断された時には次のような処理が行われる。ＵＳＢホストは、ＵＳＢ切断割り込み発生によって、ＵＳＢデバイスとの切断を認識する。ＵＳＢホストは、ＵＳＢデバイスとのデータ転送に用意していた通信手段を遮断して、後処理などを行う。
【００５６】
また、本情報記録再生装置１００は、一般的な処理に加えて、ファイルリストを作成し、バッファの管理を行うことによって、ファイルの転送時におけるパソコン３００からの応答性を向上させるが、具体的な処理は後述する。
【００５７】
なお、情報記録再生装置１００において、ＵＳＢインターフェース２０１、ＵＳＢマスストレージ２０２、コマンドブリッジ２０３、ＡＴＡコントローラドライバ２０４、ファイルシステム２０７、記録再生アプリケーション２０８、はＣＰＵの処理によって実行される。しかし、これらの処理は、専用のハードウェア、例えばＡＳＩＣやＦＰＧＡによって実行するように構成してもよい。専用のハードウェアによって構成すると、処理の高速化が可能となる。
（２）ファイルリスト
上述したように、図１、２の情報記録再生装置１００において、記録装置１０８には、例えば撮像部１０２で得られた映像データや、マイク部１１３によって得られて音声データがファイル形式にて記録される。本実施例の情報記録再生装置１００は、ＵＳＢ制御部１０９やＵＳＢ入出力端子１１１を介してデータの転送要求コマンドを受信すると、どのファイルに係るデータを特定するが、そのために、複数のファイルのディレクトリ構造を示す情報を利用する。
【００５８】
以下、この複数のファイルのディレクトリ構造を示す情報の例について、図３、図４を用いて説明する。
【００５９】
ファイルシステムのディレクトリ構成は、ルートディレクトリ４００ａ、ディレクトリ４１０ａ、ファイル４１１ａから主に構成される。
【００６０】
ルートディレクトリは４００ａ、ファイルシステムに必ず１つだけ存在し、ディレクトリ４１０ａやファイル４１１ａを格納する。
【００６１】
ディレクトリ４１０ａは、さらにその中にディレクトリやファイルを格納することができる。
【００６２】
ファイル４１１ａは、情報記録再生装置１００の場合、記録したストリームデータ１１２がそれにあたる。
【００６３】
図３では、ルートディレクトリ４００ａに２つのディレクトリがあり、それぞれのディレクトリには３つのファイルがある。
【００６４】
図４は、図３のディレクトリ構成のツリー構造を記録装置１０８の論理ボリューム（パーティション）上に配置した記述子４１０ｂで表したときの一例を示す。
【００６５】
ＬＢＮ４００ｂとは、論理ブロック番号を意味し、記録装置１０８上にデータを記録する際のアドレスである。ＬＢＮ４００ｂは、論理ボリュームの割り振りの単位である。各論理ブロックの先頭は論理セクタの先頭から始まり、論理ブロックの長さ分続く。一つの論理セクタで足りなければ次の論理セクタへ続く。次の論理ブロックは、前の論理ブロックが終わった論理セクタの次の論理セクタから始まる。論理セクタの余った部分は０で埋められる。記述子４０１ｂは、それぞれのバイトが意味を持つ、連続したデータの固まりである。一つのファイルあるいはディレクトリは、一つのファイルエントリを持っている。ファイルエントリにはそのファイルの更新日時やファイル本体の位置ないしアドレスが記入される。
【００６６】
以上説明した、図３また図４の情報を利用することにより、本実施例の情報処理装置１００は、転送要求されるデータがどのファイルに含まれるかを特定することが可能となる。さらに、図１、図２の情報記録再生装置１００は、パソコン３００から転送要求コマンドが、どのファイルに含まれるデータの転送を要求するものなのかを特定するために、ファイルリスト５１０を作成する。
【００６７】
これは、図３、図４のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれ、この必要ではない情報を削除することにより、処理の高速化を図るためである。例えば、空間ビットマップ記述子は、各論理ブロックが割り当て可能か否かを示す情報を含むが、割り当て可能か否かという情報は、ファイルの転送自体には、必ずしも必要は無い。また、例えば、ファイル集合記述子は、ルートディレクトリのファイルエントリの位置情報を含む。しかし、転送要求されるデータと、そのデータを含むファイルとの対応付けができれば、その対応付けの後には、ディレクトリのファイルエントリの位置情報自体は必ずしも必要ではない。また、同様にルートディレクトリ以外のディレクトリのファイルエントリの位置情報自体も、転送要求されるデータと、そのデータを含むファイルとの対応付けさえできれば、必ずしも必要な情報では無い。また、終端記述子はファイル集合記述子の終端を表すが、転送要求されるデータと、そのデータを含むファイルとの対応さえできれば、この終端記述子自体も必要は無い。また、ファイルエントリ中に含まれる情報の中でも、ファイルの更新日時を示す情報は、転送要求されるデータがどのファイルに含まれるかを特定するためには必要が無い。本実施例の情報処理装置は、上述した情報のうち、少なくとも１以上を除いたファイルリストを作成する。
【００６８】
以下、図５を用いて、システム制御部が図３、図４を用いて作成するファイルリスト５１０について説明する。
【００６９】
図５は、記録装置１０８に記録される全てのファイルのファイルリスト５１０であり、ファイルの実体（データ）が論理ボリューム上に存在する位置（ＬＢＮ）またはアドレスを示すファイル位置情報５０１とそのファイルサイズ５０２とを対応付けてリスト化したものである。
【００７０】
図５中、ファイル位置情報５０１及びファイルサイズ５０２は、各ファイルエントリから知ることができる。実施例では、ファイルリスト５１０はメモリ上に構築しているが、情報記録再生装置１００が持つ記録装置１０８などのストレージ上に構築しても良い。
【００７１】
ファイルＮｏ５００は、ファイルを特定するための通し番号である。またファイルＮｏ５００については、文字や記号等、ファイルを識別するための識別情報で構成してもよい。
【００７２】
図６は、図５のファイルリスト５１０を作成する処理である。
【００７３】
まず、システム制御部１０１は、メモリ上にファイルリスト５１０を構築するためにリストの初期化を行う（Ｓ６００）。なお、このファイルリスト５１０の作成処理は、例えば、情報記録再生装置１００と、パソコン３００が接続されることを契機に開始する。具体的には、例えば、ＵＳＢデバイスである情報記録再生装置１００が、ＵＳＢ接続により発生した割り込みを検知した際に行う。また、例えば、情報処理装置１００が、パソコン３００によって行われるエニュメレーションを検知した際に行う構成でもよい。
【００７４】
次にシステム制御部１０１は、記録装置１０８に記録されているファイルシステムよりファイル構造の解析を行う（Ｓ６０１）。これにより、ディレクトリやファイルの情報を取得することが可能となるので、ここでシステム制御部１０１は、記録装置１０８に記録されている全てのファイルの数を取得する（Ｓ６０２）。取得したファイル数を変数Ｍに代入しておく。
【００７５】
次にシステム制御部１０１は、ファイルのカウンタ値Ｎを設定する（Ｓ６０３）。システム制御部１０１はカウンタ値Ｎとして初期値零を設定する。
【００７６】
システム制御部１０１は、全ファイル数Ｍとカウンタ値Ｎを比較して、全ファイル数Ｍがカウンタ値Ｎよりも大きい値の場合（Ｓ６０４：Ｙｅｓ）は、ステップＳ６０５に進む。
【００７７】
ステップＳ６０５では、システム制御部１０１は、Ｎ番目のファイルについて、ファイルシステムからファイルエントリを取得し解析する（Ｓ６０５）。
【００７８】
次にシステム制御部１０１は、そのファイルエントリから記録装置１０８上のファイルの場所（ＬＢＡ：論理ブロックアドレス）とファイルサイズを取得し（Ｓ６０６）、取得したそれらの情報をファイルリスト５１０へ追加する（Ｓ６０７）。
【００７９】
次にシステム制御部１０１は、ステップＳ６０４に戻って処理を繰り返す。
【００８０】
一方、システム制御部１０１は、全ファイル数Ｍとカウンタ値Ｎを比較して、全ファイル数Ｍがカウンタ値Ｎ以下の場合（Ｓ６０４：Ｎｏ）は、ファイルリスト５１０作成処理を終了する。
【００８１】
このように、本実施例では、システム制御部１０１が、ファイルリスト生成部として機能する。
【００８２】
図３、図４に示す、ファイルディレクトリ構造を示す情報自体は、従来から情報記録再生装置に記録されているものであった。しかし、ＵＳＢでパソコンへのファイル転送を行う場合に、送信側がこの情報を参照する事は従来では検討されていなかった。また、従来は、ＵＳＢ通信においてデバイスとして機能する場合には、情報記録再生装置側では、転送要求コマンドを受信した場合においても、転送要求されるデータが、ファイルの一部を構成するものなのか否かが不明だった。また、従来の情報記録再生装置では、転送要求を受けたデータがどのファイルに含まれるものかを検知できなかった。これに対して、本実施例の情報記録再生装置１００は、図５に示すように、ディレクトリ示す情報を参照し、リストを作成することで、転送要求されるデータがファイルの一部のデータであるか、また、どのファイルに含まれるデータであることを特定することが可能となる。
【００８３】
また、必ずしもファイルリスト５１０を作成せずとも、図３、図４のディレクトリ構造を示す情報を用いれば、転送コマンドによって指定されているアドレスに記載されているファイル及びそのサイズを特定することは可能である。しかし、図３、図４のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれる。
【００８４】
一方、本実施例の情報記録再生装置１００が生成するファイルリスト５１０には、ファイルＮｏ５００、ファイル位置情報５０１、ファイルサイズ５０２とが対応づけされて記憶されている。これにより、ファイル位置情報５０１から、そのアドレスに記憶されているファイル及びそのサイズを特定することが可能となる。
【００８５】
また、ファイルリスト５１０においては、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも１以上の情報が削除された情報が作成される。従って、ファイルリスト５１０は、図３、図４のディレクトリ構造を示す情報に対して情報量が小さくなる。また、情報量が小さいながらも、転送要求にかかるデータの論理ブロックアドレスに基づいて、情報記録再生装置１００は、転送要求に係るファイルを特定することが可能となる。
【００８６】
また、情報記録再生装置１００は、図３、図４等のディレクトリ構造を示す情報に基づいて、よりサイズの小さいファイルリスト５１０に基づいてファイルの特定を行う。これにより、コマンドに基づいてファイルを特定するための処理の速度を向上させることが可能となる。この効果は、ファイル数が増加するほど大きくなる。
【００８７】
また、ファイルリスト５１０は、そのサイズが図３、図４のディレクトリ構造を示す情報に対して小さい。このため、メモリ１０３に読み込んだ際に、バッファＡ２１２、バッファＢ２１３等のための容量をより大きく確保しておくことが可能となる。
【００８８】
なお、このファイルリスト５１０の作成処理は、新たなファイルを記録あるいは消去する度に行っても良い。
（３）バッファ管理情報
本実施例の情報記録再生装置１００は、転送要求コマンドで指定されるデータと同じファイルに含まれるデータを、ファイルリスト５１０によって特定する。そして、情報記録再生装置１００は、バッファの中に、どのファイルに含まれるデータがどれだけ格納されているかを管理しながら転送処理を行う。
【００８９】
以下、図７を用いて、メモリ１０３上のバッファＡ２１２やバッファＢ２１３に格納されたデータに関する情報を管理するためのバッファ管理情報２１１の詳細について説明する。図７は、バッファＡ２１２がある２つのファイルのデータを保持し、バッファＢ２１３がある１つのファイルのデータを保持している場合のバッファ管理情報２１１の一例を示す。
【００９０】
バッファ識別情報７００は、メモリ１０３上に複数あるバッファを識別するための記号又は番号等である。本実施例では、バッファＡ２１２とバッファＢ２１３の２つがメモリ１０３上にあるが、バッファの数は３つ以上でも良い。
【００９１】
システム制御部１０１は、ストリームデータ２０６を記録装置１０８から読み出し、バッファＡ２１２又はバッファＢ２１３に格納する。システム制御部１０１は、バッファにデータが格納したら、当該ファイルに関する未転送ファイル管理情報７３１を構築し、バッファ管理情報テーブル７３０の未転送ファイル管理ポインタ７０１にその管理情報のポインタアドレス７１４を保持する。また、システム制御部１０１は、各バッファにデータが保持されていない、または、保持されているデータに係るファイルの転送が全て完了している場合には、未転送ファイル管理ポインタ７０１にＮＵＬＬを入力する。
【００９２】
未転送ファイル管理情報７３１は、ファイルＮｏ７１１、未転送データサイズ７１２、次未転送ファイル管理ポインタ７１３から成る。１つのバッファに複数のファイルを保持する場合のバッファ管理は、次のようにして行う。新たにバッファに格納するファイルに関する未転送ファイル管理情報７３２を構築し、その管理ポインタアドレス７１６を未転送ファイル管理情報７３１の次未転送ファイル管理ポインタ７１３に保持する。さらなるファイルがバッファに追加されるのであらば同様な処理でポインタをチェーンで繋げていく。また、最後の未転送ファイル管理情報の次未転送ファイル管理ポインタに保持する値はＮＵＬＬとしておく事で、当該ファイルが最後である事を知ることができる。
【００９３】
バッファＡ２１２又はバッファＢ２１３にデータが存在し、パソコン３００からデータ要求があった場合、システム制御部１０１はバッファＡ２１２又はバッファ２１３Ｂに保持するデータをパソコン３００に転送する。その際、パソコン３００からは一度に全てのデータ転送を要求しないため、バッファに残るデータのサイズを保持しておく必要がある。未転送ファイル管理情報７３１は、未転送データサイズ７１２の項目を持つ。システム制御部１０１はバッファＡ２１２又はバッファＢ２１３が保持するデータを転送した場合、残りのデータサイズを計算して、未転送データサイズ７１２にその値を上書き設定する。
（４）データ転送処理
次に、パソコン３００からの転送要求コマンドを受けて、情報記録再生装置１００がデータを転送する処理について説明する。
【００９４】
図１１ａおよび図１１ｂは、情報記録再生装置１００からパソコン３００にデータ転送する際のコマンドとデータの流れの概要を示す。パソコン３００から情報記録再生装置１００にデータ転送要求１１０１が来る。
【００９５】
例えば、MS Windows（登録商標）がインストールされたパソコンの場合、情報記録再生装置とパソコンをＵＳＢで接続するとパソコンからは64KByteごとのデータ転送要求が出される。
【００９６】
通常、情報記録再生装置は、データ転送要求を受けると要求サイズを今度はＨＤＤに対してデータ転送要求を出す。そして、ＨＤＤからバッファにデータが転送され、パソコンにデータを送信する。
【００９７】
本実施例では、図１１(a)に示すように、情報記録再生装置１００は、パソコン３００からデータ転送要求１１０１を受けた後、記録装置１０８に対して要求サイズよりも大きいサイズのデータ転送要求１１０２を出す。そして、記録装置１０８からバッファＡ２１２等にデータ転送１１０３され、パソコン３００にはデータ転送要求１１０１で要求されたサイズのデータ転送１１０４を行う。
【００９８】
そして、図１１（ｂ）に示すように、次のパソコン３００から受けるデータ転送要求１１０５に対して、情報記録再生装置１００は、すでにバッファＡ２１２等にあるデータをパソコン３００にデータ転送１１０６を行う。
【００９９】
通常、情報記録再生装置内のＡＴＡコントローラドライバからＨＤＤに送信されるデータ転送要求のコマンドの回数は、パソコンから情報記録再生装置に送信されるデータ転送要求のコマンドの回数と同じである。一方、本実施例の情報記録再生装置１００によると、ＡＴＡコントローラドライバ２０４から記録装置１０８に送信されるデータ転送要求１１０２のコマンドの回数は、パソコン３００から情報記録再生装置１００に送信されるデータ転送要求コマンドの回数よりも少なくなる。このため、記録装置１０８に対するアクセスに必要な時間を短縮することも可能となる。
【０１００】
以下、パソコン３００から情報記録再生装置１００にデータ転送要求が来た場合に行う処理の具体例を図８を用いて説明する。
【０１０１】
まず、システム制御部１０１は、パソコン３００からのデータ転送要求サイズが予め設定している閾値とのうち、いずれが大きいかを検出する（Ｓ８００）。この比較の結果、要求転送サイズが閾値よりも大きい場合（Ｓ８００：Ｙｅｓ）は、システム制御部１０１は、ステップＳ８０１に進み、要求転送サイズが閾値以下の場合（Ｓ８００：Ｎｏ）は、ステップＳ８０４に進む。なお、この閾値としては、例えば、転送要求コマンドに応答して送信するデータの上限値とする。例えば、ＵＳＢによる転送においては、閾値は６４ｋとする。
【０１０２】
ステップＳ８０１では、システム制御部１０１は、転送要求データがメモリ１０３上に存在するかどうか検知する。その検知方法は、図７ａ又は図７ｂのバッファ管理情報２１１の未転送ファイル管理ポインタ７０１を参照することで行う。検知の結果、データ転送要求データがバッファＡ２１２等に存在する場合（Ｓ８０１：Ｙｅｓ）は、ステップＳ８０２に進み、存在しない場合（Ｓ８０１：Ｎｏ）は、ステップＳ８０３に進む。
【０１０３】
ステップＳ８０２では、システム制御部１０１は、メモリ１０３上のバッファＡ２１２等にあるデータをパソコン３００に転送する処理を実行して、その後処理を終了する。
【０１０４】
ステップＳ８０３では、システム制御部１０１は、ストレージデバイスである記録装置１０８からデータを読み出しパソコン３００に転送する処理を実行して、その後処理を終了する。
【０１０５】
ステップＳ８０４では、システム制御部１０１は、ストレージデバイスである記録装置１０８からデータを読み出すためのデータリード要求を行い、目的のデータを取得して、ステップＳ８０５に進む。
【０１０６】
ステップＳ８０５では、システム制御部１０１は、記録装置１０８から取得したデータをパソコン３００に転送して、その後処理を終了する。
【０１０７】
次に、図９を用いて、Ｓ８０１でバッファ中に転送要求データが無かった場合の処理について説明する、
図９は、図８のステップＳ８０３で実行する処理をサブルーチン化したものであり、ストレージデバイスである記録装置１０８からデータを読み出しパソコン３００に転送する処理である。
【０１０８】
まず、システム制御部１０１は、ストレージデバイスである記録装置１０８からデータを読み出すためのデータリード要求を行い、目的のデータを取得する（Ｓ９００）。通常、読み出すデータサイズは、パソコン３００から要求されるデータサイズの値であるが、ここでは、システム制御部１０１は、データ転送要求のファイルに応じたサイズのデータを記録装置１０８から読み出す。
【０１０９】
その際、まずパソコン３００が要求するファイルを特定する。パソコン３００からのデータ転送要求にあるＬＢＡとファイルリスト５１０を比較することでファイルを特定することができる。ファイルが特定できるとファイルリスト５１０からそのファイルサイズが取得できる。取得したサイズ分のデータを記録装置１０８からデータを読み出す。また、バッファサイズよりも、ファイルサイズが大きい場合は、バッファサイズ分のデータを記録装置１０８から読み出す。なお、Ｓ９００においてＹｅｓの場合、システム制御部１０１は、転送要求されるデータのサイズより大きいサイズにて、データを記録装置１０８から読み出すといえる。また、Ｓ９００においては、システム制御部１０１は、転送要求されるデータと同一ファイルに含まれるデータをファイルリスト５１０により特定し、前記所定の容量より大きな容量で読み出すよう制御しているといえる。
【０１１０】
次に、システム制御部１０１は、ステップＳ９００で読み出したデータをバッファＡ２１２又はバッファＢ２１３に格納する（Ｓ９０１）。なお、このＳ９０１の内容の詳細については、図１３を用いて後述する。
【０１１１】
次に、システム制御部１０１は、要求された分だけのデータをバッファＡ２１２又はバッファＢ２１３からパソコン３００にデータ転送する（Ｓ９０２）。
【０１１２】
次に、システム制御部１０１は、バッファ管理情報２１１の当該ファイルの未転送データサイズを更新する（Ｓ９０３）。
【０１１３】
次に、図１０を用いて図８のＳ８０１で、バッファ中にファイルがあった場合の処理について説明する。
【０１１４】
図１０は、図８のステップＳ８０２で実行する処理をサブルーチン化したものであり、メモリ１０３上のバッファにあるデータをパソコン３００に転送する処理である。
【０１１５】
まずシステム制御部１０１は、パソコン３００からの要求サイズ分のデータをバッファＡ２１２又はバッファＢ２１３から読み出しパソコン３００にデータ転送する（Ｓ１０００）。
【０１１６】
次にシステム制御部１０１は、バッファ管理情報２１１の未転送データサイズを更新する（Ｓ１００１）。
【０１１７】
次にシステム制御部１０１は、バッファ内のデータを全て転送したかどうかを検知し、全て転送した場合は（Ｓ１００２：Ｙｅｓ）、ステップＳ１００３へ進み、まだバッファに未転送のデータが残っている場合は（Ｓ１００２：Ｎｏ）、処理を終了する。
【０１１８】
ステップＳ１００３では、システム制御部１０１は、バッファ管理情報２１１を更新し、処理を終了する。
【０１１９】
本実施例の情報記録再生装置１００は、Ｓ８００、Ｓ８０４、Ｓ９０１、Ｓ９０２等に示すように、要求転送サイズと閾値との比較結果に応じて、メモリ１０３にデータを保持するか否かを検知する。閾値より小さいサイズのファイルを転送する場合には、そのファイルに対する転送要求コマンドを再びパソコン３００から受信する可能性は低いので、バッファに保持せず記録装置１０８から送信することで、転送速度を高速化することが可能となる。
【０１２０】
また、本実施例の情報記録再生装置１００は、Ｓ８０１、Ｓ９００、Ｓ９０２、Ｓ１０００に示すように、転送要求されたデータがバッファに保持されている場合には、バッファに保持されたデータを転送する。また、転送要求されたデータがバッファに保持されていない場合には、記録装置１０８からデータを読み出した上で転送する。これによって、あるファイルに含まれるデータ転送要求コマンドを最初にパソコン３００より受信した場合にそのデータを記録装置１０８から読み出すことが可能となる。
【０１２１】
また、転送要求されるファイルのサイズがＡ２１２、バッファＢ２１３の容量よりも大きい場合、そのファイルは一度には、バッファには入りきらないが、バッファに保持したデータのすべてをパソコン３００に転送した後に、残りのデータないしその一部を再びバッファに読み出すことが可能となる。
【０１２２】
また、本実施例の情報記録再生装置１００が持つ記録装置１０８のサイズが、メモリ１０３上のバッファよりもサイズが小さい場合、記録装置１０８内の全てのデータを予めメモリ１０３上に展開しておくことで、パソコン３００からデータ転送要求があった場合、常にメモリ１０３上のデータを転送するだけでよい。つまり、データ転送の要求ごとに記録装置１０８に対するアクセスが不要となり、高速に応答を返すことが可能となる。
【０１２３】
次に、図１３を用いて、Ｓ９００の処理のより詳細な具体例について説明する。
【０１２４】
Ｓ９００において、記録装置１０８からデータを読み出すと、システム制御部１０１は、バッファＡ２１２にデータが格納されているか否かを検知する（Ｓ１３０１）。Ｓ１３０１において、バッファＡ２１２にデータが格納されていない場合、つまりバッファＡ２１２が空の場合には、システム制御部１０１は、読み出したデータをバッファＡ２１２に格納するように制御する（Ｓ１３１１）。
【０１２５】
Ｓ１３０１において、バッファＡ２１２にデータが格納されている場合には、システム制御部１０１は、バッファＢ２１３にデータが格納されているか否かを検知する（Ｓ１３０２）。バッファＢ２１３にデータが格納されていない場合に、つまりバッファＢ２１３が空の場合には、システム制御部１０１は、読み出したデータをバッファＢ２１３に格納するように制御する（Ｓ１３１２）。
【０１２６】
Ｓ１３０２において、バッファＢ２１３にデータが格納されている場合には、システム制御部１０１は、バッファＡ２１２に空き領域が存在するか、つまりバッファＡ２１２の容量一杯にデータが格納されているか否かを検知する（Ｓ１３０３）。
【０１２７】
Ｓ１３０３において、バッファＡ２１２に空き領域が存在する場合には、システム制御部１０１は、当該空き領域に、記録装置１０８から読み出したデータを格納する（Ｓ１３１３）。
【０１２８】
Ｓ１３０３において、バッファＡ２１２に空き領域が存在しない場合には、システム制御部１０１は、バッファＢ２１３に空き領域が存在するか否かを検知する（Ｓ１３０４）。
【０１２９】
Ｓ１３０４において、バッファＢ２１３に空き領域が存在する場合には、システム制御部１０１は、当該空き領域に、記録装置１０８から読み出したデータを格納する（Ｓ１３１４）。
【０１３０】
Ｓ１３０４において、バッファＢ２１３に空き領域が存在しない場合には、システム制御部１０１は、転送要求を受けたデータを含むファイルを読み出して、バッファＡ２１２あるいはバッファ２１３の領域の一部ないし全部に上書き処理を行う（Ｓ１３０５）。
【０１３１】
また、Ｓ１３０５において、上書き処理を行うかわりに、システム制御部１０１は、メモリ１０３の領域を区切り、例えばバッファＣの領域等を設けてもよい。
【０１３２】
上述の処理の後に、Ｓ９０３に遷移する。
【０１３３】
このような処理を行うことによって、複数のバッファ領域が存在する場合に、異なる領域に、異なるファイルのデータを格納することができる。
【０１３４】
また、Ｓ１３０１、Ｓ１３０２、Ｓ１３１１、Ｓ１３１２の構成を備えることによって、例えば、ファイル１に含まれるデータと、ファイルに含まれるデータとの転送要求を受信した場合には、２つのバッファが各々データを保持することとなる。
【０１３５】
ここで、図７におけるファイル１に含まれるデータ、ファイル６に含まれるデータ、ファイル２に含まれるデータの順にて、パソコン３００から転送要求コマンドを受けた場合の動作について説明する。つまり、ファイル１、ファイル２、ファイル６の順で記録装置１０８からデータを読み出す際の動作について説明する。なお、ファイル１の容量は、バッファＡ２１２の容量は、ファイル１のサイズより大きいものとする。
【０１３６】
まず、情報記録再生装置１００は、ファイル１を記録装置１０８から読み出す。バッファＡ２１２にはデータは格納されていないので、ファイル１はバッファＡ２１２に格納される。次に、情報記録再生装置１００は、ファイル６を記録装置１０８から読み出す。バッファＡ２１２には、ファイル１が格納されており、バッファＢ２１３にはデータが格納されていないので、ファイル６はバッファＢ２１３に格納される。次に、情報記録再生装置１００は、ファイル２を記録装置１０８から読み出す。バッファＡ２１２にもバッファＢ２１３にもデータは格納されているが、バッファＡ２１２には未だ空き容量があるため、ファイル２はバッファＡ２１２に格納される。このような処理を行うことにより、図７に示すようにファイルが各バッファに格納される。
【０１３７】
上述の処理を言い換えると、本情報処理装置のメモリ部１０３は、例えば、ファイル１の転送要求コマンドと、ファイル６の転送要求コマンドを受信した場合は、ファイル１のデータ及びファイル６のデータの両方とを保持することとなる。
【０１３８】
そして、図７に示すようにデータが格納されることによって、複数のファイルに含まれる転送要求に示されるコマンドが並列してパソコン３００から送信された場合にも、情報記録再生装置１００は、応答性良くデータを転送することが可能となる。例えば、図７に示すようにデータが格納されている場合において、ファイル１に含まれるデータの転送要求と、ファイル６に含まれるデータの転送要求を交互にパソコン３００から受信した場合においても、情報記録再生装置１００は、バッファＡ２１２及びバッファＢ２１３に含まれるデータを転送する。
【０１３９】
また、図２において、情報記録再生装置１００は、バッファＡ２１２、バッファＢ２１３は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録すると説明した。
【０１４０】
以下、この動作のより詳細な例について、図１２を用いて説明する。
【０１４１】
図１２の例において、情報記録再生装置１００のバッファＡ２１２及びバッファＢ２１３には、例えば、それぞれ１９２ＭＢが与えられているものとする。サイズが６００ＭＢであるファイルＸ１４０１、ファイルＹ１４０２の順に保持する場合、ファイルＸ１４０１のサイズはバッファＡ２１２の容量よりも大きいため、システム制御部１０１は、ファイルＸ１４０１の一部をバッファＡ２１２に保持するよう制御する。また、ファイルＸ１４０２の容量は、バッファＢ２１３に対して小さいため、システム制御部１０１は、ファイルＹ１４０２の全部を保持するように制御する。このように、情報記録再生装置１００は、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する。
【０１４２】
本情報記録再生装置の構成を備えない装置において、単一の領域のバッファ、例えば、３８４ＭＢのバッファにて記録を行う場合には、ファイルＸ１４０１でバッファが埋められることになる。この際、例えばパソコン３００によりファイルＸ１４０１に含まれるデータの転送要求と、ファイルＹ１４０２とを並列して受けると、ファイルＹ１４０２をバッファに上書きし、さらにファイルＸ１４０１をバッファに上書きするといった処理が行われうる。これに対して、本実施例の情報記録再生装置１００は、それぞれの領域に異なるファイルのデータを格納するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
【０１４３】
また、例えば、本実施例の情報記録再生装置１００の構成を備えない場合においても、充分に大きな容量のメモリを用意すれば、そのメモリに、複数のファイルを丸ごと保持できるかもしれない。しかし、例えば、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する構成を備えなければ、メモリの容量よりも大きなファイルを複数転送する際の応答性が向上できなくなる。これに対して、本実施例の情報記録再生装置１００は、メモリの容量より大きなファイルを転送する場合に、個々のバッファは、個々のバッファに保持できる限りで、ファイルの一部または全部を保持するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
（５）本実施の形態による効果
パソコン３００が着脱式のデバイスとして認識できる情報記録再生装置１００内のデータをパソコン３００内のメモリに高速にコピーすることができる。
【０１４４】
具体的には、例えば、情報記録再生装置１００は、パソコン３００よりデータの転送要求を受けた場合に、ファイルのディレクトリ構造を示す情報を基づいて、転送要求されているデータがどのファイルに含まれているかを特定することが可能となる。
【０１４５】
また、例えば、情報記録再生装置１００は、ディレクトリを示す情報からファイルリスト５１０を作成する。ファイルリスト５１０は、図３、図４に示すディレクトリを示す情報の一部の情報に基づいて生成し、ディレクトリを示す情報よりもサイズの小さい情報である。このため、情報記録再生装置１００がパソコン３００からデータの転送要求コマンドを受けてから、転送要求を受けたデータを含むファイルを特定する処理の高速化が可能となる。
【０１４６】
また、例えば、情報記録再生装置１００は、ファイルリスト５１０によって、転送するファイルのサイズを取得できる。また、バッファ管理情報７３１には、未転送データサイズ７１２が含まれる。これにより、既に、パソコン３００への転送が完了したファイルのデータをバッファから消去することが可能となる。
【０１４７】
また、例えば、情報記録再生装置１００は、複数のバッファＡ２１２、バッファＢ２１３を設ける。個々のバッファはそれぞれ所定の記憶容量を有し、その記録容量の中で、ファイル内のデータを記憶する。これにより、例えば各バッファの容量よりも大きなファイルに含まれる転送要求コマンドをパソコン３００より受信した場合においても、バッファ用の領域が単一のファイル内のデータで埋められることがなくなる。そして、例えばパソコン３００より２つのファイルに含まれるデータの転送要求コマンドを交互に受信した場合にも、２つのファイルに含まれるデータを、それぞれのバッファが保持する。これにより、例えばコマンドを受信する毎に記録装置１０８からデータを読み出す場合に比べて、パソコン３００からの転送要求に対する応答性が向上する。
【０１４８】
また、記録装置１０８上に構築されるボリューム構造は必ずパソコン３００からデータ転送を要求される。従って、全てのボリューム構造部分のデータを予めメモリ１０３上に保持しておくことで、パソコン３００に対するデータ転送を高速することが可能となる。
【０１４９】
また、一般にパソコン３００にはファイルのキャッシュ機能がある。これは、一度読み込んだファイルを再度コピーしようとした場合、対象のＵＳＢデバイスとの通信切断や電源オフをしない限り、パソコン３００が目的のファイルを取得しようと再度デバイスへのデータ転送要求しても、パソコン３００自身のキャッシュ機能によりデータを取得することができる。従って、情報記録再生装置１００としては、一度でもメモリ１０３上に格納したファイルはコピー後、ＵＳＢ通信切断や電源オフするまでは、再度メモリ１０３上にコピーする必要がない。別の未コピーのファイルをメモリ上に保持することで、パソコン３００からの次のデータ転送要求に備えることができ、またメモリ１０３を有効に利用することができる。
【０１５０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることことが可能である。
【図面の簡単な説明】
【０１５１】
【図１】情報記録再生装置のハードウェア構成を示すブロック図である。
【図２】情報記録再生装置とパソコンの各機能の関係を示したブロック図である。
【図３】ＨＤＤに記録されるファイルシステムのディレクトリ構成の一例をツリー構造で示した図。
【図４】ディレクトリ構成のツリー構造をＨＤＤの論理ボリューム上に配置した記述子で表したときの一例を示した図。
【図５】ＨＤＤに記録される全てのファイルのファイルリスト。
【図６】ファイルリストを作成する処理を示すフローチャート。
【図７】バッファに格納されたデータに関する情報を管理するためのバッファ管理情報。
【図８】パソコンから情報記録再生装置にデータ転送要求が来た場合に行う処理である。
【図９】ＨＤＤからデータを読み出しパソコンに転送する処理である。
【図１０】バッファにあるデータをパソコンに転送する処理である。
【図１１ａ】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図１１ｂ】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図１２】バッファＡ２１２、バッファＢ２１３にデータを格納する処理の具体例を示す図。
【図１３】バッファＡ２１２、バッファＢ２１３にデータを格納する処理の具体例を示すフローチャート。
【符号の説明】
【０１５２】
１００…情報記録再生装置、１０１…システム制御部、１０２…撮像部、１０３…メモリ、１０４…多重／分離部、１０５…映像圧縮伸張部、１０６…音声圧縮伸張部、１０７…記録制御部、１０８…記録装置、１０９…ＵＳＢ制御部、１１０…モニタ部、１１１…ＵＳＢ端子、１１２…ストリームデータ、１１３…マイク部、２００…ＣＰＵ、２０２…ＵＳＢマスストレージ、２０３…コマンドブリッジ、２０４…ＡＴＡコントローラドライバ、２０７…ファイルシステム、２０８…記録再生アプリケーション、２０９…ファイルリスト作成部、２１０…ファイルリスト、２１１…バッファ管理情報、２１２…バッファＡ、２１３…バッファＢ、２０１，３１４…ＵＳＢインタフェース、３００…パソコン、３１０…ＣＰＵ、３１１…アプリケーション、３１２…ファイルシステム、３１３…コマンド制御部、４００ａ…ルートディレクトリ、４１０ａ…ファイル、４１１ａ…ファイル、４００ｂ…ＬＢＮ、４０１ｂ…記述子、４１０ｂ…論理ボリューム構造、５００…ファイルＮｏ、５０１…ファイル位置情報、５０２…ファイルサイズ、５１０…ファイルリスト、Ｓ６００〜Ｓ６０７…ファイルリスト作成処理、７００…バッファ識別情報、７０１…未転送ファイル管理ポインタ、７１０…未転送ファイル管理ポインタを指す矢印、７１１…ファイルＮｏ、７１２…未転送データサイズ、７１３…次未転送ファイル管理ポインタ、７１４…未転送ファイル管理ポインタアドレス、７１５…次未転送ファイル管理ポインタを指す矢印、７１６…次未転送ファイル管理ポインタアドレス、７２０…未転送ファイル管理ポインタを指す矢印、７２１…未転送ファイル管理ポインタアドレス、７３０…バッファ管理情報テーブル、７３１〜７３３…未転送ファイル管理情報、１１０１…データ転送要求、１１０２…データ転送要求、１１０３…データ転送、１１０４…データ転送、Ｓ１２００〜Ｓ１２０３…データ転送処理、Ｓ１２１０〜Ｓ１２１１…データ転送処理、Ｓ８００〜Ｓ８０５…データ転送処理、Ｓ９００〜Ｓ９０３…データ転送処理、Ｓ１０００〜Ｓ１００５…データ転送処理。
【図１】
2010049734.tif 000003
【図２】
2010049734.tif 000004
【図３】
2010049734.tif 000005
【図４】
2010049734.tif 000006
【図５】
2010049734.tif 000007
【図６】
2010049734.tif 000008
【図７】
2010049734.tif 000009
【図８】
2010049734.tif 000010
【図９】
2010049734.tif 000011
【図１０】
2010049734.tif 000012
【図１１ａ】
2010049734.tif 000013
【図１１ｂ】
2010049734.tif 000014
【図１２】
2010049734.tif 000015
【図１３】
2010049734.tif 000016