説明

2つの形式のストレージメディアを使用するデータストレージデバイス

データストレージデバイスは、ハードディスク(8)および不揮発性ソリッドステートメモリデバイス(7)、例えばフラッシュメモリ、の両方である2つのデータストレージメディアを含む。格納するためにデータストレージデバイスにより受け取られたデータは、ハードディスク(8)およびフラッシュメモリ(7)の両方に格納される。データ格納は複写されるので、もしハードディスク(8)の一部からのデータの取り出しで問題が生じた場合、そのデータはフラッシュメモリ(7)から取り出すことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なる形式の2つのデータストレージメディアを使用するデータストレージデバイスに関する。
【背景技術】
【0002】
近年、データストレージデバイスの分野において、大いなる発展が進行中である。基本となる特許出願、PCT/SG00/00029には、一体的なUSBプラグを有するハウジングおよびハウジング内の不揮発性ソリッドステート(即ち、集積回路型)メモリデバイス、例えばフラッシュメモリ、を含むデータストレージデバイスの概念が導入されている。2000年2月の終わり頃に売り出された第1のそのようなデバイスは、8MBの容量を有していたが、現在では更に大きな容量のものが手に入る状況となっている。
【0003】
これに並行して、ハードディスク技術においても急激に改良されており、前述のソリッドステートポータブルデータストレージデバイスと同等のサイズを有する、少なくとも数GBのポータブルデータストレージデバイスが現在では入手可能となっている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、新規で、且つ有用なデータストレージデバイス、およびそのようなデバイスにより実行されるアルゴリズムを提供することを目的とする。
【0005】
一般的な用語において、本発明は、データストレージデバイスが2つのデータストレージメディア、即ちハードディスクおよび不揮発性ソリッドステートメモリデバイスの両方を含んでいることを、提案する。格納するためにデータストレージデバイスにより受信されたデータは、ハードディスクおよび不揮発性ソリッドステートメモリデバイスの両方に格納される。データ格納が複写されているので、もしストレージメディアの1つからのデータ取り出しで問題が生じたとき、そのデータは他から取り出すことが可能である。
【課題を解決するための手段】
【0006】
ハードディスクおよび不揮発性ソリッドステートメモリデバイスは、環境損傷の異なる種類に弱点を有することに注意を払う必要がある。したがって、本発明に係るデータストレージデバイスは、1つのシングルデータストレージメディアを単に使用しているデータストレージデバイスより損傷する弱点を少なくすることができる。これは、本発明により提案されるデータストレージデバイスにおいて、2つのデータストレージメディアの少なくとも1つにおいて、データが存続する可能性をより大きくしているからである。
【0007】
データストレージデバイスは、ホストに接続されており、ホストは、例えば、ホストにおいて記憶され、作動する第1のドライバーにしたがって、読み込みおよび書き込みコマンドを使用して、データストレージデバイスを制御する。ホストが発生させ、データストレージデバイスに転送する書き込みおよび読み込みコマンドは、従来のフォーマットにおいて存在するものでもよい。この場合において、格納のために送るデータがストレージメディアに複写して格納されることを、ホストは「知る」必要はない。書き込みコマンドに対応して、データストレージデバイスは、両方のデータストレージメディアにデータを書き込む。通常の読み込みコマンドの場合においては、データストレージデバイスは、ハードディスクの1つからのデータを取り出し、それをホストに送る。
【0008】
しかしながら、フラッシュメモリからデータを取り出すことが必要な場合においては、そのフラッシュメモリからデータを取り出すために、第2のドライバソフトウェア(例えば、ポータブルデータストレージデバイスがその時に接続されている異なるホストで作動しているもの)と組み合わせて、データストレージデバイスが使用されうる。この第2のドライバソフトウェアは、ハードディスクの代わりに、フラッシュメモリからの読み込み動作を指令する特別なフォーマットにおける読み込みコマンドを発生するよう構成してもよい。
【0009】
データストレージデバイスは、セキュリィティ手続きに従うことを条件に特別の読み込みコマンドを実行するだけとする構成としてもよい。例えば、パスワード確認動作を要求してもよい。
【発明を実施するための最良の形態】
【0010】
図1を参照すると、本発明の実施例は、ハウジング1、およびハウジング1に固定されたUSBインターフェース3(例えば、USBプラグ、しかしUSBインターフェース集積回路を含んでも良い)を有するように示されたデータストレージデバイスである。USBインターフェース3は、ホスト(例えば、PC)に接続されるものであり、例えばホストのソケットにUSBプラグを差し込むことにより接続される。USBインターフェース3は、コントローラ5と通信する。コントローラ5は、それ自身がフラッシュメモリ7およびハードディスク8と通信する。ハウジング1は、例えばユーザのポケットの中に容易に携帯できるように、データストレージデバイスのために十分小さいことが好ましい。ハウジングはユーザの握り拳の中に隠れるように十分に小さいと実際には良いかもしれない。
【0011】
ハードディスク8は、ホストシステムに対して外付けのハードディスクドライバのクラスに入るという意味で、「脱着可能なハードディスクドライブ」である。さらに、本実施例のハードディスク8は、任意にハウジング1から脱着できる。これは、ハードディスク8がいっぱいになったときに交換することを可能にする。確かに、ハードディスク8は、要求されたときにハウジングに挿入されうる複数の異なるハードディスクの1つでも良い。ハードディスク8は、データストレージデバイスの初期において一般的に存在しているものである。
【0012】
コントローラ5およびフラッシュメモリ7およびハードディスク8の間の通信径路は、1つまたはそれ以上のデータバスとコントロールラインの両方を含む。コントローラ5およびハードディスク8の間は、4ビットデータバスをサポートするSDIO(secure digital input/output)インターフェースであるインターフェースでもよいが、他の実施例として、他のメディアインターフェース、例えばIDE(integrated drive electronics)インターフェースでもよい。
【0013】
本実施例は、読み込みおよび書き込みコマンドを発生するホスト上を走る第1のドライバソフトウェアと関連して使用される。この第1のドライバソフトウェアは、従来のフォームでもよい。以下に述べるように、データストレージデバイスは、ホストからフラッシュメモリ7およびハードディスク8の両方に送られたデータを書き込むことにより書き込みコマンドに反応する。データストレージデバイスは、ハードディスク8からのデータを読み込み、そしてホストに転送することにより読み込みコマンドに反応する。したがって、従来のドライバソフトウェアに関して言えば、本実施例は公知のデータストレージデバイスと同じ機能である。
【0014】
しかしながら、また、本発明のデータストレージデバイスは、フラッシュメモリ7の中にあるデータにアクセスするようにドライバソフトウェアの2番目のセットにより駆動されてもよい。第2のドライバソフトウェアは、第1のドライバソフトウェアにより発生した読み込みコマンドと異なるフォーマットの中にある読み込みコマンドであって、コントローラ5がフラッシュメモリ7の外のデータを読み込むコマンドとして認識する読み込みコマンドを発生する能力を有し、そしてデータストレージデバイスの外にそのデータを転送する能力を有している。そこで、コントローラ5はこの動作を実行する。第2のドライバソフトウェアは、第1のドライバソフトウェアと同様に任意にホストに設けられていてもよく、若しくはその時に本実施例に接続された異なるホストに設けられていてもよい。第2のドライバソフトウェアは、ハードディスクドライブ8が損傷を受けたときでさえ、格納されたデータを引き出すことを可能とする。したがって、もしデータストレージデバイスは、ハードディスク8が損傷を受けた状況に置かれた場合、フラッシュメモリ7が損傷を受けていない限り、格納したデータをフラッシュメモリ7から取り出すことができる。
【0015】
勿論、ハードディスク8が脱着可能であれば、ハードディスク8が外されている間、ハードディスク8に格納されているデータになされた変更に対応せずに、フラッシュメモリ7のデータは変更(上書き)されるかもしれない。同様に、もしハードディスク8が新しい空のハードディスクに置き換えられた場合、新しいハードディスクは、あきらかに、フラッシュメモリ7に既に格納されたデータを複写してデータを格納していない。しかしながら、いずれの場合においても、これらの状況は、ユーザの操作により生じるものであり、そのためユーザは、フラッシュメモリに格納されたデータがハードディスク8でデータを複写していないということに気がつくであろう。したがって、いずれの場合においても、ユーザはフラッシュディスク7により提供されたバックアップを頼みにできないことを知るであろう。
【0016】
ここで、我々は、図2を参照して、データストレージデバイスにより実行されたアルゴリズムについて議論する。アルゴリズムの初期セクションは、図2Aに示されている。デバイスが電源導入されたとき、デバイスがハードディスク7(ステップ1)およびフラッシュデバイス(ステップ2)を初期化するという初期プロセスが実行される。
【0017】
デバイスがコマンドを受け取ったとき、ステップ3において、コマンドが書き込みコマンドか、フラッシュ7からデータを読み込むコマンドか、またはハードディスク8からデータを読み込むコマンドかを決定する。読み込み動作のデフォルトはデータがハードディスク8から読み込まれることであり、それでフラッシュ7に関していることを示すマーカを含まずに届いた読み込みコマンドは、ハードディスク8に関する読み込みコマンドとして扱われる。
【0018】
もし、ステップ3が、受け取ったコマンドをハードディスク8からデータを読み込むコマンドであると決定した場合には、ステップ4において、読み込みコマンドに含まれる論理ブロックアドレス(LBA)に対応するハードディスク8における物理アドレスが算出される。ステップ5において、コントローラ5は、ハードディスク8にコマンドを送り、その物理アドレスにおけるデータをコントローラに転送するように、コントロールラインおよびデータバス9を使用する。そして、そこでコントローラ5は、データバスよりハードディスク8から受け取ったデータをUSBインターフェース3を介して外部のホストに転送する。ステップ6において、このプロセスが完了したか否かをテストする。もし完了していなければ、ステップ7において転送プロセスが継続され、そしてステップ6に戻る。ステップ6における決定が肯定的であれば、この方法は新しいコマンドを待つステップ8に行く。新しいコマンドを受け取ったとき、この方法はステップ3に再び行く。
【0019】
もし、ステップ3が受け取ったコマンドがデータを書き込むためのコマンドであると決定した場合には、この方法は図2Bに示されているアルゴリズムの部分に行く。ステップ9において、そのコマンドにおけるデータは、次にメモリ7,8に書き込まれるようにレジスタの中に格納される。書き込みコマンドのコマンド部分(即ち、書き込むべきデータを引いた書き込みコマンド)は、データが書き込まれるべき場所の決定において次に使用されるため、分かれて格納される。
【0020】
ステップ10において、読み込みコマンドの中の論理アドレスに対応するフラッシュメモリ7における物理アドレスが算出される。ステップ11において、同じ論理アドレスに対応するハードディスク8における物理アドレスが算出される。ステップ12において、コントローラ5は、コントロールラインを使用してコマンドをフラッシュメモリ7およびハードディスク8の両方に送り、データを格納するように指令する。そこで、ステップ13におけるコントローラ5は、ホストから受け取った512バイトのデータをフラッシュメモリ7およびハードディスク8の両方に書き込む。ステップ14において、コントローラ5は、書き込みコマンドにより特定されたデータの全てがメモリデバイス7,8に送られたか否かをテストする。もし送られていなければ、ステップ15において、データ書き込みプロセスが継続され、そしてこの方法はステップ14に戻る。ステップ14における決定が肯定的であればすぐに、書き込みプロセスは完了し、この方法は図2Aに示されたフロー図のセクションに戻る。
【0021】
もし、ステップ3は、受け取ったコマンドがフラッシュメモリ7からのデータを読み込むコマンド(即ち、第2のドライバソフトウェアにより発生したコマンド)であると決定した場合、図2Cに示されたアルゴリズムのセクションに行く。確認ステップ16において、コントローラ9は、その読み込みコマンドが正確なセキュリティ情報、例えばパスワードを含んでいたか否かを決定する。もし、含まれていなければ、読み込み動作が失敗し、そしてこの方法は図2Aに戻る。必要に応じて、パスワードは、フラッシュメモリ7自身の予備領域の中に格納してもよい。または、パスワードをホストの中に格納してもよい。
【0022】
もし、確認ステップ16が肯定的であれば、ステップ17において、コントローラ5はフラッシュメモリにおける物理アドレスを算出する。ステップ18において、コントローラ5は、データバスを使用してフラッシュメモリの物理アドレスにおけるデータをコントローラ5に転送するように、フラッシュメモリを制御するために、コントロールラインおよびデータバス9を使用する。そこで、コントローラ5は、USBインターフェース3を介してホストにそのデータを転送する。ステップ19において、コントローラ5は、要求されたデータの全てが送られたか否かを決定する。もし、全てのデータが送られていれば、読み込み動作は終了し、この方法は図2Aに示されたアルゴリズムのセクションに戻る。そうでなければ、データ転送手続きは継続し(ステップ20)、ステップ19に戻る。
【0023】
本発明のただ1つの実施例を詳細に述べたが、当業者には明確であるように、多くの変形例が請求の範囲の範囲内で可能である。
【図面の簡単な説明】
【0024】
【図1】図1は本発明の実施例の概略ブロック図である。
【図2A】図2は図2A,図2Bおよび図2Cで構成され、図1の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。
【図2B】図2は図2A,図2Bおよび図2Cで構成され、図1の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。
【図2C】図2は図2A,図2Bおよび図2Cで構成され、図1の実施例により実施されるデータ格納及び取り出しプロセスのフロー図である。

