(57)【要約】データストレージデバイスは、ハードディスク（８）および不揮発性ソリッドステートメモリデバイス（７）、例えばフラッシュメモリ、の両方である２つのデータストレージメディアを含む。格納するためにデータストレージデバイスにより受け取られたデータは、ハードディスク（８）およびフラッシュメモリ（７）の両方に格納される。データ格納は複写されるので、もしハードディスク（８）の一部からのデータの取り出しで問題が生じた場合、そのデータはフラッシュメモリ（７）から取り出すことができる。
2009527046.tif 000002
【特許請求の範囲】
【請求項１】
（ｉ）ホストと通信するためのインターフェース、
（ｉｉ）ハードディスク、
（ｉｉｉ）不揮発性ソリッドステートメモリデバイス、および
（ｉｖ）前記インターフェース、前記ハードディスクおよび前記不揮発性ソリッドステートメモリデバイスと通信するコントローラ、
を具備するデータストレージデバイスであって、
前記コントローラは、
（ｉ）書き込みコマンドを受信すると、前記ハードディスクおよび前記不揮発性ソリッドステートメモリデバイスの両方に前記書き込みコマンドに対応してデータを書き込むように、
（ｉｉ）読み込みコマンドを受信すると、前記ハードディスクまたは前記不揮発性ソリッドステートメモリから選択的にデータを取得し、そして前記インターフェースを介して前記データストレージデバイスの外部にデータを転送するように、
構成されている、データストレージデバイス。
【請求項２】
読み込みコマンドを受信すると、前記読み込みコマンドが前記ハードディスクまたは前記不揮発性ストレージデバイスに関連するものかを前記読み込みコマンドから決定するようにコントローラが構成されている前の請求項に記載のデータストレージデバイス。
【請求項３】
前記読み込みコマンドが前記不揮発性ストレージデバイスに関連するものと決定すると、前記コントローラが前記インターフェースから受信したセキュリティ情報が予め格納されていたセキュリティ情報に従っているかを確認するセキュリティ手続きを始動するように前記コントローラが構成された請求項２に記載のデータストレージデバイス。
【請求項４】
前記ハードディスクが前記データストレージデバイスから脱着可能である請求項１乃至３のいずれか一項に記載のデータストレージデバイス。
【請求項５】
前の請求項のいずれかに記載のデータストレージデバイスからのデータを取り出す方法であって、
前記方法は、データストレージデバイスとホストとの間に電気通信を確立することを含み、前記ホストがコマンドを前記データストレージデバイスに転送して、前記不揮発性ソリッドステートメモリからデータを取得し、前記インターフェースを介して前記ホストにデータを転送させるようにする方法。
【請求項６】
前記ホストは、前記データストレージデバイスがホストにデータを転送する前に、前記データストレージデバイスに関するセキュリティ手続きを実行するステップをさらに有する請求項５に記載の方法。
【請求項７】
前記セキュリティ手続きがパスワードを用いるものである請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる形式の２つのデータストレージメディアを使用するデータストレージデバイスに関する。
【背景技術】
【０００２】
近年、データストレージデバイスの分野において、大いなる発展が進行中である。基本となる特許出願、ＰＣＴ／ＳＧ００／０００２９には、一体的なＵＳＢプラグを有するハウジングおよびハウジング内の不揮発性ソリッドステート（即ち、集積回路型）メモリデバイス、例えばフラッシュメモリ、を含むデータストレージデバイスの概念が導入されている。２０００年２月の終わり頃に売り出された第１のそのようなデバイスは、８ＭＢの容量を有していたが、現在では更に大きな容量のものが手に入る状況となっている。
【０００３】
これに並行して、ハードディスク技術においても急激に改良されており、前述のソリッドステートポータブルデータストレージデバイスと同等のサイズを有する、少なくとも数ＧＢのポータブルデータストレージデバイスが現在では入手可能となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、新規で、且つ有用なデータストレージデバイス、およびそのようなデバイスにより実行されるアルゴリズムを提供することを目的とする。
【０００５】
一般的な用語において、本発明は、データストレージデバイスが２つのデータストレージメディア、即ちハードディスクおよび不揮発性ソリッドステートメモリデバイスの両方を含んでいることを、提案する。格納するためにデータストレージデバイスにより受信されたデータは、ハードディスクおよび不揮発性ソリッドステートメモリデバイスの両方に格納される。データ格納が複写されているので、もしストレージメディアの１つからのデータ取り出しで問題が生じたとき、そのデータは他から取り出すことが可能である。
【課題を解決するための手段】
【０００６】
ハードディスクおよび不揮発性ソリッドステートメモリデバイスは、環境損傷の異なる種類に弱点を有することに注意を払う必要がある。したがって、本発明に係るデータストレージデバイスは、１つのシングルデータストレージメディアを単に使用しているデータストレージデバイスより損傷する弱点を少なくすることができる。これは、本発明により提案されるデータストレージデバイスにおいて、２つのデータストレージメディアの少なくとも１つにおいて、データが存続する可能性をより大きくしているからである。
【０００７】
データストレージデバイスは、ホストに接続されており、ホストは、例えば、ホストにおいて記憶され、作動する第１のドライバーにしたがって、読み込みおよび書き込みコマンドを使用して、データストレージデバイスを制御する。ホストが発生させ、データストレージデバイスに転送する書き込みおよび読み込みコマンドは、従来のフォーマットにおいて存在するものでもよい。この場合において、格納のために送るデータがストレージメディアに複写して格納されることを、ホストは「知る」必要はない。書き込みコマンドに対応して、データストレージデバイスは、両方のデータストレージメディアにデータを書き込む。通常の読み込みコマンドの場合においては、データストレージデバイスは、ハードディスクの１つからのデータを取り出し、それをホストに送る。
【０００８】
しかしながら、フラッシュメモリからデータを取り出すことが必要な場合においては、そのフラッシュメモリからデータを取り出すために、第２のドライバソフトウェア（例えば、ポータブルデータストレージデバイスがその時に接続されている異なるホストで作動しているもの）と組み合わせて、データストレージデバイスが使用されうる。この第２のドライバソフトウェアは、ハードディスクの代わりに、フラッシュメモリからの読み込み動作を指令する特別なフォーマットにおける読み込みコマンドを発生するよう構成してもよい。
【０００９】
データストレージデバイスは、セキュリィティ手続きに従うことを条件に特別の読み込みコマンドを実行するだけとする構成としてもよい。例えば、パスワード確認動作を要求してもよい。
【発明を実施するための最良の形態】
【００１０】
図１を参照すると、本発明の実施例は、ハウジング１、およびハウジング１に固定されたＵＳＢインターフェース３（例えば、ＵＳＢプラグ、しかしＵＳＢインターフェース集積回路を含んでも良い）を有するように示されたデータストレージデバイスである。ＵＳＢインターフェース３は、ホスト（例えば、ＰＣ）に接続されるものであり、例えばホストのソケットにＵＳＢプラグを差し込むことにより接続される。ＵＳＢインターフェース３は、コントローラ５と通信する。コントローラ５は、それ自身がフラッシュメモリ７およびハードディスク８と通信する。ハウジング１は、例えばユーザのポケットの中に容易に携帯できるように、データストレージデバイスのために十分小さいことが好ましい。ハウジングはユーザの握り拳の中に隠れるように十分に小さいと実際には良いかもしれない。
【００１１】
ハードディスク８は、ホストシステムに対して外付けのハードディスクドライバのクラスに入るという意味で、「脱着可能なハードディスクドライブ」である。さらに、本実施例のハードディスク８は、任意にハウジング１から脱着できる。これは、ハードディスク８がいっぱいになったときに交換することを可能にする。確かに、ハードディスク８は、要求されたときにハウジングに挿入されうる複数の異なるハードディスクの１つでも良い。ハードディスク８は、データストレージデバイスの初期において一般的に存在しているものである。
【００１２】
コントローラ５およびフラッシュメモリ７およびハードディスク８の間の通信径路は、１つまたはそれ以上のデータバスとコントロールラインの両方を含む。コントローラ５およびハードディスク８の間は、４ビットデータバスをサポートするＳＤＩＯ（secure digital input/output）インターフェースであるインターフェースでもよいが、他の実施例として、他のメディアインターフェース、例えばＩＤＥ(integrated drive electronics)インターフェースでもよい。
【００１３】
本実施例は、読み込みおよび書き込みコマンドを発生するホスト上を走る第１のドライバソフトウェアと関連して使用される。この第１のドライバソフトウェアは、従来のフォームでもよい。以下に述べるように、データストレージデバイスは、ホストからフラッシュメモリ７およびハードディスク８の両方に送られたデータを書き込むことにより書き込みコマンドに反応する。データストレージデバイスは、ハードディスク８からのデータを読み込み、そしてホストに転送することにより読み込みコマンドに反応する。したがって、従来のドライバソフトウェアに関して言えば、本実施例は公知のデータストレージデバイスと同じ機能である。
【００１４】
しかしながら、また、本発明のデータストレージデバイスは、フラッシュメモリ７の中にあるデータにアクセスするようにドライバソフトウェアの２番目のセットにより駆動されてもよい。第２のドライバソフトウェアは、第１のドライバソフトウェアにより発生した読み込みコマンドと異なるフォーマットの中にある読み込みコマンドであって、コントローラ５がフラッシュメモリ７の外のデータを読み込むコマンドとして認識する読み込みコマンドを発生する能力を有し、そしてデータストレージデバイスの外にそのデータを転送する能力を有している。そこで、コントローラ５はこの動作を実行する。第２のドライバソフトウェアは、第１のドライバソフトウェアと同様に任意にホストに設けられていてもよく、若しくはその時に本実施例に接続された異なるホストに設けられていてもよい。第２のドライバソフトウェアは、ハードディスクドライブ８が損傷を受けたときでさえ、格納されたデータを引き出すことを可能とする。したがって、もしデータストレージデバイスは、ハードディスク８が損傷を受けた状況に置かれた場合、フラッシュメモリ７が損傷を受けていない限り、格納したデータをフラッシュメモリ７から取り出すことができる。
【００１５】
勿論、ハードディスク８が脱着可能であれば、ハードディスク８が外されている間、ハードディスク８に格納されているデータになされた変更に対応せずに、フラッシュメモリ７のデータは変更（上書き）されるかもしれない。同様に、もしハードディスク８が新しい空のハードディスクに置き換えられた場合、新しいハードディスクは、あきらかに、フラッシュメモリ７に既に格納されたデータを複写してデータを格納していない。しかしながら、いずれの場合においても、これらの状況は、ユーザの操作により生じるものであり、そのためユーザは、フラッシュメモリに格納されたデータがハードディスク８でデータを複写していないということに気がつくであろう。したがって、いずれの場合においても、ユーザはフラッシュディスク７により提供されたバックアップを頼みにできないことを知るであろう。
【００１６】
ここで、我々は、図２を参照して、データストレージデバイスにより実行されたアルゴリズムについて議論する。アルゴリズムの初期セクションは、図２Ａに示されている。デバイスが電源導入されたとき、デバイスがハードディスク７（ステップ１）およびフラッシュデバイス（ステップ２）を初期化するという初期プロセスが実行される。
【００１７】
デバイスがコマンドを受け取ったとき、ステップ３において、コマンドが書き込みコマンドか、フラッシュ７からデータを読み込むコマンドか、またはハードディスク８からデータを読み込むコマンドかを決定する。読み込み動作のデフォルトはデータがハードディスク８から読み込まれることであり、それでフラッシュ７に関していることを示すマーカを含まずに届いた読み込みコマンドは、ハードディスク８に関する読み込みコマンドとして扱われる。
【００１８】
もし、ステップ３が、受け取ったコマンドをハードディスク８からデータを読み込むコマンドであると決定した場合には、ステップ４において、読み込みコマンドに含まれる論理ブロックアドレス（ＬＢＡ）に対応するハードディスク８における物理アドレスが算出される。ステップ５において、コントローラ５は、ハードディスク８にコマンドを送り、その物理アドレスにおけるデータをコントローラに転送するように、コントロールラインおよびデータバス９を使用する。そして、そこでコントローラ５は、データバスよりハードディスク８から受け取ったデータをＵＳＢインターフェース３を介して外部のホストに転送する。ステップ６において、このプロセスが完了したか否かをテストする。もし完了していなければ、ステップ７において転送プロセスが継続され、そしてステップ６に戻る。ステップ６における決定が肯定的であれば、この方法は新しいコマンドを待つステップ８に行く。新しいコマンドを受け取ったとき、この方法はステップ３に再び行く。
【００１９】
もし、ステップ３が受け取ったコマンドがデータを書き込むためのコマンドであると決定した場合には、この方法は図２Ｂに示されているアルゴリズムの部分に行く。ステップ９において、そのコマンドにおけるデータは、次にメモリ７，８に書き込まれるようにレジスタの中に格納される。書き込みコマンドのコマンド部分（即ち、書き込むべきデータを引いた書き込みコマンド）は、データが書き込まれるべき場所の決定において次に使用されるため、分かれて格納される。
【００２０】
ステップ１０において、読み込みコマンドの中の論理アドレスに対応するフラッシュメモリ７における物理アドレスが算出される。ステップ１１において、同じ論理アドレスに対応するハードディスク８における物理アドレスが算出される。ステップ１２において、コントローラ５は、コントロールラインを使用してコマンドをフラッシュメモリ７およびハードディスク８の両方に送り、データを格納するように指令する。そこで、ステップ１３におけるコントローラ５は、ホストから受け取った５１２バイトのデータをフラッシュメモリ７およびハードディスク８の両方に書き込む。ステップ１４において、コントローラ５は、書き込みコマンドにより特定されたデータの全てがメモリデバイス７，８に送られたか否かをテストする。もし送られていなければ、ステップ１５において、データ書き込みプロセスが継続され、そしてこの方法はステップ１４に戻る。ステップ１４における決定が肯定的であればすぐに、書き込みプロセスは完了し、この方法は図２Ａに示されたフロー図のセクションに戻る。
【００２１】
もし、ステップ３は、受け取ったコマンドがフラッシュメモリ７からのデータを読み込むコマンド（即ち、第２のドライバソフトウェアにより発生したコマンド）であると決定した場合、図２Ｃに示されたアルゴリズムのセクションに行く。確認ステップ１６において、コントローラ９は、その読み込みコマンドが正確なセキュリティ情報、例えばパスワードを含んでいたか否かを決定する。もし、含まれていなければ、読み込み動作が失敗し、そしてこの方法は図２Ａに戻る。必要に応じて、パスワードは、フラッシュメモリ７自身の予備領域の中に格納してもよい。または、パスワードをホストの中に格納してもよい。
【００２２】
もし、確認ステップ１６が肯定的であれば、ステップ１７において、コントローラ５はフラッシュメモリにおける物理アドレスを算出する。ステップ１８において、コントローラ５は、データバスを使用してフラッシュメモリの物理アドレスにおけるデータをコントローラ５に転送するように、フラッシュメモリを制御するために、コントロールラインおよびデータバス９を使用する。そこで、コントローラ５は、ＵＳＢインターフェース３を介してホストにそのデータを転送する。ステップ１９において、コントローラ５は、要求されたデータの全てが送られたか否かを決定する。もし、全てのデータが送られていれば、読み込み動作は終了し、この方法は図２Ａに示されたアルゴリズムのセクションに戻る。そうでなければ、データ転送手続きは継続し（ステップ２０）、ステップ１９に戻る。
【００２３】
本発明のただ１つの実施例を詳細に述べたが、当業者には明確であるように、多くの変形例が請求の範囲の範囲内で可能である。
【図面の簡単な説明】
【００２４】
【図１】図１は本発明の実施例の概略ブロック図である。
【図２Ａ】図２は図２Ａ，図２Ｂおよび図２Ｃで構成され、図１の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。
【図２Ｂ】図２は図２Ａ，図２Ｂおよび図２Ｃで構成され、図１の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。
【図２Ｃ】図２は図２Ａ，図２Ｂおよび図２Ｃで構成され、図１の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。
【図１】
2009527046.tif 000003
【図２Ａ】
2009527046.tif 000004
【図２Ｂ】
2009527046.tif 000005
【図２Ｃ】
2009527046.tif 000006
【国際調査報告】
2009527046.tif 000007
2009527046.tif 000008
2009527046.tif 000009