情報処理装置、転送システム
【課題】
USB等によって外部の機器と接続される情報処理装置において、該外部の機器からの転送要求コマンドに対する応答性を向上する。
【解決手段】
本情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルのアドレスと、前記各ファイルの識別情報を対応づけたリストとする。
USB等によって外部の機器と接続される情報処理装置において、該外部の機器からの転送要求コマンドに対する応答性を向上する。
【解決手段】
本情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルのアドレスと、前記各ファイルの識別情報を対応づけたリストとする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関し、その中でも例えば、パーソナルコンピュータなどの外部機器に対する着脱式デバイスとして利用可能な、ビデオカメラやデジタルカメラなどに代表される情報記録再生装置に関する。
【背景技術】
【0002】
USB(Universal Serial Bus)は、パーソナルコンピュータ(以下、パソコンと呼ぶ)と、マウスやキーボード等の周辺機器とを比較的低価格で簡単に接続するためのデータ転送路の規格として発表された。現在、USBはパソコンに搭載されている標準的なインタフェースである。パソコンにUSBが搭載されると、様々な周辺装置にもUSBが搭載されるようになった。例えば、USBメモリ等の着脱自在な外部記憶装置がある。一方、コンシューマエレクトロニクスの分野においても、USBは搭載されている。例えばビデオカメラやデジタルカメラなどである。USBを利用してパソコンと接続することが可能となり、USBメモリと同じように、ビデオカメラやデジタルカメラが持つストレージがパソコンと相互にデータのやり取りを行うことができる。
【0003】
なお、USB通信においては、1台の機器が親機となって、ポーリング(問い合わせ)によって子機側と通信をする。機器間の通信制御は主に親機が行い、子機側から勝手に通信を開始することはできない。また、一般に親機をホスト、子機をデバイスと呼ぶ。
【0004】
特許文献1の記録再生装置は、バッファメモリとして容量の大きいメモリを持ち、ストレージから読み出したデータを、まずこのメモリに一時保持すると共に、このメモリに対して、常に現在再生出力されているデータの時系列的に前後となるデータが保持されるように制御する。これにより、ユーザによるキュー/レビュー操作が行われた場合に、ディスクに直接アクセスしなくとも、キュー/レビューに必要なデータをメモリから即座に読み出すことが可能となる。そして、ユーザーに対してスムーズなキュー/レビュー操作を提供することが可能となる。
【0005】
【特許文献1】特開2003−346420号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ビデオカメラやデジタルカメラが持つストレージからパソコンへUSBを介して大きいファイルを転送する場合、パソコンのソフトウェアは決まったサイズごとにデータ転送要求(リードコマンド)を出す。例えば、MS Windows(登録商標)がインストールされたパソコンの場合、ビデオカメラとUSBで接続するとPCからは64KByteごとのデータ転送要求が出される。
【0007】
また、デジタルカメラやビデオカメラ等は、USBによってPC等と接続されると、デバイスとして認識される場合が多い。そして、デジタルカメラ等がデバイスとして機能する場合には、リードコマンドによって指定されたアドレスのデータをストレージから読み出す処理を行っていた。そして、PCからのコマンドを受信すると、ビデオカメラは、64k毎のデータを、内蔵するストレージデバイスから送信していた。このため、データ転送要求の度に、ビデオカメラはストレージに対してデータ転送要求を行うため、実際は64Kbyteよりも大きいファイルを転送する場合には、何度もデータ転送要求の送受を行わなければならず、データ転送に無駄な時間がかかってしまう。
【0008】
この問題に対して、特許文献1によると、時間的に前後のデータをメモリに入れることで、キューレビュー操作の応答性を向上していた。
【0009】
しかし、特許文献1においては、ファイルのコピーあるいはバックアップ等、ファイルの転送処理の応答性を向上させる事や、転送速度を向上させる事については検討されていない。一方、本願発明は、このファイルのコピーやバックアップ等に関する。
【0010】
ここで、まず、特許文献1にも記載されているファイルの再生と、本願が対象とする、コピーやバックアップ等のファイル転送処理との一致点及び相違点について説明する。
【0011】
一般に、パソコンにインストールされた動画再生アプリケーションを使用して情報記録再生装置のHDDに蓄積してあるストリームデータを再生する場合、データ転送の方法は、ただ単純にストリームデータをパソコンにバックアップする場合と同様の通信手順である。再生を行う場合も、ファイルの転送を行う場合もパソコンからデータ転送要求が情報記録再生装置に送られ、情報記録再生装置はHDDからデータを取得して、パソコンにデータを転送する。
【0012】
しかし、再生時とバックアップ時では、データ転送レート(データ転送速度)の考えに違いがある。つまり、再生時はデータ転送レートを制御する必要がある一方、バックアップ等の転送時では、データ転送は速ければ速い方が良いので、この場合データ転送レートがより大きくなることが望ましい。
【0013】
通常、情報記録再生装置は、あるビットレートで動画を記録する。ビットレートとは映像一秒間あたりのデータ量のことである。このビットレートよりもデータ転送レートが遅いと再生する際、映像がストップしたり、あるいは乱れたりしてしまう。反対にデータ転送レートが速すぎると動画再生アプリケーションが持つバッファにデータが収まりきらず溢れてしまう。通常、動画再生アプリケーションはデータ転送レートをコントロールしながら、情報記録再生装置にデータ転送要求を送るためである。
【0014】
そして、特許文献1においては、以下示す状況下、外部機器からの応答性を向上させる事については、検討されていなかった。
【0015】
例えば、ファイルのコピーやバックアップにおいては、映像音声の再生とは異なり、ファイルの転送は、複数のファイルを一度に転送する場合が多い。
【0016】
そして、1つのファイルの一部に対するリードコマンドと、他のファイルの一部に対するリードコマンドとを交互に受信する場合がある。この場合、転送にかかるデータに前後するファイルをメモリに読み出しておく構成では、ある時点では、1つのファイルに対するデータをメモリに読み出し、次の時点では、他のファイルに対応するデータでメモリを更新するという処理を繰り返すことになり、転送速度の向上が行えないという場合がある。あるいは、ストレージ中における、1つのファイルが格納されているアドレスと、他のファイルが格納されているファイルのアドレスが離れている場合、これらの離れているアドレスに交互にアクセスする必要があり、読み取りヘッドの移動時間がかかる場合がある。
【0017】
また、例えば、単に転送コマンドに示されるアドレス値に前後するアドレスの転送を行うのみでは、メモリ内に格納されているファイルが既に転送が完了しているか否かがわからない。既に転送が完了しているファイルのデータをメモリに残したままとすると、メモリの空き容量が圧迫される。一方、未だ転送が完了していないファイルのデータをメモリから消してしまうと、当該ファイルに含まれるデータに対する転送コマンドを受信した場合に、もう一度データをストレージから読み出す時間がかかる。
【0018】
特許文献1においては、上記の問題は検討されていなかった。
【0019】
本発明は、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することを課題とする。
【課題を解決するための手段】
【0020】
本発明の情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルの論理ブロック番号と、前記各ファイルの識別情報を対応づけたリストとする。
【発明の効果】
【0021】
本発明によると、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することが可能となる。
【発明を実施するための最良の形態】
【0022】
以下図面について、本発明の一実施の形態を詳述する。
【0023】
情報処理装置の例としては、例えばHDDレコーダ等のレコーダ、HDDカメラ、BDカメラ等のビデオカメラ、静止画カメラ等、情報を記録し、外部の機器へ転送する機能を有する装置がある。外部の機器には、例えば、ホームサーバやPC等の機器であり、ビデオカメラ等と通信を行う。
【0024】
以下、情報記録再生装置とパソコンを例に説明を行う。
【実施例1】
【0025】
(1)情報記録再生装置の構成
【0026】
まず、情報記録再生装置100のハードウェア構成及び、ソフトウェアの機能について図1、及び図2を用いて説明する。なお、情報記録再生装置100は、入力された映像情報と音声情報を、記録装置に記録し、前記記録した情報を再生する装置である。なお、映像情報や音声情報を記録する際には、各記録媒体で定められた規格に従って記録し、再生する。また、本情報記録再生装置は、バッファに読み出すデータの制御を行う事により、外部機器からの要求に対する応答速度を向上させる装置である。
【0027】
図1は、情報記録再生装置のハードウェア構成を示すブロック図である。実線矢印はデータの方向を示し、破線矢印は制御の方向を示す。
【0028】
図1において、100は情報記録再生装置である。この情報記録再生装置100は、システム制御部101、撮像部102、メモリ103、多重/分離部104、映像圧縮伸張部105、音声圧縮伸張部106、記録制御部107、記録装置108、USB制御部109、モニタ部110、及びマイク部113から主に構成されている。
【0029】
システム制御部101は、情報記録再生装置100のシステム全体を制御する。具体的にはシステム制御部101は、各機能部102ないし113の実行を制御する。システム制御部101は、例えばCPU等の制御装置によって構成する。
【0030】
撮像部102は、被写体を撮像した映像画像を光電変換して映像データにする。代表的なものとしては、CCDやCMOSイメージセンサ等がある。
【0031】
メモリ103は、例えば半導体メモリ等により構成する記憶部である。また、メモリ103は、例えばバッファA212、バッファB213等、複数の記憶領域を有する。また、メモリ103は、ファイルリスト210、バッファ管理情報211を保持ないし一時記憶する。システム制御部101がこのバッファに関して行う制御や、ファイル210、バッファ管理情報211についての具体的な形式について、後段で詳述する。
【0032】
マイク部113は、被写体を撮影した音声を圧電変換して音声データとして取り込む。
【0033】
多重/分離部104は、デジタル化された映像データを映像圧縮伸張部105に送信し、デジタル化された音声データを音声圧縮伸張部106に送信する。映像圧縮伸張部105によりデジタル化された映像データを圧縮し、音声圧縮伸張部でデジタル化された音声データを圧縮すると、多重/分離部104はデジタル化された映像データとデジタル化音声データとを時間軸に沿って同期させ、1つの圧縮データとして合成されたストリームデータ112を生成する。また、多重/分離部104は、合成されたストリームデータ112をデジタル化された映像データとデジタル化音声データとに分離して、夫々のデータを映像圧縮伸張部105と音声圧縮伸張部106とに送信する。なお、ストリームデータ112は、静止画データや動画データをいい、最終的に情報記録再生装置100内に記録されるデータをいう。
【0034】
映像圧縮伸張部105では、デジタル化された映像データを圧縮し、又は伸張して圧縮された映像データを元のデジタル化された映像データに戻す。
【0035】
音声圧縮伸張部106では、デジタル化された音声データを圧縮し、又は伸張して圧縮された音声データを元のデジタル化された音声データに戻す。
【0036】
HDD用制御部107は、ストリームデータ112を記録装置108に格納するデータ量や格納タイミングを制御する。
【0037】
記録装置108は、ストリームデータ112が格納されたファイルや、ストリームデータ112の管理情報等を格納する。本実施例において、記録装置108は、システム制御部101の要求に応じて、転送しているファイルの一部または全部をバッファA212、バッファB213等に転送する。また、情報記録再生装置100において、記録装置108はたとえばHDDで構成する。なお、記録装置108は、情報記録再生装置100に内蔵されていても良いし、着脱式でも良い。着脱式であれば、記録装置108に記録されたデータを持ち運ぶことができるため、データを他の機器に移すことも容易である。
【0038】
なお、記録装置108として、HDD以外のメモリやストレージなどでも実施可能である。具体的な記録媒体としては、BD/DVD等の光ディスクドライブ、SDメモリカードなどの半導体メモリが挙げられる。これらの半導体メモリを情報記録再生装置100内に一つ又は複数搭載することも可能である。
【0039】
USB制御部109は、USB入出力端子111を介してパソコン等の外部機器とのUSB通信処理を行う。具体的には、USB制御部109及びUSB入出力端子111は、パソコン等の外部機器からの所定データの転送要求コマンドを入力する入力部として機能する。また、パソコン等の外部機器に対してデータの送受信を行う送信部、受信部として機能する。なお、データの送受信を行う通信手段には、USBインタフェース以外の汎用周辺機器インタフェースでも適用可能である。
【0040】
モニタ部110は、情報記録再生装置100の動作メニュー、撮像部102で入力される映像データ、又は記録装置108に記録されたストリームデータ112を再生した場合の映像情報を表示する。
【0041】
ここで、多重/分離部104、映像圧縮伸張部105、音声圧縮伸張部106、及びHDD制御部107は、回路としてハードウェア的に動作を実行する構成にしても良いし、システム制御部101内にプログラムとして記憶させ、ソフトウェア的に処理を実行する構成としても良い。映像記録再生装置100は、ハードウェア的に処理を実行する場合には、ソフトウェア的に処理を実行する場合に比して、処理の高速化を図ることが可能となる。
【0042】
109はUSB制御部であり、パソコン300など外部機器とのUSB通信を制御する。なお、本実施例では、USB通信について説明しているが、例えば、その他、パソコン300等が親機となって、子機側の情報記録再生装置100と通信を行う構成としてもよい。例えば、機器間の通信に主従の関係がある通信方法において、本実施例の情報記録再生装置100の構成を適用してもよい。主従の関係がある制御とは、例えば、1台の機器が親機となって、ポーリング(問い合わせ)によって子機側と通信をするものであり、パソコン同士でLAN経由によるファイル転送とは通信方法が異なる。
【0043】
次に、図1中のパソコン300の構成について説明する。パソコン300は、記録部301、USB制御部302、USB入出力端子303、CPU310を有する。記録部301は、例えば、HDDによって構成される記録装置である。USB制御部302は、USB入出力端子303を介して情報記録再生装置とのUSB通信処理を行う。具体的には、USB制御部302及びUSB出力端子303は、情報記録再生装置100にコマンドを出力する出力部として機能する。また、情報記録再生装置100に対してデータの送受信を行う送信部、受信部として機能する。
【0044】
また、図1中の、バッファA212、バッファB213は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録することが可能であるものとする。例えば、メモリ103の容量が512MBとし、バッファA212、バッファB213の容量を192MBとする。
【0045】
図2は、情報記録再生装置100が、USB機器のデバイスとして機能する際の、ソフトウェアにて処理される各機能の関係を示したブロック図である。また、図2は、パソコン300側がUSBホストとして機能する際の各機能の関係を示したブロック図も併せて示す。
【0046】
情報記録再生装置100は、各種プログラムを実行するためのCPU200、メモリ103、情報記録再生装置100内でストリームデータ112を処理・格納するための記録再生アプリケーション208、後述のファイルリストを作成するためのアプリケーションであるファイルリスト作成アプリケーション209、ファイルシステム207、ファイルシステム207とストリームデータ112を格納する記録装置108との橋渡しを行うATAコントローラドライバ204、ATAコマンドとUSBコマンドとを相互に変換するコマンドブリッジ203、情報記録再生装置100をUSBデバイスとして扱うUSBマスストレージ202、及び、パソコン300とUSBケーブル220を介して接続(以下、USB接続という)を行うためのUSBインタフェース201から主に構成される。
【0047】
記録装置108には、上述したストリームデータ112が格納される。
【0048】
USB接続前は、情報記録再生装置100は、記憶再生アプリケーション208からの指示を、ファイルシステム207、ATAコントローラドライバ204を介して記録装置108にアクセスすることが可能である。
【0049】
一方、USB接続後は、情報記録再生装置100は、記録装置108からATAコントローラドライバ204を介して、コマンドブリッジ203がATAコマンドからUSBコマンドに変換した後、USBコマンドを、USBマスストレージ202を介してUSBインタフェース201から外部機器に送信する。外部危機から情報記録再生装置100の記録装置108にアクセスする場合は、情報記録再生装置100が、USBインタフェースからUSBコマンドを取り込むと、USBマスストレージ202を介してコマンドブリッジ203でコマンドを変換後、ATAコントローラドライバ204を介して記録装置108までアクセスすることができる。
【0050】
パソコン300は、各種プログラムを制御するCPU310、アプリケーション311、ファイルシステム312、USBコマンドのコマンドを解析し当該コマンドに従った制御を行うためのコマンド制御部313及びUSBインタフェース314から主に構成されている。
【0051】
なお、コマンド制御部313では、マスストレージのクラスドライバが必要であり、接続するデバイスがサポートするプロトコル、コマンド体系に合わせたサブクラスを実装している必要がある。
【0052】
ここで、USBデバイス(情報記録再生装置100)とUSBホスト(パソコン300)とが接続された場合の一般的な接続処理、及び、切断処理について簡単に説明しておく。
【0053】
USBホストは、USB接続により発生した割り込みによって、デバイスの接続を認識する。そしてUSBホストは、接続されたデバイスに対してエニュメレーションを行う。このエニュメレーションで、USBデバイスはUSBホストに各種ディスクリプタの情報を提供し、USBホストは取得した各種情報などからデバイスアドレスの設定の他、必要に応じてコンフィグレーションの設定などを行う。
【0054】
その後、USBホストは、取得したデバイス情報から該当するクラスドライバ(USBマスストレージ202)の接続処理を行い、該当するクラスのデータ転送に必要な通信手段の準備を行う。データ転送の準備が整うとUSBホストとUSBデバイス間でデータ転送が行われる。
【0055】
一方、USB接続が切断された時には次のような処理が行われる。USBホストは、USB切断割り込み発生によって、USBデバイスとの切断を認識する。USBホストは、USBデバイスとのデータ転送に用意していた通信手段を遮断して、後処理などを行う。
【0056】
また、本情報記録再生装置100は、一般的な処理に加えて、ファイルリストを作成し、バッファの管理を行うことによって、ファイルの転送時におけるパソコン300からの応答性を向上させるが、具体的な処理は後述する。
【0057】
なお、情報記録再生装置100において、USBインターフェース201、USBマスストレージ202、コマンドブリッジ203、ATAコントローラドライバ204、ファイルシステム207、記録再生アプリケーション208、はCPUの処理によって実行される。しかし、これらの処理は、専用のハードウェア、例えばASICやFPGAによって実行するように構成してもよい。専用のハードウェアによって構成すると、処理の高速化が可能となる。
(2)ファイルリスト
上述したように、図1、2の情報記録再生装置100において、記録装置108には、例えば撮像部102で得られた映像データや、マイク部113によって得られて音声データがファイル形式にて記録される。本実施例の情報記録再生装置100は、USB制御部109やUSB入出力端子111を介してデータの転送要求コマンドを受信すると、どのファイルに係るデータを特定するが、そのために、複数のファイルのディレクトリ構造を示す情報を利用する。
【0058】
以下、この複数のファイルのディレクトリ構造を示す情報の例について、図3、図4を用いて説明する。
【0059】
ファイルシステムのディレクトリ構成は、ルートディレクトリ400a、ディレクトリ410a、ファイル411aから主に構成される。
【0060】
ルートディレクトリは400a、ファイルシステムに必ず1つだけ存在し、ディレクトリ410aやファイル411aを格納する。
【0061】
ディレクトリ410aは、さらにその中にディレクトリやファイルを格納することができる。
【0062】
ファイル411aは、情報記録再生装置100の場合、記録したストリームデータ112がそれにあたる。
【0063】
図3では、ルートディレクトリ400aに2つのディレクトリがあり、それぞれのディレクトリには3つのファイルがある。
【0064】
図4は、図3のディレクトリ構成のツリー構造を記録装置108の論理ボリューム(パーティション)上に配置した記述子410bで表したときの一例を示す。
【0065】
LBN400bとは、論理ブロック番号を意味し、記録装置108上にデータを記録する際のアドレスである。LBN400bは、論理ボリュームの割り振りの単位である。各論理ブロックの先頭は論理セクタの先頭から始まり、論理ブロックの長さ分続く。一つの論理セクタで足りなければ次の論理セクタへ続く。次の論理ブロックは、前の論理ブロックが終わった論理セクタの次の論理セクタから始まる。論理セクタの余った部分は0で埋められる。記述子401bは、それぞれのバイトが意味を持つ、連続したデータの固まりである。一つのファイルあるいはディレクトリは、一つのファイルエントリを持っている。ファイルエントリにはそのファイルの更新日時やファイル本体の位置ないしアドレスが記入される。
【0066】
以上説明した、図3また図4の情報を利用することにより、本実施例の情報処理装置100は、転送要求されるデータがどのファイルに含まれるかを特定することが可能となる。さらに、図1、図2の情報記録再生装置100は、パソコン300から転送要求コマンドが、どのファイルに含まれるデータの転送を要求するものなのかを特定するために、ファイルリスト510を作成する。
【0067】
これは、図3、図4のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれ、この必要ではない情報を削除することにより、処理の高速化を図るためである。例えば、空間ビットマップ記述子は、各論理ブロックが割り当て可能か否かを示す情報を含むが、割り当て可能か否かという情報は、ファイルの転送自体には、必ずしも必要は無い。また、例えば、ファイル集合記述子は、ルートディレクトリのファイルエントリの位置情報を含む。しかし、転送要求されるデータと、そのデータを含むファイルとの対応付けができれば、その対応付けの後には、ディレクトリのファイルエントリの位置情報自体は必ずしも必要ではない。また、同様にルートディレクトリ以外のディレクトリのファイルエントリの位置情報自体も、転送要求されるデータと、そのデータを含むファイルとの対応付けさえできれば、必ずしも必要な情報では無い。また、終端記述子はファイル集合記述子の終端を表すが、転送要求されるデータと、そのデータを含むファイルとの対応さえできれば、この終端記述子自体も必要は無い。また、ファイルエントリ中に含まれる情報の中でも、ファイルの更新日時を示す情報は、転送要求されるデータがどのファイルに含まれるかを特定するためには必要が無い。本実施例の情報処理装置は、上述した情報のうち、少なくとも1以上を除いたファイルリストを作成する。
【0068】
以下、図5を用いて、システム制御部が図3、図4を用いて作成するファイルリスト510について説明する。
【0069】
図5は、記録装置108に記録される全てのファイルのファイルリスト510であり、ファイルの実体(データ)が論理ボリューム上に存在する位置(LBN)またはアドレスを示すファイル位置情報501とそのファイルサイズ502とを対応付けてリスト化したものである。
【0070】
図5中、ファイル位置情報501及びファイルサイズ502は、各ファイルエントリから知ることができる。実施例では、ファイルリスト510はメモリ上に構築しているが、情報記録再生装置100が持つ記録装置108などのストレージ上に構築しても良い。
【0071】
ファイルNo500は、ファイルを特定するための通し番号である。またファイルNo500については、文字や記号等、ファイルを識別するための識別情報で構成してもよい。
【0072】
図6は、図5のファイルリスト510を作成する処理である。
【0073】
まず、システム制御部101は、メモリ上にファイルリスト510を構築するためにリストの初期化を行う(S600)。なお、このファイルリスト510の作成処理は、例えば、情報記録再生装置100と、パソコン300が接続されることを契機に開始する。具体的には、例えば、USBデバイスである情報記録再生装置100が、USB接続により発生した割り込みを検知した際に行う。また、例えば、情報処理装置100が、パソコン300によって行われるエニュメレーションを検知した際に行う構成でもよい。
【0074】
次にシステム制御部101は、記録装置108に記録されているファイルシステムよりファイル構造の解析を行う(S601)。これにより、ディレクトリやファイルの情報を取得することが可能となるので、ここでシステム制御部101は、記録装置108に記録されている全てのファイルの数を取得する(S602)。取得したファイル数を変数Mに代入しておく。
【0075】
次にシステム制御部101は、ファイルのカウンタ値Nを設定する(S603)。システム制御部101はカウンタ値Nとして初期値零を設定する。
【0076】
システム制御部101は、全ファイル数Mとカウンタ値Nを比較して、全ファイル数Mがカウンタ値Nよりも大きい値の場合(S604:Yes)は、ステップS605に進む。
【0077】
ステップS605では、システム制御部101は、N番目のファイルについて、ファイルシステムからファイルエントリを取得し解析する(S605)。
【0078】
次にシステム制御部101は、そのファイルエントリから記録装置108上のファイルの場所(LBA:論理ブロックアドレス)とファイルサイズを取得し(S606)、取得したそれらの情報をファイルリスト510へ追加する(S607)。
【0079】
次にシステム制御部101は、ステップS604に戻って処理を繰り返す。
【0080】
一方、システム制御部101は、全ファイル数Mとカウンタ値Nを比較して、全ファイル数Mがカウンタ値N以下の場合(S604:No)は、ファイルリスト510作成処理を終了する。
【0081】
このように、本実施例では、システム制御部101が、ファイルリスト生成部として機能する。
【0082】
図3、図4に示す、ファイルディレクトリ構造を示す情報自体は、従来から情報記録再生装置に記録されているものであった。しかし、USBでパソコンへのファイル転送を行う場合に、送信側がこの情報を参照する事は従来では検討されていなかった。また、従来は、USB通信においてデバイスとして機能する場合には、情報記録再生装置側では、転送要求コマンドを受信した場合においても、転送要求されるデータが、ファイルの一部を構成するものなのか否かが不明だった。また、従来の情報記録再生装置では、転送要求を受けたデータがどのファイルに含まれるものかを検知できなかった。これに対して、本実施例の情報記録再生装置100は、図5に示すように、ディレクトリ示す情報を参照し、リストを作成することで、転送要求されるデータがファイルの一部のデータであるか、また、どのファイルに含まれるデータであることを特定することが可能となる。
【0083】
また、必ずしもファイルリスト510を作成せずとも、図3、図4のディレクトリ構造を示す情報を用いれば、転送コマンドによって指定されているアドレスに記載されているファイル及びそのサイズを特定することは可能である。しかし、図3、図4のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれる。
【0084】
一方、本実施例の情報記録再生装置100が生成するファイルリスト510には、ファイルNo500、ファイル位置情報501、ファイルサイズ502とが対応づけされて記憶されている。これにより、ファイル位置情報501から、そのアドレスに記憶されているファイル及びそのサイズを特定することが可能となる。
【0085】
また、ファイルリスト510においては、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも1以上の情報が削除された情報が作成される。従って、ファイルリスト510は、図3、図4のディレクトリ構造を示す情報に対して情報量が小さくなる。また、情報量が小さいながらも、転送要求にかかるデータの論理ブロックアドレスに基づいて、情報記録再生装置100は、転送要求に係るファイルを特定することが可能となる。
【0086】
また、情報記録再生装置100は、図3、図4等のディレクトリ構造を示す情報に基づいて、よりサイズの小さいファイルリスト510に基づいてファイルの特定を行う。これにより、コマンドに基づいてファイルを特定するための処理の速度を向上させることが可能となる。この効果は、ファイル数が増加するほど大きくなる。
【0087】
また、ファイルリスト510は、そのサイズが図3、図4のディレクトリ構造を示す情報に対して小さい。このため、メモリ103に読み込んだ際に、バッファA212、バッファB213等のための容量をより大きく確保しておくことが可能となる。
【0088】
なお、このファイルリスト510の作成処理は、新たなファイルを記録あるいは消去する度に行っても良い。
(3)バッファ管理情報
本実施例の情報記録再生装置100は、転送要求コマンドで指定されるデータと同じファイルに含まれるデータを、ファイルリスト510によって特定する。そして、情報記録再生装置100は、バッファの中に、どのファイルに含まれるデータがどれだけ格納されているかを管理しながら転送処理を行う。
【0089】
以下、図7を用いて、メモリ103上のバッファA212やバッファB213に格納されたデータに関する情報を管理するためのバッファ管理情報211の詳細について説明する。図7は、バッファA212がある2つのファイルのデータを保持し、バッファB213がある1つのファイルのデータを保持している場合のバッファ管理情報211の一例を示す。
【0090】
バッファ識別情報700は、メモリ103上に複数あるバッファを識別するための記号又は番号等である。本実施例では、バッファA212とバッファB213の2つがメモリ103上にあるが、バッファの数は3つ以上でも良い。
【0091】
システム制御部101は、ストリームデータ206を記録装置108から読み出し、バッファA212又はバッファB213に格納する。システム制御部101は、バッファにデータが格納したら、当該ファイルに関する未転送ファイル管理情報731を構築し、バッファ管理情報テーブル730の未転送ファイル管理ポインタ701にその管理情報のポインタアドレス714を保持する。また、システム制御部101は、各バッファにデータが保持されていない、または、保持されているデータに係るファイルの転送が全て完了している場合には、未転送ファイル管理ポインタ701にNULLを入力する。
【0092】
未転送ファイル管理情報731は、ファイルNo711、未転送データサイズ712、次未転送ファイル管理ポインタ713から成る。1つのバッファに複数のファイルを保持する場合のバッファ管理は、次のようにして行う。新たにバッファに格納するファイルに関する未転送ファイル管理情報732を構築し、その管理ポインタアドレス716を未転送ファイル管理情報731の次未転送ファイル管理ポインタ713に保持する。さらなるファイルがバッファに追加されるのであらば同様な処理でポインタをチェーンで繋げていく。また、最後の未転送ファイル管理情報の次未転送ファイル管理ポインタに保持する値はNULLとしておく事で、当該ファイルが最後である事を知ることができる。
【0093】
バッファA212又はバッファB213にデータが存在し、パソコン300からデータ要求があった場合、システム制御部101はバッファA212又はバッファ213Bに保持するデータをパソコン300に転送する。その際、パソコン300からは一度に全てのデータ転送を要求しないため、バッファに残るデータのサイズを保持しておく必要がある。未転送ファイル管理情報731は、未転送データサイズ712の項目を持つ。システム制御部101はバッファA212又はバッファB213が保持するデータを転送した場合、残りのデータサイズを計算して、未転送データサイズ712にその値を上書き設定する。
(4)データ転送処理
次に、パソコン300からの転送要求コマンドを受けて、情報記録再生装置100がデータを転送する処理について説明する。
【0094】
図11aおよび図11bは、情報記録再生装置100からパソコン300にデータ転送する際のコマンドとデータの流れの概要を示す。パソコン300から情報記録再生装置100にデータ転送要求1101が来る。
【0095】
例えば、MS Windows(登録商標)がインストールされたパソコンの場合、情報記録再生装置とパソコンをUSBで接続するとパソコンからは64KByteごとのデータ転送要求が出される。
【0096】
通常、情報記録再生装置は、データ転送要求を受けると要求サイズを今度はHDDに対してデータ転送要求を出す。そして、HDDからバッファにデータが転送され、パソコンにデータを送信する。
【0097】
本実施例では、図11(a)に示すように、情報記録再生装置100は、パソコン300からデータ転送要求1101を受けた後、記録装置108に対して要求サイズよりも大きいサイズのデータ転送要求1102を出す。そして、記録装置108からバッファA212等にデータ転送1103され、パソコン300にはデータ転送要求1101で要求されたサイズのデータ転送1104を行う。
【0098】
そして、図11(b)に示すように、次のパソコン300から受けるデータ転送要求1105に対して、情報記録再生装置100は、すでにバッファA212等にあるデータをパソコン300にデータ転送1106を行う。
【0099】
通常、情報記録再生装置内のATAコントローラドライバからHDDに送信されるデータ転送要求のコマンドの回数は、パソコンから情報記録再生装置に送信されるデータ転送要求のコマンドの回数と同じである。一方、本実施例の情報記録再生装置100によると、ATAコントローラドライバ204から記録装置108に送信されるデータ転送要求1102のコマンドの回数は、パソコン300から情報記録再生装置100に送信されるデータ転送要求コマンドの回数よりも少なくなる。このため、記録装置108に対するアクセスに必要な時間を短縮することも可能となる。
【0100】
以下、パソコン300から情報記録再生装置100にデータ転送要求が来た場合に行う処理の具体例を図8を用いて説明する。
【0101】
まず、システム制御部101は、パソコン300からのデータ転送要求サイズが予め設定している閾値とのうち、いずれが大きいかを検出する(S800)。この比較の結果、要求転送サイズが閾値よりも大きい場合(S800:Yes)は、システム制御部101は、ステップS801に進み、要求転送サイズが閾値以下の場合(S800:No)は、ステップS804に進む。なお、この閾値としては、例えば、転送要求コマンドに応答して送信するデータの上限値とする。例えば、USBによる転送においては、閾値は64kとする。
【0102】
ステップS801では、システム制御部101は、転送要求データがメモリ103上に存在するかどうか検知する。その検知方法は、図7a又は図7bのバッファ管理情報211の未転送ファイル管理ポインタ701を参照することで行う。検知の結果、データ転送要求データがバッファA212等に存在する場合(S801:Yes)は、ステップS802に進み、存在しない場合(S801:No)は、ステップS803に進む。
【0103】
ステップS802では、システム制御部101は、メモリ103上のバッファA212等にあるデータをパソコン300に転送する処理を実行して、その後処理を終了する。
【0104】
ステップS803では、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出しパソコン300に転送する処理を実行して、その後処理を終了する。
【0105】
ステップS804では、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出すためのデータリード要求を行い、目的のデータを取得して、ステップS805に進む。
【0106】
ステップS805では、システム制御部101は、記録装置108から取得したデータをパソコン300に転送して、その後処理を終了する。
【0107】
次に、図9を用いて、S801でバッファ中に転送要求データが無かった場合の処理について説明する、
図9は、図8のステップS803で実行する処理をサブルーチン化したものであり、ストレージデバイスである記録装置108からデータを読み出しパソコン300に転送する処理である。
【0108】
まず、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出すためのデータリード要求を行い、目的のデータを取得する(S900)。通常、読み出すデータサイズは、パソコン300から要求されるデータサイズの値であるが、ここでは、システム制御部101は、データ転送要求のファイルに応じたサイズのデータを記録装置108から読み出す。
【0109】
その際、まずパソコン300が要求するファイルを特定する。パソコン300からのデータ転送要求にあるLBAとファイルリスト510を比較することでファイルを特定することができる。ファイルが特定できるとファイルリスト510からそのファイルサイズが取得できる。取得したサイズ分のデータを記録装置108からデータを読み出す。また、バッファサイズよりも、ファイルサイズが大きい場合は、バッファサイズ分のデータを記録装置108から読み出す。なお、S900においてYesの場合、システム制御部101は、転送要求されるデータのサイズより大きいサイズにて、データを記録装置108から読み出すといえる。また、S900においては、システム制御部101は、転送要求されるデータと同一ファイルに含まれるデータをファイルリスト510により特定し、前記所定の容量より大きな容量で読み出すよう制御しているといえる。
【0110】
次に、システム制御部101は、ステップS900で読み出したデータをバッファA212又はバッファB213に格納する(S901)。なお、このS901の内容の詳細については、図13を用いて後述する。
【0111】
次に、システム制御部101は、要求された分だけのデータをバッファA212又はバッファB213からパソコン300にデータ転送する(S902)。
【0112】
次に、システム制御部101は、バッファ管理情報211の当該ファイルの未転送データサイズを更新する(S903)。
【0113】
次に、図10を用いて図8のS801で、バッファ中にファイルがあった場合の処理について説明する。
【0114】
図10は、図8のステップS802で実行する処理をサブルーチン化したものであり、メモリ103上のバッファにあるデータをパソコン300に転送する処理である。
【0115】
まずシステム制御部101は、パソコン300からの要求サイズ分のデータをバッファA212又はバッファB213から読み出しパソコン300にデータ転送する(S1000)。
【0116】
次にシステム制御部101は、バッファ管理情報211の未転送データサイズを更新する(S1001)。
【0117】
次にシステム制御部101は、バッファ内のデータを全て転送したかどうかを検知し、全て転送した場合は(S1002:Yes)、ステップS1003へ進み、まだバッファに未転送のデータが残っている場合は(S1002:No)、処理を終了する。
【0118】
ステップS1003では、システム制御部101は、バッファ管理情報211を更新し、処理を終了する。
【0119】
本実施例の情報記録再生装置100は、S800、S804、S901、S902等に示すように、要求転送サイズと閾値との比較結果に応じて、メモリ103にデータを保持するか否かを検知する。閾値より小さいサイズのファイルを転送する場合には、そのファイルに対する転送要求コマンドを再びパソコン300から受信する可能性は低いので、バッファに保持せず記録装置108から送信することで、転送速度を高速化することが可能となる。
【0120】
また、本実施例の情報記録再生装置100は、S801、S900、S902、S1000に示すように、転送要求されたデータがバッファに保持されている場合には、バッファに保持されたデータを転送する。また、転送要求されたデータがバッファに保持されていない場合には、記録装置108からデータを読み出した上で転送する。これによって、あるファイルに含まれるデータ転送要求コマンドを最初にパソコン300より受信した場合にそのデータを記録装置108から読み出すことが可能となる。
【0121】
また、転送要求されるファイルのサイズがA212、バッファB213の容量よりも大きい場合、そのファイルは一度には、バッファには入りきらないが、バッファに保持したデータのすべてをパソコン300に転送した後に、残りのデータないしその一部を再びバッファに読み出すことが可能となる。
【0122】
また、本実施例の情報記録再生装置100が持つ記録装置108のサイズが、メモリ103上のバッファよりもサイズが小さい場合、記録装置108内の全てのデータを予めメモリ103上に展開しておくことで、パソコン300からデータ転送要求があった場合、常にメモリ103上のデータを転送するだけでよい。つまり、データ転送の要求ごとに記録装置108に対するアクセスが不要となり、高速に応答を返すことが可能となる。
【0123】
次に、図13を用いて、S900の処理のより詳細な具体例について説明する。
【0124】
S900において、記録装置108からデータを読み出すと、システム制御部101は、バッファA212にデータが格納されているか否かを検知する(S1301)。S1301において、バッファA212にデータが格納されていない場合、つまりバッファA212が空の場合には、システム制御部101は、読み出したデータをバッファA212に格納するように制御する(S1311)。
【0125】
S1301において、バッファA212にデータが格納されている場合には、システム制御部101は、バッファB213にデータが格納されているか否かを検知する(S1302)。バッファB213にデータが格納されていない場合に、つまりバッファB213が空の場合には、システム制御部101は、読み出したデータをバッファB213に格納するように制御する(S1312)。
【0126】
S1302において、バッファB213にデータが格納されている場合には、システム制御部101は、バッファA212に空き領域が存在するか、つまりバッファA212の容量一杯にデータが格納されているか否かを検知する(S1303)。
【0127】
S1303において、バッファA212に空き領域が存在する場合には、システム制御部101は、当該空き領域に、記録装置108から読み出したデータを格納する(S1313)。
【0128】
S1303において、バッファA212に空き領域が存在しない場合には、システム制御部101は、バッファB213に空き領域が存在するか否かを検知する(S1304)。
【0129】
S1304において、バッファB213に空き領域が存在する場合には、システム制御部101は、当該空き領域に、記録装置108から読み出したデータを格納する(S1314)。
【0130】
S1304において、バッファB213に空き領域が存在しない場合には、システム制御部101は、転送要求を受けたデータを含むファイルを読み出して、バッファA212あるいはバッファ213の領域の一部ないし全部に上書き処理を行う(S1305)。
【0131】
また、S1305において、上書き処理を行うかわりに、システム制御部101は、メモリ103の領域を区切り、例えばバッファCの領域等を設けてもよい。
【0132】
上述の処理の後に、S903に遷移する。
【0133】
このような処理を行うことによって、複数のバッファ領域が存在する場合に、異なる領域に、異なるファイルのデータを格納することができる。
【0134】
また、S1301、S1302、S1311、S1312の構成を備えることによって、例えば、ファイル1に含まれるデータと、ファイルに含まれるデータとの転送要求を受信した場合には、2つのバッファが各々データを保持することとなる。
【0135】
ここで、図7におけるファイル1に含まれるデータ、ファイル6に含まれるデータ、ファイル2に含まれるデータの順にて、パソコン300から転送要求コマンドを受けた場合の動作について説明する。つまり、ファイル1、ファイル2、ファイル6の順で記録装置108からデータを読み出す際の動作について説明する。なお、ファイル1の容量は、バッファA212の容量は、ファイル1のサイズより大きいものとする。
【0136】
まず、情報記録再生装置100は、ファイル1を記録装置108から読み出す。バッファA212にはデータは格納されていないので、ファイル1はバッファA212に格納される。次に、情報記録再生装置100は、ファイル6を記録装置108から読み出す。バッファA212には、ファイル1が格納されており、バッファB213にはデータが格納されていないので、ファイル6はバッファB213に格納される。次に、情報記録再生装置100は、ファイル2を記録装置108から読み出す。バッファA212にもバッファB213にもデータは格納されているが、バッファA212には未だ空き容量があるため、ファイル2はバッファA212に格納される。このような処理を行うことにより、図7に示すようにファイルが各バッファに格納される。
【0137】
上述の処理を言い換えると、本情報処理装置のメモリ部103は、例えば、ファイル1の転送要求コマンドと、ファイル6の転送要求コマンドを受信した場合は、ファイル1のデータ及びファイル6のデータの両方とを保持することとなる。
【0138】
そして、図7に示すようにデータが格納されることによって、複数のファイルに含まれる転送要求に示されるコマンドが並列してパソコン300から送信された場合にも、情報記録再生装置100は、応答性良くデータを転送することが可能となる。例えば、図7に示すようにデータが格納されている場合において、ファイル1に含まれるデータの転送要求と、ファイル6に含まれるデータの転送要求を交互にパソコン300から受信した場合においても、情報記録再生装置100は、バッファA212及びバッファB213に含まれるデータを転送する。
【0139】
また、図2において、情報記録再生装置100は、バッファA212、バッファB213は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録すると説明した。
【0140】
以下、この動作のより詳細な例について、図12を用いて説明する。
【0141】
図12の例において、情報記録再生装置100のバッファA212及びバッファB213には、例えば、それぞれ192MBが与えられているものとする。サイズが600MBであるファイルX1401、ファイルY1402の順に保持する場合、ファイルX1401のサイズはバッファA212の容量よりも大きいため、システム制御部101は、ファイルX1401の一部をバッファA212に保持するよう制御する。また、ファイルX1402の容量は、バッファB213に対して小さいため、システム制御部101は、ファイルY1402の全部を保持するように制御する。このように、情報記録再生装置100は、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する。
【0142】
本情報記録再生装置の構成を備えない装置において、単一の領域のバッファ、例えば、384MBのバッファにて記録を行う場合には、ファイルX1401でバッファが埋められることになる。この際、例えばパソコン300によりファイルX1401に含まれるデータの転送要求と、ファイルY1402とを並列して受けると、ファイルY1402をバッファに上書きし、さらにファイルX1401をバッファに上書きするといった処理が行われうる。これに対して、本実施例の情報記録再生装置100は、それぞれの領域に異なるファイルのデータを格納するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
【0143】
また、例えば、本実施例の情報記録再生装置100の構成を備えない場合においても、充分に大きな容量のメモリを用意すれば、そのメモリに、複数のファイルを丸ごと保持できるかもしれない。しかし、例えば、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する構成を備えなければ、メモリの容量よりも大きなファイルを複数転送する際の応答性が向上できなくなる。これに対して、本実施例の情報記録再生装置100は、メモリの容量より大きなファイルを転送する場合に、個々のバッファは、個々のバッファに保持できる限りで、ファイルの一部または全部を保持するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
(5)本実施の形態による効果
パソコン300が着脱式のデバイスとして認識できる情報記録再生装置100内のデータをパソコン300内のメモリに高速にコピーすることができる。
【0144】
具体的には、例えば、情報記録再生装置100は、パソコン300よりデータの転送要求を受けた場合に、ファイルのディレクトリ構造を示す情報を基づいて、転送要求されているデータがどのファイルに含まれているかを特定することが可能となる。
【0145】
また、例えば、情報記録再生装置100は、ディレクトリを示す情報からファイルリスト510を作成する。ファイルリスト510は、図3、図4に示すディレクトリを示す情報の一部の情報に基づいて生成し、ディレクトリを示す情報よりもサイズの小さい情報である。このため、情報記録再生装置100がパソコン300からデータの転送要求コマンドを受けてから、転送要求を受けたデータを含むファイルを特定する処理の高速化が可能となる。
【0146】
また、例えば、情報記録再生装置100は、ファイルリスト510によって、転送するファイルのサイズを取得できる。また、バッファ管理情報731には、未転送データサイズ712が含まれる。これにより、既に、パソコン300への転送が完了したファイルのデータをバッファから消去することが可能となる。
【0147】
また、例えば、情報記録再生装置100は、複数のバッファA212、バッファB213を設ける。個々のバッファはそれぞれ所定の記憶容量を有し、その記録容量の中で、ファイル内のデータを記憶する。これにより、例えば各バッファの容量よりも大きなファイルに含まれる転送要求コマンドをパソコン300より受信した場合においても、バッファ用の領域が単一のファイル内のデータで埋められることがなくなる。そして、例えばパソコン300より2つのファイルに含まれるデータの転送要求コマンドを交互に受信した場合にも、2つのファイルに含まれるデータを、それぞれのバッファが保持する。これにより、例えばコマンドを受信する毎に記録装置108からデータを読み出す場合に比べて、パソコン300からの転送要求に対する応答性が向上する。
【0148】
また、記録装置108上に構築されるボリューム構造は必ずパソコン300からデータ転送を要求される。従って、全てのボリューム構造部分のデータを予めメモリ103上に保持しておくことで、パソコン300に対するデータ転送を高速することが可能となる。
【0149】
また、一般にパソコン300にはファイルのキャッシュ機能がある。これは、一度読み込んだファイルを再度コピーしようとした場合、対象のUSBデバイスとの通信切断や電源オフをしない限り、パソコン300が目的のファイルを取得しようと再度デバイスへのデータ転送要求しても、パソコン300自身のキャッシュ機能によりデータを取得することができる。従って、情報記録再生装置100としては、一度でもメモリ103上に格納したファイルはコピー後、USB通信切断や電源オフするまでは、再度メモリ103上にコピーする必要がない。別の未コピーのファイルをメモリ上に保持することで、パソコン300からの次のデータ転送要求に備えることができ、またメモリ103を有効に利用することができる。
【0150】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることことが可能である。
【図面の簡単な説明】
【0151】
【図1】情報記録再生装置のハードウェア構成を示すブロック図である。
【図2】情報記録再生装置とパソコンの各機能の関係を示したブロック図である。
【図3】HDDに記録されるファイルシステムのディレクトリ構成の一例をツリー構造で示した図。
【図4】ディレクトリ構成のツリー構造をHDDの論理ボリューム上に配置した記述子で表したときの一例を示した図。
【図5】HDDに記録される全てのファイルのファイルリスト。
【図6】ファイルリストを作成する処理を示すフローチャート。
【図7】バッファに格納されたデータに関する情報を管理するためのバッファ管理情報。
【図8】パソコンから情報記録再生装置にデータ転送要求が来た場合に行う処理である。
【図9】HDDからデータを読み出しパソコンに転送する処理である。
【図10】バッファにあるデータをパソコンに転送する処理である。
【図11a】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図11b】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図12】バッファA212、バッファB213にデータを格納する処理の具体例を示す図。
【図13】バッファA212、バッファB213にデータを格納する処理の具体例を示すフローチャート。
【符号の説明】
【0152】
100…情報記録再生装置、101…システム制御部、102…撮像部、103…メモリ、104…多重/分離部、105…映像圧縮伸張部、106…音声圧縮伸張部、107…記録制御部、108…記録装置、109…USB制御部、110…モニタ部、111…USB端子、112…ストリームデータ、113…マイク部、200…CPU、202…USBマスストレージ、203…コマンドブリッジ、204…ATAコントローラドライバ、207…ファイルシステム、208…記録再生アプリケーション、209…ファイルリスト作成部、210…ファイルリスト、211…バッファ管理情報、212…バッファA、213…バッファB、201,314…USBインタフェース、300…パソコン、310…CPU、311…アプリケーション、312…ファイルシステム、313…コマンド制御部、400a…ルートディレクトリ、410a…ファイル、411a…ファイル、400b…LBN、401b…記述子、410b…論理ボリューム構造、500…ファイルNo、501…ファイル位置情報、502…ファイルサイズ、510…ファイルリスト、S600〜S607…ファイルリスト作成処理、700…バッファ識別情報、701…未転送ファイル管理ポインタ、710…未転送ファイル管理ポインタを指す矢印、711…ファイルNo、712…未転送データサイズ、713…次未転送ファイル管理ポインタ、714…未転送ファイル管理ポインタアドレス、715…次未転送ファイル管理ポインタを指す矢印、716…次未転送ファイル管理ポインタアドレス、720…未転送ファイル管理ポインタを指す矢印、721…未転送ファイル管理ポインタアドレス、730…バッファ管理情報テーブル、731〜733…未転送ファイル管理情報、1101…データ転送要求、1102…データ転送要求、1103…データ転送、1104…データ転送、S1200〜S1203…データ転送処理、S1210〜S1211…データ転送処理、S800〜S805…データ転送処理、S900〜S903…データ転送処理、S1000〜S1005…データ転送処理。
【技術分野】
【0001】
本発明は、情報処理装置に関し、その中でも例えば、パーソナルコンピュータなどの外部機器に対する着脱式デバイスとして利用可能な、ビデオカメラやデジタルカメラなどに代表される情報記録再生装置に関する。
【背景技術】
【0002】
USB(Universal Serial Bus)は、パーソナルコンピュータ(以下、パソコンと呼ぶ)と、マウスやキーボード等の周辺機器とを比較的低価格で簡単に接続するためのデータ転送路の規格として発表された。現在、USBはパソコンに搭載されている標準的なインタフェースである。パソコンにUSBが搭載されると、様々な周辺装置にもUSBが搭載されるようになった。例えば、USBメモリ等の着脱自在な外部記憶装置がある。一方、コンシューマエレクトロニクスの分野においても、USBは搭載されている。例えばビデオカメラやデジタルカメラなどである。USBを利用してパソコンと接続することが可能となり、USBメモリと同じように、ビデオカメラやデジタルカメラが持つストレージがパソコンと相互にデータのやり取りを行うことができる。
【0003】
なお、USB通信においては、1台の機器が親機となって、ポーリング(問い合わせ)によって子機側と通信をする。機器間の通信制御は主に親機が行い、子機側から勝手に通信を開始することはできない。また、一般に親機をホスト、子機をデバイスと呼ぶ。
【0004】
特許文献1の記録再生装置は、バッファメモリとして容量の大きいメモリを持ち、ストレージから読み出したデータを、まずこのメモリに一時保持すると共に、このメモリに対して、常に現在再生出力されているデータの時系列的に前後となるデータが保持されるように制御する。これにより、ユーザによるキュー/レビュー操作が行われた場合に、ディスクに直接アクセスしなくとも、キュー/レビューに必要なデータをメモリから即座に読み出すことが可能となる。そして、ユーザーに対してスムーズなキュー/レビュー操作を提供することが可能となる。
【0005】
【特許文献1】特開2003−346420号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ビデオカメラやデジタルカメラが持つストレージからパソコンへUSBを介して大きいファイルを転送する場合、パソコンのソフトウェアは決まったサイズごとにデータ転送要求(リードコマンド)を出す。例えば、MS Windows(登録商標)がインストールされたパソコンの場合、ビデオカメラとUSBで接続するとPCからは64KByteごとのデータ転送要求が出される。
【0007】
また、デジタルカメラやビデオカメラ等は、USBによってPC等と接続されると、デバイスとして認識される場合が多い。そして、デジタルカメラ等がデバイスとして機能する場合には、リードコマンドによって指定されたアドレスのデータをストレージから読み出す処理を行っていた。そして、PCからのコマンドを受信すると、ビデオカメラは、64k毎のデータを、内蔵するストレージデバイスから送信していた。このため、データ転送要求の度に、ビデオカメラはストレージに対してデータ転送要求を行うため、実際は64Kbyteよりも大きいファイルを転送する場合には、何度もデータ転送要求の送受を行わなければならず、データ転送に無駄な時間がかかってしまう。
【0008】
この問題に対して、特許文献1によると、時間的に前後のデータをメモリに入れることで、キューレビュー操作の応答性を向上していた。
【0009】
しかし、特許文献1においては、ファイルのコピーあるいはバックアップ等、ファイルの転送処理の応答性を向上させる事や、転送速度を向上させる事については検討されていない。一方、本願発明は、このファイルのコピーやバックアップ等に関する。
【0010】
ここで、まず、特許文献1にも記載されているファイルの再生と、本願が対象とする、コピーやバックアップ等のファイル転送処理との一致点及び相違点について説明する。
【0011】
一般に、パソコンにインストールされた動画再生アプリケーションを使用して情報記録再生装置のHDDに蓄積してあるストリームデータを再生する場合、データ転送の方法は、ただ単純にストリームデータをパソコンにバックアップする場合と同様の通信手順である。再生を行う場合も、ファイルの転送を行う場合もパソコンからデータ転送要求が情報記録再生装置に送られ、情報記録再生装置はHDDからデータを取得して、パソコンにデータを転送する。
【0012】
しかし、再生時とバックアップ時では、データ転送レート(データ転送速度)の考えに違いがある。つまり、再生時はデータ転送レートを制御する必要がある一方、バックアップ等の転送時では、データ転送は速ければ速い方が良いので、この場合データ転送レートがより大きくなることが望ましい。
【0013】
通常、情報記録再生装置は、あるビットレートで動画を記録する。ビットレートとは映像一秒間あたりのデータ量のことである。このビットレートよりもデータ転送レートが遅いと再生する際、映像がストップしたり、あるいは乱れたりしてしまう。反対にデータ転送レートが速すぎると動画再生アプリケーションが持つバッファにデータが収まりきらず溢れてしまう。通常、動画再生アプリケーションはデータ転送レートをコントロールしながら、情報記録再生装置にデータ転送要求を送るためである。
【0014】
そして、特許文献1においては、以下示す状況下、外部機器からの応答性を向上させる事については、検討されていなかった。
【0015】
例えば、ファイルのコピーやバックアップにおいては、映像音声の再生とは異なり、ファイルの転送は、複数のファイルを一度に転送する場合が多い。
【0016】
そして、1つのファイルの一部に対するリードコマンドと、他のファイルの一部に対するリードコマンドとを交互に受信する場合がある。この場合、転送にかかるデータに前後するファイルをメモリに読み出しておく構成では、ある時点では、1つのファイルに対するデータをメモリに読み出し、次の時点では、他のファイルに対応するデータでメモリを更新するという処理を繰り返すことになり、転送速度の向上が行えないという場合がある。あるいは、ストレージ中における、1つのファイルが格納されているアドレスと、他のファイルが格納されているファイルのアドレスが離れている場合、これらの離れているアドレスに交互にアクセスする必要があり、読み取りヘッドの移動時間がかかる場合がある。
【0017】
また、例えば、単に転送コマンドに示されるアドレス値に前後するアドレスの転送を行うのみでは、メモリ内に格納されているファイルが既に転送が完了しているか否かがわからない。既に転送が完了しているファイルのデータをメモリに残したままとすると、メモリの空き容量が圧迫される。一方、未だ転送が完了していないファイルのデータをメモリから消してしまうと、当該ファイルに含まれるデータに対する転送コマンドを受信した場合に、もう一度データをストレージから読み出す時間がかかる。
【0018】
特許文献1においては、上記の問題は検討されていなかった。
【0019】
本発明は、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することを課題とする。
【課題を解決するための手段】
【0020】
本発明の情報処理装置は、例えば、複数のファイルのリストを作成し、外部機器から所定容量のデータの転送要求を受信した場合に、そのデータと同一のファイルに含まれ、前記所定容量より大きな容量のデータをメモリ部に記憶する。また、メモリ部は、それぞれが所定の記憶容量をもつ記録領域を複数有する。望ましくは、前記リストは、各ファイルの論理ブロック番号と、前記各ファイルの識別情報を対応づけたリストとする。
【発明の効果】
【0021】
本発明によると、外部装置へファイルのコピーまたはバックアップを行う場合に、外部装置からの転送要求に対する応答速度を向上した情報処理装置を提供することが可能となる。
【発明を実施するための最良の形態】
【0022】
以下図面について、本発明の一実施の形態を詳述する。
【0023】
情報処理装置の例としては、例えばHDDレコーダ等のレコーダ、HDDカメラ、BDカメラ等のビデオカメラ、静止画カメラ等、情報を記録し、外部の機器へ転送する機能を有する装置がある。外部の機器には、例えば、ホームサーバやPC等の機器であり、ビデオカメラ等と通信を行う。
【0024】
以下、情報記録再生装置とパソコンを例に説明を行う。
【実施例1】
【0025】
(1)情報記録再生装置の構成
【0026】
まず、情報記録再生装置100のハードウェア構成及び、ソフトウェアの機能について図1、及び図2を用いて説明する。なお、情報記録再生装置100は、入力された映像情報と音声情報を、記録装置に記録し、前記記録した情報を再生する装置である。なお、映像情報や音声情報を記録する際には、各記録媒体で定められた規格に従って記録し、再生する。また、本情報記録再生装置は、バッファに読み出すデータの制御を行う事により、外部機器からの要求に対する応答速度を向上させる装置である。
【0027】
図1は、情報記録再生装置のハードウェア構成を示すブロック図である。実線矢印はデータの方向を示し、破線矢印は制御の方向を示す。
【0028】
図1において、100は情報記録再生装置である。この情報記録再生装置100は、システム制御部101、撮像部102、メモリ103、多重/分離部104、映像圧縮伸張部105、音声圧縮伸張部106、記録制御部107、記録装置108、USB制御部109、モニタ部110、及びマイク部113から主に構成されている。
【0029】
システム制御部101は、情報記録再生装置100のシステム全体を制御する。具体的にはシステム制御部101は、各機能部102ないし113の実行を制御する。システム制御部101は、例えばCPU等の制御装置によって構成する。
【0030】
撮像部102は、被写体を撮像した映像画像を光電変換して映像データにする。代表的なものとしては、CCDやCMOSイメージセンサ等がある。
【0031】
メモリ103は、例えば半導体メモリ等により構成する記憶部である。また、メモリ103は、例えばバッファA212、バッファB213等、複数の記憶領域を有する。また、メモリ103は、ファイルリスト210、バッファ管理情報211を保持ないし一時記憶する。システム制御部101がこのバッファに関して行う制御や、ファイル210、バッファ管理情報211についての具体的な形式について、後段で詳述する。
【0032】
マイク部113は、被写体を撮影した音声を圧電変換して音声データとして取り込む。
【0033】
多重/分離部104は、デジタル化された映像データを映像圧縮伸張部105に送信し、デジタル化された音声データを音声圧縮伸張部106に送信する。映像圧縮伸張部105によりデジタル化された映像データを圧縮し、音声圧縮伸張部でデジタル化された音声データを圧縮すると、多重/分離部104はデジタル化された映像データとデジタル化音声データとを時間軸に沿って同期させ、1つの圧縮データとして合成されたストリームデータ112を生成する。また、多重/分離部104は、合成されたストリームデータ112をデジタル化された映像データとデジタル化音声データとに分離して、夫々のデータを映像圧縮伸張部105と音声圧縮伸張部106とに送信する。なお、ストリームデータ112は、静止画データや動画データをいい、最終的に情報記録再生装置100内に記録されるデータをいう。
【0034】
映像圧縮伸張部105では、デジタル化された映像データを圧縮し、又は伸張して圧縮された映像データを元のデジタル化された映像データに戻す。
【0035】
音声圧縮伸張部106では、デジタル化された音声データを圧縮し、又は伸張して圧縮された音声データを元のデジタル化された音声データに戻す。
【0036】
HDD用制御部107は、ストリームデータ112を記録装置108に格納するデータ量や格納タイミングを制御する。
【0037】
記録装置108は、ストリームデータ112が格納されたファイルや、ストリームデータ112の管理情報等を格納する。本実施例において、記録装置108は、システム制御部101の要求に応じて、転送しているファイルの一部または全部をバッファA212、バッファB213等に転送する。また、情報記録再生装置100において、記録装置108はたとえばHDDで構成する。なお、記録装置108は、情報記録再生装置100に内蔵されていても良いし、着脱式でも良い。着脱式であれば、記録装置108に記録されたデータを持ち運ぶことができるため、データを他の機器に移すことも容易である。
【0038】
なお、記録装置108として、HDD以外のメモリやストレージなどでも実施可能である。具体的な記録媒体としては、BD/DVD等の光ディスクドライブ、SDメモリカードなどの半導体メモリが挙げられる。これらの半導体メモリを情報記録再生装置100内に一つ又は複数搭載することも可能である。
【0039】
USB制御部109は、USB入出力端子111を介してパソコン等の外部機器とのUSB通信処理を行う。具体的には、USB制御部109及びUSB入出力端子111は、パソコン等の外部機器からの所定データの転送要求コマンドを入力する入力部として機能する。また、パソコン等の外部機器に対してデータの送受信を行う送信部、受信部として機能する。なお、データの送受信を行う通信手段には、USBインタフェース以外の汎用周辺機器インタフェースでも適用可能である。
【0040】
モニタ部110は、情報記録再生装置100の動作メニュー、撮像部102で入力される映像データ、又は記録装置108に記録されたストリームデータ112を再生した場合の映像情報を表示する。
【0041】
ここで、多重/分離部104、映像圧縮伸張部105、音声圧縮伸張部106、及びHDD制御部107は、回路としてハードウェア的に動作を実行する構成にしても良いし、システム制御部101内にプログラムとして記憶させ、ソフトウェア的に処理を実行する構成としても良い。映像記録再生装置100は、ハードウェア的に処理を実行する場合には、ソフトウェア的に処理を実行する場合に比して、処理の高速化を図ることが可能となる。
【0042】
109はUSB制御部であり、パソコン300など外部機器とのUSB通信を制御する。なお、本実施例では、USB通信について説明しているが、例えば、その他、パソコン300等が親機となって、子機側の情報記録再生装置100と通信を行う構成としてもよい。例えば、機器間の通信に主従の関係がある通信方法において、本実施例の情報記録再生装置100の構成を適用してもよい。主従の関係がある制御とは、例えば、1台の機器が親機となって、ポーリング(問い合わせ)によって子機側と通信をするものであり、パソコン同士でLAN経由によるファイル転送とは通信方法が異なる。
【0043】
次に、図1中のパソコン300の構成について説明する。パソコン300は、記録部301、USB制御部302、USB入出力端子303、CPU310を有する。記録部301は、例えば、HDDによって構成される記録装置である。USB制御部302は、USB入出力端子303を介して情報記録再生装置とのUSB通信処理を行う。具体的には、USB制御部302及びUSB出力端子303は、情報記録再生装置100にコマンドを出力する出力部として機能する。また、情報記録再生装置100に対してデータの送受信を行う送信部、受信部として機能する。
【0044】
また、図1中の、バッファA212、バッファB213は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録することが可能であるものとする。例えば、メモリ103の容量が512MBとし、バッファA212、バッファB213の容量を192MBとする。
【0045】
図2は、情報記録再生装置100が、USB機器のデバイスとして機能する際の、ソフトウェアにて処理される各機能の関係を示したブロック図である。また、図2は、パソコン300側がUSBホストとして機能する際の各機能の関係を示したブロック図も併せて示す。
【0046】
情報記録再生装置100は、各種プログラムを実行するためのCPU200、メモリ103、情報記録再生装置100内でストリームデータ112を処理・格納するための記録再生アプリケーション208、後述のファイルリストを作成するためのアプリケーションであるファイルリスト作成アプリケーション209、ファイルシステム207、ファイルシステム207とストリームデータ112を格納する記録装置108との橋渡しを行うATAコントローラドライバ204、ATAコマンドとUSBコマンドとを相互に変換するコマンドブリッジ203、情報記録再生装置100をUSBデバイスとして扱うUSBマスストレージ202、及び、パソコン300とUSBケーブル220を介して接続(以下、USB接続という)を行うためのUSBインタフェース201から主に構成される。
【0047】
記録装置108には、上述したストリームデータ112が格納される。
【0048】
USB接続前は、情報記録再生装置100は、記憶再生アプリケーション208からの指示を、ファイルシステム207、ATAコントローラドライバ204を介して記録装置108にアクセスすることが可能である。
【0049】
一方、USB接続後は、情報記録再生装置100は、記録装置108からATAコントローラドライバ204を介して、コマンドブリッジ203がATAコマンドからUSBコマンドに変換した後、USBコマンドを、USBマスストレージ202を介してUSBインタフェース201から外部機器に送信する。外部危機から情報記録再生装置100の記録装置108にアクセスする場合は、情報記録再生装置100が、USBインタフェースからUSBコマンドを取り込むと、USBマスストレージ202を介してコマンドブリッジ203でコマンドを変換後、ATAコントローラドライバ204を介して記録装置108までアクセスすることができる。
【0050】
パソコン300は、各種プログラムを制御するCPU310、アプリケーション311、ファイルシステム312、USBコマンドのコマンドを解析し当該コマンドに従った制御を行うためのコマンド制御部313及びUSBインタフェース314から主に構成されている。
【0051】
なお、コマンド制御部313では、マスストレージのクラスドライバが必要であり、接続するデバイスがサポートするプロトコル、コマンド体系に合わせたサブクラスを実装している必要がある。
【0052】
ここで、USBデバイス(情報記録再生装置100)とUSBホスト(パソコン300)とが接続された場合の一般的な接続処理、及び、切断処理について簡単に説明しておく。
【0053】
USBホストは、USB接続により発生した割り込みによって、デバイスの接続を認識する。そしてUSBホストは、接続されたデバイスに対してエニュメレーションを行う。このエニュメレーションで、USBデバイスはUSBホストに各種ディスクリプタの情報を提供し、USBホストは取得した各種情報などからデバイスアドレスの設定の他、必要に応じてコンフィグレーションの設定などを行う。
【0054】
その後、USBホストは、取得したデバイス情報から該当するクラスドライバ(USBマスストレージ202)の接続処理を行い、該当するクラスのデータ転送に必要な通信手段の準備を行う。データ転送の準備が整うとUSBホストとUSBデバイス間でデータ転送が行われる。
【0055】
一方、USB接続が切断された時には次のような処理が行われる。USBホストは、USB切断割り込み発生によって、USBデバイスとの切断を認識する。USBホストは、USBデバイスとのデータ転送に用意していた通信手段を遮断して、後処理などを行う。
【0056】
また、本情報記録再生装置100は、一般的な処理に加えて、ファイルリストを作成し、バッファの管理を行うことによって、ファイルの転送時におけるパソコン300からの応答性を向上させるが、具体的な処理は後述する。
【0057】
なお、情報記録再生装置100において、USBインターフェース201、USBマスストレージ202、コマンドブリッジ203、ATAコントローラドライバ204、ファイルシステム207、記録再生アプリケーション208、はCPUの処理によって実行される。しかし、これらの処理は、専用のハードウェア、例えばASICやFPGAによって実行するように構成してもよい。専用のハードウェアによって構成すると、処理の高速化が可能となる。
(2)ファイルリスト
上述したように、図1、2の情報記録再生装置100において、記録装置108には、例えば撮像部102で得られた映像データや、マイク部113によって得られて音声データがファイル形式にて記録される。本実施例の情報記録再生装置100は、USB制御部109やUSB入出力端子111を介してデータの転送要求コマンドを受信すると、どのファイルに係るデータを特定するが、そのために、複数のファイルのディレクトリ構造を示す情報を利用する。
【0058】
以下、この複数のファイルのディレクトリ構造を示す情報の例について、図3、図4を用いて説明する。
【0059】
ファイルシステムのディレクトリ構成は、ルートディレクトリ400a、ディレクトリ410a、ファイル411aから主に構成される。
【0060】
ルートディレクトリは400a、ファイルシステムに必ず1つだけ存在し、ディレクトリ410aやファイル411aを格納する。
【0061】
ディレクトリ410aは、さらにその中にディレクトリやファイルを格納することができる。
【0062】
ファイル411aは、情報記録再生装置100の場合、記録したストリームデータ112がそれにあたる。
【0063】
図3では、ルートディレクトリ400aに2つのディレクトリがあり、それぞれのディレクトリには3つのファイルがある。
【0064】
図4は、図3のディレクトリ構成のツリー構造を記録装置108の論理ボリューム(パーティション)上に配置した記述子410bで表したときの一例を示す。
【0065】
LBN400bとは、論理ブロック番号を意味し、記録装置108上にデータを記録する際のアドレスである。LBN400bは、論理ボリュームの割り振りの単位である。各論理ブロックの先頭は論理セクタの先頭から始まり、論理ブロックの長さ分続く。一つの論理セクタで足りなければ次の論理セクタへ続く。次の論理ブロックは、前の論理ブロックが終わった論理セクタの次の論理セクタから始まる。論理セクタの余った部分は0で埋められる。記述子401bは、それぞれのバイトが意味を持つ、連続したデータの固まりである。一つのファイルあるいはディレクトリは、一つのファイルエントリを持っている。ファイルエントリにはそのファイルの更新日時やファイル本体の位置ないしアドレスが記入される。
【0066】
以上説明した、図3また図4の情報を利用することにより、本実施例の情報処理装置100は、転送要求されるデータがどのファイルに含まれるかを特定することが可能となる。さらに、図1、図2の情報記録再生装置100は、パソコン300から転送要求コマンドが、どのファイルに含まれるデータの転送を要求するものなのかを特定するために、ファイルリスト510を作成する。
【0067】
これは、図3、図4のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれ、この必要ではない情報を削除することにより、処理の高速化を図るためである。例えば、空間ビットマップ記述子は、各論理ブロックが割り当て可能か否かを示す情報を含むが、割り当て可能か否かという情報は、ファイルの転送自体には、必ずしも必要は無い。また、例えば、ファイル集合記述子は、ルートディレクトリのファイルエントリの位置情報を含む。しかし、転送要求されるデータと、そのデータを含むファイルとの対応付けができれば、その対応付けの後には、ディレクトリのファイルエントリの位置情報自体は必ずしも必要ではない。また、同様にルートディレクトリ以外のディレクトリのファイルエントリの位置情報自体も、転送要求されるデータと、そのデータを含むファイルとの対応付けさえできれば、必ずしも必要な情報では無い。また、終端記述子はファイル集合記述子の終端を表すが、転送要求されるデータと、そのデータを含むファイルとの対応さえできれば、この終端記述子自体も必要は無い。また、ファイルエントリ中に含まれる情報の中でも、ファイルの更新日時を示す情報は、転送要求されるデータがどのファイルに含まれるかを特定するためには必要が無い。本実施例の情報処理装置は、上述した情報のうち、少なくとも1以上を除いたファイルリストを作成する。
【0068】
以下、図5を用いて、システム制御部が図3、図4を用いて作成するファイルリスト510について説明する。
【0069】
図5は、記録装置108に記録される全てのファイルのファイルリスト510であり、ファイルの実体(データ)が論理ボリューム上に存在する位置(LBN)またはアドレスを示すファイル位置情報501とそのファイルサイズ502とを対応付けてリスト化したものである。
【0070】
図5中、ファイル位置情報501及びファイルサイズ502は、各ファイルエントリから知ることができる。実施例では、ファイルリスト510はメモリ上に構築しているが、情報記録再生装置100が持つ記録装置108などのストレージ上に構築しても良い。
【0071】
ファイルNo500は、ファイルを特定するための通し番号である。またファイルNo500については、文字や記号等、ファイルを識別するための識別情報で構成してもよい。
【0072】
図6は、図5のファイルリスト510を作成する処理である。
【0073】
まず、システム制御部101は、メモリ上にファイルリスト510を構築するためにリストの初期化を行う(S600)。なお、このファイルリスト510の作成処理は、例えば、情報記録再生装置100と、パソコン300が接続されることを契機に開始する。具体的には、例えば、USBデバイスである情報記録再生装置100が、USB接続により発生した割り込みを検知した際に行う。また、例えば、情報処理装置100が、パソコン300によって行われるエニュメレーションを検知した際に行う構成でもよい。
【0074】
次にシステム制御部101は、記録装置108に記録されているファイルシステムよりファイル構造の解析を行う(S601)。これにより、ディレクトリやファイルの情報を取得することが可能となるので、ここでシステム制御部101は、記録装置108に記録されている全てのファイルの数を取得する(S602)。取得したファイル数を変数Mに代入しておく。
【0075】
次にシステム制御部101は、ファイルのカウンタ値Nを設定する(S603)。システム制御部101はカウンタ値Nとして初期値零を設定する。
【0076】
システム制御部101は、全ファイル数Mとカウンタ値Nを比較して、全ファイル数Mがカウンタ値Nよりも大きい値の場合(S604:Yes)は、ステップS605に進む。
【0077】
ステップS605では、システム制御部101は、N番目のファイルについて、ファイルシステムからファイルエントリを取得し解析する(S605)。
【0078】
次にシステム制御部101は、そのファイルエントリから記録装置108上のファイルの場所(LBA:論理ブロックアドレス)とファイルサイズを取得し(S606)、取得したそれらの情報をファイルリスト510へ追加する(S607)。
【0079】
次にシステム制御部101は、ステップS604に戻って処理を繰り返す。
【0080】
一方、システム制御部101は、全ファイル数Mとカウンタ値Nを比較して、全ファイル数Mがカウンタ値N以下の場合(S604:No)は、ファイルリスト510作成処理を終了する。
【0081】
このように、本実施例では、システム制御部101が、ファイルリスト生成部として機能する。
【0082】
図3、図4に示す、ファイルディレクトリ構造を示す情報自体は、従来から情報記録再生装置に記録されているものであった。しかし、USBでパソコンへのファイル転送を行う場合に、送信側がこの情報を参照する事は従来では検討されていなかった。また、従来は、USB通信においてデバイスとして機能する場合には、情報記録再生装置側では、転送要求コマンドを受信した場合においても、転送要求されるデータが、ファイルの一部を構成するものなのか否かが不明だった。また、従来の情報記録再生装置では、転送要求を受けたデータがどのファイルに含まれるものかを検知できなかった。これに対して、本実施例の情報記録再生装置100は、図5に示すように、ディレクトリ示す情報を参照し、リストを作成することで、転送要求されるデータがファイルの一部のデータであるか、また、どのファイルに含まれるデータであることを特定することが可能となる。
【0083】
また、必ずしもファイルリスト510を作成せずとも、図3、図4のディレクトリ構造を示す情報を用いれば、転送コマンドによって指定されているアドレスに記載されているファイル及びそのサイズを特定することは可能である。しかし、図3、図4のディレクトリ構造を示す情報には、ファイル及びそのサイズを特定するためには、必ずしも必要ではない情報も含まれる。
【0084】
一方、本実施例の情報記録再生装置100が生成するファイルリスト510には、ファイルNo500、ファイル位置情報501、ファイルサイズ502とが対応づけされて記憶されている。これにより、ファイル位置情報501から、そのアドレスに記憶されているファイル及びそのサイズを特定することが可能となる。
【0085】
また、ファイルリスト510においては、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも1以上の情報が削除された情報が作成される。従って、ファイルリスト510は、図3、図4のディレクトリ構造を示す情報に対して情報量が小さくなる。また、情報量が小さいながらも、転送要求にかかるデータの論理ブロックアドレスに基づいて、情報記録再生装置100は、転送要求に係るファイルを特定することが可能となる。
【0086】
また、情報記録再生装置100は、図3、図4等のディレクトリ構造を示す情報に基づいて、よりサイズの小さいファイルリスト510に基づいてファイルの特定を行う。これにより、コマンドに基づいてファイルを特定するための処理の速度を向上させることが可能となる。この効果は、ファイル数が増加するほど大きくなる。
【0087】
また、ファイルリスト510は、そのサイズが図3、図4のディレクトリ構造を示す情報に対して小さい。このため、メモリ103に読み込んだ際に、バッファA212、バッファB213等のための容量をより大きく確保しておくことが可能となる。
【0088】
なお、このファイルリスト510の作成処理は、新たなファイルを記録あるいは消去する度に行っても良い。
(3)バッファ管理情報
本実施例の情報記録再生装置100は、転送要求コマンドで指定されるデータと同じファイルに含まれるデータを、ファイルリスト510によって特定する。そして、情報記録再生装置100は、バッファの中に、どのファイルに含まれるデータがどれだけ格納されているかを管理しながら転送処理を行う。
【0089】
以下、図7を用いて、メモリ103上のバッファA212やバッファB213に格納されたデータに関する情報を管理するためのバッファ管理情報211の詳細について説明する。図7は、バッファA212がある2つのファイルのデータを保持し、バッファB213がある1つのファイルのデータを保持している場合のバッファ管理情報211の一例を示す。
【0090】
バッファ識別情報700は、メモリ103上に複数あるバッファを識別するための記号又は番号等である。本実施例では、バッファA212とバッファB213の2つがメモリ103上にあるが、バッファの数は3つ以上でも良い。
【0091】
システム制御部101は、ストリームデータ206を記録装置108から読み出し、バッファA212又はバッファB213に格納する。システム制御部101は、バッファにデータが格納したら、当該ファイルに関する未転送ファイル管理情報731を構築し、バッファ管理情報テーブル730の未転送ファイル管理ポインタ701にその管理情報のポインタアドレス714を保持する。また、システム制御部101は、各バッファにデータが保持されていない、または、保持されているデータに係るファイルの転送が全て完了している場合には、未転送ファイル管理ポインタ701にNULLを入力する。
【0092】
未転送ファイル管理情報731は、ファイルNo711、未転送データサイズ712、次未転送ファイル管理ポインタ713から成る。1つのバッファに複数のファイルを保持する場合のバッファ管理は、次のようにして行う。新たにバッファに格納するファイルに関する未転送ファイル管理情報732を構築し、その管理ポインタアドレス716を未転送ファイル管理情報731の次未転送ファイル管理ポインタ713に保持する。さらなるファイルがバッファに追加されるのであらば同様な処理でポインタをチェーンで繋げていく。また、最後の未転送ファイル管理情報の次未転送ファイル管理ポインタに保持する値はNULLとしておく事で、当該ファイルが最後である事を知ることができる。
【0093】
バッファA212又はバッファB213にデータが存在し、パソコン300からデータ要求があった場合、システム制御部101はバッファA212又はバッファ213Bに保持するデータをパソコン300に転送する。その際、パソコン300からは一度に全てのデータ転送を要求しないため、バッファに残るデータのサイズを保持しておく必要がある。未転送ファイル管理情報731は、未転送データサイズ712の項目を持つ。システム制御部101はバッファA212又はバッファB213が保持するデータを転送した場合、残りのデータサイズを計算して、未転送データサイズ712にその値を上書き設定する。
(4)データ転送処理
次に、パソコン300からの転送要求コマンドを受けて、情報記録再生装置100がデータを転送する処理について説明する。
【0094】
図11aおよび図11bは、情報記録再生装置100からパソコン300にデータ転送する際のコマンドとデータの流れの概要を示す。パソコン300から情報記録再生装置100にデータ転送要求1101が来る。
【0095】
例えば、MS Windows(登録商標)がインストールされたパソコンの場合、情報記録再生装置とパソコンをUSBで接続するとパソコンからは64KByteごとのデータ転送要求が出される。
【0096】
通常、情報記録再生装置は、データ転送要求を受けると要求サイズを今度はHDDに対してデータ転送要求を出す。そして、HDDからバッファにデータが転送され、パソコンにデータを送信する。
【0097】
本実施例では、図11(a)に示すように、情報記録再生装置100は、パソコン300からデータ転送要求1101を受けた後、記録装置108に対して要求サイズよりも大きいサイズのデータ転送要求1102を出す。そして、記録装置108からバッファA212等にデータ転送1103され、パソコン300にはデータ転送要求1101で要求されたサイズのデータ転送1104を行う。
【0098】
そして、図11(b)に示すように、次のパソコン300から受けるデータ転送要求1105に対して、情報記録再生装置100は、すでにバッファA212等にあるデータをパソコン300にデータ転送1106を行う。
【0099】
通常、情報記録再生装置内のATAコントローラドライバからHDDに送信されるデータ転送要求のコマンドの回数は、パソコンから情報記録再生装置に送信されるデータ転送要求のコマンドの回数と同じである。一方、本実施例の情報記録再生装置100によると、ATAコントローラドライバ204から記録装置108に送信されるデータ転送要求1102のコマンドの回数は、パソコン300から情報記録再生装置100に送信されるデータ転送要求コマンドの回数よりも少なくなる。このため、記録装置108に対するアクセスに必要な時間を短縮することも可能となる。
【0100】
以下、パソコン300から情報記録再生装置100にデータ転送要求が来た場合に行う処理の具体例を図8を用いて説明する。
【0101】
まず、システム制御部101は、パソコン300からのデータ転送要求サイズが予め設定している閾値とのうち、いずれが大きいかを検出する(S800)。この比較の結果、要求転送サイズが閾値よりも大きい場合(S800:Yes)は、システム制御部101は、ステップS801に進み、要求転送サイズが閾値以下の場合(S800:No)は、ステップS804に進む。なお、この閾値としては、例えば、転送要求コマンドに応答して送信するデータの上限値とする。例えば、USBによる転送においては、閾値は64kとする。
【0102】
ステップS801では、システム制御部101は、転送要求データがメモリ103上に存在するかどうか検知する。その検知方法は、図7a又は図7bのバッファ管理情報211の未転送ファイル管理ポインタ701を参照することで行う。検知の結果、データ転送要求データがバッファA212等に存在する場合(S801:Yes)は、ステップS802に進み、存在しない場合(S801:No)は、ステップS803に進む。
【0103】
ステップS802では、システム制御部101は、メモリ103上のバッファA212等にあるデータをパソコン300に転送する処理を実行して、その後処理を終了する。
【0104】
ステップS803では、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出しパソコン300に転送する処理を実行して、その後処理を終了する。
【0105】
ステップS804では、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出すためのデータリード要求を行い、目的のデータを取得して、ステップS805に進む。
【0106】
ステップS805では、システム制御部101は、記録装置108から取得したデータをパソコン300に転送して、その後処理を終了する。
【0107】
次に、図9を用いて、S801でバッファ中に転送要求データが無かった場合の処理について説明する、
図9は、図8のステップS803で実行する処理をサブルーチン化したものであり、ストレージデバイスである記録装置108からデータを読み出しパソコン300に転送する処理である。
【0108】
まず、システム制御部101は、ストレージデバイスである記録装置108からデータを読み出すためのデータリード要求を行い、目的のデータを取得する(S900)。通常、読み出すデータサイズは、パソコン300から要求されるデータサイズの値であるが、ここでは、システム制御部101は、データ転送要求のファイルに応じたサイズのデータを記録装置108から読み出す。
【0109】
その際、まずパソコン300が要求するファイルを特定する。パソコン300からのデータ転送要求にあるLBAとファイルリスト510を比較することでファイルを特定することができる。ファイルが特定できるとファイルリスト510からそのファイルサイズが取得できる。取得したサイズ分のデータを記録装置108からデータを読み出す。また、バッファサイズよりも、ファイルサイズが大きい場合は、バッファサイズ分のデータを記録装置108から読み出す。なお、S900においてYesの場合、システム制御部101は、転送要求されるデータのサイズより大きいサイズにて、データを記録装置108から読み出すといえる。また、S900においては、システム制御部101は、転送要求されるデータと同一ファイルに含まれるデータをファイルリスト510により特定し、前記所定の容量より大きな容量で読み出すよう制御しているといえる。
【0110】
次に、システム制御部101は、ステップS900で読み出したデータをバッファA212又はバッファB213に格納する(S901)。なお、このS901の内容の詳細については、図13を用いて後述する。
【0111】
次に、システム制御部101は、要求された分だけのデータをバッファA212又はバッファB213からパソコン300にデータ転送する(S902)。
【0112】
次に、システム制御部101は、バッファ管理情報211の当該ファイルの未転送データサイズを更新する(S903)。
【0113】
次に、図10を用いて図8のS801で、バッファ中にファイルがあった場合の処理について説明する。
【0114】
図10は、図8のステップS802で実行する処理をサブルーチン化したものであり、メモリ103上のバッファにあるデータをパソコン300に転送する処理である。
【0115】
まずシステム制御部101は、パソコン300からの要求サイズ分のデータをバッファA212又はバッファB213から読み出しパソコン300にデータ転送する(S1000)。
【0116】
次にシステム制御部101は、バッファ管理情報211の未転送データサイズを更新する(S1001)。
【0117】
次にシステム制御部101は、バッファ内のデータを全て転送したかどうかを検知し、全て転送した場合は(S1002:Yes)、ステップS1003へ進み、まだバッファに未転送のデータが残っている場合は(S1002:No)、処理を終了する。
【0118】
ステップS1003では、システム制御部101は、バッファ管理情報211を更新し、処理を終了する。
【0119】
本実施例の情報記録再生装置100は、S800、S804、S901、S902等に示すように、要求転送サイズと閾値との比較結果に応じて、メモリ103にデータを保持するか否かを検知する。閾値より小さいサイズのファイルを転送する場合には、そのファイルに対する転送要求コマンドを再びパソコン300から受信する可能性は低いので、バッファに保持せず記録装置108から送信することで、転送速度を高速化することが可能となる。
【0120】
また、本実施例の情報記録再生装置100は、S801、S900、S902、S1000に示すように、転送要求されたデータがバッファに保持されている場合には、バッファに保持されたデータを転送する。また、転送要求されたデータがバッファに保持されていない場合には、記録装置108からデータを読み出した上で転送する。これによって、あるファイルに含まれるデータ転送要求コマンドを最初にパソコン300より受信した場合にそのデータを記録装置108から読み出すことが可能となる。
【0121】
また、転送要求されるファイルのサイズがA212、バッファB213の容量よりも大きい場合、そのファイルは一度には、バッファには入りきらないが、バッファに保持したデータのすべてをパソコン300に転送した後に、残りのデータないしその一部を再びバッファに読み出すことが可能となる。
【0122】
また、本実施例の情報記録再生装置100が持つ記録装置108のサイズが、メモリ103上のバッファよりもサイズが小さい場合、記録装置108内の全てのデータを予めメモリ103上に展開しておくことで、パソコン300からデータ転送要求があった場合、常にメモリ103上のデータを転送するだけでよい。つまり、データ転送の要求ごとに記録装置108に対するアクセスが不要となり、高速に応答を返すことが可能となる。
【0123】
次に、図13を用いて、S900の処理のより詳細な具体例について説明する。
【0124】
S900において、記録装置108からデータを読み出すと、システム制御部101は、バッファA212にデータが格納されているか否かを検知する(S1301)。S1301において、バッファA212にデータが格納されていない場合、つまりバッファA212が空の場合には、システム制御部101は、読み出したデータをバッファA212に格納するように制御する(S1311)。
【0125】
S1301において、バッファA212にデータが格納されている場合には、システム制御部101は、バッファB213にデータが格納されているか否かを検知する(S1302)。バッファB213にデータが格納されていない場合に、つまりバッファB213が空の場合には、システム制御部101は、読み出したデータをバッファB213に格納するように制御する(S1312)。
【0126】
S1302において、バッファB213にデータが格納されている場合には、システム制御部101は、バッファA212に空き領域が存在するか、つまりバッファA212の容量一杯にデータが格納されているか否かを検知する(S1303)。
【0127】
S1303において、バッファA212に空き領域が存在する場合には、システム制御部101は、当該空き領域に、記録装置108から読み出したデータを格納する(S1313)。
【0128】
S1303において、バッファA212に空き領域が存在しない場合には、システム制御部101は、バッファB213に空き領域が存在するか否かを検知する(S1304)。
【0129】
S1304において、バッファB213に空き領域が存在する場合には、システム制御部101は、当該空き領域に、記録装置108から読み出したデータを格納する(S1314)。
【0130】
S1304において、バッファB213に空き領域が存在しない場合には、システム制御部101は、転送要求を受けたデータを含むファイルを読み出して、バッファA212あるいはバッファ213の領域の一部ないし全部に上書き処理を行う(S1305)。
【0131】
また、S1305において、上書き処理を行うかわりに、システム制御部101は、メモリ103の領域を区切り、例えばバッファCの領域等を設けてもよい。
【0132】
上述の処理の後に、S903に遷移する。
【0133】
このような処理を行うことによって、複数のバッファ領域が存在する場合に、異なる領域に、異なるファイルのデータを格納することができる。
【0134】
また、S1301、S1302、S1311、S1312の構成を備えることによって、例えば、ファイル1に含まれるデータと、ファイルに含まれるデータとの転送要求を受信した場合には、2つのバッファが各々データを保持することとなる。
【0135】
ここで、図7におけるファイル1に含まれるデータ、ファイル6に含まれるデータ、ファイル2に含まれるデータの順にて、パソコン300から転送要求コマンドを受けた場合の動作について説明する。つまり、ファイル1、ファイル2、ファイル6の順で記録装置108からデータを読み出す際の動作について説明する。なお、ファイル1の容量は、バッファA212の容量は、ファイル1のサイズより大きいものとする。
【0136】
まず、情報記録再生装置100は、ファイル1を記録装置108から読み出す。バッファA212にはデータは格納されていないので、ファイル1はバッファA212に格納される。次に、情報記録再生装置100は、ファイル6を記録装置108から読み出す。バッファA212には、ファイル1が格納されており、バッファB213にはデータが格納されていないので、ファイル6はバッファB213に格納される。次に、情報記録再生装置100は、ファイル2を記録装置108から読み出す。バッファA212にもバッファB213にもデータは格納されているが、バッファA212には未だ空き容量があるため、ファイル2はバッファA212に格納される。このような処理を行うことにより、図7に示すようにファイルが各バッファに格納される。
【0137】
上述の処理を言い換えると、本情報処理装置のメモリ部103は、例えば、ファイル1の転送要求コマンドと、ファイル6の転送要求コマンドを受信した場合は、ファイル1のデータ及びファイル6のデータの両方とを保持することとなる。
【0138】
そして、図7に示すようにデータが格納されることによって、複数のファイルに含まれる転送要求に示されるコマンドが並列してパソコン300から送信された場合にも、情報記録再生装置100は、応答性良くデータを転送することが可能となる。例えば、図7に示すようにデータが格納されている場合において、ファイル1に含まれるデータの転送要求と、ファイル6に含まれるデータの転送要求を交互にパソコン300から受信した場合においても、情報記録再生装置100は、バッファA212及びバッファB213に含まれるデータを転送する。
【0139】
また、図2において、情報記録再生装置100は、バッファA212、バッファB213は、それぞれ所定の記録容量を有し、該記録容量の範囲で、それぞれファイルの一部または全部を記録すると説明した。
【0140】
以下、この動作のより詳細な例について、図12を用いて説明する。
【0141】
図12の例において、情報記録再生装置100のバッファA212及びバッファB213には、例えば、それぞれ192MBが与えられているものとする。サイズが600MBであるファイルX1401、ファイルY1402の順に保持する場合、ファイルX1401のサイズはバッファA212の容量よりも大きいため、システム制御部101は、ファイルX1401の一部をバッファA212に保持するよう制御する。また、ファイルX1402の容量は、バッファB213に対して小さいため、システム制御部101は、ファイルY1402の全部を保持するように制御する。このように、情報記録再生装置100は、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する。
【0142】
本情報記録再生装置の構成を備えない装置において、単一の領域のバッファ、例えば、384MBのバッファにて記録を行う場合には、ファイルX1401でバッファが埋められることになる。この際、例えばパソコン300によりファイルX1401に含まれるデータの転送要求と、ファイルY1402とを並列して受けると、ファイルY1402をバッファに上書きし、さらにファイルX1401をバッファに上書きするといった処理が行われうる。これに対して、本実施例の情報記録再生装置100は、それぞれの領域に異なるファイルのデータを格納するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
【0143】
また、例えば、本実施例の情報記録再生装置100の構成を備えない場合においても、充分に大きな容量のメモリを用意すれば、そのメモリに、複数のファイルを丸ごと保持できるかもしれない。しかし、例えば、複数のバッファが所定の記録容量を有し、そのバッファ毎に異なるファイルを保持する構成を備えなければ、メモリの容量よりも大きなファイルを複数転送する際の応答性が向上できなくなる。これに対して、本実施例の情報記録再生装置100は、メモリの容量より大きなファイルを転送する場合に、個々のバッファは、個々のバッファに保持できる限りで、ファイルの一部または全部を保持するため、複数のファイルに含まれるデータの転送要求を交互に受信した場合の、応答性を向上することが可能になる。
(5)本実施の形態による効果
パソコン300が着脱式のデバイスとして認識できる情報記録再生装置100内のデータをパソコン300内のメモリに高速にコピーすることができる。
【0144】
具体的には、例えば、情報記録再生装置100は、パソコン300よりデータの転送要求を受けた場合に、ファイルのディレクトリ構造を示す情報を基づいて、転送要求されているデータがどのファイルに含まれているかを特定することが可能となる。
【0145】
また、例えば、情報記録再生装置100は、ディレクトリを示す情報からファイルリスト510を作成する。ファイルリスト510は、図3、図4に示すディレクトリを示す情報の一部の情報に基づいて生成し、ディレクトリを示す情報よりもサイズの小さい情報である。このため、情報記録再生装置100がパソコン300からデータの転送要求コマンドを受けてから、転送要求を受けたデータを含むファイルを特定する処理の高速化が可能となる。
【0146】
また、例えば、情報記録再生装置100は、ファイルリスト510によって、転送するファイルのサイズを取得できる。また、バッファ管理情報731には、未転送データサイズ712が含まれる。これにより、既に、パソコン300への転送が完了したファイルのデータをバッファから消去することが可能となる。
【0147】
また、例えば、情報記録再生装置100は、複数のバッファA212、バッファB213を設ける。個々のバッファはそれぞれ所定の記憶容量を有し、その記録容量の中で、ファイル内のデータを記憶する。これにより、例えば各バッファの容量よりも大きなファイルに含まれる転送要求コマンドをパソコン300より受信した場合においても、バッファ用の領域が単一のファイル内のデータで埋められることがなくなる。そして、例えばパソコン300より2つのファイルに含まれるデータの転送要求コマンドを交互に受信した場合にも、2つのファイルに含まれるデータを、それぞれのバッファが保持する。これにより、例えばコマンドを受信する毎に記録装置108からデータを読み出す場合に比べて、パソコン300からの転送要求に対する応答性が向上する。
【0148】
また、記録装置108上に構築されるボリューム構造は必ずパソコン300からデータ転送を要求される。従って、全てのボリューム構造部分のデータを予めメモリ103上に保持しておくことで、パソコン300に対するデータ転送を高速することが可能となる。
【0149】
また、一般にパソコン300にはファイルのキャッシュ機能がある。これは、一度読み込んだファイルを再度コピーしようとした場合、対象のUSBデバイスとの通信切断や電源オフをしない限り、パソコン300が目的のファイルを取得しようと再度デバイスへのデータ転送要求しても、パソコン300自身のキャッシュ機能によりデータを取得することができる。従って、情報記録再生装置100としては、一度でもメモリ103上に格納したファイルはコピー後、USB通信切断や電源オフするまでは、再度メモリ103上にコピーする必要がない。別の未コピーのファイルをメモリ上に保持することで、パソコン300からの次のデータ転送要求に備えることができ、またメモリ103を有効に利用することができる。
【0150】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることことが可能である。
【図面の簡単な説明】
【0151】
【図1】情報記録再生装置のハードウェア構成を示すブロック図である。
【図2】情報記録再生装置とパソコンの各機能の関係を示したブロック図である。
【図3】HDDに記録されるファイルシステムのディレクトリ構成の一例をツリー構造で示した図。
【図4】ディレクトリ構成のツリー構造をHDDの論理ボリューム上に配置した記述子で表したときの一例を示した図。
【図5】HDDに記録される全てのファイルのファイルリスト。
【図6】ファイルリストを作成する処理を示すフローチャート。
【図7】バッファに格納されたデータに関する情報を管理するためのバッファ管理情報。
【図8】パソコンから情報記録再生装置にデータ転送要求が来た場合に行う処理である。
【図9】HDDからデータを読み出しパソコンに転送する処理である。
【図10】バッファにあるデータをパソコンに転送する処理である。
【図11a】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図11b】情報記録再生装置からパソコンにデータ転送する際のコマンドとデータの流れを示す図である。
【図12】バッファA212、バッファB213にデータを格納する処理の具体例を示す図。
【図13】バッファA212、バッファB213にデータを格納する処理の具体例を示すフローチャート。
【符号の説明】
【0152】
100…情報記録再生装置、101…システム制御部、102…撮像部、103…メモリ、104…多重/分離部、105…映像圧縮伸張部、106…音声圧縮伸張部、107…記録制御部、108…記録装置、109…USB制御部、110…モニタ部、111…USB端子、112…ストリームデータ、113…マイク部、200…CPU、202…USBマスストレージ、203…コマンドブリッジ、204…ATAコントローラドライバ、207…ファイルシステム、208…記録再生アプリケーション、209…ファイルリスト作成部、210…ファイルリスト、211…バッファ管理情報、212…バッファA、213…バッファB、201,314…USBインタフェース、300…パソコン、310…CPU、311…アプリケーション、312…ファイルシステム、313…コマンド制御部、400a…ルートディレクトリ、410a…ファイル、411a…ファイル、400b…LBN、401b…記述子、410b…論理ボリューム構造、500…ファイルNo、501…ファイル位置情報、502…ファイルサイズ、510…ファイルリスト、S600〜S607…ファイルリスト作成処理、700…バッファ識別情報、701…未転送ファイル管理ポインタ、710…未転送ファイル管理ポインタを指す矢印、711…ファイルNo、712…未転送データサイズ、713…次未転送ファイル管理ポインタ、714…未転送ファイル管理ポインタアドレス、715…次未転送ファイル管理ポインタを指す矢印、716…次未転送ファイル管理ポインタアドレス、720…未転送ファイル管理ポインタを指す矢印、721…未転送ファイル管理ポインタアドレス、730…バッファ管理情報テーブル、731〜733…未転送ファイル管理情報、1101…データ転送要求、1102…データ転送要求、1103…データ転送、1104…データ転送、S1200〜S1203…データ転送処理、S1210〜S1211…データ転送処理、S800〜S805…データ転送処理、S900〜S903…データ転送処理、S1000〜S1005…データ転送処理。
【特許請求の範囲】
【請求項1】
ファイル単位でデータを記録する記録装置と、
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
外部機器からの所定の容量のデータの転送要求を入力する入力部と、
前記外部機器より転送要求されるデータと同一ファイルに含まれるデータを前記リストから特定し、前記所定の容量より大きな容量で読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報から、前記複数のファイルに含まれる各ファイルのアドレスと、前記各ファイルの識別情報とを対応付けたリストを生成することを特徴とする情報処理装置。
【請求項3】
請求項1に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報に含まれる、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも1以上の情報を削除したファイルリストを生成することを特徴とする情報処理装置。
【請求項4】
請求項1に記載の情報処理装置において、
前記生成部は、前記外部機器と接続された場合に前記リストを生成することを特徴とする情報処理装置。
【請求項5】
請求項1に記載の情報処理装置において、
前記制御部は、前記外部機器より転送要求されるデータの容量が前記所定の容量より大きいか否かを検知し、前記所定の容量より小さい場合には前記メモリ部に保持せず前記送信部により送信するよう制御することを特徴とする情報処理装置。
【請求項6】
請求項1ないし5のいずれか1項に記載の情報処理装置は、
前記外部機器とUSB(Universal Serial Bus)インタフェースを介して通信することを特徴とする情報処理装置。
【請求項7】
USBにて外部機器と通信を行い、該通信を行う場合には、USBデバイスとして動作する情報処理装置であって、
複数のファイルを記録する記録部と、
前記外部の機器よりファイルの一部のデータの転送要求を受信する受信部と、
前記転送要求されるデータを含むファイルと同一のファイルに含まれるデータを読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部に保持されたデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、第1のファイルの一部のデータの転送要求と、第2のファイルの一部のデータの転送要求とを受信した場合には、前記第1のファイルに含まれるデータと、前記第2のファイルに含まれるデータの両方を保持することを特徴とする情報処理装置。
【請求項8】
第1の情報処理装置と、第2の情報処理装置との間でデータを転送する転送システムであって、
前記第2の情報処理装置は、
前記第1の情報処理装置に所定の容量のデータの転送要求コマンドを送信する第2の送信部と、
前記第1の情報処理装置から送信されるデータを受信する第2の受信部と、を備え、
前記第1の情報処理装置は、
複数のファイルを記録可能な記録装置と、
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
前記転送要求コマンドを受信する第1の受信部と、
前記第2の情報処理装置より転送要求されるデータと同一ファイルに含まれるデータを前記所定の容量より大きな容量で保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する第1の送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする転送システム。
【請求項1】
ファイル単位でデータを記録する記録装置と、
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
外部機器からの所定の容量のデータの転送要求を入力する入力部と、
前記外部機器より転送要求されるデータと同一ファイルに含まれるデータを前記リストから特定し、前記所定の容量より大きな容量で読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報から、前記複数のファイルに含まれる各ファイルのアドレスと、前記各ファイルの識別情報とを対応付けたリストを生成することを特徴とする情報処理装置。
【請求項3】
請求項1に記載の情報処理装置において、
前記生成部は、前記記録装置に含まれるファイルの階層構造を示す情報に含まれる、空間ビットマップ記述子、ファイル集合記述子、終端記述子、ディレクトリのファイルエントリ、または、ファイルの更新日時を示す情報とのうち、少なくとも1以上の情報を削除したファイルリストを生成することを特徴とする情報処理装置。
【請求項4】
請求項1に記載の情報処理装置において、
前記生成部は、前記外部機器と接続された場合に前記リストを生成することを特徴とする情報処理装置。
【請求項5】
請求項1に記載の情報処理装置において、
前記制御部は、前記外部機器より転送要求されるデータの容量が前記所定の容量より大きいか否かを検知し、前記所定の容量より小さい場合には前記メモリ部に保持せず前記送信部により送信するよう制御することを特徴とする情報処理装置。
【請求項6】
請求項1ないし5のいずれか1項に記載の情報処理装置は、
前記外部機器とUSB(Universal Serial Bus)インタフェースを介して通信することを特徴とする情報処理装置。
【請求項7】
USBにて外部機器と通信を行い、該通信を行う場合には、USBデバイスとして動作する情報処理装置であって、
複数のファイルを記録する記録部と、
前記外部の機器よりファイルの一部のデータの転送要求を受信する受信部と、
前記転送要求されるデータを含むファイルと同一のファイルに含まれるデータを読み出すよう制御する制御部と、
前記読み出されたデータを保持するメモリ部と、
前記メモリ部に保持されたデータを前記外部機器に送信する送信部と、を備え、
前記メモリ部は、第1のファイルの一部のデータの転送要求と、第2のファイルの一部のデータの転送要求とを受信した場合には、前記第1のファイルに含まれるデータと、前記第2のファイルに含まれるデータの両方を保持することを特徴とする情報処理装置。
【請求項8】
第1の情報処理装置と、第2の情報処理装置との間でデータを転送する転送システムであって、
前記第2の情報処理装置は、
前記第1の情報処理装置に所定の容量のデータの転送要求コマンドを送信する第2の送信部と、
前記第1の情報処理装置から送信されるデータを受信する第2の受信部と、を備え、
前記第1の情報処理装置は、
複数のファイルを記録可能な記録装置と、
前記記録装置に記録された複数ファイルのリストを生成する生成部と、
前記転送要求コマンドを受信する第1の受信部と、
前記第2の情報処理装置より転送要求されるデータと同一ファイルに含まれるデータを前記所定の容量より大きな容量で保持するメモリ部と、
前記メモリ部から、転送要求されるデータを前記外部機器に送信する第1の送信部と、を備え、
前記メモリ部は、各々が所定の記憶容量でデータを記憶可能な記憶領域を、複数備えることを特徴とする転送システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11a】
【図11b】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11a】
【図11b】
【図12】
【図13】
【公開番号】特開2010−49734(P2010−49734A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−212374(P2008−212374)
【出願日】平成20年8月21日(2008.8.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願日】平成20年8月21日(2008.8.21)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]