(57)【要約】      （修正有）【課題】写真および動画の保存、共有は、ますます大きなストレージ・システムを求める需要を助長する。これらの増大する需要に対する、ディスクアレイの使用における構成要素間のデータ転送を効率化する。【解決手段】ＤＭＡデータを周辺装置からハードウェア支援機能およびプロセッサＲＡＭ１１１に同時に転送する方法が開示される。第１のＤＭＡ転送が、データを周辺装置から周辺ＤＭＡエンジン１２０に転送するように構成される。データを受信している間に、ＤＭＡエンジン１２０は、このデータをプロセッサＲＡＭ１１１に同時に転送する。ＤＭＡエンジン１２０はまた、データのコピーをハードウェア支援機能に転送する。ＤＭＡエンジン１２０はまた、コピーをハードウェア支援機能に転送している間に、データをプロセッサＲＡＭ１１１から周辺装置に同時に転送する。【選択図】図２
2010287211.tif 000002
【特許請求の範囲】
【請求項１】
データを転送する方法であって、
データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペース内のアドレス範囲に転送する処理と、
前記データの第１ブロックを前記転送することと並行して、前記データの第１ブロックをプロセッサ・メモリ・アドレス・スペース内のアドレス範囲に転送する処理と、
前記データの第１ブロックをハードウェア機能に転送する処理と
を備える方法。
【請求項２】
前記データの第１ブロックを転送することと、前記第１ブロックを前記転送する処理と並行して転送する処理とが、単一のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われる、請求項１に記載の方法。
【請求項３】
前記データの第１ブロックを転送することと、前記第１ブロックを前記転送する処理と並行して転送する処理とが、１つまたは複数のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われる、請求項１に記載の方法。
【請求項４】
前記プロセッサ・メモリ・アドレス・スペースが第１のプロセッサに関連し、前記ハードウェア機能が前記データの第１ブロックを第２のプロセッサに関連するプロセッサ・メモリ・アドレス・スペースにミラーリングする、請求項１に記載の方法。
【請求項５】
前記ハードウェア機能が、ＲＡＩＤ方式を実施するために冗長データを計算するのを支援する、請求項１に記載の方法。
【請求項６】
前記ハードウェア機能が正規表現検索を行う、請求項１に記載の方法。
【請求項７】
前記ハードウェア機能がハッシュ関数を計算する、請求項１に記載の方法。
【請求項８】
ダイレクト・メモリ・アクセス（ＤＭＡ）データをハードウェア機能にミラーリングする方法であって、
データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペースに転送するように第１のＤＭＡ転送を構成する処理と、
前記第１のＤＭＡ転送と並行して行われるように第２のＤＭＡ転送を構成する処理であって、前記第２のＤＭＡ転送が前記データの第１ブロックを前記周辺メモリ・アドレス・スペースからプロセッサ・メモリ・アドレス・スペースに転送される、第２のＤＭＡ転送を構成する処理と、
前記データの第１ブロックをハードウェア機能に転送する処理と
を備える方法。
【請求項９】
前記第１のＤＭＡ転送および前記第２のＤＭＡ転送が、単一のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われる、請求項８に記載の方法。
【請求項１０】
前記第１のＤＭＡ転送および前記第２のＤＭＡ転送が、１つまたは複数のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われる、請求項８に記載の方法。
【請求項１１】
前記プロセッサ・メモリ・アドレス・スペースが第１のプロセッサに関連し、前記ハードウェア機能が、前記データの第１ブロックを第２のプロセッサに関連するプロセッサ・メモリ・アドレス・スペースにミラーリングする、請求項８に記載の方法。
【請求項１２】
前記ハードウェア機能が、ＲＡＩＤ方式を実施するために冗長データを計算するのを支援する、請求項７に記載の方法。
【請求項１３】
前記ハードウェア機能が正規表現検索を行う、請求項７に記載の方法。
【請求項１４】
前記ハードウェア機能がハッシュ関数を計算する、請求項７に記載の方法。
【請求項１５】
コンピュータによって実行された場合、
データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペースに転送するように第１のＤＭＡ転送を構成し、
前記第１のＤＭＡ転送と並行して行われるように第２のＤＭＡ転送を構成し、前記第２のＤＭＡ転送が前記データの第１ブロックを前記周辺メモリ・アドレス・スペースからプロセッサ・メモリ・アドレス・スペースに転送するように構成され、
前記データの第１ブロックをハードウェア機能に転送する
よう前記コンピュータに少なくとも指令するハードウェア機能に、ダイレクト・メモリ・アクセス（ＤＭＡ）データをミラーリングするための命令がそこに記憶されているコンピュータ可読媒体。
【請求項１６】
前記第１のＤＭＡ転送および前記第２のＤＭＡ転送が、単一のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われるように構成される、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記第１のＤＭＡ転送および前記第２のＤＭＡ転送が、１つまたは複数のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われるように構成される、請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記プロセッサ・メモリ・アドレス・スペースが第１のプロセッサに関連し、前記ハードウェア機能が、前記データの第１ブロックを第２のプロセッサに関連するプロセッサ・メモリ・アドレス・スペースにミラーリングする、請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記ハードウェア機能が、ＲＡＩＤ方式を実施するために冗長データを計算するのを支援する、請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記ハードウェア機能が正規表現検索を行う、請求項１５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
大容量記憶システムは、ユーザの需要に応えるために、増大された記憶容量を提供し続けている。写真および動画の保存、ならびに写真および動画の共有は、ますます大きなストレージ・システムを求める需要の増加を助長する利用形態の例である。
【０００２】
これらの増大する需要に対する解決策は、複数の安価なディスクのアレイの使用である。これらのアレイは、データのいかなる損失もなしに冗長性およびエラー回復を提供するように構成することができる。これらのアレイはまた、複数のディスクドライブに対して、データを同時に読み出させる、または書き込ませることにより、読出しおよび書込み性能を向上させるように構成することができる。これらのアレイはまた、アレイのストレージ・サービスを中断することなく故障したディスクを交換することができる「ホットスワッピング」を可能にするように構成することができる。冗長性が提供されるか否かにかかわらず、これらのアレイは、一般に、独立ディスク冗長アレイと（または、より一般的には、頭字語ＲＡＩＤで）呼ばれる。「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」という表題の、カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎ等による１９８７年の刊行物は、ＲＡＩＤ技術の基本概念およびレベルについて論じている。
【０００３】
ＲＡＩＤストレージ・システムは、通常、ユーザまたはホストシステムをストレージ・アレイ管理の詳細から遮蔽するコントローラを利用する。コントローラは、ストレージ・アレイが１つまたは複数のディスクドライブ（またはボリューム）として見えるようにする。これは、特定のボリュームに関するデータ（または冗長データ）が複数のディスクドライブに分散される可能性があるにもかかわらず達成される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「Ａ  Ｃａｓｅ  ｆｏｒ  Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）」という表題の、カリフォルニア大学バークレー校のＤａｖｉｄ  Ａ．Ｐａｔｔｅｒｓｏｎ等による１９８７年の刊行物
【発明の概要】
【課題を解決するための手段】
【０００５】
したがって、本発明の一実施形態は、データを転送する方法であって、データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペース内のアドレス範囲に転送することと、データの第１ブロックを転送することと並行して、データの第１ブロックをプロセッサ・メモリ・アドレス・スペース内のアドレス範囲に転送することと、データの第１ブロックをハードウェア機能に転送することと、を備える方法を備えることができる。
【０００６】
したがって、本発明の一実施形態は、ダイレクト・メモリ・アクセス（ＤＭＡ）データをハードウェア機能にミラーリングする方法であって、データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペースに転送するように第１のＤＭＡ転送を構成することと、第１のＤＭＡ転送と並行して行われるように第２のＤＭＡ転送を構成することであって、第２のＤＭＡ転送がデータの第１ブロックを周辺メモリ・アドレス・スペースからプロセッサ・メモリ・アドレス・スペースに転送するように構成される、第２のＤＭＡ転送を構成することと、データの第１ブロックをハードウェア機能に転送することと、を備える方法をさらに備えることができる。
【０００７】
したがって、本発明の一実施形態は、コンピュータによって実行された場合、データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペースに転送するように第１のＤＭＡ転送を構成し、第１のＤＭＡ転送と並行して行われるように第２のＤＭＡ転送を構成し、第２のＤＭＡ転送がデータの第１ブロックを周辺メモリ・アドレス・スペースからプロセッサ・メモリ・アドレス・スペースに転送するように構成され、データの第１ブロックをハードウェア機能に転送するようコンピュータに少なくとも指令するハードウェア機能に、ダイレクト・メモリ・アクセス（ＤＭＡ）データをミラーリングするための命令がそこに記憶されているコンピュータ可読媒体をさらに備えることができる。
【図面の簡単な説明】
【０００８】
【図１】同時中間プロキシＤＭＡを行うシステムのブロック図である。
【図２】同時中間プロキシＤＭＡを行うデータの流れを例示するブロック図である。
【図３】データを転送する方法を例示する流れ図である。
【図４】ＤＭＡデータをハードウェア機能にミラーリングする方法を例示する流れ図である。
【図５】ＤＭＡデータをハードウェア機能にミラーリングする方法を例示する流れ図である。
【図６】コンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
図１は、同時中間プロキシＤＭＡを行うシステムのブロック図である。図１では、ダイレクト・メモリ・アクセス（ＤＭＡ）システム１００は、プロセッサ１１０、プロセッサＲＡＭ１１１、プロセッサ・チップセット１１２、ＤＭＡエンジン１２０、ミラー・エンジン１２１、ＲＡＩＤエンジン１２２、正規表現（ｒｅｇｅｘ）エンジン１２３、ハッシュ・エンジン１２４、ホスト・インターフェース１２５、ディスクドライブ１３０、およびディスクドライブ１３１を備える。プロセッサ１１０は、プロセッサＲＡＭ１１１に動作可能に結合される。プロセッサ１１０は、プロセッサ・チップセット１１２に動作可能に結合される。プロセッサ・チップセット１１２は、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）インターフェース１１３を含む。プロセッサ・チップセット１１２は、ディスクドライブ１３０〜１３１に動作可能に結合される。
【００１０】
ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３は、ホスト・インターフェース１２５に動作可能に結合される。ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３は、ＤＭＡエンジン１２０に動作可能に結合される。ＤＭＡエンジン１２０は、ミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、およびハッシュ・エンジン１２４に動作可能に結合される。
【００１１】
プロセッサ１１０、プロセッサＲＡＭ１１１、およびプロセッサ・チップセット１１２は、標準的なマザーボード１０１上に含まれてもよい。したがって、ＤＭＡエンジン１２０、ミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、ホスト・インターフェース１２５、およびディスクドライブ１３０〜１３１は、マザーボード１０１にプラグインする周辺装置またはホスト・アダプタとみなされてもよい。マザーボード１０１は、業界標準マザーボードでもよいので、カスタム・マザーボードに比べて比較的安価であり得る。
【００１２】
一実施形態では、ホスト・インターフェース１２５が、ＤＭＡシステム１００からデータを送／受信するプロセッサまたはコンピュータシステムに結合されてもよい。例えば、ＤＭＡシステム１００がＲＡＩＤストレージ・アレイとして構成されている場合、ホスト・インターフェース１２５は、ディスクドライブ１３０〜１３１からデータを送／受信するコンピュータシステムに結合されてもよい。ＤＭＡシステム１００は、このコンピュータシステムに１つまたは複数の論理ユニットを提出することができる。
【００１３】
一実施形態では、ミラー・エンジン１２１が、リモート・プロセッサまたはコンピュータシステムに結合される。このコンピュータシステムは、ＤＭＡシステム１００と同様の機能を含んでも、あるいは備えてもよい。したがって、ＤＭＡシステム１００から読み出された、それに書き込まれた、あるいはそれによって処理されたデータは、別のプロセッサに関連するメモリにミラーリングされることができる。このメモリは、プロセッサおよび／または他のプロセッサの周辺アドレス・スペースにあってもよい。ＲＡＩＤエンジン１２２は、全ディスクドライブ１３０〜１３１にわたってＲＡＩＤ技術を実施するために冗長データを計算するのを支援するハードウェア機能でもよい。ｒｅｇｅｘエンジン１２３は、正規表現検索を行うことができる。この正規表現検索は、ディープ・パケット検査（ＤＰＩ）またはウィルス署名認識のような機能のために使用することができる。ハッシュ・エンジン１２４は、重複除外を支援するためにハッシュ関数を計算することができる。他のハードウェア機能が、プロキシＤＭＡデータを送／受信し、それによってＤＭＡシステム１００にハードウェア支援／促進機能を提供するために、ＤＭＡエンジン１２０に動作可能に結合されてもよい。
【００１４】
一実施形態では、ＤＭＡシステム１００が例えばホスト・インターフェース１２５またはディスクドライブ１３０〜１３１から直接データを転送する場合、ＤＭＡシステム１００は、最初、そのデータをＤＭＡエンジン１２０に転送する。ＤＭＡエンジン１２０は、データをミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、およびハッシュ・エンジン１２４のうちの１つまたは複数に転送する。ＤＭＡエンジン１２０がデータを受信することと並行して、ＤＭＡエンジン１２０はそのデータをプロセッサＲＡＭ１１１に書き込ませるようにプロセッサ・チップセット１１２に転送する。これは、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３とＤＭＡエンジン１２０との接続が同時単一方向転送を可能にするので可能である。したがって、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３がＰＣＩ−Ｅｘｐｒｅｓｓチャネルを介してＤＭＡエンジン１２０にデータを送信している間に、ＤＭＡエンジン１２０は、別のまたは同一のＰＣＩ−Ｅｘｐｒｅｓｓチャネルを介してＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３にデータを送信することができる。
【００１５】
図２は、同時中間プロキシＤＭＡを行うデータの流れを例示するブロック図である。図２は、データをディスクドライブ１３０からプロセッサＲＡＭ１１１およびＲＡＩＤエンジン１２２に並行して転送する、例としての同時ＤＭＡ動作を例示する。
【００１６】
図２では、第１のＤＭＡ動作が、データをディスクドライブ１３０からＤＭＡエンジン１２０に転送するように構成される。このＤＭＡ動作は、ＤＭＡエンジン１２０に関連するメモリ・ロケーションへのＤＭＡ動作として構成される。言い換えれば、ＤＭＡエンジン１２０は、メモリのブロックを有するか、またはそれをシミュレートする。このメモリは、ＰＣＩ−Ｅｘｐｒｅｓｓアドレス・スペース内の周辺メモリとして見える可能性がある。この第１のＤＭＡ動作は、図２では、矢印２０１、２０２、および２０３で示されている。矢印２０１は、ディスクドライブ１３０からプロセッサ・チップセット１１２の中へのデータ転送を示す。矢印２０２は、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３の中へのデータ転送を示す。矢印２０３は、ＰＣＩ−Ｅｘｐｒｅｓｓチャネルを介してのＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３からＤＭＡエンジン１２０へのデータ転送を示す。
【００１７】
ＤＭＡエンジン１２０は、受信したデータを１つまたは複数のハードウェア機能に転送することができる。これは、例えば、ＤＭＡエンジン１２０からＲＡＩＤエンジン１２２まで伸びている矢印２０４で示されている。
【００１８】
第２のＤＭＡ動作が、データをＤＭＡエンジン１２０からプロセッサＲＡＭ１１１に転送するように構成される。このＤＭＡ動作は、プロセッサ１１０およびプロセッサＲＡＭ１１１に関連するメモリ・ロケーションへのＤＭＡ動作として構成される。言い換えれば、ＤＭＡエンジン１２０は、ディスクドライブ１３０から、プロセッサ１１０によって直接読出し可能および書込み可能であるマザーボード１０１上のプロセッサＲＡＭ１１１のブロックへのＤＭＡ動作を完成する。第２のＤＭＡ動作は、図２では、矢印２０５、２０６、および２０７で示されている。矢印２０５は、ＰＣＩ−Ｅｘｐｒｅｓｓチャネルを介してＤＭＡエンジン１２０からＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３に転送される、矢印２０３を介して受信されたデータを示す。矢印２０６は、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３からプロセッサ・チップセット１１２の残余の部分の中へのデータ転送を示す。矢印２０７は、プロセッサ１１０を介してのプロセッサ・チップセット１１２からプロセッサＲＡＭ１１１へのデータ転送を示す。この実施形態では、このデータ転送は、ＤＭＡエンジン１２０によって制御されるＤＭＡ動作である。
【００１９】
図２に示されているデータの流れは例示のためであることを理解されたい。ＤＭＡ動作は、データのブロックをプロセッサＲＡＭ１１１から、ＤＭＡエンジン１２０、ミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、ホスト・インターフェース１２５、およびディスクドライブ１３０〜１３１を含めて任意の周辺装置に送信するように構成することができる。さらに、ＤＭＡエンジン１２０は、データをミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ホスト・インターフェース１２５、およびハッシュ・エンジン１２４のうちの２つ以上に／から送信または受信することができる。ＤＭＡエンジン１２０が読出し／書込みデータを、プロセッサ・メモリ１１１、ならびにミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４およびホスト・インターフェース１２５のうちの１つまたは複数に並行してミラーリングすることができるようにする、他のＤＭＡ構成が可能である。
【００２０】
図３は、データを転送する方法を例示する流れ図である。図３に例示されている諸ステップは、ＤＭＡシステム１００の１つまたは複数の要素によって実行することができる。
【００２１】
データの第１ブロックが、周辺装置から周辺メモリ・アドレス・スペース内のアドレス範囲に転送される（３０２）。例えば、データのブロックは、ホスト・インターフェース１２５から、ＤＭＡエンジン１２０に関連するＰＣＩ−Ｅｘｐｒｅｓｓアドレス・スペース内のアドレス範囲に転送させることができる。第１ブロックを周辺メモリ・アドレス・スペース内のアドレス範囲に転送することと並行して、データの第１ブロックがプロセッサ・メモリ・アドレス・スペース内のアドレス範囲に転送される（３０４）。例えば、データの第１ブロックを受信することと同時にまたは並行して、ＤＭＡエンジン１２０が、そのデータのブロックを、ＤＭＡ動作を使用してプロセッサＲＡＭ１１１に転送することができる。このＤＭＡ動作は、矢印２０５、２０６、および２０７で示されているデータの流れに従うことができる。このＤＭＡ動作は、ブロック３０２でデータが受信されたのと同一のＰＣＩ−Ｅｘｐｒｅｓｓチャネル上で行われてもよい。
【００２２】
データの第１ブロックが、ハードウェア機能に転送される（３０６）。例えば、ＤＭＡエンジン１２０が、データの第１ブロックをＲＡＩＤエンジン１２２に転送することができる。他の実施形態では、ＤＭＡエンジン１２０が、データの第１ブロックをミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、および／またはホスト・インターフェース１２５のうちの１つまたは複数に転送することができる。図３は、周辺装置からプロセッサＲＡＭ１１１へのＤＭＡ動作を例示する。ＤＭＡエンジン１２０によってハードウェア機能にミラーリングされるプロセッサＲＡＭ１１１から周辺装置へのＤＭＡ動作も考えられることを理解されたい。
【００２３】
図４は、ＤＭＡデータをハードウェア機能にミラーリングする方法を例示する流れ図である。図４に例示されている諸ステップは、ＤＭＡシステム１００の１つまたは複数の要素によって実行することができる。
【００２４】
第１のＤＭＡ転送が、データの第１ブロックを周辺装置から周辺メモリ・アドレス・スペースに転送するように構成される（４０２）。例えば、ＤＭＡシステム１００は、データをディスクドライブ１３０からＤＭＡエンジン１２０に送信するようにＤＭＡ転送を構成することができる。第２のＤＭＡ転送が、第１のＤＭＡ転送と並行して行われるように構成される（４０４）。例えば、ＤＭＡシステム１００は、ブロック４０２で構成されたＤＭＡ転送と並行して行われるようにＤＭＡ転送を構成することができる。このＤＭＡ転送は、データをＤＭＡエンジン１２０からプロセッサＲＡＭ１１１に送信することができる。
【００２５】
データの第１ブロックが、ハードウェア機能に転送される（４０６）。例えば、ＤＭＡエンジン１２０が、データの第１ブロックをＲＡＩＤエンジン１２２に転送することができる。他の実施形態では、ＤＭＡエンジン１２０が、データの第１ブロックをミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、および／またはホスト・インターフェース１２５のうちの１つまたは複数に転送することができる。この転送動作は、第１のおよび／または第２のＤＭＡ動作と同時にまたは並行して行われてもよい。  
【００２６】
図５は、ＤＭＡデータをハードウェア機能にミラーリングする方法を例示する流れ図である。図５に例示されている諸ステップは、ＤＭＡシステム１００の１つまたは複数の要素によって実行することができる。
【００２７】
第１のＤＭＡ転送が、データの第１ブロックをプロセッサ・メモリ・アドレス・スペースから周辺メモリ・アドレス・スペースに転送するように構成される（５０２）。例えば、ＤＭＡシステム１００は、データをプロセッサＲＡＭ１１１からＤＭＡエンジン１２０に送信するようにＤＭＡ転送を構成することができる。第２のＤＭＡ転送が、第１のＤＭＡ転送と並行して行われるように構成される（５０４）。例えば、ＤＭＡシステム１００は、ブロック５０２で構成されたＤＭＡ転送と並行して行われるようにＤＭＡ転送を構成することができる。このＤＭＡ転送は、データをＤＭＡエンジン１２０からディスクドライブ１３０、ホスト・インターフェース１２５、またはそれらの両方などの周辺装置に送信することができる。
【００２８】
データの第１ブロックがハードウェア機能に転送される（５０６）。例えば、ＤＭＡエンジン１２０が、データの第１ブロックをＲＡＩＤエンジン１２２に転送することができる。他の実施形態では、ＤＭＡエンジン１２０が、データの第１ブロックをミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、および／またはホスト・インターフェース１２５のうちの１つまたは複数に転送することができる。この転送動作は、第１のおよび／または第２のＤＭＡ動作と同時にまたは並行して行われてもよい。
【００２９】
前述のシステム、ドライブ、プロセッサ、エンジン、インターフェース、および機能は、１つまたは複数のコンピュータシステムとともに実装されるか、あるいは１つまたは複数のコンピュータシステムによって実行することができる。前述の方法は、コンピュータ可読媒体上に記憶させることができる。ＤＭＡシステム１００の要素の多くは、コンピュータシステムでも、それらを備えても、あるいは含んでもよい。これは、プロセッサ１１０、プロセッサ・チップセット１１２、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース１１３、ＤＭＡエンジン１２０、ミラー・エンジン１２１、ＲＡＩＤエンジン１２２、ｒｅｇｅｘエンジン１２３、ハッシュ・エンジン１２４、ディスクドライブ１３０およびディスクドライブ１３１を含むがそれらに限定されない。
【００３０】
図６は、コンピュータシステムのブロック図を例示する。コンピュータシステム６００は、通信インターフェース６２０、処理システム６３０、ストレージ・システム６４０、およびユーザインターフェース６６０を含む。処理システム６３０は、ストレージ・システム６４０に動作可能に結合される。ストレージ・システム６４０は、ソフトウェア６５０およびデータ６７０を記憶する。処理システム６３０は、通信インターフェース６２０およびユーザインターフェース６６０に動作可能に結合される。コンピュータシステム６００は、プログラムされた汎用コンピュータを備えてもよい。コンピュータシステム６００は、マイクロプロセッサを含んでもよい。コンピュータシステム６００は、プログラマブル回路または専用回路を備えてもよい。コンピュータシステム６００は、まとめて要素６２０〜６７０を備える複数の装置、プロセッサ、ストレージ、および／またはインターフェースに分散されてもよい。
【００３１】
通信インターフェース６２０は、ネットワークインターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を備えてもよい。通信インターフェース６２０は、複数の通信装置に分散されてもよい。処理システム６３０は、マイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備えてもよい。処理システム６３０は、複数の処理装置に分散されてもよい。ユーザインターフェース６６０は、キーボード、マウス、音声認識インターフェース、マイクロホンおよびスピーカ、グラフィカル・ディスプレイ、タッチスクリーン、または他のタイプのユーザインターフェース装置を備えてもよい。ユーザインターフェース６６０は、複数のインターフェース装置に分散されてもよい。ストレージ・システム６４０は、ディスク、テープ、集積回路、ＲＡＭ、ＲＯＭ、ネットワークストレージ、サーバ、または他のメモリ機能を備えてもよい。ストレージ・システム６４０は、コンピュータ可読媒体でもよい。ストレージ・システム６４０は、複数のメモリ装置に分散されてもよい。
【００３２】
処理システム６３０は、ストレージ・システム６４０からソフトウェア６５０を取り出し、実行する。処理システムは、データ６７０を取り出し、記憶することができる。処理システムはまた、通信インターフェース６２０を介してデータを取り出し、記憶することができる。処理システム６５０は、有形の結果を達成するために、ソフトウェア６５０またはデータ６７０を作成または変更することができる。処理システムは、有形の結果を達成するために、通信インターフェース６２０またはユーザインターフェース６７０を制御することができる。処理システムは、通信インターフェース６２０を介して、リモートに記憶されているソフトウェアを取り出し、実行することができる。
【００３３】
ソフトウェア６５０およびリモートに記憶されているソフトウェアは、オペレーティングシステム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および、通常はコンピュータシステムによって実行される他のソフトウェアを備えてもよい。ソフトウェア６５０は、アプリケーションプログラム、アプレット、ファームウェア、または、通常はコンピュータシステムによって実行される他の形態の機械可読処理命令を備えてもよい。処理システム６３０によって実行された場合、ソフトウェア６５０、またはリモートに記憶されているソフトウェアは、コンピュータシステム６００に本明細書に記載されているように動作するよう指図することができる。
【００３４】
本発明の上記の記述は、例示および説明のために提示されてきた。網羅的であること、または本発明を開示された厳密な形態に限定することを意図するものではなく、他の変更形態および変形形態が上記の教示にかんがみて可能であり得る。実施形態は、本発明の原理およびその実用的な適用形態を最もわかりやすく説明し、それによって、他の当業者が本発明を企図された特定の用途に適するように様々な実施形態および様々な変更形態において最もうまく利用することができるようにするために選択され記述された。添付の特許請求の範囲は、従来技術によって制限されない限り、本発明の他の代替実施形態を含むと解釈されるものとする。
【図１】
2010287211.tif 000003
【図２】
2010287211.tif 000004
【図３】
2010287211.tif 000005
【図４】
2010287211.tif 000006
【図５】
2010287211.tif 000007
【図６】
2010287211.tif 000008