(57)【特許請求の範囲】
【請求項１】
書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してホスト装置からデータを移動させるためのデータ移動プログラムであって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行うデータコピー機能と、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する元データ削除機能とを前記ホスト装置に実現させるデータ移動プログラム。
【請求項２】
前記データコピー機能は、前記外付け記憶装置にポーリングを行い、前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了したことを意味する返信を受けたときに前記コピーの元のデータを削除する、請求項１に記載のデータ移動プログラム。
【請求項３】
前記キャッシュメモリにコピーされたデータが前記記憶媒体へ書き込まれている間、前記コピーの元のデータへのアクセスを抑制するアクセス抑制機能をコンピュータに実現させる、請求項１又は請求項２に記載のデータ移動プログラム。
【請求項４】
前記アクセス抑制機能は、前記キャッシュメモリにコピーされたデータが前記記憶媒体へ書き込まれている間、前記コピーの元のデータのパスを変更する、請求項３に記載のデータ移動プログラム。
【請求項５】
前記アクセス抑制機能は、前記キャッシュメモリにコピーされたデータが前記記憶媒体へ書き込まれている間、前記コピーの元のデータの属性を隠し属性にする、請求項３又は請求項４に記載のデータ移動プログラム。
【請求項６】
前記アクセス抑制機能は、前記キャッシュメモリにコピーされたデータが前記記憶媒体へ書き込まれている間、前記コピーの元のデータへのアクセス権を制限する、請求項３〜請求項５のいずれか一項に記載のデータ移動プログラム。
【請求項７】
前記アクセス抑制機能は、前記キャッシュメモリにコピーされたデータが前記記憶媒体へ書き込まれている間、前記コピーの元のデータをロックする、請求項３〜請求項６のいずれか一項に記載のデータ移動プログラム。
【請求項８】
前記データコピー機能は、前記外付け記憶装置にポーリングを行い、前記キャッシュメモリにコピーされたデータのうち前記記憶媒体へ書き込みが終了したデータの位置を表す返信を受けるとともに、電源消失後の電源投入後に前記返信で表される位置から後の前記移動対象のデータを前記キャッシュメモリにコピーする、請求項１〜請求項７のいずれか一項に記載のデータ移動プログラム。
【請求項９】
書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してホスト装置からデータを移動するデータ移動方法であって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記ホスト装置が、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行い、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記ホスト装置が、前記コピーの元のデータを削除する、データ移動方法。
【請求項１０】
書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してデータを移動させるホスト装置であって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行うデータコピー手段と、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する元データ削除手段とを備えたホスト装置。
【請求項１１】
書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置と、この外付け記憶装置に対してデータを移動させるホスト装置とを備えるデータ移動システムであって、
前記ホスト装置は、オペレーティングシステムが実現させるオペレーティング機能により該ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルして移動対象のデータを前記キャッシュメモリにコピーするための処理を行い、
前記外付け記憶装置は、前記キャッシュメモリにコピーされたデータを前記記憶媒体へ書き込み、
前記ホスト装置は、前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する、データ移動システム。
【請求項１２】
オペレーティングシステムにより実現されるオペレーティング機能を有するホスト装置から書き込むデータを入力してキャッシュメモリに格納するキャッシュ手段と、前記キャッシュメモリに格納したデータを記憶媒体に書き込む書き込み手段と、を備えた外付け記憶装置において、
前記キャッシュメモリに格納されたデータの前記記憶媒体へ書き込みが完了したことを前記ホスト装置へ通知する通知手段を備えた外付け記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステムによりオペレーティング機能が実現されるホスト装置から外付け記憶装置にデータを移動させるためのデータ移動プログラム、データ移動方法、ホスト装置、データ移動システム、及び、外付け記憶装置に関する。
【背景技術】
【０００２】
近年、ハードディスク装置等のストレージ装置（記憶装置）は、転送速度の向上を目的として、キャッシュメモリを内蔵している。このキャッシュメモリには、揮発性半導体メモリであるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等が用いられている。ＳＤＲＡＭは、ある程度の高速アクセス性と容量を安価に両立することができる一方、繰り返しデータの再書き込み（リフレッシュ）が必要であり、停電等の電源消失時にデータが消失してしまう。
【０００３】
特許文献１には、揮発性のキャッシュメモリを有する磁気ディスク装置に不揮発性メモリを設けたバックアップシステムが示されている。このシステムは、キャッシュメモリへライトキャッシュするのと同時に同じデータを不揮発性メモリに書き込み、停電後に不揮発性メモリに保持されているライトバックされていないデータを不揮発性メモリから磁気ディスク装置にライトバックする。
また、特許文献１には、不揮発性のフラッシュメモリにバックアップ用電源を供給するバックアップシステムも示されている。このシステムは、停電時に揮発性のバックアップ用キャッシュメモリのデータをフラッシュメモリに書き込み、再び電源が投入された場合はフラッシュメモリに保持されたデータを磁気ディスク装置へライトバックする。
【０００４】
特許文献２には、揮発性のＤＲＡＭを有するハードディスク装置に不揮発性のＦｅＲＡＭ（Ferroelectric Random Access Memory；強誘電体メモリ）を設けることが示されている。このハードディスク装置は、所定のアドレス空間への書き込みである場合にデータをＦｅＲＡＭに書き込み、所定のアドレス空間以外への書き込みである場合にデータをＤＲＡＭに書き込み、電源消失後、ＦｅＲＡＭに保持されたデータを使用して電源が切れる前の状態から引き続いて処理を続行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−３４５３５号公報
【特許文献２】特開２００７−１４８９０５号公報
【特許文献３】特開２００７−２７２８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストレージ装置の大容量化及び高速化に伴い、キャッシュメモリを大容量化することが検討されている。大容量のキャッシュメモリに高速アクセス可能な不揮発性半導体メモリを用いることは、コストがかかりすぎ、現実的ではない。一方、オペレーティング機能が実現されるパーソナルコンピュータ等のホスト装置からストレージ装置へデータを移動したが不揮発性の記憶媒体へ書き込みが完了していないときに停電等で電源が消失した場合、既にホスト装置にはデータが無く、記憶媒体に書き込まれずに揮発性のキャッシュメモリに残されているデータが復旧不能に消失する可能性がある。揮発性のキャッシュメモリを大容量化する程、このリスクが増すことになる。
【０００７】
上述した先行技術のように揮発性のキャッシュメモリとは別に不揮発性メモリを設けることも、不揮発性メモリの大容量化及び高速アクセス性を得るためにはコストがかかりすぎる。そもそも、別途不揮発性メモリを設けること自体、コストアップに繋がる。
また、揮発性のキャッシュメモリ全体にバックアップ用電源を供給することも、バックアップ用電源の供給回路にコストがかかる。
【０００８】
なお、特許文献３には、コンテンツのコピーが許されない等、伝送対象となるコンテンツがＳｏｕｒｃｅとＳｉｎｋに同時に存在しないことを保証することを目的としたコンテンツ伝送システムが示されている。このシステムは、Ｓｉｎｋに記録中のコンテンツはＭｏｖｅの終了処理が成功するまで利用できない状態におき、終了処理が確認されると、Ｓｉｎｋ側の記録コンテンツを有効化して利用できる状態にするのと同時に、Ｓｏｕｒｃｅ側で元のコンテンツを消去若しくは利用不能にする処理を行う。この元のコンテンツを消去若しくは利用不能にする処理は、コンテンツが複数存在しないことを保証するため、Ｓｉｎｋ側のコンテンツが有効化されると即座に行われる必要がある。
従って、Ｓｉｎｋ側の記録媒体が揮発性であると、電源が消失した場合、Ｓｉｎｋ側の揮発性記録媒体に記録されたコンテンツが復旧不能に消失する。このため、Ｓｉｎｋに不揮発性記録媒体を使用する必要があるが、大容量仕様の不揮発性記録媒体にコンテンツを記録するには時間がかかり、大容量の不揮発性記録媒体に高速アクセス可能な不揮発性半導体メモリを用いることはコストがかかりすぎる。
【０００９】
以上を鑑み、本発明は、キャッシュメモリを有する外付け記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能な技術を提供する目的を有している。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明は、書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してホスト装置からデータを移動させるためのデータ移動プログラムであって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行うデータコピー機能と、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する元データ削除機能とを前記ホスト装置に実現させる態様を有する。
【００１１】
また、本発明は、書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してホスト装置からデータを移動するデータ移動方法であって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記ホスト装置が、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行い、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記ホスト装置が、前記コピーの元のデータを削除する、態様を有する。
【００１２】
さらに、本発明は、書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置に対してデータを移動させるホスト装置であって、
オペレーティングシステムが前記ホスト装置に実現させるオペレーティング機能により前記ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルし移動対象のデータを前記キャッシュメモリにコピーするための処理を行うデータコピー手段と、
前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する元データ削除手段とを備えた態様を有する。
【００１３】
さらに、本発明は、書き込むデータをキャッシュメモリに一旦格納し該格納したデータを記憶媒体に書き込む外付け記憶装置と、この外付け記憶装置に対してデータを移動させるホスト装置とを備えるデータ移動システムであって、
前記ホスト装置は、オペレーティングシステムが実現させるオペレーティング機能により該ホスト装置から前記外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理をキャンセルして移動対象のデータを前記キャッシュメモリにコピーするための処理を行い、
前記外付け記憶装置は、前記キャッシュメモリにコピーされたデータを前記記憶媒体へ書き込み、
前記ホスト装置は、前記キャッシュメモリにコピーされたデータの前記記憶媒体への書き込みが完了した後、前記コピーの元のデータを削除する、態様を有する。
【００１４】
すなわち、オペレーティングシステムがホスト装置に実現させるオペレーティング機能によりホスト装置から外付け記憶装置へのデータ移動処理が開始されるとき、前記オペレーティング機能によるデータ移動処理がキャンセルされ、移動対象のデータをキャッシュメモリにコピーするための処理が行われる。キャッシュメモリにコピーされたデータの記憶媒体への書き込みが完了した後、コピーの元のデータが削除される。これにより、ホスト装置から外付け記憶装置へデータを移動したが記憶媒体へ書き込みが完了していないときに電源が消失した場合でも、コピーの元のデータが残される。従って、キャッシュメモリを有する外付け記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能となる。
【００１５】
ここで、上記外付け記憶装置には、ハードディスクドライブといった磁気記憶装置、ＳＳＤ（Solid State Drive）といったフラッシュメモリドライブ、ブルーレイディスクドライブやＤＶＤ（Digital Versatile Disc）ドライブといった光ディスクドライブ、等が含まれる。
上記ホスト装置には、パーソナルコンピュータといったコンピュータ、テレビジョンや記録再生装置といった放送受信装置、等が含まれる。
上記データコピー機能は、上記データ移動処理の開始が通知されたときに該データ移動処理をキャンセルしてもよい。
上記オペレーティングシステムがホスト装置に実現させるオペレーティング機能にホスト装置から外付け記憶装置へデータをコピーする機能があるとき、上記データコピー機能は、前記オペレーティング機能に移動対象のデータをキャッシュメモリにコピーさせてもよい。
上記元データ削除機能は、キャッシュメモリにコピーされたデータの記憶媒体への書き込みが完了したことが通知されたときにコピーの元のデータを削除してもよい。
【００１６】
上記書き込みの完了を通知する外付け記憶装置には、単体でも発明が存在する。すなわち、本発明は、オペレーティングシステムにより実現されるオペレーティング機能を有するホスト装置から書き込むデータを入力してキャッシュメモリに格納するキャッシュ手段と、前記キャッシュメモリに格納したデータを記憶媒体に書き込む書き込み手段と、を備えた外付け記憶装置において、
前記キャッシュメモリに格納されたデータの前記記憶媒体へ書き込みが完了したことを前記ホスト装置へ通知する通知手段を備えた態様を有する。この態様も、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることができる。
【発明の効果】
【００１７】
請求項１、請求項９〜請求項１１に係る発明によれば、キャッシュメモリを有する外付け記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能となる。
請求項２に係る発明では、記憶媒体へのデータ書き込み完了後に元データを削除する好適な構成を提供することができる。
請求項３に係る発明では、移動対象のデータがキャッシュメモリにコピーされたときに元データへのアクセスが抑制されるので、ユーザの利便性を向上させることができる。
請求項４に係る発明では、移動対象のデータがキャッシュメモリにコピーされたときに元データのパスから元データが消えるので、ユーザの利便性を向上させることができる。
請求項５に係る発明では、移動対象のデータがキャッシュメモリにコピーされたときに元データが隠されるので、ユーザの利便性を向上させることができる。
請求項６に係る発明では、移動対象のデータがキャッシュメモリにコピーされたときに元データへのアクセスの全部又は一部が禁止されるので、ユーザの利便性を向上させることができる。
請求項７に係る発明では、移動対象のデータがキャッシュメモリにコピーされたときに元データがロックされて元データへのアクセスの全部又は一部が禁止されるので、ユーザの利便性を向上させることができる。
請求項８に係る発明では、電源再投入後の処理時間を少なくすることができる。
請求項１２に係る発明では、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能なキャッシュメモリ付き外付け記憶装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】データ移動システム１の構成の概略を例示するブロック図である。
【図２】ホスト装置１０の構成の概略を例示するブロック図である。
【図３】記憶装置３０のコントローラ５０が行うステータス返信処理を模式的に例示するフローチャートである。
【図４】オペレーティングシステム１４ａがホスト装置１０に実現させるcopy処理を記憶装置３０の処理とともに例示するフローチャートである。
【図５】ドライバ１４ｂがホスト装置１０に実現させるmove処理をオペレーティングシステム１４ａによる処理及び記憶装置３０の処理とともに例示するフローチャートである。
【図６】通常時のデータの移動を模式的に例示する図である。
【図７】ドライバ１４ｂがホスト装置１０に実現させる電源投入時の処理をオペレーティングシステム１４ａによる処理及び記憶装置３０の処理とともに例示するフローチャートである。
【図８】電源喪失時のデータの移動を模式的に例示する図である。
【図９】アクセス抑制機能Ｆ３を実現させるmove処理をオペレーティングシステム１４ａによる処理及び記憶装置３０の処理とともに例示するフローチャートである。
【図１０】（ａ）はパス変更機能Ｆ３１を実現させるmove処理の要部を例示するフローチャート、（ｂ）はパスを変更する様子を模式的に例示する図、（ｃ）はパス変更前の元ファイルＤ１の格納場所を例示する図、（ｄ）はパス変更後に元ファイルＤ１が格納されていた場所を例示する図、である。
【図１１】（ａ）は隠し属性設定機能Ｆ３２を実現させるmove処理の要部を例示するフローチャート、（ｂ）は元ファイルＤ１の格納場所を例示する図、である。
【図１２】（ａ）はアクセス権制限機能Ｆ３３を実現させるmove処理の要部を例示するフローチャート、（ｂ）は元ファイルＤ１の格納場所を例示する図、（ｃ）は元ファイルＤ１の選択操作時に表示される画面を例示する図、である。
【図１３】（ａ）はロック機能Ｆ３４を実現させるmove処理の要部を例示するフローチャート、（ｂ）は元ファイルＤ１の格納場所を例示する図、（ｃ）は元ファイルＤ１の選択操作時に表示される画面を例示する図、である。
【図１４】（ａ）〜（ｇ）はアクセス抑制機能Ｆ３を実現させるmove処理の要部を例示するフローチャートである。
【図１５】変形例においてドライバ１４ｂがホスト装置１０に実現させるmove処理をオペレーティングシステム１４ａによる処理及び記憶装置３０の処理とともに例示するフローチャートである。
【図１６】変形例においてドライバ１４ｂがホスト装置１０に実現させる電源投入時の処理をオペレーティングシステム１４ａによる処理及び記憶装置３０の処理とともに例示するフローチャートである。
【図１７】変形例において電源喪失時のデータの移動を模式的に例示する図である。
【図１８】比較例においてオペレーティングシステムがホスト装置に実現させるmove処理を記憶装置の処理とともに示すフローチャートである。
【図１９】比較例において電源喪失時のデータの移動を模式的に示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を説明する。むろん、以下に説明する実施形態は、本発明を例示するものに過ぎない。
【００２０】
（１）データ移動システムの例：
図１〜８は、データ移動システム１の一例を示している。図１に示すデータ移動システム１は、外付け記憶装置３０と、この記憶装置３０のためのソフトウェアであるドライバ（ＤＲ）１４ｂを記憶したホスト装置１０とを有している。データ移動システム１の概略は、以下の通りである。
【００２１】
記憶装置３０は、記憶媒体を構成するハードディスクドライブ（ＨＤＤ）４０、コントローラ５０、キャッシュメモリを構成するＤＤＲ３  ＳＤＲＡＭ（Double Data Rate 3 Synchronous Dynamic Random Access Memory）６０、を少なくとも有する外付け磁気記憶装置である。記憶装置３０は、書き込むデータをＳＤＲＡＭ６０に一旦格納し、この格納したデータをＨＤＤ４０に書き込む。コントローラ５０に接続されたＨＤＤ４０は、コンピュータ読み取り可能でデータを書き換え可能な不揮発性の磁気記憶媒体を含む。キャッシュメモリに一旦格納されたデータが書き込まれる記憶媒体は、ＨＤＤ以外にも、ＳＳＤ（Solid State Drive）の不揮発性半導体メモリといったフラッシュメモリ、ブルーレイディスクやＤＶＤといった光ディスク、等でもよい。すなわち、記憶装置は、磁気記憶装置の他、フラッシュメモリドライブ、光ディスクドライブ、等でもよい。コントローラ５０は、データキャッシュを制御するキャッシュ手段Ｕ４、キャッシュデータの書き込み手段Ｕ５、ホスト装置１０への通知手段Ｕ６、を少なくとも備えたＵＳＢ（Universal Serial Bus）−ＡＴＡ（AT Attachment）変換部、例えば、ＵＳＢ−ＳＡＴＡ（Serial AT Attachment）変換部である。コントローラ５０の主要部分は、ＩＣ（集積回路）で構成される。コントローラ５０に接続されたＳＤＲＡＭ６０は、揮発性半導体メモリであるＤＲＡＭの一種である。
【００２２】
ホスト装置１０は、オペレーティングシステム（ＯＳ）１４ａとドライバ（ＤＲ）１４ｂを少なくとも記憶した記憶部１４を備えている。ドライバ１４ｂは、記憶装置３０に対してホスト装置１０からデータを移動させるためのデータ移動プログラムである。ドライバ１４ｂは、図２に示すデータコピー機能Ｆ１及び元データ削除機能Ｆ２を少なくともホスト装置（コンピュータ）１０に実現させる。ホスト装置１０及び記憶装置３０には、ＮＴＦＳ（NT File System）といったファイルシステム等を採用することができる。
【００２３】
ＯＳ１４ａがホスト装置１０に実現させるオペレーティング機能によりホスト装置１０から記憶装置３０へのデータ移動処理が開始されるとき、データコピー機能Ｆ１は、このデータ移動処理をキャンセルし元ファイル（移動対象のデータ）Ｄ１（図６参照。）をＳＤＲＡＭ６０にコピーするためのcopy処理を行う。前記オペレーティング機能にホスト装置１０から記憶装置３０へデータをコピーする機能があるとき、データコピー機能Ｆ１は、前記オペレーティング機能に元ファイルＤ１をＳＤＲＡＭ６０にコピーさせてもよい。ＳＤＲＡＭ６０のコピーファイル（コピーされたデータ）Ｄ２のＨＤＤ４０への書き込みが完了した後、元データ削除機能Ｆ２は、元ファイル（コピーの元のデータ）Ｄ１を削除する。元データ削除機能Ｆ２は、ＳＤＲＡＭ６０にコピーされたファイル（図６のＤ２）のＨＤＤ４０への書き込みが完了したことが通知されたときに元ファイルＤ１を削除してもよい。ホスト装置１０は、パーソナルコンピュータ、テレビジョン、記録再生装置、等が考えられる。
【００２４】
上記オペレーティング機能によりホスト装置１０から記憶装置３０へのデータ移動処理が開始されるとき、該データ移動処理がキャンセルされ、元ファイルＤ１をＳＤＲＡＭ６０にコピーするためのcopy処理が行われる。ＳＤＲＡＭ６０にコピーされたファイル（Ｄ２）のＨＤＤ４０への書き込みが完了した後、元ファイルＤ１が削除される。これにより、ホスト装置１０から記憶装置３０へファイルを移動したがＨＤＤ４０へ書き込みが完了していないときに電源が消失した場合でも、元ファイルＤ１が残される。従って、キャッシュメモリを有する記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能となる。
【００２５】
図１に示す記憶装置３０は、コントローラ５０の外にキャッシュ用のＳＤＲＡＭ６０を設けた特徴を有する。コントローラ内にあったキャッシュメモリをコントローラ外に出すことにより、キャッシュ領域を容易に増やすことができ、ＵＳＢ３．０の高速転送（５Ｇｂｐｓ）を活かしたストレージ製品の製品化が可能となる。また、ＳＤＲＡＭを疑似ハードディスクドライブやＲＡＭディスクといったデバイスとして活用することにより、高速アクセス可能なドライブを実現することができる。さらに、ＳＤＲＡＭとＨＤＤとの両方にデータを書き込むＲＡＩＤ  １（Redundant Arrays of Inexpensive Disks 1）といったミラーリングを実現することができる。加えて、ＨＤＤの目次部分とも言える管理部分をキャッシュメモリに書き込むことにより、ファイルを参照する時間を短縮することができる。
【００２６】
上記コントローラ５０は、ＵＳＢ  インターフェイス（Ｉ／Ｆ）５１、ＤＭＡコントローラ（Direct Memory Access Controller）５２、制御部５３、ＳＡＴＡインターフェイス（Ｉ／Ｆ）５４、ＤＤＲインターフェイス（Ｉ／Ｆ）５５、等が内部バスに接続されて互いにデータを入出力可能とされている。
【００２７】
ホスト装置１０に接続されるＵＳＢ  Ｉ／Ｆ５１は、所定の通信規格に従ってホスト装置１０とシリアル通信を行うための通信Ｉ／Ｆであり、プロトコルの変換部である。ＵＳＢ規格には、ＵＳＢ３．０、ＵＳＢ２．０、等がある。ＵＳＢ  Ｉ／Ｆ５１は、複数種類の通信規格に従ってシリアル通信を行ってもよい。むろん、コントローラ５０とホスト装置１０との通信は、パラレル通信等でもよい。内部バスとともにＵＳＢ  Ｉ／Ｆ５１に接続されたＤＭＡコントローラ（ＤＭＡＣ）５２は、ＭＰＵ（Micro-Processing Unit）５３ａを介さずにデータをＤＭＡ転送する。例えば、ＤＭＡＣ５２は、ＵＳＢ  Ｉ／Ｆ５１からＤＤＲ  Ｉ／Ｆ５５へデータを直接転送し、ＤＤＲ  Ｉ／Ｆ５５からＳＡＴＡ  Ｉ／Ｆ５４へデータを直接転送する。ＤＭＡＣ５２は、AES（Advanced Encryption Standard）といった共通鍵暗号方式等でデータを暗号化したり復号化したりしてもよい。制御部５３は、ＭＰＵ５３ａと内部メモリ５３ｂを少なくとも有し、記憶装置３０全体の動作を制御する。ＭＰＵ５３ａは、内部メモリ５３ｂに格納されたＵＳＢ−ＳＡＴＡ変換処理用の情報に基づいてＵＳＢ−ＳＡＴＡ変換処理を行う。内部メモリ５３ｂは、例えばＲＯＭ（Read Only Memory）とＲＡＭ等で構成することができる。ＨＤＤ４０に接続されたＳＡＴＡ  Ｉ／Ｆ５４は、所定のシリアル規格に従ってＨＤＤ４０にアクセスするためのＡＴＡ  Ｉ／Ｆである。ＳＤＲＡＭ６０に接続されたＤＤＲ  Ｉ／Ｆ５５は、ＤＤＲ仕様の半導体メモリを内部バスに接続するためのメモリＩ／Ｆである。
【００２８】
以上より、ＵＳＢ  Ｉ／Ｆ５１とＤＭＡコントローラ（ＤＭＡＣ）５２と制御部５３とＤＤＲ  Ｉ／Ｆ５５は、ホスト装置１０から書き込むデータを入力してキャッシュメモリ（ＳＤＲＡＭ６０）に格納するキャッシュ手段Ｕ４を構成する。また、ＤＭＡコントローラ（ＤＭＡＣ）５２と制御部５３とＳＡＴＡ  Ｉ／Ｆ５４とＤＤＲ  Ｉ／Ｆ５５は、キャッシュメモリ（ＳＤＲＡＭ６０）に格納したデータを記憶媒体（ＨＤＤ４０）に書き込む書き込み手段Ｕ５を構成する。さらに、ＵＳＢ  Ｉ／Ｆ５１と制御部５３は、キャッシュメモリ（ＳＤＲＡＭ６０）に格納されたデータの記憶媒体（ＨＤＤ４０）へ書き込みが完了したことをホスト装置１０へ通知する通知手段Ｕ６を構成する。
【００２９】
図２は、ホスト装置１０の構成の概略をブロック図により例示している。このホスト装置１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ１２、ＲＡＭ１３、記憶部１４、入力部１５、出力部１６、データ入出力部１７、ＵＳＢインターフェイス（Ｉ／Ｆ）１８、等がバス１０ａに接続されて互いに情報を入出力可能とされている。ＯＳ１４ａとドライバ１４ｂを少なくとも記憶する記憶部１４には、ハードディスクドライブといった磁気記憶装置、フラッシュメモリといった不揮発性半導体メモリ、等を用いることができる。入力部１５は、例えば、キーボードとポインティングデバイスといった操作入力装置等とすることができる。出力部１６は、例えば、ディスプレイといった画像出力装置及びスピーカといった音声出力装置等とすることができる。データ入出力部１７は、コンピュータ読み取り可能な記録媒体が着脱可能に接続されたときに該記録媒体に対してデータを入出力する。記憶装置３０に接続されるＵＳＢ  Ｉ／Ｆ１８は、所定の通信規格に従って周辺機器とシリアル通信を行うための通信Ｉ／Ｆである。この通信Ｉ／Ｆは、パラレル通信を行うインターフェイス等でもよい。
【００３０】
ＯＳ１４ａは、記憶部１４に記憶されるアプリケーションプログラム（ＡＰＬ）からの指示に応じたオペレーティング機能をホスト装置１０に実現させる。記憶装置用のドライバ１４ｂは、ＡＰＬの一種であり、例えば、ホスト装置１０にインストールされ、各種機能Ｆ１〜Ｆ３をホスト装置１０に実現させる。データコピー機能Ｆ１はデータコピー手段Ｕ１に対応し、元データ削除機能Ｆ２は元データ削除手段Ｕ２に対応し、アクセス抑制機能Ｆ３はアクセス抑制手段Ｕ３に対応している。アクセス抑制機能Ｆ３は、パス変更機能Ｆ３１、隠し属性設定機能Ｆ３２、アクセス権制限機能Ｆ３３、ロック機能Ｆ３４、の中から選ばれる一以上の機能を備える。パス変更機能Ｆ３１はパス変更手段Ｕ３１に対応し、隠し属性設定機能Ｆ３２は隠し属性設定手段Ｕ３２に対応し、アクセス権制限機能Ｆ３３はアクセス権抑制手段Ｕ３３に対応し、ロック機能Ｆ３４はロック手段Ｕ３４に対応している。アクセス抑制機能Ｆ３は、ＳＤＲＡＭ６０にコピーされたファイル（Ｄ２）がＨＤＤ４０へ書き込まれている間、前記コピーの元のデータ（Ｄ１）へのアクセスを抑制する。これにより、元ファイルＤ１がＳＤＲＡＭ６０にコピーされたときに元ファイルＤ１へのアクセスが抑制されるので、使い勝手が向上する。
【００３１】
なお、ドライバ（データ移動プログラム）１４ｂは、ＣＤ（Compact Disk）−ＲＯＭといった光ディスク等のコンピュータ読み取り可能な記録媒体でユーザに供給されてもよいし、インターネット等の通信網を介してサーバからホスト装置にダウンロードされてもよいし、ＨＤＤ４０に記憶されてユーザに供給されてもよい。従って、本発明は、データ移動プログラムを記録したコンピュータ読み取り可能な媒体と記憶装置とを備えた記憶装置セット、データ移動プログラムと記憶装置を組み合わせたプログラム付き記憶装置、データ移動プログラムを記録した記憶装置、等を含む。
【００３２】
図１８は、比較例においてＯＳがホスト装置に実現させるmove処理をＳＤＲＡＭ付き外付け記憶装置の処理とともにフローチャートにより示している。図１９は、比較例において電源喪失時のデータの移動を模式的に示している。ＳＤＲＡＭは、揮発性のキャッシュメモリである。ＯＳがホスト装置に実現させるオペレーティング機能によりホスト装置からファイルを記憶装置へ移動させる指示が受け付けられると、ホスト装置は、図１８に示すmove処理を開始する。このmove処理は、マルチタスクにより他の処理と並列して行われる。
【００３３】
move処理が開始すると、ホスト装置は、アプリケーションプログラム（ＡＰＬ）からのmove指示である場合、ＡＰＬにmove通知を出す（ステップＳ９０２。以下、「ステップ」の記載を省略。）。このmove通知には、オペレーティング機能により移動元及び移動先のパス情報等が付加される。ＡＰＬからmove許可の返信を受けると、ホスト装置は、移動対象のファイルのコピー指示を記憶装置へ送信し、記憶装置のＳＤＲＡＭへのファイルのcopy処理を開始する（Ｓ９０４）。具体的には、移動対象のファイルデータを記憶装置へ送出することを開始する。図１９では、ステップＳＴ９１に相当し、ホスト装置の記憶部に元ファイルＤ１が記憶されていることが示されている。コピー指示を受信した記憶装置は、ホスト装置から送られるファイルデータをＳＤＲＡＭに一旦格納するcopy処理を開始する（Ｓ９２２）。例えば、移動元のファイル「test.dat」がホスト装置の記憶部のパス「C:\Fol」にあり、移動先が記憶装置のＨＤＤのパス「H:\Fol2」である場合、「C:\Fol\test.dat」のファイルデータが順次ＳＤＲＡＭに格納されていくことになる。
Ｓ９２４では、ＳＤＲＡＭに格納されたファイルデータをＨＤＤに書き込むことを開始する。上記例では、ＳＤＲＡＭ内の「test.dat」が記憶装置のＨＤＤのパス「H:\Fol2」に書き込まれていくことになる。
【００３４】
ホスト装置では、ファイルデータを全て記憶装置へ送出したcopy終了を確認すると（Ｓ９０６）、copyの元ファイルを削除し（Ｓ９０８）、move処理を終了させる。上記例では、パス「C:\Fol」から「test.dat」を削除することになる。図１９のＳＴ９２は、一例として、ＳＤＲＡＭにファイルデータがコピーされ、ホスト装置の記憶部から元ファイルが削除され、ＳＤＲＡＭのコピーファイルＤ２がＨＤＤへ書き込まれることが開始される状態が示されている。
元ファイルが削除されるとき、記憶装置では、通常、ＳＤＲＡＭからＨＤＤへファイルデータが書き込まれている途中である。図１９のＳＴ９３は、ＳＤＲＡＭのコピーファイルＤ２が途中までＨＤＤへ書き込まれたことが示されている。図１８の例では、元ファイル削除から時間Ｔ９の後にＳＤＲＡＭからＨＤＤへのファイルデータの書き込みが終了する（Ｓ９２６）ことが示されている。
【００３５】
図１９に示すようにホスト装置から記憶装置のＳＤＲＡＭへデータを移動したがＨＤＤへ書き込みが完了していないときに停電等で電源が消失した場合、ＳＴ９４に示すように既にホスト装置にはデータが無い。ＳＴ９５に示すように電源が再投入されたときに残されているのは、せいぜい、ＨＤＤに書き込まれた途中までの不完全なデータ（Ｄ３）であり、ＨＤＤに書き込まれずにＳＤＲＡＭに残されていたデータが復旧不能に消失してしまう。キャッシュ領域を増やす程、このリスクが増すことになる。
【００３６】
なお、揮発性のＳＤＲＡＭに電源消失時のバックアップ電源を供給する回路を設けることは、この回路のためのコストがかかる。大容量のＳＤＲＡＭをＳＲＡＭ（Static RAM）など高速アクセス可能な不揮発性半導体メモリに置き換えることも、コストがかかりすぎる。
本技術は、キャッシュメモリを有する記憶装置についてデータキャッシュのための不揮発性メモリやバックアップ用電源を不要にする効果を奏する。
【００３７】
図３は、本技術に係る記憶装置３０のコントローラ５０が行うステータス返信処理を模式的なフローチャートにより例示している。この処理は、記憶装置３０の電源がオンにされている間、繰り返され、マルチタスクにより他の処理と並列して行われる。このステータス返信処理を行うコントローラ５０は、上述した通知手段Ｕ６を構成する。
【００３８】
ステータス返信処理が開始すると、コントローラ５０は、ホスト装置１０からのポーリングによる問い合わせを受信したか否かを判断する（Ｓ１０２）。ポーリングとは、所定の手順に従ってホスト装置が外付け記憶装置といった周辺機器と連携して動作する際に送信要求又は処理要求がないか周辺機器に聞いて回る方式をいう。ポーリングによる問い合わせを受信していないと判断した場合、コントローラ５０は、ステータス返信処理を終了させる。一方、ポーリングによる問い合わせを受信したと判断した場合、コントローラ５０は、現在のステータスを判定する（Ｓ１０４）。現在のステータスには、「書き込み中」、「書き込み完了」、等がある。例えば、コントローラ５０は、ＳＤＲＡＭ６０に一旦格納されたコピーファイルＤ２がＨＤＤ４０へ書き込まれている状態であるか否かを判断し、書き込まれている状態であると判断した場合に「書き込み中」を表す判定情報を生成する。また、コントローラ５０は、コピーファイルＤ２のＨＤＤ４０への書き込みが完了したか否かを判断し、完了したと判断した場合に「書き込み完了」を表す判定情報を生成する。
【００３９】
その後、コントローラ５０は、現在のステータスをホスト装置１０へ返信し（Ｓ１０６）、ステータス返信処理を終了させる。このようにして、記憶装置は、キャッシュメモリに格納されたデータの記憶媒体への書き込みが完了したことをホスト装置へ通知する。
「書き込み完了」を返信することにより、コントローラ５０は、ＳＤＲＡＭ６０に格納されたコピーファイルＤ２のＨＤＤ４０へ書き込みが完了したことをホスト装置１０へ通知する。ＵＳＢは一方向の通信が前提であるため、ホスト装置と記憶装置がＵＳＢで接続される場合、通常、コマンドを送り始めるのがホスト装置からしかできない。このため、周辺機器である記憶装置からポーリング無しに自発的に「書き込み完了」を通知するのは容易ではない。ホスト装置から記憶装置へのポーリングに対する返信に「書き込み完了」の情報を含めることにより、キャッシュメモリに一旦格納されたコピーファイルの記憶媒体への書き込みが完了したか否かをホスト装置が容易に知ることができる。
【００４０】
図４は、ＯＳ１４ａがホスト装置１０に実現させるcopy処理を記憶装置３０のコントローラ５０の処理とともにフローチャートにより例示している。ＯＳ１４ａがホスト装置１０に実現させるオペレーティング機能によりホスト装置１０からファイルを記憶装置３０へコピーする指示が受け付けられると、ホスト装置１０は、copy処理を開始する。このcopy処理は、マルチタスクにより他の処理と並列して行われる。ここで、Ｓ２２２の処理を行うコントローラ５０がキャッシュ手段Ｕ４を構成し、Ｓ２２４の処理を行うコントローラ５０が書き込み手段Ｕ５を構成する。
【００４１】
copy処理が開始すると、ホスト装置１０は、ＡＰＬからのcopy指示である場合、ＡＰＬにcopy通知を出す（Ｓ２０２）。このcopy通知には、オペレーティング機能によりコピー元及びコピー先のパス情報等が付加される。ＡＰＬからcopy許可の返信を受けると、ホスト装置１０は、コピー対象のファイルのコピー指示を記憶装置３０へ送信し、記憶装置３０のＳＤＲＡＭ６０へのファイルのcopy処理を開始する（Ｓ２０４）。具体的には、コピー対象のファイルデータを記憶装置３０へ送出することを開始する。コピー指示を受信した記憶装置３０は、ホスト装置１０から送られるファイルデータをＳＤＲＡＭ６０に一旦格納するcopy処理を開始する（Ｓ２２２）。例えば、コピー元のファイル「test.dat」がホスト装置１０の記憶部１４のパス「C:\Fol」にあり、コピー先が記憶装置３０のＨＤＤ４０のパス「H:\Fol2」である場合、「C:\Fol\test.dat」のファイルデータが順次ＳＤＲＡＭ６０に格納されていくことになる。
Ｓ２２４では、ＳＤＲＡＭ６０に格納されたファイルデータをＨＤＤ４０に書き込むことを開始する。上記例では、ＳＤＲＡＭ６０内の「test.dat」が記憶装置３０のＨＤＤ４０のパス「H:\Fol2」に書き込まれていくことになる。
【００４２】
ホスト装置１０では、ファイルデータを全て記憶装置３０へ送出したcopy終了を確認すると（Ｓ２０６）、copy処理を終了させる。
上記copy終了が確認されるとき、記憶装置３０では、通常、ＳＤＲＡＭ６０からＨＤＤ４０へファイルデータが書き込まれている途中である。図４の例では、copy終了が確認された後にＳＤＲＡＭ６０からＨＤＤ４０へのファイルデータの書き込みが終了する（Ｓ２２６）ことが示されている。
【００４３】
図５は、ドライバ１４ｂがホスト装置１０に実現させるmove処理をＯＳ１４ａによる処理及び記憶装置３０のコントローラ５０の処理とともにフローチャートにより例示している。図６は、通常時のデータの移動を模式的に例示している。図５に示す処理は、マルチタスクにより他の処理と並列して行われる。ここで、Ｓ３２２〜Ｓ３２８はデータコピー機能Ｆ１及びデータコピー手段Ｕ１に対応し、Ｓ３３０は元データ削除機能Ｆ２及び元データ削除手段Ｕ２に対応し、Ｓ３４２はキャッシュ手段Ｕ４に対応し、Ｓ３４４は書き込み手段Ｕ５に対応し、Ｓ３４８は通知手段Ｕ６に対応している。
【００４４】
オペレーティング機能によりホスト装置１０から元ファイルＤ１を記憶装置３０へ移動させる指示が受け付けられると、ホスト装置１０は、ＯＳ１４ａによるmove処理を開始し、ドライバ１４ｂ側にmove通知を出す（Ｓ３０２）。このmove通知には、オペレーティング機能により移動元及び移動先のパス情報等が付加される。move通知を受けたドライバ側は、パス情報を取得する（Ｓ３２２）。具体的には、パス情報を記憶部１４等に記憶し、電源消失時にパス情報が残るようにするとよい。Ｓ３２４では、ＯＳ１４ａによるmove処理をキャンセルするためのmoveキャンセルを返信する。ＯＳによるmove処理をキャンセルするのは、move処理終了時にＯＳにより元データが即座に削除されるため、この元データ削除をドライバ側から止めることができないためである。このmoveキャンセルの返信を受けたＯＳ１４ａ側は、自らのmove処理をキャンセルする（Ｓ３０４）。
【００４５】
ドライバ側は、Ｓ３２２で取得したパス情報を使ってＯＳ側にcopy指示を出す（Ｓ３２６）。例えば、移動元のファイル「test.dat」がホスト装置１０の記憶部１４のパス「C:\Fol」にあり、移動先が記憶装置３０のＨＤＤ４０のパス「H:\Fol2」である場合、copy指示は、取得した「C:\Fol\test.dat」がコピー元のパス情報とされ、取得した「H:\Fol2」がコピー先のパス情報とされる。
【００４６】
上記copy指示を受けたＯＳ側は、図４で示したフローに従ってcopy処理を行う。図４のＳ２０２でcopy通知が出される場合、ドライバ側は、copy許可を返信すればよい。ＯＳ側は、移動対象の元ファイルＤ１のコピー指示を記憶装置３０へ送信し、記憶装置３０のＳＤＲＡＭ６０への元ファイルＤ１のcopy処理を開始する（Ｓ３０６）。具体的には、移動対象のファイルデータを記憶装置３０へ送出することを開始する。図６では、ステップＳＴ１に相当し、ホスト装置１０の記憶部１４に元ファイルＤ１が記憶されていることが示されている。コピー指示を受信した記憶装置３０は、ホスト装置１０から送られるファイルデータをＳＤＲＡＭ６０に一旦格納するcopy処理を開始する（Ｓ３４２）。上記例では、「C:\Fol\test.dat」のファイルデータが順次ＳＤＲＡＭ６０に格納されていくことになる。
【００４７】
上記copy処理を開始した後、ドライバ１４ｂを実行するホスト装置１０は、記憶装置３０を含む外付けデバイスへのポーリングを開始する（Ｓ３２８）。このようにして、ドライバを実行するホスト装置１０は、オペレーティング機能によりホスト装置１０から記憶装置３０へのデータ移動処理が開始されるとき、該データ移動処理をキャンセルし移動対象のデータをキャッシュメモリにコピーするための処理を行う。ポーリングによる問い合わせを受信した記憶装置３０は、ＳＤＲＡＭ６０のコピーファイルＤ２をＨＤＤ４０に書き込んでいる最中であれば、図３で示した「書き込み中」を表す判定情報を生成し、現在のステータス「書き込み中」を返信する。このポーリングは、所定の間隔で（例えば定期的に）繰り返し行われる。
なお、記憶装置３０へのポーリングを行ってから所定期間内に記憶装置３０から返信が有ったか否かを判断してもよい。所定期間内に記憶装置３０から返信が無かった場合、記憶装置３０との通信が正常でないことを意味するため、「書き込みに失敗しました」という旨のエラーをディスプレイ（出力部１６）等に表示してもよい。この表示の際には、Ｓ３２２で取得したパス情報を表示してもよい。エラーの原因には、ＨＤＤへの書き込みが失敗したといった記憶装置のハードウェア異常、等が考えられる。本move処理はドライバにより行われるため、ＯＳ側で出されるエラーをドライバ側が受け取って判断したうえでエラーを出してもよい。
【００４８】
記憶装置３０は、ＳＤＲＡＭ６０に格納されたコピーファイルＤ２をＨＤＤ４０に書き込むことを開始する（Ｓ３４４）。上記例では、ＳＤＲＡＭ６０内の「test.dat」が記憶装置３０のＨＤＤ４０のパス「H:\Fol2」に書き込まれていくことになる。
ＯＳ１４ａを実行するホスト装置１０は、ファイルデータを全て記憶装置３０へ送出したcopy終了をドライバ側へ通知すると（Ｓ３０８）、元ファイルＤ１を削除せずにＯＳ１４ａによるmove処理を終了させる。図６のＳＴ２は、一例として、ＳＤＲＡＭ６０にファイルデータがコピーされ、ホスト装置１０の記憶部１４に元ファイルが残され、ＳＤＲＡＭ６０のコピーファイルＤ２がＨＤＤ４０へ書き込まれることが開始される状態が示されている。
【００４９】
上記copy終了が通知されるとき、記憶装置３０では、通常、ＳＤＲＡＭ６０からＨＤＤ４０へファイルデータが書き込まれている途中である。図６のＳＴ３は、ＳＤＲＡＭ６０のコピーファイルＤ２が途中までＨＤＤ４０へ書き込まれたことが示されている。図４の例では、copy終了が確認された後にＳＤＲＡＭ６０からＨＤＤ４０へのファイルデータの書き込みが終了する（Ｓ３４６）ことが示されている。図６のＳＴ４は、コピーファイルＤ２のＨＤＤ４０への書き込みが完了したが、ホスト装置１０の記憶部１４に元ファイルＤ１が残されている状態が示されている。
【００５０】
記憶装置３０は、ＳＤＲＡＭ６０にコピーされたデータ（Ｄ２）のＨＤＤ４０への書き込みを完了した後（Ｓ３４６）、ホスト装置１０からポーリングによる問い合わせを受信したときに図３で示した「書き込み完了」を表す判定情報を生成し、現在のステータス「書き込み完了」（Ｒ１）を返信する（Ｓ３４８）。この返信Ｒ１を受けたホスト装置１０は、元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。図６のＳＴ５は、元ファイルＤ１に対応した移動ファイルＤ３が記憶装置３０のＨＤＤ４０に記憶され、ホスト装置１０の記憶部１４から元ファイルＤ１が削除された状態が示されている。
【００５１】
ここで、図８に示すようにホスト装置１０から記憶装置３０のＳＤＲＡＭ６０へデータを移動したがＨＤＤ４０への書き込みが完了していないときに停電等で電源が消失した場合、ＳＴ６に示すようにＳＤＲＡＭ６０からは残されていたデータ（Ｄ２）が消えるものの、ホスト装置１０の記憶部１４には元ファイルＤ１が残されている。そこで、電源再投入後、残されている元ファイルＤ１を利用してデータ移動処理をやり直すことができる。
【００５２】
図７は、電源消失後の電源投入後にドライバ１４ｂがホスト装置１０に実現させる電源投入時の処理をＯＳ１４ａによる処理及び記憶装置３０のコントローラ５０の処理とともにフローチャートにより例示している。図８は、電源喪失時のデータの移動を模式的に例示している。図７に示す処理は、マルチタスクにより他の処理と並列して行われる。ここで、Ｓ３６２，Ｓ３２６，Ｓ３２８はデータコピー機能Ｆ１及びデータコピー手段Ｕ１に対応している。
【００５３】
電源が再投入されると、ホスト装置１０は、ドライバ１４ｂによる電源投入時の処理を開始し、図５のＳ３２２で取得したパス情報で表されるパスに元ファイルＤ１が有るか否かを判断する（Ｓ３６２）。前記取得パスに元ファイルＤ１が無ければ、図５のmove処理が正常終了しているので、ドライバ１４ｂを実行するホスト装置１０は、電源投入時の処理を終了させる。前記取得パスに元ファイルＤ１があれば、図５のmove処理が正常に終了せず、図６のＳＴ６に示すような状態であるので、ドライバを実行するホスト装置１０は、Ｓ３２６〜Ｓ３３０の処理を行う。Ｓ３２６では、前記取得パス情報を使ってＯＳ側にcopy指示を出す。例えば、取得パス情報に移動元の「C:\Fol\test.dat」及び移動先の「H:\Fol2」があれば、copy指示は、「C:\Fol\test.dat」がコピー元のパス情報とされ、「H:\Fol2」がコピー先のパス情報とされる。
【００５４】
ＯＳを実行するホスト装置１０は、Ｓ３０６〜Ｓ３０８の処理を行い、移動対象の元ファイルＤ１を記憶装置３０のＳＤＲＡＭ６０にコピーする。図８のＳＴ１は、ホスト装置１０の記憶部１４に元ファイルＤ１が記憶され、この元ファイルＤ１を記憶装置３０へ移動させることを開始する状態を示している。以下、図６に示した手順でデータ移動処理が行われる。記憶装置３０は、Ｓ３４２〜Ｓ３４８の処理を行い、ホスト装置１０から元ファイルＤ１のデータを入力してＳＤＲＡＭ６０に格納し、この格納したコピーファイルＤ２をＨＤＤ４０に書き込み、この書き込みが完了したことをホスト装置１０へ通知する。ドライバを実行するホスト装置１０は、ポーリングに対して「書き込み完了」の返信Ｒ１を受けると、元ファイルＤ１を削除し、move処理を終了させる。
【００５５】
以上説明したように、オペレーティング機能によるデータ移動処理がキャンセルされ、移動対象のデータ（Ｄ１）をキャッシュメモリにコピーするための処理が行われる。キャッシュメモリにコピーされたデータ（Ｄ２）の記憶媒体（４０）への書き込みが完了した後、コピーの元のデータ（Ｄ１）が削除される。これにより、ホスト装置１０から記憶装置３０へデータを移動したが記憶媒体（４０）へ書き込みが完了していないときに電源が消失した場合でも、コピーの元のデータ（Ｄ１）が残される。従って、キャッシュメモリを有する記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能となる。
【００５６】
なお、本発明は、種々の変形例が考えられる。
例えば、移動元のデータは、ホスト装置１０の管理下にある記憶装置３０外のデータであればよく、ホスト装置に内蔵された光ディスクドライブに挿入されたデータ書き換え可能な光ディスクに書き込まれたデータ、記憶装置３０とは別にホスト装置に接続されたドライブのデータ書き換え可能なメモリに書き込まれたデータ、等でもよい。
記憶装置からホスト装置への通知は、ＵＳＢ接続の場合にはポーリングによる返信が好ましいものの、記憶装置からホスト装置への自発的な送信でもよい。例えば、記憶装置は、キャッシュメモリに格納されたデータの記憶媒体への書き込みが完了したことをポーリングによらず自発的に送信してもよい。
【００５７】
（２）アクセス抑制機能を設けた例：
上述した例は、ホスト装置１０からＳＤＲＡＭ６０へのデータのコピーが完了してもこのコピーデータがＨＤＤ４０に書き込まれている間はホスト装置１０の記憶部１４の元ファイルＤ１にアクセス可能な状態となっている。そこで、図２に示すアクセス抑制機能Ｆ３をコンピュータに実現させ、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）が記憶媒体（４０）へ書き込まれている間、前記コピーの元のデータ（Ｄ１）へのアクセスを抑制してもよい。
【００５８】
図９は、アクセス抑制機能Ｆ３を実現させるmove処理をＯＳ１４ａによる処理及び記憶装置３０の処理とともにフローチャートにより例示している。図９に示す処理は、図５で示した処理にＳ４０２の処理が加わっている。すなわち、Ｓ４０２は、アクセス抑制機能Ｆ３及びアクセス抑制手段Ｕ３に対応している。
ＯＳ１４ａを実行するホスト装置１０がドライバ１４ｂ側にcopy終了を通知すると（Ｓ３０８）、ドライバ１４ｂを実行するホスト装置１０は、元ファイルＤ１へのアクセスを抑制する（Ｓ４０２）。記憶装置３０がＳＤＲＡＭ６０のコピーファイルＤ２をＨＤＤ４０へ書き込むことを完了して「書き込み完了」を返信すると、返信Ｒ１を受けたホスト装置１０は、元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。これにより、移動対象のデータ（Ｄ１）がキャッシュメモリ（６０）にコピーされたときにドライバ１４ｂ以外からの元データ（Ｄ１）へのアクセスが抑制されるので、ユーザに違和感を与えたり不用意にアクセスされたりすることが抑制され、使い勝手が向上する。
【００５９】
なお、アクセスの抑制には、読み書き、移動、コピー、削除といった一切のアクセスを抑制することの他、書き込み、移動、削除といった一部のアクセスのみを抑制することも含まれる。また、キャッシュメモリにコピーされたデータが記憶媒体へ書き込まれている間にアクセスを抑制することには、書き込まれている期間の一部のみアクセスを抑制することも含まれる。
【００６０】
（３）パス変更機能を設けた例：
図１０（ａ）は、アクセス抑制機能Ｆ３としてパス変更機能Ｆ３１を実現させるmove処理の要部をフローチャートにより例示している。図１０（ｂ）は、パスを変更する様子を模式的に例示している。図１０（ｃ）は、パス変更前の元ファイルＤ１の格納場所を例示している。図１０（ｄ）は、パス変更後に元ファイルＤ１が格納されていた場所を例示している。図１０（ａ）に示す処理は、図９のＳ４０２がＳ４１２に置き換わっている。すなわち、Ｓ４１２は、パス変更機能Ｆ３１及びパス変更手段Ｕ３１に対応している。
【００６１】
Ｓ３０８でcopy終了が通知されたドライバ１４ｂ側は、元ファイルＤ１についてのファイルアロケーションテーブル（ＦＡＴ）の情報を変更する（Ｓ４１２）。ＦＡＴの情報は、ファイルの格納場所を表している。例えば、同じ記憶部１４内で別の格納場所を表す情報にＦＡＴの情報を書き換えると、見かけ上、ファイルが書き換え後の格納場所へ移動する。
【００６２】
例えば、図１０（ｂ）に示すように、元ファイル「test.dat」の格納場所がパス「C:\Fol」であり、この元ファイルが削除されるまで暫定的に格納する場所が同じ記憶部１４内のパス「C:\temp」であるとすると、Ｓ４１２では「C:\Fol\test.dat」が「C:\temp\test.dat」に書き換えられる。これにより、パス変更前には図１０（ｃ）に示すようにパス「C:\Fol」に元ファイル「test.dat」が存在する一方、パス変更後には図１０（ｄ）に示すようにパス「C:\Fol」から元ファイル「test.dat」が消える。
【００６３】
記憶装置３０が「書き込み完了」を返信すると、返信Ｒ１を受けたホスト装置１０は、パス「C:\temp」に存在する元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。これにより、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）が記憶媒体（４０）へ書き込まれている間、前記コピーの元のデータ（Ｄ１）のパスが変更される。移動対象のデータ（Ｄ１）がキャッシュメモリ（６０）にコピーされたときに元データ（Ｄ１）のパス（C:\Fol）から元データ（Ｄ１）が消えるので、ユーザに違和感を与えたり不用意にアクセスされたりすることが抑制され、ユーザの利便性が向上する。
なお、元データのパスの変更には、元ファイルのパスの変更の他、ファイルを格納した元フォルダのパスの変更等も含まれる。また、キャッシュメモリにコピーされたデータが記憶媒体へ書き込まれている間にコピーの元のデータのパスを変更することには、書き込まれている期間の一部のみパスを変更することも含まれる。
【００６４】
（４）隠し属性設定機能を設けた例：
図１１（ａ）は、アクセス抑制機能Ｆ３として隠し属性設定機能Ｆ３２を実現させるmove処理の要部をフローチャートにより例示している。図１１（ｂ）は、元ファイルＤ１の格納場所を例示している。図１１（ａ）に示す処理は、図９のＳ４０２がＳ４２２に置き換わっている。すなわち、Ｓ４２２は、隠し属性設定機能Ｆ３２及び隠し属性設定手段Ｕ３２に対応している。
【００６５】
Ｓ３０８でcopy終了が通知されたドライバ１４ｂ側は、元ファイルＤ１の属性を隠しファイル（隠し属性）に設定する（Ｓ４２２）。ファイルの属性には、他のＡＰＬから見えないようにする隠しファイル設定にするか否かの属性が含まれる。例えば、図１０（ｃ）で示したようにパス「C:\Fol」に元ファイル「test.dat」が格納され、この元ファイルの属性が隠しファイルに設定されると、図１０（ｄ）に示すように、他のＡＰＬから元ファイル「test.dat」が隠される。元ファイルは、隠しファイルに設定されても、実際には図１１（ｂ）に示すように格納場所「C:\Fol」に存在している。隠しファイルに設定された元ファイルには、通常、他のＡＰＬからアクセスすることができない。
【００６６】
記憶装置３０が「書き込み完了」を返信すると、返信Ｒ１を受けたホスト装置１０は、パス「C:\Fol」に存在する元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。これにより、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）が記憶媒体（４０）へ書き込まれている間、前記コピーの元のデータ（Ｄ１）の属性パスが隠し属性に変更される。移動対象のデータ（Ｄ１）がキャッシュメモリ（６０）にコピーされたときに元データ（Ｄ１）が隠されるので、ユーザに違和感を与えたり不用意にアクセスされたりすることが抑制され、ユーザの利便性が向上する。
なお、隠し属性には、元ファイルについての隠しファイルの他、ファイルを格納した元フォルダについての隠しフォルダ等も含まれる。また、キャッシュメモリにコピーされたデータが記憶媒体へ書き込まれている間にコピーの元のデータの属性を隠し属性にすることには、書き込まれている期間の一部のみ隠し属性にすることも含まれる。
【００６７】
（５）アクセス権制限機能を設けた例：
図１２（ａ）は、アクセス抑制機能Ｆ３としてアクセス権制限機能Ｆ３３を実現させるmove処理の要部をフローチャートにより例示している。図１２（ｂ）は、元ファイルＤ１の格納場所を例示している。図１２（ｃ）は、元ファイルＤ１の選択操作時に出力部１６に表示される画面を例示している。図１２（ａ）に示す処理は、図９のＳ４０２がＳ４３２に置き換わっている。すなわち、Ｓ４３２は、アクセス権制限機能Ｆ３３及びアクセス権制限手段Ｕ３３に対応している。
【００６８】
Ｓ３０８でcopy終了が通知されたドライバ１４ｂ側は、元ファイルＤ１へのアクセス権を制限する（Ｓ４３２）。アクセス権の制限には、アクセス権を変更することによりアクセスの全部又は一部を禁止することも含まれる。ファイルのアクセス権の制限は、このファイルにアクセスする権限を他のユーザに与えないことである。ＮＴＦＳといったファイルシステムの場合、同じコンピュータに複数のユーザを設定することが可能であり、ユーザ毎にアクセス権の制限を設定することができる。例えば、ホスト装置１０にユーザ「usr1」とユーザ「usr2」が設定され、「usr1」のみ元ファイルＤ１へのアクセス権が設定されていた（アクセス権が制限されていなかった）場合、元ファイルＤ１へのアクセス権を「usr1」から「usr2」に変更して「usr1」の元ファイルＤ１へのアクセス権を制限することができる。このような場合、図１２（ｂ）に示すようにパス「C:\Fol」に元ファイル「test.dat」が格納されていても、この元ファイルへのアクセス権が制限されていると、この元ファイルを選択操作しても図１２（ｃ）に例示するようにアクセスが拒否される。ＡＰＬから元ファイルへアクセスしようとしても、同様にアクセスが拒否される。
【００６９】
記憶装置３０が「書き込み完了」を返信すると、返信Ｒ１を受けたホスト装置１０は、パス「C:\Fol」に存在する元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。これにより、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）が記憶媒体（４０）へ書き込まれている間、前記コピーの元のデータ（Ｄ１）へのアクセス権が制限される。移動対象のデータ（Ｄ１）がキャッシュメモリ（６０）にコピーされたときに元データ（Ｄ１）へのアクセスの全部又は一部が禁止されるので、ユーザに違和感を与えたり不用意にアクセスされたりすることが抑制され、ユーザの利便性が向上する。
なお、アクセス権の制限には、読み書き、移動、コピー、削除といった一切のアクセスを禁止することの他、書き込み、移動、削除といった一部のアクセスのみを禁止することも含まれる。アクセス権の制限の対象は、元ファイルの他、ファイルを格納した元フォルダ等も含まれる。さらに、キャッシュメモリにコピーされたデータが記憶媒体へ書き込まれている間にコピーの元のデータへのアクセス権を制限することには、書き込まれている期間の一部のみアクセス権を制限することも含まれる。
【００７０】
（６）ロック機能を設けた例：
図１３（ａ）は、アクセス抑制機能Ｆ３としてロック機能Ｆ３４を実現させるmove処理の要部をフローチャートにより例示している。図１３（ｂ）は、元ファイルＤ１の格納場所を例示している。図１３（ｃ）は、元ファイルＤ１の選択操作時に出力部１６に表示される画面を例示している。データのロックは、他のＡＰＬからデータにアクセスすることができないようにする排他制御を意味する。図１３（ａ）に示す処理は、図９のＳ４０２がＳ４４２に置き換わっている。すなわち、Ｓ４４２は、ロック機能Ｆ３４及びロック手段Ｕ３４に対応している。
【００７１】
Ｓ３０８でcopy終了が通知されたドライバ１４ｂ側は、元ファイルＤ１をロックする（Ｓ４４２）。ファイルをロックする処理は、他のＡＰＬからファイルにアクセスすることができないようにする排他処理を意味する。例えば、図１３（ｂ）に示すようにパス「C:\Fol」に元ファイル「test.dat」が格納されていても、この元ファイルがロックされていると、この元ファイルを選択操作しても図１３（ｃ）に例示するようにアクセスが拒否される。他のＡＰＬから元ファイルへアクセスしようとしても、同様にアクセスが拒否される。
【００７２】
記憶装置３０が「書き込み完了」を返信すると、返信Ｒ１を受けたホスト装置１０は、パス「C:\Fol」に存在する元ファイルＤ１を削除し（Ｓ３３０）、move処理を終了させる。これにより、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）が記憶媒体（４０）へ書き込まれている間、前記コピーの元のデータ（Ｄ１）がロックされる。移動対象のデータ（Ｄ１）がキャッシュメモリ（６０）にコピーされたときに元データ（Ｄ１）がロックされて元データ（Ｄ１）へのアクセスの全部又は一部が禁止されるので、ユーザに違和感を与えたり不用意にアクセスされたりすることが抑制され、ユーザの利便性が向上する。
なお、データのロックには、読み書き、移動、コピー、削除といった一切のアクセスを禁止することの他、書き込み、移動、削除といった一部のアクセスのみを禁止することも含まれる。ロックの対象は、元ファイルの他、ファイルを格納した元フォルダ等も含まれる。さらに、キャッシュメモリにコピーされたデータが記憶媒体へ書き込まれている間にコピーの元のデータをロックすることには、書き込まれている期間の一部のみ元データをロックすることも含まれる。
【００７３】
（７）その他のアクセス抑制機能を設けた例：
上述したアクセス抑制機能（Ｆ３１〜Ｆ３４）は、一部又は全部を任意に組み合わせることが可能である。これにより、より強力に元データを守ることができ、ユーザに違和感を与えたり不用意にアクセスされたりすることがさらに抑制され、ユーザの利便性がさらに向上する。
【００７４】
例えば、図１４（ａ）に示すように、パス変更機能Ｆ３１と隠し属性設定機能Ｆ３２とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、図１０（ｄ）で示したように元の格納場所（C:\Fol）から元ファイル（test.dat）が消えるうえ、暫定的な格納場所（C:\temp）からも（test.dat）が隠される。
図１４（ｂ）に示すように、パス変更機能Ｆ３１とアクセス権制限機能Ｆ３３とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、元の格納場所（C:\Fol）から元ファイル（test.dat）が消えるうえ、暫定的なパス（C:\temp）に格納された元ファイル（test.dat）へのアクセスが拒否される。
【００７５】
図１４（ｃ）に示すように、パス変更機能Ｆ３１とロック機能Ｆ３４とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、元の格納場所（C:\Fol）から元ファイル（test.dat）が消えるうえ、暫定的なパス（C:\temp）に格納された元ファイル（test.dat）へのアクセスが拒否される。
図１４（ｄ）に示すように、隠し属性設定機能Ｆ３２とアクセス権制限機能Ｆ３３とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、図１１（ｂ）で示したようにパス（C:\Fol）に格納された元ファイル（test.dat）が隠されるうえ、この元ファイル（test.dat）へのアクセスが拒否される。
【００７６】
図１４（ｅ）に示すように、隠し属性設定機能Ｆ３２とロック機能Ｆ３４とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、パス（C:\Fol）に格納された元ファイル（test.dat）が隠されるうえ、この元ファイル（test.dat）へのアクセスが拒否される。
図１４（ｆ）に示すように、パス変更機能Ｆ３１と隠し属性設定機能Ｆ３２とアクセス権制限機能Ｆ３３とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、元の格納場所（C:\Fol）から元ファイル（test.dat）が消え、暫定的な格納場所（C:\temp）から（test.dat）が隠されるうえ、この元ファイル（test.dat）へのアクセスが拒否される。
【００７７】
図１４（ｇ）に示すように、パス変更機能Ｆ３１と隠し属性設定機能Ｆ３２とロック機能Ｆ３４とを組み合わせたアクセス抑制機能Ｆ３を設けてもよい。この場合、元の格納場所（C:\Fol）から元ファイル（test.dat）が消え、暫定的な格納場所（C:\temp）から（test.dat）が隠されるうえ、この元ファイル（test.dat）へのアクセスが拒否される。
【００７８】
（８）電源再投入時の処理の変形例：
図８のＳＴ６に示すようにコピーファイルＤ２の一部がＨＤＤ４０に書き込まれて電源が消失したとき、電源再投入時にコピーファイルＤ２の書き込みを途中から再開することができると、書き込み処理を少なくすることができるので好適である。
例えば、複数の元ファイルＦＬｉ（ｉはファイルの識別子）をホスト装置１０から記憶装置３０へ移動させるとき、どの元ファイルＦＬｉまでＨＤＤ４０に書き込まれたかをホスト装置１０で把握することができると、書き込まれたファイルＦＬｉを除いてデータ移動処理を再開することができる。
【００７９】
図３で示した記憶装置３０のステータス返信処理のＳ１０４で現在のステータスを判定する際、コントローラ５０は、ファイルＦＬｉを書き込んでいる最中であれば「ＦＬｉ書き込み中」を表す判定情報を生成し、ファイルＦＬｉの書き込みを完了したときには「ＦＬｉ書き込み完了」を表す判定情報を生成してもよい。この場合、コントローラ５０は、Ｓ１０６で「ＦＬｉ書き込み中」や「ＦＬｉ書き込み完了」のステータスを返信することができる。「ＦＬｉ書き込み完了」の返信は、記憶媒体への書き込みが終了したデータの位置を表す返信である。例えば、ｎ個（ｎは２以上の整数）の元ファイルＦＬｉ（ｉは１からｎまでの整数）をホスト装置１０から記憶装置３０へ移動させ、ｉが１からｎまで大きくなる順にファイルＦＬｉをＨＤＤ４０へ書き込む場合、「ＦＬｉ書き込み完了」で表されるｉはｉ番目までのファイルＦＬｉがＨＤＤ４０に書き込まれたことを意味する。
【００８０】
図１５は、変形例においてドライバ１４ｂがホスト装置１０に実現させるmove処理をＯＳ１４ａによる処理及び記憶装置３０の処理とともにフローチャートにより例示している。図１６は、変形例において電源消失後の電源投入後にドライバ１４ｂがホスト装置１０に実現させる電源投入時の処理をＯＳ１４ａによる処理及び記憶装置３０の処理とともにフローチャートにより例示している。図１７は、変形例において電源喪失時のデータの移動を模式的に例示している。図１５，１６の処理は、概略、図５，７で示した処理と同様であるが、複数のファイルＦＬｉを扱うためＳ５０２，Ｓ５２２の処理が追加されている。ここで、Ｓ３３０，Ｓ５０２は元データ削除機能Ｆ２及び元データ削除手段Ｕ２に対応し、Ｓ３４８，Ｓ５２２は通知手段Ｕ６に対応している。
【００８１】
ＯＳ１４ａを実行するホスト装置１０が図１５のＳ３０２で移動元及び移動先のパス情報等を付加した元ファイルＦＬｉのmove通知をドライバ１４ｂ側に出すと（Ｓ３０２）、ドライバ側は、パス情報を取得する（Ｓ３２２）。また、ＯＳを実行するホスト装置１０が図１５のＳ３０６で元ファイルＦＬｉのcopy処理を開始すると、記憶装置３０は、元ファイルＦＬｉのファイルデータをＳＤＲＡＭ６０に一旦格納するcopy処理を開始する（Ｓ３４２）。図１７のＳＴ１１は、一例として、ｉ＝１〜６の元ファイルＤ１がホスト装置１０の記憶部１４に記憶されていることが示されている。ＳＴ１２は、２番目の元ファイルまでＳＤＲＡＭ６０にコピーされた状態が示されている。
【００８２】
記憶装置３０は、ＳＤＲＡＭ６０に格納されたコピーファイルＦＬｉをＨＤＤ４０に書き込むことを開始し（Ｓ３４４）、このコピーファイルＦＬｉの書き込みが完了すると（Ｓ３４６）、ポーリングによる問い合わせ受信時に現在のステータス「ＦＬｉ書き込み完了」（Ｒ２）を返信する（Ｓ３４８）。図１７のＳＴ１３は、２番目のコピーファイルＦＬ２までＨＤＤ４０へ書き込まれ、４番目の元ファイルＦＬ４までＳＤＲＡＭ６０にコピーされた状態が示されている。
【００８３】
記憶装置３０からの返信Ｒ２は、キャッシュメモリ（６０）にコピーされたデータ（Ｄ２）のうち記憶媒体（４０）へ書き込みが終了したデータの位置（ｉ番目）を表す返信である。返信Ｒ２を受けたホスト装置１０は、返信Ｒ２で表されるｉ番目の元ファイルＦＬｉを削除し（Ｓ３３０）、全ての元ファイルＦＬｉの削除が完了したか否かを判断する（Ｓ５０２）。ドライバ１４ｂを実行するホスト装置１０は、全ファイルＦＬｉの削除が完了していない場合には処理をＳ３３０に戻し、全ファイルＦＬｉの削除が完了した場合にはmove処理を終了させる。
「ＦＬｉ書き込み完了」を返信した記憶装置３０も、全ての元ファイルＦＬｉの削除が完了したか否かを判断する（Ｓ５２２）。記憶装置３０は、全ファイルＦＬｉの削除が完了していない場合には処理をＳ３４４に戻し、全ファイルＦＬｉの削除が完了した場合には処理を終了させる。
【００８４】
ここで、図１７に示すように全ファイルＦＬｉのＨＤＤ４０への書き込みが完了していないときに停電等で電源が消失した場合、ホスト装置１０から記憶装置３０のＳＤＲＡＭ６０へ移動したがＨＤＤ４０への書き込みが完了していないコピーファイルＦＬｉが消える。図１７のＳＴ１４は、３，４番目のコピーファイルＦＬ３，ＦＬ４が消えたことが示されている。むろん、ホスト装置１０の記憶部１４には元ファイルＦＬ３，ＦＬ４が残されている。そこで、電源再投入後、残されている元ファイルＤ１を利用してデータ移動処理をやり直すことができる。
【００８５】
電源が再投入されると、ホスト装置１０は、ドライバ１４ｂによる電源投入時の処理を開始し、図１５のＳ３２２で取得したパス情報で表されるパスに元ファイルＤ１が有るか否かを判断する（図１６のＳ３６２）。前記取得パスに元ファイルＤ１があれば、ドライバ１４ｂを実行するホスト装置１０は、前記取得パス情報を使ってＯＳ１４ａ側にcopy指示を出す（Ｓ３２６）。ここで、全ファイルＦＬｉのうち電源消失までにＨＤＤ４０への書き込みが完了したファイルＦＬｉについては、図１５のＳ３３０で削除されている。従って、記憶部１４には返信Ｒ２で表される位置から後の元ファイルＦＬｉが残されており、copy指示の対象は、返信Ｒ２で表される位置から後の元ファイルＦＬｉとなる。ＯＳ１４ａを実行するホスト装置１０は、ドライバ側からcopy指示を受けると、返信Ｒ２で表される位置から後の元ファイルＦＬｉのcopy処理を開始する（Ｓ３０６）。図１７のＳＴ１５は、ホスト装置１０の記憶部１４に残されている元ファイルＦＬ３〜ＦＬ６のＳＤＲＡＭ６０へのコピーが開始されることが示されている。
【００８６】
以下、記憶装置３０は図１５で示したＳ３４２〜Ｓ３４８，Ｓ５２２の処理を行い、ドライバ１４ｂを実行するホスト装置１０は図１５で示したＳ３２８，Ｓ３３０，Ｓ５０２の処理を行い、ＯＳを実行するホスト装置１０は図１５で示したＳ３０８の処理を行う。これにより、図１７のＳＴ１６，ＳＴ１７のように、返信Ｒ２で表される位置（ｉ＝２）から後の移動対象のデータ（ＦＬ３〜ＦＬ６）がキャッシュメモリ（６０）にコピーされ、キャッシュメモリのコピーファイル（ＦＬ３〜ＦＬ６）がＨＤＤ４０へ書き込まれる。
以上により、電源再投入後の書き込み処理が少なくて済み、処理時間が少なくなる。
【００８７】
なお、図１５，１６で示した処理についても、図９〜１４で示したアクセス抑制機能Ｆ３を実現させる処理（Ｓ４０２，Ｓ４１２，Ｓ４２２，Ｓ４３２，Ｓ４４２）を加えてもよい。
【００８８】
（９）結び：
なお、従属請求項に係る構成要件を有しておらず独立請求項に係る構成要件のみからなるデータ移動プログラム、データ移動方法、ホスト装置、データ移動システム、記憶装置、等でも、上述した基本的な作用、効果が得られる。
【００８９】
以上説明したように、本発明によると、種々の態様により、キャッシュメモリを有する記憶装置について、データキャッシュのための不揮発性メモリやバックアップ用電源を不要にすることが可能な技術等を提供することができる。
また、上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も実施可能である。本発明は、これらの構成等も含まれる。
【符号の説明】
【００９０】
１…データ移動システム、１０…ホスト装置、１４…記憶部、
１４ａ…オペレーティングシステム（ＯＳ）、
１４ｂ…ドライバ（データ移動プログラム）、
３０…記憶装置、
４０…ハードディスクドライブ（記憶媒体）、
５０…コントローラ、
５１…ＵＳＢインターフェイス（通信インターフェイス）、
５２…ＤＭＡコントローラ、
５３…制御部、５３ａ…ＭＰＵ、５３ｂ…内部メモリ、
５４…ＳＡＴＡインターフェイス（ＡＴＡインターフェイス）、
５５…ＤＤＲインターフェイス、
６０…ＤＤＲ３  ＳＤＲＡＭ（ＤＲＡＭ、キャッシュメモリ）、
Ｄ１…元ファイル（移動対象の元データ）、
Ｄ２…コピーファイル（コピーされたデータ）、
Ｄ３…移動ファイル（移動されたデータ）、
Ｆ１…データコピー機能、Ｆ２…元データ削除機能、Ｆ３…アクセス抑制機能、
Ｆ３１…パス変更機能、Ｆ３２…隠し属性設定機能、Ｆ３３…アクセス権制限機能、
Ｆ３４…ロック機構、
Ｒ１，Ｒ２…返信、
Ｕ１…データコピー手段、Ｕ２…元データ削除手段、Ｕ３…アクセス抑制手段、
Ｕ４…キャッシュ手段、Ｕ５…書き込み手段、Ｕ６…通知手段、
Ｕ３１…パス変更手段、Ｕ３２…隠し属性設定手段、Ｕ３３…アクセス権制限手段、
Ｕ３４…ロック手段。
【図１】
0005927968.tif 000002
【図２】
0005927968.tif 000003
【図３】
0005927968.tif 000004
【図４】
0005927968.tif 000005
【図５】
0005927968.tif 000006
【図６】
0005927968.tif 000007
【図７】
0005927968.tif 000008
【図８】
0005927968.tif 000009
【図９】
0005927968.tif 000010
【図１０】
0005927968.tif 000011
【図１１】
0005927968.tif 000012
【図１２】
0005927968.tif 000013
【図１３】
0005927968.tif 000014
【図１４】
0005927968.tif 000015
【図１５】
0005927968.tif 000016
【図１６】
0005927968.tif 000017
【図１７】
0005927968.tif 000018
【図１８】
0005927968.tif 000019
【図１９】
0005927968.tif 000020