【特許請求の範囲】
【請求項1】
(i)ホストと通信するためのインターフェース、
(ii)ハードディスク、
(iii)不揮発性ソリッドステートメモリデバイス、および
(iv)前記インターフェース、前記ハードディスクおよび前記不揮発性ソリッドステートメモリデバイスと通信するコントローラ、
を具備するデータストレージデバイスであって、
前記コントローラは、
(i)書き込みコマンドを受信すると、前記ハードディスクおよび前記不揮発性ソリッドステートメモリデバイスの両方に前記書き込みコマンドに対応してデータを書き込むように、
(ii)読み込みコマンドを受信すると、前記ハードディスクまたは前記不揮発性ソリッドステートメモリから選択的にデータを取得し、そして前記インターフェースを介して前記データストレージデバイスの外部にデータを転送するように、
構成されている、データストレージデバイス。
【請求項2】
読み込みコマンドを受信すると、前記読み込みコマンドが前記ハードディスクまたは前記不揮発性ストレージデバイスに関連するものかを前記読み込みコマンドから決定するようにコントローラが構成されている前の請求項に記載のデータストレージデバイス。
【請求項3】
前記読み込みコマンドが前記不揮発性ストレージデバイスに関連するものと決定すると、前記コントローラが前記インターフェースから受信したセキュリティ情報が予め格納されていたセキュリティ情報に従っているかを確認するセキュリティ手続きを始動するように前記コントローラが構成された請求項2に記載のデータストレージデバイス。
【請求項4】
前記ハードディスクが前記データストレージデバイスから脱着可能である請求項1乃至3のいずれか一項に記載のデータストレージデバイス。
【請求項5】
前の請求項のいずれかに記載のデータストレージデバイスからのデータを取り出す方法であって、
前記方法は、データストレージデバイスとホストとの間に電気通信を確立することを含み、前記ホストがコマンドを前記データストレージデバイスに転送して、前記不揮発性ソリッドステートメモリからデータを取得し、前記インターフェースを介して前記ホストにデータを転送させるようにする方法。
【請求項6】
前記ホストは、前記データストレージデバイスがホストにデータを転送する前に、前記データストレージデバイスに関するセキュリティ手続きを実行するステップをさらに有する請求項5に記載の方法。
【請求項7】
前記セキュリティ手続きがパスワードを用いるものである請求項6に記載の方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate


【公表番号】特表2009−527046(P2009−527046A)
【公表日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−555198(P2008−555198)
【出願日】平成19年1月24日(2007.1.24)
【国際出願番号】PCT/SG2007/000020
【国際公開番号】WO2007/094742
【国際公開日】平成19年8月23日(2007.8.23)
【出願人】(502158287)トレック・2000・インターナショナル・リミテッド (21)
【Fターム(参考)】