JP2008217469A - コピー装置、データ転送制御装置、情報処理装置及びプログラム - Google Patents
コピー装置、データ転送制御装置、情報処理装置及びプログラム Download PDFInfo
- Publication number
- JP2008217469A JP2008217469A JP2007054459A JP2007054459A JP2008217469A JP 2008217469 A JP2008217469 A JP 2008217469A JP 2007054459 A JP2007054459 A JP 2007054459A JP 2007054459 A JP2007054459 A JP 2007054459A JP 2008217469 A JP2008217469 A JP 2008217469A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- unit
- access control
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 例えばシステムのメインメモリにバッファリングすることなくデータのコピー処理の高速化を実現するコピー装置等を提供する。
【解決手段】 コピー装置は、第1の記憶装置のデータを第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部とを含む。第1のアクセス制御部が、第1の記憶装置からのデータの読み出し要求を記録した読み出し要求ログを生成し、第2のアクセス制御部が、第2の記憶装置へのデータの書き込み要求を記録した書き込み要求ログを生成する。コピー実行部が、読み出し要求ログに基づいて第1の記憶装置からデータを読み出す制御を行い、書き込み要求ログに基づいて該データを第2の記憶装置に書き込む制御を行う。
【選択図】 図6
【解決手段】 コピー装置は、第1の記憶装置のデータを第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部とを含む。第1のアクセス制御部が、第1の記憶装置からのデータの読み出し要求を記録した読み出し要求ログを生成し、第2のアクセス制御部が、第2の記憶装置へのデータの書き込み要求を記録した書き込み要求ログを生成する。コピー実行部が、読み出し要求ログに基づいて第1の記憶装置からデータを読み出す制御を行い、書き込み要求ログに基づいて該データを第2の記憶装置に書き込む制御を行う。
【選択図】 図6
Description
本発明は、コピー装置、データ転送制御装置、情報処理装置及びプログラムに関する。
中央演算処理装置(Central Processing Unit:以下、CPU)及び主記憶装置を含む処理装置(処理部)には、補助記憶装置として大容量のハードディスク装置や携帯可能な記憶メディア(記録メディア)が接続される。この処理装置では、主記憶装置とハードディスク装置との間、主記憶装置と記憶メディアとの間、ハードディスク装置と記憶メディアとの間で、例えばファイル形式のデータが頻繁に転送される。
CPUの高速化、処理の複雑化、処理対象のデータサイズの大容量化が進み、主記憶装置とハードディスク装置との間、主記憶装置と記憶メディアとの間、ハードディスク装置と記憶メディアとの間のデータ転送速度が、処理速度のボトルネックとなっている。
例えば特許文献1には、記憶メディア上の全ファイルを別の記憶メディアにコピーする際に、コピー元の記憶メディアにおいてコピー元のクラスタを決定すると共に、コピー先の記憶メディアにおいてコピー先のクラスタを決定し、これらのクラスタの位置でコピーすべきかどうかを判定するファイルコピー装置が開示されている。このファイルコピー装置では、ファイルを構成しないクラスタについてコピーしないので、データの読み出し回数と書き込み回数を減らしてコピー処理に伴うデータ転送速度の高速化を図る。
また、例えば特許文献2には、主記憶装置と補助記憶装置との間のデータ転送時間を短縮するDMA装置が開示されている。このDMA装置は、主記憶装置からのデータを圧縮して補助記憶装置に圧縮データを転送すると共に、補助記憶装置からのデータを復元して主記憶装置に復元データを転送する。これにより、補助記憶装置と主記憶装置との間のデータ転送時間を短縮すると共に、補助記憶装置の容量を節約する。
特開2006−323462号公報
特開平5−73476号公報
しかしながら、特許文献1に開示されたファイルコピー装置では、ファイルシステムを経由することなく、ディスクイメージをコピーするものである。そのため、記憶メディアの全ファイルを別の記憶メディアにコピーする場合にはデータ転送を高速化できるものの、1ファイルのみをコピーする場合には却ってコピーに伴うデータ転送速度の高速化を期待できなくなる。更に、コピー対象となったデータの転送時間を短縮する技術については開示されておらず、公知技術の通りCPUに接続されるメモリにデータが一旦蓄積された後に、該メモリから読み出されてコピー先の記憶メディアに書き込まれるものと考えられる。このように、特許文献1の技術は、データの読み出し回数及び書き込み回数を削減してコピー処理時間を短縮する技術であって、転送されるデータの転送速度自体を高速化することができない。
また、特許文献2に開示されたDMA装置では、データの圧縮及び復元のためにハードウェア及びソフトウェアが必要となってしまうという問題がある。更に、特許文献2の技術は、データ転送量を削減してコピー処理時間を短縮する技術であって、転送されるデータの転送速度事態を高速化することができない。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、例えばシステムのメインメモリにバッファリングすることなくデータのコピー処理の高速化を実現するコピー装置、データ転送制御装置、情報処理装置及びプログラムを提供することにある。
また本発明の他の目的は、できるだけ付加回路を追加することなくデータのコピー処理の高速化を実現するコピー装置、データ転送制御装置、情報処理装置及びプログラムを提供することにある。
上記課題を解決するために本発明は、
第1の記憶装置のデータを第2の記憶装置にコピーするためのコピー装置であって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部とを含み、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うコピー装置に関係する。
第1の記憶装置のデータを第2の記憶装置にコピーするためのコピー装置であって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部とを含み、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うコピー装置に関係する。
本発明においては、第1の記憶装置から第2の記憶装置にデータをコピーする場合に、第1の記憶装置に対する読み出し要求を記録した読み出し要求ログが生成されると共に、第2の記憶装置に対する書き込み要求を記録した書き込み要求ログが生成される。そして、コピー実行部が、読み出し要求ログ及び書き込み要求ログに基づいて第1の記憶装置からデータを読み出す制御を行い、第2の記憶装置のデータを書き込む制御を行うので、複雑なモジュールの解析に伴う転送時間を短縮できるようになる。
また本発明に係るコピー装置では、
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することができる。
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することができる。
また本発明に係るコピー装置では、
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことができる。
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことができる。
上記のいずれかの発明によれば、ファイル管理部が、記録すべき要求を指定するため、第1及び第2の記憶装置に格納されるデータがコピー対象のデータであるか管理情報であるかを解析することなく、従前のファイル管理機構を採用できる。更に、コピー用のアドレスに基づいて、コピー対象のデータであるか管理情報であるかを判別できるようにしたので、付加回路を設けることなく複雑なファイル管理機構に手を加えることなくファイル形式のデータのコピーを高速化できるようになる。
また本発明に係るコピー装置では、
前記アドレスが、
前記未使用領域を指定するアドレスであってもよい。
前記アドレスが、
前記未使用領域を指定するアドレスであってもよい。
本発明によれば、新たな付加回路を一切不要にできる。
また本発明に係るコピー装置では、
前記読み出し要求ログ又は前記書き込み要求ログが所定のデータサイズを超えたことを条件に、前記第1又は第2のアクセス制御部がエラーを通知することができる。
前記読み出し要求ログ又は前記書き込み要求ログが所定のデータサイズを超えたことを条件に、前記第1又は第2のアクセス制御部がエラーを通知することができる。
本発明によれば、コピー処理の信頼性の低下を防ぐことができる。
また本発明に係るコピー装置では、
前記第1のアクセス制御部が、
前記第1の記憶装置の連続する記憶位置に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理を行うことができる。
前記第1のアクセス制御部が、
前記第1の記憶装置の連続する記憶位置に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理を行うことができる。
また本発明に係るコピー装置では、
前記第2のアクセス制御部が、
前記第2の記憶装置の連続する記憶位置に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理を行うことができる。
前記第2のアクセス制御部が、
前記第2の記憶装置の連続する記憶位置に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理を行うことができる。
上記のいずれかの発明によれば、読み出し要求ログ又は書き込み要求ログのデータサイズを削減でき、より多くの読み出し要求又は書き込み要求を記録できるようになる。
また本発明に係るコピー装置では、
前記コピー実行部が、
前記コピー処理に先立って、前記第1の記憶装置からの読み出しデータサイズと前記第2の記憶装置への書き込みデータサイズとを一致させる処理を行うことができる。
前記コピー実行部が、
前記コピー処理に先立って、前記第1の記憶装置からの読み出しデータサイズと前記第2の記憶装置への書き込みデータサイズとを一致させる処理を行うことができる。
本発明においては、第1及び第2の記憶装置のフラグメンテーションや、第1の記憶装置のセクタサイズと第2の記憶装置のセクタサイズとの相違により、1回当たりのデータ読み出し処理とデータ書き込み処理の処理サイズが一致しないことがある。本発明によれば、コピー処理に先立って、両データサイズを一致させる処理を行うようにしたので、コピー処理を複雑化することなく、正しくコピー処理を行うことができるようになる。
また本発明に係るコピー装置では、
前記第1のアクセス制御部が、
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことができる。
前記第1のアクセス制御部が、
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことができる。
また本発明に係るコピー装置では、
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことができる。
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことができる。
上記のいずれかの発明によれば、第1又は第2のドライバ部に大幅な変更を行うことなく、上記のコピー処理を実現できるようになる。
また本発明は、
上記のいずれか記載のコピー装置により制御されるデータ転送制御回路であって、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送されるデータ転送制御装置に関係する。
上記のいずれか記載のコピー装置により制御されるデータ転送制御回路であって、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送されるデータ転送制御装置に関係する。
本発明によれば、例えばシステムのメインメモリにバッファリングすることなくデータのコピー処理の高速化を実現するデータ転送制御装置を提供できる。また、本発明によれば、できるだけ付加回路を追加することなくデータのコピー処理の高速化を実現するデータ転送制御装置を提供できる。
また本発明は、
上記のいずれか記載のコピー装置と、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送される情報処理装置に関係する。
上記のいずれか記載のコピー装置と、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送される情報処理装置に関係する。
本発明によれば、例えばシステムのメインメモリにバッファリングすることなくデータのコピー処理の高速化を実現する情報処理装置を提供できる。また、本発明によれば、できるだけ付加回路を追加することなくデータのコピー処理の高速化を実現する情報処理装置を提供できる。
また本発明は、
上記のいずれか記載のコピー装置を含む電子機器に関係する。
上記のいずれか記載のコピー装置を含む電子機器に関係する。
また本発明は、
上記記載のデータ転送制御装置を含む電子機器に関係する。
上記記載のデータ転送制御装置を含む電子機器に関係する。
また本発明は、
上記記載の情報処理装置を含む電子機器に関係する。
上記記載の情報処理装置を含む電子機器に関係する。
上記のいずれかの発明によれば、例えばシステムのメインメモリにバッファリングすることなくデータのコピー処理の高速化を実現する電子機器を提供できる。また、本発明によれば、できるだけ付加回路を追加することなくデータのコピー処理の高速化を実現する電子機器を提供できる。
また本発明は、
第1の記憶装置のデータを第2の記憶装置にコピーするコピー処理を行う処理装置を制御するためのプログラムであって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部としての機能を、前記処理装置に実現させ、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うプログラムに関係する。
第1の記憶装置のデータを第2の記憶装置にコピーするコピー処理を行う処理装置を制御するためのプログラムであって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部としての機能を、前記処理装置に実現させ、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うプログラムに関係する。
また本発明に係るプログラムでは、
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することができる。
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することができる。
また本発明に係るプログラムでは、
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことができる。
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことができる。
また本発明に係るプログラムでは、
前記アドレスが、
前記未使用領域を指定するアドレスであってもよい。
前記アドレスが、
前記未使用領域を指定するアドレスであってもよい。
また本発明に係るプログラムでは、
前記読み出し要求ログ又は前記書き込み要求ログが所定のデータサイズを超えたことを条件に、前記第1又は第2のアクセス制御部がエラーを通知することができる。
前記読み出し要求ログ又は前記書き込み要求ログが所定のデータサイズを超えたことを条件に、前記第1又は第2のアクセス制御部がエラーを通知することができる。
また本発明に係るプログラムでは、
前記第1のアクセス制御部が、
前記第1の記憶装置の連続する記憶位置に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理を行うことができる。
前記第1のアクセス制御部が、
前記第1の記憶装置の連続する記憶位置に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理を行うことができる。
また本発明に係るプログラムでは、
前記第2のアクセス制御部が、
前記第2の記憶装置の連続する記憶位置に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理を行うことができる。
前記第2のアクセス制御部が、
前記第2の記憶装置の連続する記憶位置に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理を行うことができる。
また本発明に係るプログラムでは、
前記コピー実行部が、
前記コピー処理に先立って、前記第1の記憶装置からの読み出しデータサイズと前記第2の記憶装置への書き込みデータサイズとを一致させる処理を行うことができる。
前記コピー実行部が、
前記コピー処理に先立って、前記第1の記憶装置からの読み出しデータサイズと前記第2の記憶装置への書き込みデータサイズとを一致させる処理を行うことができる。
また本発明に係るプログラムでは、
を特徴とするプログラム。
を特徴とするプログラム。
前記第1のアクセス制御部が、
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことができる。
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことができる。
また本発明に係るプログラムでは、
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことができる。
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことができる。
上記のいずれかの発明において、処理装置はCPUを含むことができ、処理装置をコンピュータやプロセッサに置き換えてもよい。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 情報処理装置
図1に、本実施形態における情報処理装置が適用された電子機器の構成の概要を示す。
図1に、本実施形態における情報処理装置が適用された電子機器の構成の概要を示す。
電子機器10は、情報処理装置(ダイレクトコピー装置、より広義にはコピー装置、処理装置)100と、第1の記憶装置としてのハードディスク装置(Hard Disk Drive:以下、HDD)20と、第2の記憶装置としてのUSB(Universal Serial Bus) Mass Storage装置(以下、USBデバイス)30とを含む。情報処理装置100は、HDD20に格納されたファイル形式のデータを、USBデバイス30に転送し、又はUSBデバイス30に格納されたファイル形式のデータをHDD20に転送する。
情報処理装置100は、処理部110と、データ転送制御部140とを含む。処理部110は、図示しないCPUを有し、該CPUがプログラムに対応した処理を実行することで、上記のファイル形式のデータの転送を行って、いわゆるファイルコピー処理を実現する。
このような電子機器としては、例えば携帯電話機、携帯型情報機器(PDA等)、デジタルカメラ、プロジェクタ、携帯型オーディオプレーヤ、マスストレージデバイス、ビデオカメラ、電子手帳、GPS(Global Positioning System)装置、メモリカード等のアクセス制御を行うメモリコントローラを含む情報処理機器、センサ装置を含む携帯用情報処理機器、ゲーム装置、プロジェクタ(投写型表示装置)等がある。
図2に、図1の情報処理装置100の構成例のブロック図を示す。
処理部110は、CPU112と、メインメモリ114とを含む。CPU112とメインメモリ114とは、メモリバス116を介して接続される。メインメモリ114は、CPU112において処理されるプログラムが格納されるプログラムメモリとして機能したり、CPU112の処理結果等が一時的に格納される作業メモリとして機能したりする。従って、CPU112は、上述のようにメインメモリ114に格納されたプログラムを読み出して該プログラムに対応した処理を実行できる。
データ転送制御回路(データ転送制御部、データ転送制御装置)140は、CPUインタフェース(InterFace:以下、I/F)回路(ホストインタフェース)142と、IDE(Integrated Drive Electronics)I/F回路(第1の記憶装置用インタフェース)144と、USBI/F回路(第2の記憶装置用インタフェース)146と、制御部148とを含む。
CPUI/F回路142は、CPUバス160を介して処理部110のCPU112と接続され、CPU112との間で所与のインタフェース処理を行ってCPU112からのデータの受信処理、CPU112へのデータの送信処理を行う。
IDEI/F回路144は、IDEバス162を介してHDD20と接続され、HDD20との間でIDE規格又はIDE規格を発展させた規格に準拠したインタフェース処理を行ってHDD20からの読み出しデータの受信処理、HDD20への書き込みデータの送信処理を行う。
USBI/F回路146は、USBバス164を介してUSBデバイス30と接続され、USBデバイス30との間でUSB規格又はUSB規格を発展させた規格に準拠したインタフェース処理を行ってUSBデバイス30からの読み出しデータの受信処理、USBデバイス30への書き込みデータの送信処理を行う。
更にデータ転送制御回路140は、共通バス150と、直結バス152とを含む。共通バス150は、CPUI/F回路142、IDEI/F回路144、USBI/F回路146に接続され、各I/F回路間のデータが転送される。即ち、共通バス150を介して、CPUI/F回路142とIDEI/F回路144、CPUI/F回路142とUSBI/F回路146、IDEI/F回路144とUSBI/F回路146との間のデータが転送される。
直結バス152は、共通バス150と別個に設けられた独立バスである。直結バス152は、IDEI/F回路144、USBI/F回路146に接続され、IDEI/F回路144とUSBI/F回路146との間のデータが転送される。即ち、共通バス150にデータが供給されることなく、直結バス152を介してIDEI/F回路144とUSBI/F回路146との間のデータが転送される。
制御部148は、データ転送制御回路140の各部を制御する。より具体的には、制御部148は、処理部110の処理結果に基づいてデータ転送制御回路140の各部を制御する。
なお、図2では、情報処理装置100にデータ転送制御回路140が含まれる構成を有しているが、情報処理装置100がデータ転送制御回路140が省略され、処理部110のみであってもよい。
2. 比較例
本実施形態における情報処理装置100は、ファイル形式のデータをコピーするコピー処理を行う。本実施形態のコピー処理を説明するのに先立って、本実施形態の比較例におけるコピー処理について説明する。
本実施形態における情報処理装置100は、ファイル形式のデータをコピーするコピー処理を行う。本実施形態のコピー処理を説明するのに先立って、本実施形態の比較例におけるコピー処理について説明する。
図3に、本実施形態の比較例におけるコピー処理の説明図を示す。
本比較例では、HDDからUSBデバイスに対してファイル形式のデータをコピーする場合の処理部の動作を示している。
まず、HDDからUSBデバイスに対してファイル形式のデータをコピーする場合、処理部で実行されるアプリケーションプログラムAPLが、ファイルシステムFSに対してファイル読み出し要求RRQを発行する。このとき、アプリケーションプログラムAPLは、バッファメモリとしてのメインメモリ114にデータの書き込み要求DWRQを発行する。
ファイルシステムFSは、例えばFAT(File Allocation Table)のように、HDDのセクタに付された通し番号であるセクタ番号で、どのファイルがどこのセクタに格納されているかを管理する。この情報は、管理情報としてHDDに保存されている。そこで、ファイル読み出し要求RRQを受けたファイルシステムFSは、HDDドライバHDRに対して、データセクタ読み出し要求DSRRQ1、管理情報読み出し要求MSRRQ1を発行する。
HDDドライバHDRは、ファイルシステムFSからのデータセクタ読み出し要求DSRRQ1、管理情報読み出し要求MSRRQ1を受けて、HDD20に対してデータセクタ読み出し要求DSRRQ2、管理情報読み出し要求MSRRQ2を発行する。
この結果、HDD20から管理情報MIが読み出される。HDD20から読み出された管理情報MIは、ファイルシステムFSによって処理される。また、HDD20から読み出されたコピー対象のデータDTは、メインメモリ114に書き込まれる。
こうして、HDD20からコピー対象のデータの読み出しが完了すると、アプリケーションプログラムAPLは、USBデバイス30へのデータの書き込み処理を開始する。そのため、アプリケーションプログラムAPLは、メインメモリ114に対してデータの読み出し要求DRQを発行すると共に、ファイルシステムFSに対してファイル書き込み要求WRQを発行する。
ファイル書き込み要求WRQを受けたファイルシステムFSは、USBドライバUDRに対して、データセクタ書き込み要求DSWRQ1、管理情報書き込み要求MSWRQ1を発行する。
USBドライバUDRは、ファイルシステムFSからのデータセクタ書き込み要求DSWRQ1、管理情報書き込み要求MSWRQ1を受けて、USBI/F回路146に対してデータセクタ書き込み要求DSWRQ2、管理情報書き込み要求MSWRQ2を発行する。
USBI/F回路146は、USBドライバUDRからのデータセクタ書き込み要求DSWRQ2、管理情報書き込み要求MSWRQ2を受けて、USBデバイス30であるUSB Mass Storageに対してデータセクタ書き込み要求DSWRQ3、管理情報書き込み要求MSWRQ3を発行する。
この結果、USBデバイス30に対して、ファイルシステムFSから管理情報MIが書き込まれる。また、メインメモリ114に一旦格納されていたコピー対象のデータDTが、USBデバイス30に書き込まれる。
こうしてメインメモリ114からUSBデバイス30へのデータの書き込みとファイルシステムFSからUSBデバイス30への管理情報の書き込みとが終了すると、アプリケーションプログラムAPLは、一連のコピー処理を終了する。
このように、本比較例におけるコピー処理では、一旦メインメモリ114にコピー対象のデータがバッファリングされた後に、コピー先のUSBデバイス30に該データが書き込まれる。また、データ転送経路として、図3の各モジュールを経由するため、コピー処理時間が長くなる。なお、図3では、HDD20からUSBデバイス30にファイル形式のデータをコピーする例を説明したが、USBデバイス30からHDD20にファイル形式のデータをコピーする場合も同様である。
3. 本実施形態の説明
ところで、図2のように単純に直結バス152を介して、ファイル形式のデータを転送する場合、次のような問題がある。
ところで、図2のように単純に直結バス152を介して、ファイル形式のデータを転送する場合、次のような問題がある。
ファイル形式のデータを読み出したり書き込んだりする場合、ファイルシステムFSがHDD20やUSBデバイス30の管理情報の更新を行う。そのため、ファイルシステムFSを除く他のモジュールが、処理対象のセクタの情報がコピー対象のデータであるか、管理情報であるかを区別することができない。そのため、ファイル読み出し時には読み出すべきセクタをどこに送るべきかが不明となり、ファイル書き込み時には書き込むべきセクタをどこから読み出してくるかが不明となる。従って、単純に直結バス152を用いたデータ転送を行おうとしても、ファイルシステムFSが解析しない限り、どこのセクタから読み出して、どこのセクタに書き込めばよいのか不明である。即ち、ファイル形式のデータのコピー処理には、ファイルシステムの解析結果が必要となる。
その一方、ファイルシステムFSの構成は非常に複雑であり、ファイルシステムFSを変更してしまうと、設計期間、検証期間が多く費やしてしまうことが知られている。また、ファイルシステムFSの信頼性の低下を招く場合もある。従って、できるだけファイルシステムFSの変更を避けながら、ファイル形式のデータ転送を高速化できることが望ましい。
更に、ファイルシステムFSは、必ずしもファイルの先頭からデータを読み出したり書き込んだりするとは限らない。従って、ファイルの先頭から順番にデータを読み出さない場合であっても、コピー処理の結果が正しくなければならない。
そこで本実施形態では、ファイルシステムFSの構成を変更することなく、図3のモジュール構成の変更を最小限に抑え、ファイル形式のデータのコピー処理を実現する。
3.1 ダイレクトコピー処理
3.1.1 直結バス
本実施形態では、図2の直結バス152を介して、HDD20とUSBデバイス30との間でデータ転送するダイレクトコピー処理を行う。こうすることで、コピー対象のデータをメインメモリ114に一旦バッファリングする必要がなくなり、コピー処理の高速化を図る。
3.1.1 直結バス
本実施形態では、図2の直結バス152を介して、HDD20とUSBデバイス30との間でデータ転送するダイレクトコピー処理を行う。こうすることで、コピー対象のデータをメインメモリ114に一旦バッファリングする必要がなくなり、コピー処理の高速化を図る。
3.1.2 ログの生成
本実施形態では、ファイルシステムFSの構成を変更することなく、ファイルシステムFSの解析結果を利用する。そのため、本実施形態では、ファイルシステムFSからデータセクタの読み出しや書き込みが指示されたとき、ログ(リスト、履歴)として保存しておき、ダイレクトコピー実行時にログに記録されたセクタの読み出し及び書き込みを一斉に行う。ダイレクトコピーの実行は、アプリケーションプログラムが、一連のダイレクトコピー処理におけるHDDドライバに対するすべてのデータセクタ読み出し要求とUSBドライバに対するすべてのデータセクタの書き込み要求とが終了した時点で開始される。そして、メインメモリ114を用いることなくHDD20とUSBデバイス30との間のデータ転送を行う。
本実施形態では、ファイルシステムFSの構成を変更することなく、ファイルシステムFSの解析結果を利用する。そのため、本実施形態では、ファイルシステムFSからデータセクタの読み出しや書き込みが指示されたとき、ログ(リスト、履歴)として保存しておき、ダイレクトコピー実行時にログに記録されたセクタの読み出し及び書き込みを一斉に行う。ダイレクトコピーの実行は、アプリケーションプログラムが、一連のダイレクトコピー処理におけるHDDドライバに対するすべてのデータセクタ読み出し要求とUSBドライバに対するすべてのデータセクタの書き込み要求とが終了した時点で開始される。そして、メインメモリ114を用いることなくHDD20とUSBデバイス30との間のデータ転送を行う。
3.1.3 データと管理情報の区別
本実施形態では、ファイルシステムFSを挟む上位のアプリケーションプログラムと下位のHDDドライバ及びUSBドライバとの間で予め決められた領域のアドレスを仮想バッファのアドレスとし、ダイレクトコピー(コピー)用のアドレスとして定める。
本実施形態では、ファイルシステムFSを挟む上位のアプリケーションプログラムと下位のHDDドライバ及びUSBドライバとの間で予め決められた領域のアドレスを仮想バッファのアドレスとし、ダイレクトコピー(コピー)用のアドレスとして定める。
図4に、ダイレクトコピー用のアドレスの説明図を示す。
図1又は図2の情報処理装置100では、メモリ空間が決められている。このメモリ空間をすべて情報処理装置100の処理部110が使用することはなく、メインメモリ114のメモリ空間が割り当てられたメモリ配置領域を含むシステム使用領域SURが予め割り当てられている。
そこで、ダイレクトコピー用のアドレスとして、例えば仮想バッファのメモリ領域のアドレスとし、例えば図4のシステム未使用領域BARを割り当てることができる。ファイルシステムFSは単にアプリケーションプログラムで指定されたアドレスを用いてHDDドライバ及びUSBドライバに対してデータセクタの読み出し要求や書き込み要求を行うため、ファイルシステムFSは、そのアドレスがシステム使用領域SURであるか否か認識していなくても、HDDドライバ及びUSBドライバは、ダイレクトコピー用のアドレスか否かを判別できるようになる。そして、ダイレクトコピー用のアドレスを用いたファイルシステムFSからのデータセクタ読み出し要求及びデータセクタ書き込み要求が、上述のログの記録対象とし、図2の直結バス152を介したデータ転送を行うようにすればよい。その一方で、システム使用領域のアドレスを用いたファイルシステムFSからのデータセクタ読み出し要求及びデータセクタ書き込み要求は、ログの非記録対象とすればよい。
なお、ダイレクトコピー用のアドレスとして図4のシステム未使用領域のアドレスとしたが、本実施形態がこれに限定されるものではなく、アプリケーションプログラムとHDDドライバ及びUSBドライバとの間で予め決められたアドレスであればシステム使用領域のアドレスであってもよい。
3.1.4 データ転送順序
本実施形態では、アプリケーションプログラムは、ファイル形式のデータの読み出し要求や書き込み要求の際に、ファイルとしてのデータの位置と仮想バッファのオフセットアドレスと一致させる。これにより、オフセットアドレスにより、ファイル形式のデータそれぞれについてファイルのどの位置であるかを特定できる。
本実施形態では、アプリケーションプログラムは、ファイル形式のデータの読み出し要求や書き込み要求の際に、ファイルとしてのデータの位置と仮想バッファのオフセットアドレスと一致させる。これにより、オフセットアドレスにより、ファイル形式のデータそれぞれについてファイルのどの位置であるかを特定できる。
従って、このオフセットアドレスが読み出し側と書き込み側とで1対1に対応していれば、ファイルシステムFSがファイルの先頭から順番に読み出し要求及び書き込み要求を行わない場合であっても、コピーされたデータは正確となる。
3.2 具体的な説明
図1又は図2の処理部110は、以下の各部の動作を実現するようになっており、各部の実行結果を処理部110の処理結果としてデータ転送制御回路140の各部が制御される。
図1又は図2の処理部110は、以下の各部の動作を実現するようになっており、各部の実行結果を処理部110の処理結果としてデータ転送制御回路140の各部が制御される。
図5に、図1又は図2の処理部110の構成の概要を示す。
処理部110は、アプリケーションプログラム処理部200、ファイルシステム部(ファイル管理部)210、ダイレクトコピー実行部(コピー実行部)220、HDDドライバ(第1のアクセス制御部)230、USBドライバ(第2のアクセス制御部)240を含む。HDDドライバ230は、HDDドライバラッパ部(第1のドライバラッパ部)232、HDDドライバ部(第1のドライバ部)234を含む。USBドライバ240は、USBドライバラッパ部(第2のドライバラッパ部)242、USBドライバ部(第2のドライバ部)244を有する。このような処理部110の各部の動作は、上述のようにメインメモリ114に格納されたプログラムを実行するCPU112により実現される。
アプリケーションプログラム処理部200の機能は、メインメモリ114に格納される上位アプリケーションプログラムを読み出して該上位アプリケーションプログラムに対応した処理を実行したCPU112により実現される。アプリケーションプログラム処理部200は、HDD20に格納されたファイル形式のデータをUSBデバイス30にコピーする指示や、USBデバイス30に格納されたファイル形式のデータをHDD20にコピーする指示を行う。
ファイルシステム部(広義にはファイル管理部)210の機能は、メインメモリ114に格納されるファイルシステムプログラムを読み出して該ファイルシステムプログラムに対応した処理を実行したCPU112により実現される。ファイルシステム部210は、ファイル形式のデータを管理して、該データをファイルとしてアクセスするための処理を行う。即ち、ファイルシステム部210は、HDD20又はUSBデバイス30(各記憶装置)に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち管理情報に基づいて、HDD20又はUSBデバイス30のデータを管理する。
そして、例えばファイルシステム部210がダイレクトコピー用のアドレスであることの認識の有無にかかわらず、ファイルシステム部210は、ダイレクトコピー用のアドレスを指定することで、1又は複数の読み出し要求を記録した読み出し要求ログに記録すべきデータの読み出し要求をHDDドライバ230に対して指定し、又は、1又は複数の書き込み要求を記録した書き込み要求ログに記録すべきデータの書き込み要求をUSBドライバ240に対して指定する。
或いは、例えばファイルシステム部210がダイレクトコピー用のアドレスであることの認識がない場合には、ファイルシステム部210は、アプリケーションプログラム処理部200からの要求の通り、(ダイレクトコピー用の)アドレスを指定することで、1又は複数の読み出し要求を記録した読み出し要求ログに記録すべきデータの読み出し要求をHDDドライバ230に対して指定し、又は、1又は複数の書き込み要求を記録した書き込み要求ログに記録すべきデータの書き込み要求をUSBドライバ240に対して指定する。
ダイレクトコピー実行部(広義にはコピー実行部)220の機能は、メインメモリ114に格納されるダイレクトコピープログラムを読み出して該ダイレクトコピープログラムに対応した処理を実行したCPU112により実現される。ダイレクトコピー実行部220は、HDD20に格納されたファイル形式のデータをUSBデバイス30にコピーするダイレクトコピー処理、又はUSBデバイス30に格納されたファイル形式のデータをHDD20にコピーするダイレクトコピー処理を実行する。より具体的には、ダイレクトコピー実行部220は、読み出し要求ログに基づいてHDD20からデータを読み出す制御を行うと共に、書き込み要求ログに基づいて該データをUSBデバイス30に書き込む制御を行う。
ここで、ダイレクトコピー処理とは、図2のデータ転送制御回路140の直結バス152を介してHDD20及びUSBデバイス30間のデータ転送で実現されるコピー処理をいう。これに対して、図2のデータ転送制御回路140の共通バス150を介してHDD20及びUSBデバイス30間のデータ転送で実現されるコピー処理を、通常コピー処理という。共通バス150を介したデータ転送を行う通常コピー処理は、CPUI/F142を通ってメインメモリ114に一旦格納されるため、データ転送時間が長くなるのに対し、直結バス152を介したデータ転送を行うダイレクトコピー処理は、メインメモリ114に一旦データが格納されることなく転送先にコピー対象のデータが転送されるためデータ転送時間を大幅に短縮できる。
処理部110は、少なくとも2種類の動作モードで動作できるようになっており、処理部110により第1のモードが指定されたとき、ダイレクトコピー実行部220からの指示により、データ転送制御回路140は、共通バス150を介して、CPUI/F回路142とIDEI/F回路144、CPUI/F回路142とUSBI/F回路146、IDEI/F回路144とUSBI/F回路146との間でデータを転送する。また、処理部110により第2のモードが指定されたとき、ダイレクトコピー実行部220からの指示により、データ転送制御回路140は、直結バス152を介して、IDEI/F回路144とUSBI/F回路146との間のデータを転送する。
HDDドライバ230は、HDD20からのデータの読み出しやHDD20へのデータの書き込みを制御する。より具体的には、HDDドライバ230は、HDD20に対してデータセクタや管理情報の読み出し要求や書き込み要求を行って、データセクタや管理情報の読み出しや書き込み制御(アクセス制御)を行う。
HDDドライバ230のうちHDDドライバラッパ(driver wrapper)部232の機能は、メインメモリ114に格納されるHDDドライバラッパプログラムを読み出して該HDDドライバラッパプログラムに対応した処理を実行したCPU112により実現される。HDDドライバラッパ部232は、HDDドライバの変更を最小限に抑えるために、ファイルシステムFSとHDDドライバとの間に設けられるモジュールである。HDDドライバラッパ部232は、ファイルシステムFSからダイレクトコピー用のHDD20へのデータセクタ書き込み要求があったときに書き込み要求ログを生成したり、ファイルシステムFSからダイレクトコピー用のHDD20からのデータ読み出し要求があったときに読み出し要求ログを生成したりする。従って、HDDドライバ230が、ファイルシステムFSからダイレクトコピー用のHDD20へのデータセクタ書き込み要求があったときに書き込み要求ログを生成したり、ファイルシステムFSからダイレクトコピー用のHDD20からのデータ読み出し要求があったときに読み出し要求ログを生成したりするということができる。
HDDドライバラッパ部232は、上記の各要求で指定されたアドレスが図4に示すダイレクトコピー用のアドレスであるか否かを判別することで、ダイレクトコピー用であるか否かを判別する。即ち、ファイルシステム部210からのアドレスが所定の記憶領域を指定するときに、HDDドライバ230(HDDドライバラッパ部232)が読み出し要求ログを生成する処理を行う。HDDドライバラッパ部232は、ファイルシステムFSからの要求がダイレクトコピー用ではないと判別すると、そのまま各要求をHDDドライバ部234に伝える。
HDDドライバ部234の機能は、メインメモリ114に格納されるHDDドライバプログラムを読み出して該HDDドライバプログラムに対応した処理を実行したCPU112により実現される。HDDドライバ部234は、HDD20をアクセスするための制御を行う。より具体的には、HDDドライバ部234は、ダイレクトコピー実行部220からのダイレクトコピー処理の実行指示や、ファイルシステム部210からの要求に応じて、HDD20に対してデータセクタや管理情報の読み出し要求や書き込み要求を行って、データセクタや管理情報の読み出しや書き込み制御を行う。
USBドライバ240は、USBデバイス30からのデータの読み出しやUSBデバイス30へのデータの書き込みを制御する。
USBドライバ240のうちUSBドライバラッパ(driver wrapper)部242の機能は、メインメモリ114に格納されるUSBドライバラッパプログラムを読み出して該USBドライバラッパプログラムに対応した処理を実行したCPU112により実現される。USBドライバラッパ部242は、USBドライバの変更を最小限に抑えるために、ファイルシステムFSとUSBドライバとの間に設けられるモジュールである。USBドライバラッパ部242は、ファイルシステムFSからダイレクトコピー用のUSBデバイス30へのデータセクタ書き込み要求があったときに書き込み要求ログを生成したり、ファイルシステムFSからダイレクトコピー用のUSBデバイス30からのデータ読み出し要求があったときに読み出し要求ログを生成したりする。従って、USBドライバ240が、ファイルシステムFSからダイレクトコピー用のUSBデバイス30へのデータセクタ書き込み要求があったときに書き込み要求ログを生成したり、ファイルシステムFSからダイレクトコピー用のUSBデバイス30からのデータ読み出し要求があったときに読み出し要求ログを生成したりするということができる。
USBドライバラッパ部242は、上記の各要求で指定されたアドレスが図4に示すダイレクトコピー用のアドレスであるか否かを判別することで、ダイレクトコピー用であるか否かを判別する。即ち、ファイルシステム部210からのアドレスが所定の記憶領域を指定するときに、USBドライバ240(USBドライバラッパ部242)が書き込み要求ログを生成する処理を行う。USBドライバラッパ部242は、ファイルシステムFSからの要求がダイレクトコピー用ではないと判別すると、そのまま各要求をUSBドライバ部244に伝える。
USBドライバ部244の機能は、メインメモリ114に格納されるUSBドライバプログラムを読み出して該USBドライバプログラムに対応した処理を実行したCPU112により実現される。USBドライバ部244は、USBデバイス30をアクセスするための制御を行う。より具体的には、USBドライバ部244は、ダイレクトコピー実行部220からのダイレクトコピー処理の実行指示や、ファイルシステム部210からの要求に応じて、USBデバイス30に対してデータセクタや管理情報の読み出し要求や書き込み要求を行って、データセクタや管理情報の読み出しや書き込み制御を行う。
なお、図5では処理部110の各機能がソフトウェアにより実現されるものとして説明したが、組み合わせ回路、順序回路、専用回路等のハードウェアにより実現されてもよい。
図6に、本実施形態におけるダイレクトコピー処理の説明図を示す。
図6において、図3と同一部分には同一符号を付し、適宜説明を省略する。図6においても、HDD20からUSBデバイス30へのファイル形式のデータのダイレクトコピー処理を例に説明するが、USBデバイス30からHDD20へのファイル形式のデータのダイレクトコピー処理も同様である。
図6において、アプリケーションプログラムAPLの機能は、図5のアプリケーションプログラム処理部200により実現される。ファイルシステムFSの機能は、図5のファイルシステム部210によって実現される。ダイレクトコピー実行モジュールDCPの機能は、図5のダイレクトコピー実行部220によって実現される。HDDドライバラッパHDRWの機能は、図5のHDDドライバラッパ部232によって実現される。HDDドライバHDRの機能は、図5のHDDドライバ部234によって実現される。USBドライバラッパUDRWの機能は、図5のUSBドライバラッパ部242によって実現される。USBドライバUDRの機能は、図5のUSBドライバ部244によって実現される。
図7に、図6のダイレクトコピー処理のシーケンスの一例を示す。
まず、HDD20からUSBデバイス30に対してファイル形式のデータをコピーする場合、アプリケーションプログラムAPLが、ファイルシステムFSに対してファイル読み出し要求RRQを発行する。このとき、アプリケーションプログラムAPLは、バッファメモリとしてのメインメモリ114にデータの書き込み要求DRQを発行することはない。
ファイル読み出し要求RRQを受けたファイルシステムFSは、HDDドライバHDRではなくHDDドライバラッパHDRWに対して、データセクタ読み出し要求DSRRQ1、管理情報読み出し要求MSRRQ1を発行する。
HDDドライバラッパHDRWは、上述のように例えばデータセクタ読み出し要求DSRRQ1又は管理情報読み出し要求MSRRQ1に付されたアドレスがダイレクトコピー用のアドレスであるか否かを判別する。そして、ダイレクトコピー用のアドレスであると判別されたとき、HDDドライバラッパHDRWは、当該データセクタ読み出し要求DSRRQ1又は管理情報読み出し要求MSRRQ1を読み出し要求ログRLOGに記録し、読み出し要求ログRLOGを更新する。このとき、読み出し要求ログRLOGに対して、アドレスをキーにソート処理が行われる。こうすることで、例えばアドレスの小さい順序で、各アドレスに対応した読み出し要求の順序を変更できる。
そして、HDDドライバラッパHDRWは、ファイルシステムFSに対して当該データセクタ読み出し要求DSRRQ1又は管理情報読み出し要求MSRRQ1に対応するデータセクタ読み出し承認DSRAK1又は管理情報読み出し承認MSRAK1を返す。これを受けたファイルシステムFSは、アプリケーションプログラムAPLに対して、ファイル読み出し要求RRQに対応するファイル読み出し承認RAKを返す。
なお、図7では示されていないが、ダイレクトコピー用のアドレスではないと判別されたとき、HDDドライバラッパHDRWは、HDDドライバHDRに対して、データセクタ読み出し要求DSRRQ20、管理情報読み出し要求MSRRQ20を発行し、図3と同様にHDD20へのアクセスを行う。
こうして、HDD20からコピー対象のデータの読み出し要求処理が完了すると、アプリケーションプログラムAPLは、USBデバイス30へのデータの書き込み要求処理を開始する。そのため、アプリケーションプログラムAPLは、ファイルシステムFSに対してファイル書き込み要求WRQを発行する。このとき、アプリケーションプログラムAPLは、バッファメモリとしてのメインメモリ114にデータの読み出し要求DWRQを発行することはない。
ファイル書き込み要求WRQを受けたファイルシステムFSは、USBドライバラッパUDRWに対して、データセクタ書き込み要求DSWRQ1、管理情報書き込み要求MSWRQ1を発行する。
USBドライバラッパUDRWは、上述のように例えばデータセクタ書き込み要求DSWRQ1又は管理情報書き込み要求MSWRQ1に付されたアドレスがダイレクトコピー用のアドレスであるか否かを判別する。そして、ダイレクトコピー用のアドレスであると判別されたとき、USBドライバラッパUDRWは、当該データセクタ書き込み要求DSWRQ1又は管理情報書き込み要求MSWRQ1を書き込み要求ログWLOGに記録し、書き込み要求ログWLOGを更新する。このとき、書き込み要求ログWLOGに対して、アドレスをキーにソート処理が行われる。こうすることで、例えばアドレスの小さい順序で、各アドレスに対応した書き込み要求の順序を変更できる。
そして、USBドライバラッパUDRWは、ファイルシステムFSに対して当該データセクタ書き込み要求DSWRQ1又は管理情報書き込み要求MSWRQ1に対応するデータセクタ書き込み承認DSWAK1又は管理情報書き込み承認MSWAK1を返す。これを受けたファイルシステムFSは、アプリケーションプログラムAPLに対して、ファイル書き込み要求WRQに対応するファイル書き込み承認WAKを返す。
なお、図7では示されていないが、ダイレクトコピー用のアドレスではないと判別されたとき、USBドライバラッパUDRWは、USBドライバUDRに対して、データセクタ書き込み要求DSWRQ20、管理情報書き込み要求MSWRQ20を発行し、図3と同様にUSBデバイス30へのアクセスを行う。
こうしてUSBデバイス30からのコピー対象のデータの書き込み要求処理が完了すると、アプリケーションプログラムAPLは、ダイレクトコピー実行モジュールDCPに対して、ダイレクトコピー処理の実行指示DCを発行する。
ダイレクトコピー処理の実行指示DCを受けたダイレクトコピー実行モジュールDCPは、読み出し要求ログRLOGを参照しながら、各読み出し要求に対応して、HDDドライバHDRに対してデータセクタ読み出し要求DSRRQ21、管理情報読み出し要求MSRRQ21を発行する。またダイレクトコピー実行モジュールDCPは、書き込み要求ログWLOGを参照しながら、各書き込み要求に対応して、USBドライバUDRに対してデータセクタ書き込み要求DSWRQ21、管理情報書き込み要求MSWRQ21を発行する。
HDDドライバHDRは、ダイレクトコピー実行モジュールDCPからのデータセクタ読み出し要求DSRRQ21、管理情報読み出し要求MSRRQ21を受けて、HDD20に対してデータセクタ読み出し要求DSRRQ2、管理情報読み出し要求MSRRQ2を発行する。
この結果、HDD20から管理情報MIが読み出される。HDD20から読み出された管理情報MIは、ファイルシステムFSによって処理される。また、HDD20から読み出されたコピー対象のデータDTは、メインメモリ114に書き込まれることなく、直結バス152を介して、USBデバイス30への書き込み処理に供される。
USBドライバUDRは、ダイレクトコピー実行モジュールDCPからのデータセクタ書き込み要求DSWRQ21、管理情報書き込み要求MSWRQ21を受けて、USBI/F回路146に対してデータセクタ書き込み要求DSWRQ2、管理情報書き込み要求MSWRQ2を発行する。
USBI/F回路146は、USBドライバUDRからのデータセクタ書き込み要求DSWRQ2、管理情報書き込み要求MSWRQ2を受けて、USBデバイス30であるUSB Mass Storageに対してデータセクタ書き込み要求DSWRQ3、管理情報書き込み要求MSWRQ3を発行する。
この結果、USBデバイス30に対して、ファイルシステムFSから管理情報MIが書き込まれる。また、上記のようにHDD20から読み出されたコピー対象のデータDTが、直結バス152を介してUSBデバイス30に書き込まれる。
HDD20からのデータの読み出しが終了すると、HDDドライバHDRはダイレクトコピー実行モジュールDCPに対して、データセクタ読み出し要求DSRRQ21、管理情報読み出し要求MSRRQ21に対応するデータセクタ読み出し承認DSRAK21、管理情報読み出し承認MSRAK21を返す。更に、USBデバイス30へのデータの書き込みが終了すると、USBドライバUDRはダイレクトコピー実行モジュールDCPに対して、データセクタ書き込み要求DSWRQ21、管理情報書き込み要求MSWRQ21に対応するデータセクタ書き込み承認DSWAK21、管理情報書き込み承認MSWAK21を返す。
ダイレクトコピー実行モジュールDCPは、HDDドライバHDRからのデータセクタ読み出し承認DSRAK21、管理情報読み出し承認MSRAK21、USBドライバUDRからのデータセクタ書き込み承認DSWAK21、管理情報書き込み承認MSWAK21を受けて、アプリケーションプログラムAPLに対してダイレクトコピー処理終了通知DCAKを返す。
ダイレクトコピー処理終了通知DCAKを受けたアプリケーションプログラムAPLは、一連のダイレクトコピー処理を終了する。
以上説明したように、本実施形態におけるダイレクトコピー処理によれば、コピー対象のデータをメインメモリ114に一旦バッファリングする必要がなくなり、コピー処理の高速化が可能となる。また、コピー対象のデータ、管理情報を区別することなく、ファイルの先頭から順番に行われない読み出し要求や書き込み要求があっても、ファイル形式のデータを正確にコピーできるようになる。
3.3 処理部の各部の処理例
以下では、図5の処理部110のアプリケーションプログラム処理部200、HDDドライバラッパ部232、ダイレクトコピー実行部220の処理例について説明する。なお、ファイルシステム部210の処理については、公知のファイルシステムの処理と同様であるため詳細な説明を省略する。また、USBドライバラッパ部242の処理については、HDDドライバラッパ部232の処理と同様であるため詳細な説明を省略する。更に、HDDドライバ部234及びUSBドライバ部244の処理については、それぞれ公知のHDDドライバ及びUSBドライバの処理と同様であるため詳細な説明を省略する。
以下では、図5の処理部110のアプリケーションプログラム処理部200、HDDドライバラッパ部232、ダイレクトコピー実行部220の処理例について説明する。なお、ファイルシステム部210の処理については、公知のファイルシステムの処理と同様であるため詳細な説明を省略する。また、USBドライバラッパ部242の処理については、HDDドライバラッパ部232の処理と同様であるため詳細な説明を省略する。更に、HDDドライバ部234及びUSBドライバ部244の処理については、それぞれ公知のHDDドライバ及びUSBドライバの処理と同様であるため詳細な説明を省略する。
3.3.1 アプリケーションプログラム処理部
図8に、図5のアプリケーションプログラム処理部200の処理例のフロー図を示す。図8は、例えばメインメモリ114に格納されるアプリケーションプログラムの処理例を示し、処理部110のCPU112が該アプリケーションプログラムを読み出して該プログラムに対応した処理を実行することで、図8の処理を実現できる。
図8に、図5のアプリケーションプログラム処理部200の処理例のフロー図を示す。図8は、例えばメインメモリ114に格納されるアプリケーションプログラムの処理例を示し、処理部110のCPU112が該アプリケーションプログラムを読み出して該プログラムに対応した処理を実行することで、図8の処理を実現できる。
まず、アプリケーションプログラム処理部200は、ファイルシステムFSに対してファイル読み出し要求RRQを発行する(ステップS300)。
その後、アプリケーションプログラム処理部200は、ファイルシステムFSから正常な読み出し応答があるか否かを監視する(ステップS301)。正常な読み出し応答の有無は、例えば図7のファイルシステムFSからの読み出し承認RAKに基づいて判断できる。正常な読み出し応答がないとき(ステップS301:N)、アプリケーションプログラム処理部200は、タイムアウトであるか否かを監視する(ステップS302)。まだタイムアウトではないと判別されたとき(ステップS302:N)、アプリケーションプログラム処理部200は、ステップS301に戻る。一方、タイムアウトであると判別されたとき(ステップS302:Y)、所与のエラー処理を行い(ステップS303)、一連の処理を終了する(エンド)。
ステップS301において正常の読み出し応答があったとき(ステップS301:Y)、アプリケーションプログラム処理部200は、ファイルシステムFSに対してファイル書き込み要求WRQを発行する(ステップS304)。
その後、アプリケーションプログラム処理部200は、ファイルシステムFSから正常な書き込み応答があるか否かを監視する(ステップS305)。正常な書き込み応答の有無は、例えば図7のファイルシステムFSからの書き込み承認WAKに基づいて判断できる。正常な書き込み応答がないとき(ステップS305:N)、アプリケーションプログラム処理部200は、タイムアウトであるか否かを監視する(ステップS306)。まだタイムアウトではないと判別されたとき(ステップS306:N)、アプリケーションプログラム処理部200は、ステップS305に戻る。一方、タイムアウトであると判別されたとき(ステップS306:Y)、所与のエラー処理を行い(ステップS303)、一連の処理を終了する(エンド)。
ステップS305において正常の書き込み応答があったとき(ステップS305:Y)、アプリケーションプログラム処理部200は、ダイレクトコピー実行モジュールDCPに対してダイレクトコピー処理の実行指示DCを発行する(ステップS307)。
その後、アプリケーションプログラム処理部200は、ファイルシステムFSから正常なダイレクトコピー処理の終了応答があるか否かを監視する(ステップS308)。正常なダイレクトコピー処理の終了応答の有無は、例えば図7のダイレクトコピー実行モジュールDCPからのダイレクトコピー処理終了通知DCAKに基づいて判断できる。正常なダイレクトコピー処理の終了応答がないとき(ステップS308:N)、アプリケーションプログラム処理部200は、タイムアウトであるか否かを監視する(ステップS309)。まだタイムアウトではないと判別されたとき(ステップS309:N)、アプリケーションプログラム処理部200は、ステップS308に戻る。一方、タイムアウトであると判別されたとき(ステップS309:Y)、所与のエラー処理を行い(ステップS310)、一連の処理を終了する(エンド)。
3.3.2 HDDドライバラッパ部
図9に、図5のHDDドライバラッパ部232の処理例のフロー図を示す。図9は、例えばメインメモリ114に格納されるHDDドライバラッパプログラムの処理例を示し、処理部110のCPU112が該HDDドライバラッパプログラムを読み出して該プログラムに対応した処理を実行することで、図9の処理を実現できる。
図9に、図5のHDDドライバラッパ部232の処理例のフロー図を示す。図9は、例えばメインメモリ114に格納されるHDDドライバラッパプログラムの処理例を示し、処理部110のCPU112が該HDDドライバラッパプログラムを読み出して該プログラムに対応した処理を実行することで、図9の処理を実現できる。
まず、HDDドライバラッパ部232は、ファイルシステムFSからの読み出し要求(データセクタ読み出し要求、管理情報読み出し要求)、書き込み要求(データセクタ書き込み要求、管理情報書き込み要求)を監視している。そして、これらの要求があったとき、該要求に付されたアドレスに基づいて、ダイレクトコピー用の要求か否かを判別する。該アドレスがダイレクトコピー用のアドレスであると判別されたとき(ステップS320:Y)、ダイレクトコピー用の要求であると判断して、該要求に対応したログの生成処理を行い(ステップS321)、一連の処理を終了する(エンド)。ログの生成処理は、読み出し要求に対しては読み出し要求ログの生成が行われ、書き込み要求に対しては書き込み要求ログの生成が行われる。
一方、ステップS320において、該アドレスがダイレクトコピー用のアドレスではないと判別されたとき(ステップS320:N)、ダイレクトコピー用の要求ではないと判断して、該要求に対応したHDDドライバHDRに対する要求を行い(ステップS322)、一連の処理を終了する(エンド)。
図10に、図9のログの生成処理の一例のフロー図を示す。
HDDドライバラッパ部232は、まずファイルシステムFSからのデータセクタ読み出し要求DSRRQ1、管理情報読み出し要求MSRRQ1を監視している(ステップS330)。これらの読み出し要求があったとき(ステップS330:Y)、HDDドライバラッパ部232は、まず、読み出し要求の統合処理を行う(ステップS331)。
図11(A)、図11(B)に、図10の読み出し要求の統合処理の一例の説明図を示す。
読み出し要求の統合処理では、N(Nは自然数)回目の読み出し要求と(N+1)回目の読み出し要求とを統合して1つの読み出し要求にする処理をいう。このため、N回目の読み出し要求先の領域(セクタ)と(N+1)回目の読み出し要求先の領域(セクタ)とが連続するか否かを検出する。そして、図11(A)に示すように2つの読み出し要求先の領域が連続することが検出されたとき、HDDドライバラッパ部232は、図11(B)に示すように、連続する領域が1つの領域となるように2つの読み出し要求を1つの読み出し要求に統合する。より具体的には、図10のステップS331の処理は、HDD20連続するセクタ(記憶位置)に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理ということができる。このような統合処理を行うことで、読み出し要求ログRLOGの容量を削減できる。
図10に戻って説明を続ける。ステップS331において読み出し要求の統合処理が終了すると、HDDドライバラッパ部232は、読み出し要求ログRLOGの記録処理を行う(ステップS332)。読み出し要求ログRLOGの記録処理の詳細については、後述する。
続いて、HDDドライバラッパ部232は、各レコードの仮想バッファのアドレスをキーに、読み出し要求ログRLOGに対して、例えば該アドレス値が小さい順序に並び替えるソート処理を行う(ステップS333)。これにより、読み出し要求ログRLOGの読み出し要求が、仮想バッファアドレスの値の小さい順で並び替えられる。
続いて、HDDドライバラッパ部232は、ステップS332において生成された読み出し要求ログのサイズを検出し、予め決められた上限値を超えたか否かを判別する(ステップS334)。ステップS334において読み出し要求ログRLOGのサイズが上限値を超えたと判別されたとき(ステップS334:Y)、HDDドライバラッパ部232は、ファイルシステムFSに対してエラー応答を返し(ステップS335)、一連の処理を終了する(エンド)。一方、ステップS334において読み出し要求ログRLOGのサイズが上限値を超えていないと判別されたとき(ステップS334:N)、HDDドライバラッパ部232は、ファイルシステムFSに対して正常応答を返し(ステップS336)、一連の処理を終了する(エンド)。
ステップS330において、ファイルシステムFSからのデータセクタ読み出し要求DSRRQ1、管理情報読み出し要求MSRRQ1ではないとき(ステップS330:N)、HDDドライバラッパ部232は、ファイルシステムFSからのデータセクタ書き込み要求DSWRQ1、管理情報書き込み要求MSWRQ1であるか否かを検出する(ステップS337)。
これらの書き込み要求があったとき(ステップS337:Y)、HDDドライバラッパ部232は、図11(A)、図11(B)と同様に、書き込み要求の統合処理を行う(ステップS338)。より具体的には、図10のステップS338の処理は、USBデバイス30連続するセクタ(記憶位置)に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理ということができる。
ステップS338において書き込み要求の統合処理が終了すると、HDDドライバラッパ部232は、読み出し要求ログRLOGの記録処理と同様に、書き込み要求ログWLOGの記録処理を行う(ステップS339)。
続いて、HDDドライバラッパ部232は、各レコードの仮想バッファのアドレスをキーに、書き込み要求ログWLOGに対して、例えば該アドレス値が小さい順序に並び替えるソート処理を行う(ステップS340)。これにより、書き込み要求ログWLOGの書き込み要求が、仮想バッファアドレスの値の小さい順で並び替えられる。
続いて、HDDドライバラッパ部232は、ステップS339において生成された書き込み要求ログのサイズを検出し、予め決められた上限値を超えたか否かを判別する(ステップS341)。ステップS341において書き込み要求ログWLOGのサイズが上限値を超えたと判別されたとき(ステップS341:Y)、HDDドライバラッパ部232は、ファイルシステムFSに対してエラー応答を返し(ステップS342)、一連の処理を終了する(エンド)。一方、ステップS341において書き込み要求ログWLOGのサイズが上限値を超えていないと判別されたとき(ステップS341:N)、HDDドライバラッパ部232は、ファイルシステムFSに対して正常応答を返し(ステップS343)、一連の処理を終了する(エンド)。
次に、図10のログの記録処理について説明する。ログは、1又は複数のレコードを有し、各レコードが双方向リンクされている。
図12に、ログの1レコードの構成例の説明図を示す。
ログを構成する各レコードは、仮想バッファのアドレスであるバッファアドレスと、記憶装置のセクタ番号であるアドレスと、セクタ数とを含む。また、各レコードは、当該レコードの直前にリンクされるレコードを特定するための前レコード値である前レコードリンク情報と、当該レコードの直後にリンクされるレコードを特定するための次レコード値である次レコードリンク情報とを有する。
図13に、本実施形態におけるログの説明図を示す。
図10で記録されるログは、図13に示すように各レコードが双方向リンクされている。即ち、各レコードは、直前にリンクされるレコードを指定すると共に、直後にリンクされるレコードを指定する。
図10のログの記録処理では、図12及び図13で示すようなログを生成、更新する処理が行われる。
図14に、図10のステップS332のログ記録処理の一例のフロー図を示す。
図14では、図10のステップS332の読み出し要求ログRLOGの記録処理を例に説明するが、図10のステップS339の書き込み要求ログWLOGの記録処理も同様に処理できる。
まず、HDDドライバラッパ部232は、最初のレコード登録か否かを判別する(ステップS350)。最初レコード登録ではないと判別されたとき(ステップS350:N)、HDDドライバラッパ部232は、リンクされた最終のレコードの次への追加登録か否かを判別する(ステップS351)。本実施形態では、図13に示すように各レコードが双方向リンクされており、任意の2つのレコード間に新しいレコードを追加できるようになっている。
ステップS351において、最終レコードの次への追加登録であると判別されたとき(ステップS351:Y)、HDDドライバラッパ部232は、最終レコード番号を追加レコード番号として設定する(ステップS352)。一方、ステップS351において、最終レコードの次への追加登録ではないと判別されたとき(ステップS351:N)、HDDドライバラッパ部232は、追加対象の前レコードの次レコード値に、追加対象レコード番号を設定する(ステップS353)。
ステップS352又はステップS353に続いて、HDDドライバラッパ部232は、追加レコードの次レコード値に追加対象の前レコード内の次レコード値を設定する(ステップS354)。
続いて、HDDドライバラッパ部232は、追加レコードの前レコード値に、追加対象の前レコードのレコード番号を設定し(ステップS355)、更に、追加対象の前レコード内の次レコード値に、追加対象レコード番号を設定する(ステップS356)。
これに対して、ステップS350において、最初レコード登録であると判別されたとき(ステップS350:Y)、HDDドライバラッパ部232は、レコードの初期化処理を行う(ステップS357)。
ステップS356又はステップS357に続いて、HDDドライバラッパ部232は、登録レコード数をインクリメントして(ステップS358)、一連の処理を終了する(エンド)。
図15(A)、図15(B)に、ログの記録処理においてレコードを追加する処理の説明図を示す。
ここで、4つのレコードR0〜R3が、図15(A)に示すようにリンクされているものとする。図15(A)では、レコードR0、R1、R2、R3の順序でリンクされている。
このとき、図15(B)に示すように、レコードR4を、レコードR1、R2の間に挿入するものとする。この際、レコードR1の次レコード値に、追加対象のレコード番号である「4」を設定すると共に、レコードR2の前レコード値に追加対象のレコード番号である「4」を設定する。更に、追加対象のレコードR4の前レコード値に、レコードR1のレコード番号である「1」を設定すると共に、レコードR4の次レコード値に、レコードR2のレコード番号である「2」を設定する。
こうすることで、ログのレコードR0〜R4は、レコードR0、R1、R4、R2、R3の順序でリンクされることになる。
以上説明したように、図10〜図15(A)、図15(B)によれば、ファイルシステムFSからの読み出し要求を、ログサイズの拡大を抑えながら記録できるようになる。
なお、図9、図10、図11(A)、図11(B)、図12、図13、図14、図15(A)、図15(B)ではHDDドライバラッパ部232に説明したが、USBドライバラッパ部242も同様であるため、説明を省略する。
3.3.3 ダイレクトコピー実行部
図16に、図5のダイレクトコピー実行部220の処理例のフロー図を示す。
図16に、図5のダイレクトコピー実行部220の処理例のフロー図を示す。
図16は、例えばメインメモリ114に格納されるダイレクトコピープログラムの処理例を示し、処理部110のCPU112が該ダイレクトコピープログラムを読み出して該プログラムに対応した処理を実行することで、図16の処理を実現できる。
まず、ダイレクトコピー実行部220は、アプリケーションプログラムAPLからのダイレクトコピー処理の実行指示を待つ(ステップS400:N)。アプリケーションプログラムAPLからのダイレクトコピー処理の実行指示があったとき(ステップS400:Y)、ダイレクトコピー実行部220は、後述するダイレクトコピー実行処理を行う(ステップS401)。
次に、ダイレクトコピー実行部220は、HDDドライバラッパ部232からの読み出し承認が正常であるか否かを判別する(ステップS402)。読み出し承認が正常であるとき(ステップS402:Y)、ダイレクトコピー実行部220は、USBドライバラッパ部242からの書き込み承認が正常であるか否かを判別する(ステップS403)。書き込み承認が正常であるとき(ステップS403:Y)、ダイレクトコピー実行部220は、アプリケーションプログラム処理部200に対して正常応答を返し(ステップS404)、一連の処理を終了する(エンド)。
ステップS402において読み出し承認が正常ではないとき(ステップS402:N)、又はステップS403において書き込み承認が正常ではないとき(ステップS403:N)、ダイレクトコピー実行部220は、アプリケーションプログラム処理部200に対してエラー応答を返し(ステップS405)、一連の処理を終了する(エンド)。
図17に、図16のステップS401のダイレクトコピー実行処理の一例のフロー図を示す。
まず、ダイレクトコピー実行部220は、読み出し要求ログRLOGの先頭レコード、書き込み要求ログWLOGの先頭レコードを取得する(ステップS420)。
次に、ダイレクトコピー実行部220は、ステップS420で取得した読み出し要求ログRLOGの先頭レコード及び書き込み要求ログWLOGの先頭レコードに基づいて、読み出しサイズと書き込みサイズが一致するか否かを判別する(ステップS421)。そして、両サイズが不一致のとき(ステップS421:N)、ダイレクトコピー実行部220は、処理サイズ一致処理を行う(ステップS422)。HDD20やUSBデバイス30のフラグメンテーションや、HDD20のセクタサイズとUSBデバイス30のセクタサイズとの相違により、1回当たりのデータ読み出し処理とデータ書き込み処理の処理サイズが一致しないことがある。そのため、ステップS422の処理サイズ一致処理を行うことで、上記の事態でも正しくコピー処理を行うことができる。
ステップS421において両サイズが一致したとき(ステップS421:Y)、又はステップS422の後に、ダイレクトコピー実行部220は、処理サイズを記録し(ステップS423)、データの読み出し処理を実行する(ステップS424)。このデータの読み出し処理は、ダイレクトコピー実行部220がHDDドライバ部234に対してデータセクタ読み出し要求及び管理情報読み出し要求を発行することで実現できる。
次に、ダイレクトコピー実行部220は、データの書き込み処理を実行する(ステップS425)。このデータの書き込み処理は、ダイレクトコピー実行部220がUSBドライバ部244に対してデータセクタ書き込み要求及び管理情報書き込み要求を発行することで実現できる。
その後、ダイレクトコピー実行部220は、読み出しサイズと書き込みサイズとが一致するか否かを判別する(ステップS426)。これは、ステップS422において処理サイズの一致処理が行われると、読み出し側又は書き込み側のいずれかに余分な処理が必要になるため、この余分な処理を次のレコードの処理サイズと統合してコピー処理を行うためである。
ステップS426において、両サイズが一致しているとき(ステップS426:Y)、ダイレクトコピー実行部220は、次の読み出し要求レコードを取得する(ステップS427)。
ステップS426において、両サイズが不一致のとき(ステップS426:N)、ダイレクトコピー実行部220は、読み出し要求レコードの残分を取得し(ステップS428)、読み出し要求ログを更新する処理を行う(ステップS429)。このログを更新する処理は、処理サイズ一致処理により後回しとなったサイズ分を調整する処理を含む。
ステップS427又はステップS429に続いて、ダイレクトコピー実行部220は、データの書き込みサイズがデータの読み出しサイズと一致するか否かを判別する(ステップS430)。
ステップS430において両サイズが一致しているとき(ステップS430:Y)、ダイレクトコピー実行部220は、次の書き込み要求レコードを取得する(ステップS431)。
ステップS430において両サイズが不一致のとき(ステップS430:N)、ダイレクトコピー実行部220は、書き込み要求レコードの残分を取得し(ステップS432)、書き込み要求ログを更新する処理を行う(ステップS433)。このログを更新する処理は、処理サイズ一致処理により後回しとなったサイズ分を調整する処理を含む。
ステップS431又はステップS433に続いて、ダイレクトコピー実行部220は、最終レコードか否かを判別し(ステップS434)、最終レコードであると判別されたとき(ステップS434)、一連の処理を終了する(エンド)。一方、ステップS434において、最終レコードではないと判別されたとき(ステップS434)、ダイレクトコピー実行部220は、ステップS421に戻って処理を継続する。
図18に、図17のダイレクトコピー処理の説明図を示す。
図18では、読み出し要求ログRLOGが、レコードR0〜R2を有し、各レコードのセクタサイズが「8」、「4」、「12」であるものとする。また、書き込み要求ログWLOGが、レコードR0〜R2を有し、各レコードのセクタサイズが「10」、「4」、「10」であるものとする。
即ち、図18では、まず読み出し要求ログRLOGの先頭レコードであるレコードR0のセクタサイズ「8」と、書き込み要求ログWLOGの先頭レコードであるレコードR0のセクタサイズ「10」とが取得される。両サイズが異なるため、セクタサイズの小さい方に処理サイズを一致させる。その結果、まず、セクタサイズ「8」で、コピー処理が行われる。
次に、書き込み側のセクタサイズの残分が「2(=10−8)」であるため、読み出し要求ログRLOGのレコードR1のセクタサイズ「4」が取得される。このときも両サイズが異なるため、セクタサイズの小さい方に処理サイズを一致させる。その結果、セクタサイズ「2」で、コピー処理が行われる。
更に、読み出し側のセクタサイズの残分が「2(=4−2)」であるため、書き込み要求ログWLOGのレコードR1のセクタサイズ「4」が取得される。このときも両サイズが異なるため、セクタサイズの小さい方に処理サイズを一致させる。その結果、セクタサイズ「2」で、コピー処理が行われる。
続いて、書き込み側のセクタサイズの残分が「2(=4−2)」であるため、読み出し要求ログRLOGのレコードR2のセクタサイズ「12」が取得される。このときも両サイズが異なるため、セクタサイズの小さい方に処理サイズを一致させる。その結果、セクタサイズ「2」で、コピー処理が行われる。
更に、読み出し側のセクタサイズの残分が「10(=12−2)」であるが、両サイズが一致するため、セクタサイズ「10」でコピー処理が行われる。
以上説明したように、図18に示す例では、ログのレコード順にコピー処理を行おうとすると、読み出し側と書き込み側とでセクタサイズが異なる。そこで、本実施形態では、上述のように実際のコピー処理を実行するのに先立って、読み出しサイズと書き込みサイズとを一致させる処理を行うことで、非常に簡素な処理で正確なコピー処理を実現できる。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
10 電子機器、 20 HDD、 30 USBデバイス、 100 情報処理装置、
110 処理部、 112 CPU、 114 メインメモリ、 116 メモリバス、
140 データ転送制御部(データ転送制御回路)、 142 CPUI/F回路、
144 IDEI/F回路、 146 USBI/F回路、 148 制御部、
150 共通バス、 152 直結バス、 160 CPUバス、
162 IDEバス、 164 USBバス、
200 アプリケーションプログラム処理部、 210 ファイルシステム部、
220 ダイレクトコピー実行部、 230 HDDドライバ、
232 HDDドライバラッパ部、 234 HDDドライバ部、
240 USBドライバ、 242 USBドライバラッパ部、
244 USBドライバ部、 APL アプリケーションプログラム、
FS ファイルシステム、 DCP ダイレクトコピー実行モジュール、
HDR HDDドライバ、 HDRW HDDドライバラッパ、
RLOG 読み出し要求ログ、 UDR USBドライバ、
UDRW USBドライバラッパ、 WLOG 書き込み要求ログ
110 処理部、 112 CPU、 114 メインメモリ、 116 メモリバス、
140 データ転送制御部(データ転送制御回路)、 142 CPUI/F回路、
144 IDEI/F回路、 146 USBI/F回路、 148 制御部、
150 共通バス、 152 直結バス、 160 CPUバス、
162 IDEバス、 164 USBバス、
200 アプリケーションプログラム処理部、 210 ファイルシステム部、
220 ダイレクトコピー実行部、 230 HDDドライバ、
232 HDDドライバラッパ部、 234 HDDドライバ部、
240 USBドライバ、 242 USBドライバラッパ部、
244 USBドライバ部、 APL アプリケーションプログラム、
FS ファイルシステム、 DCP ダイレクトコピー実行モジュール、
HDR HDDドライバ、 HDRW HDDドライバラッパ、
RLOG 読み出し要求ログ、 UDR USBドライバ、
UDRW USBドライバラッパ、 WLOG 書き込み要求ログ
Claims (20)
- 第1の記憶装置のデータを第2の記憶装置にコピーするためのコピー装置であって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部とを含み、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うことを特徴とするコピー装置。 - 請求項1において、
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することを特徴とするコピー装置。 - 請求項1において、
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部を含み、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことを特徴とするコピー装置。 - 請求項3において、
前記アドレスが、
前記未使用領域を指定するアドレスであることを特徴とするコピー装置。 - 請求項1乃至4のいずれかにおいて、
前記読み出し要求ログ又は前記書き込み要求ログが所定のデータサイズを超えたことを条件に、前記第1又は第2のアクセス制御部がエラーを通知することを特徴とするコピー装置。 - 請求項1乃至5のいずれかにおいて、
前記第1のアクセス制御部が、
前記第1の記憶装置の連続する記憶位置に対する2以上の連続する読み出し要求を、1つの読み出し要求に統合する処理を行うことを特徴とするコピー装置。 - 請求項1乃至6のいずれかにおいて、
前記第2のアクセス制御部が、
前記第2の記憶装置の連続する記憶位置に対する2以上の連続する書き込み要求を、1つの書き込み要求に統合する処理を行うことを特徴とするコピー装置。 - 請求項1乃至7のいずれかにおいて、
前記コピー実行部が、
前記コピー処理に先立って、前記第1の記憶装置からの読み出しデータサイズと前記第2の記憶装置への書き込みデータサイズとを一致させる処理を行うことを特徴とするコピー装置。 - 請求項1乃至8のいずれかにおいて、
前記第1のアクセス制御部が、
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことを特徴とするコピー装置。 - 請求項1乃至9のいずれかにおいて、
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことを特徴とするコピー装置。 - 請求項1乃至10のいずれか記載のコピー装置により制御されるデータ転送制御回路であって、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送されることを特徴とするデータ転送制御装置。 - 請求項1乃至10のいずれか記載のコピー装置と、
ホストとの間でインタフェース処理を行うホストインタフェースと、
第1の記憶装置との間でインタフェース処理を行う第1の記憶装置用インタフェースと、
第2の記憶装置との間でインタフェース処理を行う第2の記憶装置用インタフェースと、
前記ホストインタフェース、前記第1及び第2の記憶装置用インタフェースの各インタフェース間のデータを転送するための共通バスと、
前記共通バスとは別個に、前記第1及び第2の記憶装置用インタフェースの間に設けられた直結バスとを含み、
前記コピー実行部が第1のモードを指定したときには、前記共通バスを介して、前記ホストインタフェース、前記第1又は第2の記憶装置用インタフェースの間でデータが転送され、
前記コピー実行部が第2のモードを指定したときには、前記直結バスを介して、前記第1及び第2の記憶装置用インタフェースの間でデータが転送されることを特徴とする情報処理装置。 - 請求項1乃至10のいずれか記載のコピー装置を含むことを特徴とする電子機器。
- 請求項11記載のデータ転送制御装置を含むことを特徴とする電子機器。
- 請求項12記載の情報処理装置を含むことを特徴とする電子機器。
- 第1の記憶装置のデータを第2の記憶装置にコピーするコピー処理を行う処理装置を制御するためのプログラムであって、
前記第1の記憶装置のデータを前記第2の記憶装置にコピーするコピー処理を実行するコピー実行部と、
前記第1の記憶装置に対して読み出し要求を行って該第1の記憶装置に対するアクセス制御を行う第1のアクセス制御部と、
前記第2の記憶装置に対して書き込み要求を行って該第2の記憶装置に対するアクセス制御を行う第2のアクセス制御部としての機能を、前記処理装置に実現させ、
前記第1のアクセス制御部が、前記第1の記憶装置からのデータの1又は複数の読み出し要求を記録した読み出し要求ログを生成すると共に、前記第2のアクセス制御部が、前記第2の記憶装置へのデータの1又は複数の書き込み要求を記録した書き込み要求ログを生成し、
前記コピー実行部が、
前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うと共に、前記書き込み要求ログに基づいて該データを前記第2の記憶装置に書き込む制御を行うことを特徴とするプログラム。 - 請求項16において、
各記憶装置に格納されたデータ及び該データの記憶位置を特定するための管理情報のうち前記管理情報に基づいて、前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記読み出し要求ログに記録すべきデータの読み出し要求を前記第1のアクセス制御部に対して指定し、又は前記書き込み要求ログに記録すべきデータの書き込み要求を前記第2のアクセス制御部に対して指定することを特徴とするプログラム。 - 請求項16において、
前記第1及び第2の記憶装置のデータを管理するためのファイル管理部としての機能を、前記処理装置に実現させ、
前記ファイル管理部が、
前記第1のアクセス制御部に対してコピー用のアドレスを指定し、又は前記第2のアクセス制御部に対して前記アドレスを指定し、
前記アドレスが所定の記憶領域を指定するときに、前記第1のアクセス制御部が前記読み出し要求ログを生成する処理を行うと共に、前記第2のアクセス制御部が前記書き込み要求ログを生成する処理を行うことを特徴とするプログラム。 - 請求項16乃至18のいずれかにおいて、
前記第1のアクセス制御部が、
前記読み出し要求ログを生成する第1のドライバラッパ部と、
前記第1の記憶装置に対するアクセス制御を行う第1のドライバ部とを含み、
前記第1のドライバ部が、
前記コピー実行部からの指示により、前記読み出し要求ログに基づいて前記第1の記憶装置からデータを読み出す制御を行うことを特徴とするプログラム。 - 請求項16乃至19のいずれかにおいて、
前記第2のアクセス制御部が、
前記書き込み要求ログを生成する第2のドライバラッパ部と、
前記第2の記憶装置に対するアクセス制御を行う第2のドライバ部とを含み、
前記第2のドライバ部が、
前記コピー実行部からの指示により、前記書き込み要求ログに基づいて前記第2の記憶装置へのデータを書き込む制御を行うことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007054459A JP2008217469A (ja) | 2007-03-05 | 2007-03-05 | コピー装置、データ転送制御装置、情報処理装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007054459A JP2008217469A (ja) | 2007-03-05 | 2007-03-05 | コピー装置、データ転送制御装置、情報処理装置及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008217469A true JP2008217469A (ja) | 2008-09-18 |
Family
ID=39837429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007054459A Pending JP2008217469A (ja) | 2007-03-05 | 2007-03-05 | コピー装置、データ転送制御装置、情報処理装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008217469A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012140813A1 (ja) * | 2011-04-14 | 2012-10-18 | パナソニック株式会社 | データ転送装置 |
JP2014181964A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | レーダ装置及びプログラム |
-
2007
- 2007-03-05 JP JP2007054459A patent/JP2008217469A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012140813A1 (ja) * | 2011-04-14 | 2012-10-18 | パナソニック株式会社 | データ転送装置 |
JP2014181964A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | レーダ装置及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
US8539147B2 (en) | Apparatus and method for controlling storage system | |
US10209922B2 (en) | Communication via a memory interface | |
JP2004139503A (ja) | 記憶装置及びその制御方法 | |
US11561715B2 (en) | Method and apparatus for presearching stored data | |
US20160350003A1 (en) | Memory system | |
US20130283003A1 (en) | Method and system for manipulating data | |
JP3895610B2 (ja) | 画像形成装置および画像形成方法 | |
JP2008217469A (ja) | コピー装置、データ転送制御装置、情報処理装置及びプログラム | |
JP5923913B2 (ja) | ストレージ装置、ストレージ装置の制御方法及びストレージシステム | |
JP2004326165A (ja) | メモリ制御装置およびメモリ制御方法 | |
US20060277326A1 (en) | Data transfer system and method | |
US11095778B2 (en) | Storing and outputting log for failure analysis in image forming apparatus equipped with SATA system, control method therefor, and storage medium | |
JP6243884B2 (ja) | 情報処理装置、プロセッサ、および情報処理方法 | |
JP2007172082A (ja) | 制御装置およびコピー制御方法 | |
JP5661313B2 (ja) | 記憶装置 | |
JP4984677B2 (ja) | 情報処理装置 | |
JP2007011659A (ja) | インターフェース装置、ディスクドライブ及びインターフェース制御方法 | |
JP2008158572A (ja) | データ記憶装置 | |
JP5216719B2 (ja) | 情報処理装置および制御装置 | |
JP2021179730A (ja) | 情報処理装置、その制御方法、およびプログラム | |
JP2001014219A (ja) | キャッシュ制御方法及びその装置 | |
JP2005267498A (ja) | ソフトウェアインストール方法およびシステム | |
JP2005122602A (ja) | キャッシュシステム、情報処理システム、キャッシュ方法、プログラム、及び記録媒体 | |
JP2022057870A (ja) | 制御装置および情報処理システムに関する。 |