JP2008527496A - 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン - Google Patents

低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン Download PDF

Info

Publication number
JP2008527496A
JP2008527496A JP2007549528A JP2007549528A JP2008527496A JP 2008527496 A JP2008527496 A JP 2008527496A JP 2007549528 A JP2007549528 A JP 2007549528A JP 2007549528 A JP2007549528 A JP 2007549528A JP 2008527496 A JP2008527496 A JP 2008527496A
Authority
JP
Japan
Prior art keywords
storage engine
host
disk drive
data
local bus
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
Application number
JP2007549528A
Other languages
English (en)
Inventor
アンディー ミルズ,
ケント ピー. フィッシャー,
Original Assignee
ネットセル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ネットセル コーポレイション filed Critical ネットセル コーポレイション
Publication of JP2008527496A publication Critical patent/JP2008527496A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ファイルのコピーおよび移動などのアタッチされたディスクドライブ動作、ならびに検索、ウイルススキャニング、およびボリュームマージなどのより複雑なプロセスについて、新規性のあるインテリジェントストレージエンジンのコンセプトが開示される。一実施形態において、ストレージエンジン(40)は、ローカルプロセッサインテリジェンスを利用して、適切なドライバ(60)およびAPI(App.B)を介してアクセスされて、適切な場合において結果データを戻すことを除いて、ホストCPU(22)に負荷をかけることなしに、かつローカルCPUバス(34)にデータトラフィックを課することなしに、ディスクアクセス動作を実行する。

Description

(関連出願)
本出願は、2004年12月29日に出願された米国仮特許出願第60/640,634号に対して優先権を主張し、その全体がこの参照によって本明細書中に援用されている。
(技術分野)
本発明は、デジタルコンピューティングシステムに関連し、特に、選択されたディスクドライブ動作に関するローカルバストラフィックを低減する方法および装置に関する。
(本発明の背景)
たとえばデスクトップまたはラップトップパーソナルコンピュータを含む多くの最新のコンピューティングマシンは、オペレーティングシステム、アプリケーションプログラム、およびデータファイルを格納するために、一つ以上のハードディスクドライブを使用する。一部の場合は、オペレーティングシステムを専用オーディオビデオディスクファイルとしてデータファイルから分離する手段として複数のディスクドライブが単一のPCに接続され得、または性能および信頼性を向上させるためにRAID構成においてともに結合され得る。ディスクドライブは、マシンの内部に、外部に、または取り外し可能デバイスとしてなど、多様な構成で装備され得る。このアプリケーションの目的のために、すべてのそのような構成は、「アタッチされた」ドライブであると考えられる。換言すると、我々は、本明細書において「アタッチされた」という用語を使用する場合に、データがネットワークを通過することなく、データがローカルバスとアタッチされたドライブとの間で転送され得るということを意味する。取り外し可能ドライブは、本目的のために、やはり「アタッチされた」と考えられる。さらに、このアプリケーションにおいて、IEEE1394、USB、SATA、または他の種類の接続によってホストに結合されるディスクドライブなどのストレージデバイスは、ネットワークアタッチされたものとは区別されるとして、やはり直接的に「アタッチされた」と考えられる。
アタッチされたディスクドライブストレージシステムの数、種類、および配置には関わりなく、データ(またはコピー)を、一つのディスクドライブ上の一つの場所から、同一のディスクドライブ上の別の場所に、別の論理パーティションに、または物理的に分離したディスクドライブに移動させることを伴う、多くのホストアプリケーションまたは動作がある。他の一般的な動作は、ハードドライブ上に格納されたファイル内の特定のデータを検索すること、またはバックアップアプリケーションにおいてファイルを同期化することを含む。そのような動作またはアプリケーションの例は、ファイルのコピー、移動、ディスクドライブのデフラグメンテーション、アンチウイルススキャン、データのスキャン(検索)、およびデータのマイグレーション/変換を含む。
上述のアプリケーションの公知のインプリメンテーションは、ホストCPUの関与を必要とし、一つまたは複数のディスクドライブがアタッチされたホストバスに著しく負荷をかけ得る。(我々は、このアプリケーションにおいて「ホストバス」および「ローカルバス」という用語を互換的に使用する。多くのそのようなバスがあり、なかでもPCIバスは周知の例である)。CPUに負荷をかけ、かつローカルバスに重いトラフィックを強いるディスク動作は、結果的に、ファイル移動動作に関連しない他のアプリケーションの速度を遅くする。なぜなら、これらのバックグラウンド動作を実行するために使用される同一のホストデータバスは、他のアプリケーションによっても使用されるからである。たとえば、現在存在するものとしてのバックアップおよびアンチウイルスアプリケーションに関する最も一般的な苦情の一つは、それらのアプリケーションがしばしばおしつけがましいとうことである。すなわち、それらのアプリケーションは、システムバスを横切って前後に送信される必要のあるデータの量のために、使用中のアプリケーションに割り込み、しばしば高速コンピュータの性能を低下させる。さらに最悪なことに、スキャンまたはバックアップのプロセスが実行し始めるときにシステムメモリが満杯に近い場合に、これらの基本的な動作は過剰なディスクスワッピング(disk swapping)を生じさせ得る。
説明するために、図1は、簡略化された概念図10でコンピュータおよびアタッチされたディスクドライブを示す。この図は、ディスクドライブ16との間の、一対のデータストリーム14によって明示される、進行中のファイルコピー動作12を示す。さらに、アプリケーション20が実行中であり、そのことは、ドライブ26および28上にさまざまに格納された他のデータの読み出し、書き込み、および処理をCPU22に実行させる。これらのドライブに関与する読み出しおよび書き込みの動作は、30および32として図示される追加のデータストリームを生じさせる。この図におけるすべての4つのデータストリームは、ローカルバス34上のトラフィックに寄与する。
利用可能なリソースをより良く利用するために、ハードウェアおよびソフトウェアのインテリジェント(intelligent)アプリケーションによってコンピュータシステム性能を向上させるニーズがある。一定の共通のアプリケーションおよび動作、特にアタッチされたストレージデバイスとの間のデータ転送を伴うものによってCPUおよびそのローカルバスに課せられる負荷が緩和されるならば、全体的なシステム性能は著しく向上させられる。
追加の局面および利点は、以下の好ましい実施形態の詳細な説明から明らかであり、説明は添付の図面を参照して進められる。
(好ましい実施形態の詳細な説明)
従来技術の欠点および限界は、新規性のあるインテリジェントストレージエンジンのコンセプトの種々の実施形態によって対処され得る。ローカルプロセッサインテリジェンスを利用し、適切なAPIを介してアクセスされる、ストレージエンジンは、適切な場合における結果データを除いて、CPUに負荷をかけることなく、かつローカルCPUバスにデータトラフィックを課することなく、ディスクアクセス動作を実行する。
本発明は、PCベースのストレージなどに適用され、そこでは、ハードドライブが、ホストCPUの内部ローカルバス、または「直接アタッチされたストレージ(direct attached storage)」すなわちDASと呼ばれる外部の直接接続ストレージをサポートする外部拡張ポートに、密接に結合または直接的に接続される。そのようなCPU内部バスは、たとえばバス仕様のPCIファミリーの一つであり得る。外部ポートは、たとえばUSB2、1394、または外部シリアルATAポートであり得る。
概念的には、本発明は図2によって図示され得る。同図は、図1と同一のホストを示し、上述したのと同一のファイルコピー動作およびアプリケーションが実行中である。基本的な相違は、ISE(インテリジェントストレージエンジン)(Intelligent Storage Engine)40に関し、この例においてはローカルバス34とディスクドライブ16、26、28との間に論理的に展開されるハードウェアとソフトウェアとの組み合わせである。図1のファイルコピープロセス12は、ローカルバス34を通して前後にデータを流してCPUによってもはや実行されない。ここでは、新しいISEプロセス42が代わりにファイルコピー動作を実行し、データストリームはもはやローカルバス34を通過せず、したがってローカルバスおよびCPUの負荷が低減される。コピーはISEによって実行され、ローカルバス上にはごく少数のハイレベルコマンド44があるだけである。ISEからの単純な応答は、動作の完了に信号を送り得る。この例において、ユーザデータは、コピー動作12を実行するのにローカルバスを通過しない。
このように、一つの局面において、本発明は、一定のディスク関連の機能をホストCPUからオフロード(offload)し得る専用の独立したプロセッサまたは「ストレージエンジン」を使用してインプリメントされ得、それによって、ドライブが通常に接続されるCPUおよびホストバスへのオーバーヘッドおよび負荷を低減する。
本発明の別の局面において、ストレージエンジンは、アプリケーションにとって透明であるようにサポートされる。本発明のさらなる局面において、PCの全体的性能を向上させるために、ストレージエンジンは、アプリケーションプログラミングインタフェースを介して拡張機能を実行し得る。ホストアプリケーション、ライブラリ機能、デバイスドライバなどは、好ましくは適切なAPIを介して、ISEを利用し得る。
たとえば、単一のコマンド「DS_DiskdataBlockCopy」は、CPUがISEにデータのブロックをソースからドライブ16(または別のドライブ)上の宛先の場所にコピーするように命令するために使用され得る。(例示的なAPI機能および可能な構文については以下を参照)。
本発明に一致したISEは、一般的に、ホストCPUバスまたは「ローカルバス」への接続のためのホストインタフェースと、一つ以上のディスクドライブへの接続のためのドライブインタフェースと、ISEに対してローカルなプロセッサとを備える。図3を参照されたい。換言すると、ISEプロセッサは、ホストCPUまたはホストプロセッサとまったく異なる。ISEは、一部の実施形態においてローカルキャッシュメモリをも含み得る。さらにISEは、例としてFLASHメモリなどの、ソフトウェアを格納する他のメモリを含み得る。
一実施形態において、ホストインタフェースは、ストレージデバイスのための周知のインタフェースであるATA、fastATA、ATAPIなどの標準的インタフェースをインプリメントする。一つの代替の実施形態によると、ホストインタフェースはシリアルリンクインタフェース(たとえばSATAインタフェース)をインプリメントする。
一般的に、以下にさらに詳細に説明されるように、ISEは、直接ストレージアタッチされたアプリケーションについて、一定のタスクをホストからオフロードする。このことは、ホストCPUへの負荷を軽減し、ホストローカルバス(たとえばPCIバス)上のトラフィックを低減することによって、システム性能を向上させる。
一つの現在好ましい実施形態において、ホストアプリケーションまたはホストオペレーティングシステムは、ISEに対して直接的な呼び出しを行い得る。種々のカスタムアプリケーションおよびプロセスが、やはりホストへの負荷がほとんどまたはまったくなしに、展開され得る。例は、ウイルススキャニング、バックアップ同期化サポート、マイグレーション、索引付け、デフラグメンテーションなどを含む。CPUとアタッチされたディスクドライブストレージとの間のCPUローカルバスに重いトラフィックを課す実質的にいかなる動作も、全体的または部分的にISEにオフロードされ得ることによって、全体的なシステム性能を向上させる。
ドライブ側においては、いつでも使えるディスクコントローラの能力に依存して、一つ以上のディスクドライブのほとんどいかなる構成も展開され得る。
RAID機能は、同じくISE機能をインプリメントするコントローラデバイス(集積回路、ASIC、SOC、PCBなど)において有利にインプリメントされ得る。
本発明の利点は以下を含む:
−大きなギガバイトのビデオファイルのコピーまたはバックアップは、もはやホストバスまたはCPUを支配しない。
−低減されたホストCPU介入を伴うストリーミングデータサポート
−アンチウイルスプログラムは、アプリケーションに割り込むことなしにバックグラウンドで実行され得る。
−データがインタフェースからドライブへ通過するときのデータのアクティブスキャニング(アンチウイルス)。
−バックグラウンドのデフラグメンテーションがより頻繁に生じ得る。
図3は、ISE76の一実施形態を図示する簡略化されたハードウェアのブロック図である。現在好ましい実施形態において、ISEは、たとえば66MHzまたは100MHzのIPコアプロセッサを備え得るISEプロセッサコア80を含む。エンジンは、パーソナルコンピュータおよび他のマイクロプロセッサベースのシステムにおいて一般的に使用されるPCIバスなどのホストローカルバス84に対してインタフェースするホストインタフェース78を有する。ホストDMAブロック82は、ローカルバス(または本明細書中で同義的に使用される「CPUバス」)を用いてDMA動作をインプリメントする。ローカルキャッシュメモリ86は、データバッファリングのためのストレージエンジンにアクセス可能であり得るか、またはその中に備えられ得ることによって、全体的なシステム性能を最適化する。SDRAMなどは、ホストインタフェースとドライブインタフェースとの間のデータ経路におけるデータバッファリングのために使用され得る。現在のテクノロジーにとって、およそ512MB程度のキャッシュは十分であるが、ストレージおよび関連インタフェースが進化するにつれて、これは変化することが予想され得る。さらに、ローカルソフトウェアストア(store)(たとえばFLASHメモリ88を使用して)は、好ましくは、ISEプロセッサ80によって実行可能なソフトウェアを格納およびアップデートするようにインプリメントされる。種々の形態のROMも使用され得る。
タイトルが「RAID Controller System and Method with ATA Emulation Host Interface」で、この参照によって本明細書中で援用されている、同一人に譲渡される米国特許第6,772,108B1号に記述されているように、望まれる場合には、ホストインタフェース78はATAエミュレーションをインプリメントし得る。
一実施形態において、データ経路帯域幅は、800MB/sキャッシュ、533MB/sホスト、および400MB/sドライブであり得る。「RAID XOR」と名付けられたブロック90は、好ましくはデータ経路において「オンザフライ(on the fly)」でRAID動作をインプリメントするための手段を指す。ディスクドライブストレージシステムのためのオンザフライXOR冗長動作は、その参照によって本明細書中に援用されている米国特許第6,018,778号に記載されている。
ディスクドライブインタフェース92は、種々の形態を取り得る。単純な例において、それは最大4つのIDEディスクドライブへの接続のための標準的なATAインタフェースを備える。それは、一つ以上のUDMAインタフェース、または一つ以上のSATAインタフェース、または他のテクノロジーを備え得る。本発明のISEコンセプトは、DASシステムにおいて有用な任意の所望のディスクドライブ/ドライブインタフェーステクノロジーに適用され得る。
ドライブスイッチ94と名付けられたブロックは、基本的に、出願人のPCT国際公開第2004/095255 A2号パンフレット、およびそれに対応する米国特許出願公開第2004−0264309 A1号(両方とも参照によって本明細書中で援用されている)に記載されているような、データ経路スイッチングおよびマッピング機能を備える。現在好ましい商業的な実施形態において、RAID XORエンジンは、このドライブスイッチ94に含まれるが、図3においては分離したブロックとして示されている。
図4は、ストレージエンジンの別の実施形態の簡略化されたブロック図である。図3または4の実施形態に類似した実施形態は、ディスクコントローラユニットの一部として(たとえばマザーボードまたはドーターボード上で)好都合にインプリメントされ得る。この場合には、100MHz専用ストレージプロセッサが提供されるが、これらは、サポートされるべき所望の機能および性能要件に依存して、実質的により高いかまたはより低い周波数であり得る。キャッシュは、アプリケーション要件に依存して、1Gバイト以上までを含み得る。
図4の例において、データ経路帯域幅は、2GB/sキャッシュ、250MB/s(1x)または1GB/s(4x)PCIエクスプレスホストインタフェース、および1.2GB/sドライブであり得る。別の実施形態は、ウイルス署名スキャニングなどのアプリケーションのために、たとえば512 64ビットワードまでのデータのアクティブスキャニングおよびマッチングをインプリメントする。RAIDレベル0、1、XL、5が含まれ得る。データストリームおよびデータストリームキューの管理もまた、ホストバスとの間でデータを転送する前に可能である。
(動作)
動作においては、2つの一般的な種類の動作がある。第1のモードによると、ファイルコピーおよびファイル移動などの標準的なファイル動作は、ファイルシステムフィルタによってインタセプトされ、ISEに直接的に送信されることによって、ドライブ間でデータブロックを移動させる。第2のモードにおいて、APIは、アンチウイルスソフトウェア、バックアップソフトウェア、ディスクイメージング、ディスクデフラグメンテーションユーティリティなどのようなサードパーティアプリケーションのために定義される。これらの各々が次に説明される。
ここで図5を参照すると、この簡略化されたコマンドおよびデータフロー図は、DirectStor APIコマンドを使用し得るかまたは使用しないことがあり得るアプリケーションプログラム50を示す。ファイルシステムフィルタモジュール54は、OSファイルシステム56に対するコマンドを監視する。それは、所与のコマンドが、ストレージエンジン66に関連するコントローラに現在接続されているディスクドライブに向けられているかどうかをチェックする。コマンドがそのようなドライブ(たとえば図5におけるドライブB(72))に向けられており、かつコマンドがフィルタ54によってそれが処理し得るコマンドの所定のセットの一つとして認識される場合には、フィルタ54はコマンドをインタセプトし、その結果、コマンドは、カーネル内にインプリメントされた標準的なOSファイルシステム56および標準的なディスクドライバコード58に到達しない。代わりに、フィルタ54は、DirectStor APIを使用して、一つ以上のコマンドを、そのAPIをインプリメントするために備えられた特殊なドライバ60に直接的に送信する。ドライバ60は、DirectStor APIコマンドを認識し、かつそれらを実行のためにストレージエンジン66に直接的に転送するように構成される。
別の実施形態において、サードパーティアプリケーション50そのものが、そのコードにおいてDS API52を利用する。したがって、アプリケーションはコマンドをドライバ60に直接的に送信し、ドライバ60は次にそれらをストレージエンジン66に転送する。ストレージエンジンは、DS APIに応答してコードを実行することによって、移動およびコピーなどのディスクドライブ動作をローカルに実行し、これはPCIバス62にいかなるデータも置かないことを意味する。エンジンに対する各呼び出しは、以下にさらに説明されるように、識別のためのタグを割当てられる。
エンジン66は、動作が完了するまで、PCIローカルバスを通過することなく、かつホストCPUサイクルを使用することなく、アタッチされたドライブA(70)および/またはB(72)との間のデータ転送をバッファリングするための、キャッシュメモリ68をオプションとして含み得る。上述のように、DRAMまたはSDRAMなどのキャッシュをインプリメントするために、任意の適切なランダムアクセスメモリが使用され得る。一実施形態において、ディスクコントローラPCBは、ホストインタフェースおよびドライブインタフェースとともに、オンボードのストレージエンジンおよびキャッシュを含む。
これらのAPIは、アンチウイルス、ゲーム、ストリーミングデジタルメディア集約的アプリケーション、非公式で安全で隠されたストレージスペースを必要とし得るアプリケーション、バックアップおよびデフラグメンテーションソフトウェアなどの、ISVについて定義される。これらのAPIを呼び出すことによって、アプリケーションはコマンドをNetCell ISEに直接的に送信し得る。
APIは、制限なしに以下を含む種々の形態のうちのいずれかにおいてインプリメント/解除され得る:
−ダイナミックリンクライブラリ(DLL)。
−Windows(登録商標)サービス。
−COMオブジェクト。
以下は、本発明の一実施形態に従った、ISE使用可能にされたホストアプリケーション/ライブラリ/デバイスドライバとISEとの間の、ISE ATAコマンドインタフェースの説明的な例である。この実施形態は、インテリジェントストレージエンジンのための簡潔な言い方として登録商標「DirectStor」と呼ばれる。
(DirectStorの例示的なコマンド特徴のセット)
(ブロックコピー/移動コマンド)
1.説明
これらのコマンド/サブコマンドは、2つのアレイの間でデータのブロックをコピーまたは移動するか、または同一のアレイ内でデータを移動するように定義される。第2のアレイは、第1のアレイと同じカードにアタッチされた内部アレイ、またはeSATAポートにアタッチされた外部アレイのいずれかであり得る。
2.コマンドコード:83h
3.サブコマンド
前述のフィーチャレジスタ(Feature Register)のコンテンツは、サブコマンドを指定する。
−MOVE_SET_SRC_LBA
−MOVE_SET_LAST_LBA
−MOVE_SET_DEST_LBA
−MOVE_PROCEED
−MOVE_SUSPEND
−MOVE_ABORT
−MOVE_STATUS
(MOVE_SET_SRC_LBA)
ソースアレイの開始LBAを設定するサブコマンド。
インプット
Figure 2008527496
アウトプット
Figure 2008527496
Figure 2008527496
(MOVE_SET_LAST_LBA)
ソースアレイの終了LBAを設定するサブコマンド。
インプット
Figure 2008527496
アウトプット
Figure 2008527496
Figure 2008527496
(MOVE_SET_DEST_LBA)
宛先アレイの開始LBAを設定するサブコマンド。
インプット
Figure 2008527496
Figure 2008527496
アウトプット
Figure 2008527496
(MOVE_PROCEED)
発行されたブロックコピー/移動コマンドの実行を進めるサブコマンド。
インプット
Figure 2008527496
Figure 2008527496
アウトプット
Figure 2008527496
(MOVE_SUSPEND)
発行されたブロックコピー/移動コマンドの実行を中断するサブコマンド。
インプット
Figure 2008527496
Figure 2008527496
アウトプット
Figure 2008527496
(MOVE_ABORT)
発行されているブロックコピー/移動コマンドを打ち切るサブコマンド。
インプット
Figure 2008527496
Figure 2008527496
アウトプット
Figure 2008527496
(MOVE_STATUS)
発行されているブロックコピー/移動コマンドの進行状態を得るサブコマンド。
インプット
Figure 2008527496
Figure 2008527496
アウトプット
Figure 2008527496
以下は、本発明に一致するハイレベルAPIの一部の例である。これらは単に例示的なものであり、網羅的なものではない。本発明の一部の実施形態は、APIの使用を要求せず;一部のインプリメンテーションは、アプリケーションプログラムにとって透明である。
(早いブロック移動API)
(DS_DiskdataBlockCopy)
この機能は、データのブロックを、一つの場所から、同一のディスクボリューム上の別の場所へ、またはISEにアタッチされた別のディスクボリュームに、コピーする。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者(caller)は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
DestBlockLocation
[in]宛先ボリュームブロックの場所情報を含む。
SrcBlockLocation
[in]ソースボリュームブロックの場所情報を含む。
ProgressCallback
[in]特定の間隔で呼び出されることによって、発行されたコマンドの進捗を発呼者に通知するコールバック機能に対する、ポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_DiskdataBlockMove)
この機能は、データのブロックを、一つの場所から、同一のディスクボリューム上の別の場所へ、またはISEにアタッチされた別のディスクボリュームに、移動する。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
DestBlockLocation
[in]宛先ボリュームブロックの場所情報を含む。
SrcBlockLocation
[in]ソースボリュームブロックの場所情報を含む。
ProgressCallback
[in]特定の間隔で呼び出されることによって、発行されたコマンドの進捗を発呼者に通知するコールバック機能に対する、ポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_DiskdataBlockErase)
この機能は、ディスクボリュームからデータのブロックを消去する。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
BlockLocation
[in]ボリュームブロックの場所情報を含む。
ProgressCallback
[in]特定の間隔で呼び出されることによって、発行されたコマンドの進捗を発呼者に通知するコールバック機能に対する、ポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS DiskdataBlockFill)
この機能は、ディスクボリュームのブロックを所与のデータパターンで満たす。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
BlockLocation
[in]ボリュームブロックの場所情報を含む。
Pattern
[in]データパターンを含む。
ProgressCallback
[in]特定の間隔で呼び出されることによって、発行されたコマンドの進捗を発呼者に通知するコールバック機能に対する、ポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_CreateDisklmage)
この機能は、ボリュームの完全なディスクイメージをターゲットボリューム上に作成する。
Figure 2008527496
パラメータ
Volume
[in]OSによって割当てられる宛先ボリュームの文字。
Volume
[in]OSによって割当てられるソースボリュームの文字。
CommandTag
[in]各DirectStor APIは、コマンドタグによってタグ付けされる。このタグは、コールバック機能を提供される発呼者に渡される。このことは、発呼者がAPIのすべてまたはグループについて単一のコールバック機能を有することを援助する。また、APIの発呼者は、同じタグを打ち切りコマンドAPIに渡すことによって動作を打ち切り得る。
ProgressCallback
[in]特定の間隔で呼び出されることによって、発行されたコマンドの進捗を発呼者に通知するコールバック機能に対する、ポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_DiskdataBlockRead)
アプリケーションは、この機能を呼び出すことによって、ディスクボリュームからデータのブロックを読み出す。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
BlockLocation
[in]ボリュームブロックの場所情報を含む。
DataBuffer
[in]インプットデータバッファに対するポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_DiskdataBlockWrite)
アプリケーションは、この機能を呼び出すことによって、データのブロックをディスクボリュームに書き込む。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
BlockLocation
[in]ボリュームブロックの場所情報を含む。
DataBuffer
[in]アウトプットデータバッファに対するポインタ。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
(DS_Abort)
この機能を使用することによって、ISEに対して発行されたコマンドを打ち切る。
Figure 2008527496
パラメータ
Dsr
[in]DirectStorはパラメータをリクエストする。各リクエストはタグ値に関連づけられる。発呼者は、このタグ値を有するコールバック機能を通して通知される。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって動作を打ち切り得る。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。
(例示的なアンチウイルスAPI)
(DS_ScanVolumeforSignature)
この機能は、指定された署名についてボリュームをスキャンする。アプリケーションは、実際のウイルス署名、または安全なディスク領域上に格納された署名を指し示すタグを渡し得る。渡されたコールバック機能は、指定された間隔において呼び出されることによって、進捗を通知する。
Figure 2008527496
パラメータ
Volume
[in]OSによって割当てられるターゲットボリュームの文字。
CommandTag
[in]各DirectStor APIは、コマンドタグによってタグ付けされる。このタグは、コールバック機能を提供される発呼者に渡される。このことは、発呼者がAPIのすべてまたはグループについて単一のコールバック機能を有することを援助する。また、APIの発呼者は、同じタグを打ち切りコマンドAPIに渡すことによって動作を打ち切り得る。
pSignature
[in]ウイルス署名。これは実際のウイルス署名であり得るか、または安全な領域上に格納された署名を指し示すタグであり得る。さらなる情報については、データ構造のセクションを参照されたい。
戻り値
成功した場合にゼロを返し、エラーがある場合に非ゼロを返す。エラーコードの説明についてはセクション5.5を参照されたい。
他の例示的な機能は、以下を含み得る。
DS_AbortScan
DS_ScanVolumeBlock
DS_StoreSignature
DS_WriteToSecureDiskZone
DS_ReadFromSecureDiskZone
DS_SavePassword
DS_VerifyPassword
(データ構造)
(DS_REQUEST)
一実施形態において、ISEに対する各リクエストは、タグ値に関連づけられる。このタグは、発呼者のコールバック機能において、発呼者に渡し戻される。これは、発呼者がAPIのすべてまたはグループについて単一のコールバック機能を有することを援助する。APIの発呼者は、同じタグを用いてAbort APIを呼び出すことによって、動作を打ち切り得る。
Figure 2008527496
上述の説明に従って、本発明の主な特徴および局面の一部は、少なくとも一つのハードディスクドライブへの直接接続のために構成されたストレージエンジン装置を含むものとして説明され得、直接アタッチされたストレージデバイスとして高速ローカルバスまたはホストシリアルリンクを介してストレージ処理デバイスにアタッチされたホストCPUによって通常に実行される機能を実行するように構成され得る。一般的に、ストレージエンジンは、コマンドを受信し、受信されたコマンドに応答して、一つまたは複数のハードディスクドライブ上に格納されたデータに、もしくはホストまたは一つまたは複数のディスクドライブに向けられたローカルRAMストア内にキャッシュされたデータに、データ移動または処理命令を実行し、上記アタッチされたホストプロセッサに結果を戻す。上記に示されたように、そのようなコマンドは、一つのドライブ内または複数のドライブにわたって、データの移動またはコピーをするものであり得、またはウイルススキャンなどの動作を実行し得る。重要なことに、これらの動作は、ストレージエンジンによってそれがローカルバスまたはホストシリアルリンク上でユーザデータを移動させるようにして実行される。
ストレージエンジンを使用するコマンドは、ホストプロセッサからオペレーティングシステムへのコマンドをインタセプトすることによって、または所定のアプリケーションプログラミングインタフェース(API)を介して、生じ得る。このことは、ホストCPUおよび/またはローカルバスに負荷をかけることなしに、特殊なデータ動作を、アンチウイルスプログラムなどのアプリケーションプログラムにとって利用可能にする。そのような命令は、論理アドレスブロック(LBA)ソースおよび宛先情報に基づいて、ターゲットデータを特定し得る。
本明細書中に開示される種類のストレージエンジンは、種々の態様でインプリメントおよび使用され、たとえば実質的に単一の集積回路内に;実質的に単一の回路基板内に;PC内に組み込まれ;デジタルビデオレコーダシステムにインプリメントされ;デジタルビデオシステムにインプリメントされ;または当業者が前述を鑑みて理解するような多数の他の方法においてインプリメントされることができる。
本発明の基礎をなす原理から逸脱することなく、上述の実施形態の詳細に多くの変更がなされ得ることが当業者にとって自明である。したがって、本発明の範囲は、添付の特許請求の範囲のみによって決定されるべきである。
図1は、ホストシステムおよびアタッチされたDASディスクドライブの簡略化された概念図である(従来技術)。 図2は、本発明の実施形態に従った「インテリジェント格納エンジン」(以降「ISE」)を使用する、ホストシステムおよびアタッチされたDASディスクドライブの簡略化された概念図である。 図3は、本発明に一致したISEの一実施形態を図示する簡略化されたハードウェアのブロック図である。 図4は、本発明に一致したISEの代替の実施形態を図示する簡略化されたハードウェアのブロック図である。 図5は、本発明に一致したISEの一実施形態を図示する簡略化されたソフトウェアのブロック図である。

Claims (20)

  1. アタッチされたストレージ動作に関連してホストバストラフィックを低減するインテリジェントストレージエンジン装置であって、該ストレージエンジン装置は、
    ホストアプリケーションから所定の命令または機能呼び出しを受信するホストインタフェースと、
    該エンジンを、データ転送のために少なくとも一つのアタッチされたディスクドライブに結合するドライブインタフェースと、
    該受信された命令に応答して、該アタッチされたストレージデバイスを用いてデータ転送を実行する、該ストレージエンジンにオンボードのプロセッサと
    を備え、該ストレージエンジンは、ユーザデータを該ホストバスまたはホストシリアルリンクに置くことなしに、該アタッチされたストレージデバイスを用いて、該データ転送を実行するように構成されている、ストレージエンジン装置。
  2. 前記ドライブインタフェースは、多数のディスクドライブへの接続を構成可能なドライブスイッチを備える、請求項1に記載のストレージエンジン装置。
  3. 前記アタッチされたホストを用いたDMA転送のためのDMAコンポーネントを含む、請求項1に記載のストレージエンジン装置。
  4. 所定のアプリケーションプログラミングインタフェース(API)を介して、ホストCPUからデータ移動または処理の命令を受信するように構成されている、請求項1に記載のストレージエンジン装置。
  5. ユーザデータを一時的に格納するためのローカルキャッシュメモリを含む、請求項1に記載のストレージエンジン装置。
  6. 選択されたファイルストリームのデータをオンザフライでスキャンし、そのスキャニングデータを所定の参照シーケンスにマッチングさせる手段を含む、請求項1に記載のストレージエンジン装置。
  7. 低減されたローカルバストラフィックでディスクドライブ動作を実行する方法であって、該方法は、
    少なくとも一つのディスクドライブへのアクセスを要求する少なくとも一つのホストアプリケーション機能を定義し、対応する機能呼び出しを有することと、
    ストレージエンジン装置において該機能呼び出しをインプリメントすることと、
    ホストローカルバスおよび少なくとも一つのアタッチされたディスクドライブに対して、該ストレージエンジン装置をインタフェースすることと、
    該機能呼び出しが表明されたときに該機能呼び出しを検出するように、該ローカルバスを監視することと、
    該検出された機能呼び出しに応答して、ユーザデータを該ローカルバスに置くことなしに、該ストレージエンジン装置の対応する機能を実行することと、
    完了後に、該実行された機能の結果を該ローカルバスを介して戻すことと
    を包含する、方法。
  8. 前記ストレージエンジンにインプリメントされている前記ホストアプリケーション機能は、ファイルコピーおよびファイル移動の動作を含む、請求項7に記載のディスクドライブ動作を実行する方法。
  9. ソフトウェアレイヤおよびハードウェアインタフェース機能呼び出しをキャッシュする標準的な組込みのオペレーティングカーネルシステムファイルを回避し、代わりに、少なくとも一つの対応するコマンドを前記ストレージエンジンに直接的に送信することによって、OS呼び出し動作を完了するようにホストソフトウェア内の動作を実行することを含む、請求項7に記載のディスクドライブ動作を実行する方法。
  10. 前記ホストローカルバスまたはシリアル接続に負荷をかけることなしに、2つのディスクドライブの間でデータを移動させることを含む、請求項7に記載の方法。
  11. コマンドを監視するファイルシステムフィルタモジュールを、オペレーティングシステムファイルシステムに提供することと、
    該ファイルシステムフィルタモジュールにおいて、所与のコマンドが前記ストレージエンジンに現在アタッチされているディスクドライブに向けられているかどうかをチェックすることと、
    コマンドがアタッチされたディスクドライブに向けられており、かつ該コマンドが該フィルタモジュールによってそれが処理し得るコマンドの所定のセットの一つとして認識される場合に、該ストレージエンジンにおいて処理するために該コマンドをインタセプトすることと
    を含む、請求項7に記載のディスクドライブ動作を実行する方法。
  12. 前記動作の状態の前記ホストに定期的な情報を提供することと、リクエストされた動作の状態をキューイングすることと、該動作が完了したときに全体的な結果を提供することとを含む、請求項11に記載の方法。
  13. 前記最終結果は、前記リクエストされた動作が完了しなかったこと、または該動作が首尾良く完了したことを示す前記ホストへの指示を含む、請求項11に記載の方法。
  14. 前記最終結果は、リクエストされた結果データの引き渡しを含む、請求項11に記載の方法。
  15. 前記動作は、第1のディスクドライブから第2のディスクドライブへのファイル移動、ファイルコピー動作、ディスクボリュームマージ、ウイルススキャン、RAIDドライブアレイ再構築のうちの一つを含む、請求項11に記載の方法。
  16. 前記動作は、格納されたユーザデータの検索を含む、請求項11に記載の方法。
  17. 低減されたローカルバストラフィックでディスクドライブ動作を実行する方法であって、該方法は、
    少なくとも一つのディスクドライブへのアクセスを要求する、少なくとも一つのアプリケーション機能を定義することと、
    ローカルプロセッサとローカルメモリとを有するストレージエンジン装置に該機能をインプリメントすることと、
    ホストローカルバスおよび少なくとも一つのアタッチされたディスクドライブに対して、該ストレージエンジン装置をインタフェースすることと、
    所定のAPIを介してアプリケーションプログラムから機能呼び出しを受信することと、
    該受信された機能呼び出しに応答して、ユーザデータを該ローカルバスに置くことなしに、該ストレージエンジン装置の対応する機能を実行することであって、該実行は該少なくとも一つのアタッチされたディスクドライブにアクセスすることを含むことと、
    完了後に、該実行された機能の結果を該アプリケーションプログラムに戻すことと
    を包含する、方法。
  18. 前記アプリケーションプログラムは、アンチウイルスアプリケーションである、請求項17に記載の方法。
  19. 前記APIは、ディスクブロック動作を含む、請求項17に記載の方法。
  20. 前記APIは、検索動作を含む、請求項17に記載の方法。
JP2007549528A 2004-12-29 2005-12-22 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン Pending JP2008527496A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64063404P 2004-12-29 2004-12-29
PCT/US2005/046931 WO2006071817A2 (en) 2004-12-29 2005-12-22 Intelligent storage engine for disk drive operations with reduced local bus traffic

Publications (1)

Publication Number Publication Date
JP2008527496A true JP2008527496A (ja) 2008-07-24

Family

ID=36615465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007549528A Pending JP2008527496A (ja) 2004-12-29 2005-12-22 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン

Country Status (6)

Country Link
US (1) US7395358B2 (ja)
JP (1) JP2008527496A (ja)
KR (1) KR100919920B1 (ja)
CN (1) CN101305334B (ja)
TW (1) TWI366764B (ja)
WO (1) WO2006071817A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159045A (ja) * 2006-12-20 2008-07-10 Internatl Business Mach Corp <Ibm> サポート・プロセッサによる最適化されたデータ・マイグレーションのための方法、システム、およびプログラム
JP2009064118A (ja) * 2007-09-05 2009-03-26 Nec Access Technica Ltd Usbデバイスバックアップ装置及びそれに用いるusbデバイスバックアップ方法並びにそのプログラム
WO2012140813A1 (ja) * 2011-04-14 2012-10-18 パナソニック株式会社 データ転送装置
JP2014048835A (ja) * 2012-08-30 2014-03-17 Fujitsu Ltd 情報処理装置、領域解放制御プログラム、および領域解放制御方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US7613840B2 (en) * 2006-08-17 2009-11-03 General Electric Company Methods and apparatus for dynamic data acquisition configuration parameters
US8341428B2 (en) * 2007-06-25 2012-12-25 International Business Machines Corporation System and method to protect computing systems
US20080320423A1 (en) * 2007-06-25 2008-12-25 International Business Machines Corporation System and method to protect computing systems
US20100071064A1 (en) * 2008-09-17 2010-03-18 Weber Bret S Apparatus, systems, and methods for content selfscanning in a storage system
US9079562B2 (en) * 2008-11-13 2015-07-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Active-active failover for a direct-attached storage system
US7870308B2 (en) * 2008-12-23 2011-01-11 International Business Machines Corporation Programmable direct memory access engine
US8843449B2 (en) 2009-06-16 2014-09-23 Bmc Software, Inc. Unobtrusive copies of actively used compressed indices
KR101740679B1 (ko) 2010-08-03 2017-05-26 삼성전자주식회사 양방향 통신 기법을 갖는 저장 장치 그리고 그것을 포함한 시스템
CN102566936B (zh) * 2010-12-28 2015-04-29 联想(北京)有限公司 一种磁盘数据读取方法、装置及磁盘驱动装置
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
US9785350B2 (en) 2013-02-21 2017-10-10 Seagate Technology Llc Data storage device having a virtual machine
US20140278328A1 (en) 2013-03-15 2014-09-18 Nvidia Corporation System, method, and computer program product for constructing a data flow and identifying a construct
US9015643B2 (en) * 2013-03-15 2015-04-21 Nvidia Corporation System, method, and computer program product for applying a callback function to data values
US9323502B2 (en) 2013-03-15 2016-04-26 Nvidia Corporation System, method, and computer program product for altering a line of code
US9171115B2 (en) 2013-04-10 2015-10-27 Nvidia Corporation System, method, and computer program product for translating a common hardware database into a logic code model
US9021408B2 (en) 2013-04-10 2015-04-28 Nvidia Corporation System, method, and computer program product for translating a source database into a common hardware database
US9015646B2 (en) 2013-04-10 2015-04-21 Nvidia Corporation System, method, and computer program product for translating a hardware language into a source database
CN104598336B (zh) * 2015-02-04 2018-04-24 深圳神州数码云科数据技术有限公司 基于raid算法的重建方法及装置
CN106775456B (zh) * 2016-11-22 2019-11-26 华为技术有限公司 一种数据处理方法、装置及***
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
KR102276912B1 (ko) * 2017-06-07 2021-07-13 삼성전자주식회사 스토리지 시스템 및 이의 동작 방법
CN110825530B (zh) * 2018-08-10 2022-12-23 昆仑芯(北京)科技有限公司 用于人工智能芯片的指令执行方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123160A (ja) * 1990-09-13 1992-04-23 Nec Corp 受信データ処理システム
JPH0822379A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd ディスクアレイ装置
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JP2002023960A (ja) * 2000-06-30 2002-01-25 Toshiba Corp ディスク装置及び同装置を複数備えた計算機システム
JP2003316525A (ja) * 2002-04-26 2003-11-07 Seiko Epson Corp ディスクアレイ制御装置
JP2004030380A (ja) * 2002-06-27 2004-01-29 Sony Corp データ記憶装置、データ処理装置、データ記憶装置の制御方法、データ記憶装置の制御プログラム、データ処理装置の制御プログラム、データ記憶装置の制御プログラムを記録した記録媒体及びデータ処理装置の制御プログラムを記録した記録媒体

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868734A (en) 1984-04-30 1989-09-19 Unisys Corp. Variable rate improvement of disc cache subsystem
US4942579A (en) * 1987-06-02 1990-07-17 Cab-Tek, Inc. High-speed, high-capacity, fault-tolerant error-correcting storage system
US5522058A (en) * 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
US5884093A (en) * 1994-09-02 1999-03-16 Rock Solid Systems, Inc. Hard disk cache for CD-ROM and other slow access time devices
US5892969A (en) * 1996-03-15 1999-04-06 Adaptec, Inc. Method for concurrently executing a configured string of concurrent I/O command blocks within a chain to perform a raid 5 I/O operation
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5806086A (en) * 1996-06-11 1998-09-08 Data General Corporation Multiprocessor memory controlling system associating a write history bit (WHB) with one or more memory locations in controlling and reducing invalidation cycles over the system bus
US6108697A (en) * 1997-10-06 2000-08-22 Powerquest Corporation One-to-many disk imaging transfer over a network
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6185639B1 (en) * 1998-06-05 2001-02-06 International Business Machines Corporation System and method to reduce a computer system's interrupt processing overhead
US6065083A (en) * 1998-08-21 2000-05-16 International Business Machines, Inc. Increasing I/O performance through storage of packetized operational information in local memory
US6987927B1 (en) * 1998-09-09 2006-01-17 Smartdisk Corporation Enhanced digital data collector for removable memory modules
US6920537B2 (en) * 1998-12-31 2005-07-19 Emc Corporation Apparatus and methods for copying, backing up and restoring logical objects in a computer storage system by transferring blocks out of order or in parallel
US20030191957A1 (en) * 1999-02-19 2003-10-09 Ari Hypponen Distributed computer virus detection and scanning
US6385683B1 (en) * 1999-08-13 2002-05-07 Lsi Logic Corporation Methods and apparatus for raid hardware sequencing to achieve a higher performance raid architecture
US6772108B1 (en) 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
GB2378783B (en) * 2001-08-17 2004-12-29 F Secure Oyj Preventing virus infection in a computer system
US7624439B2 (en) * 2001-10-29 2009-11-24 Seventh Knight Authenticating resource requests in a computer system
EP1546926A4 (en) 2002-09-18 2008-07-02 Netezza Corp RECORDING PROCESSOR, METHOD AND DEVICE FOR ASYMMETRIC STREAMING
US6904498B2 (en) 2002-10-08 2005-06-07 Netcell Corp. Raid controller disk write mask
KR20060025135A (ko) 2003-04-21 2006-03-20 네트셀 코포레이션 재구성 가능한 데이터 경로를 갖는 디스크 어레이 제어기
DE20313678U1 (de) * 2003-09-01 2004-02-19 Leica Microsystems Wetzlar Gmbh Mikroskop
EP1690185A4 (en) * 2003-10-20 2007-04-04 Rhode Island Education UPPER MEMORY MEMORY STRUCTURE FOR STORAGE SERVERS
JP2005135065A (ja) * 2003-10-29 2005-05-26 Hitachi Ltd 記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法
JP2005309793A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ処理システム
US20060095705A1 (en) * 2004-10-30 2006-05-04 James Wichelman Systems and methods for data storage management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123160A (ja) * 1990-09-13 1992-04-23 Nec Corp 受信データ処理システム
JPH0822379A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd ディスクアレイ装置
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JP2002023960A (ja) * 2000-06-30 2002-01-25 Toshiba Corp ディスク装置及び同装置を複数備えた計算機システム
JP2003316525A (ja) * 2002-04-26 2003-11-07 Seiko Epson Corp ディスクアレイ制御装置
JP2004030380A (ja) * 2002-06-27 2004-01-29 Sony Corp データ記憶装置、データ処理装置、データ記憶装置の制御方法、データ記憶装置の制御プログラム、データ処理装置の制御プログラム、データ記憶装置の制御プログラムを記録した記録媒体及びデータ処理装置の制御プログラムを記録した記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159045A (ja) * 2006-12-20 2008-07-10 Internatl Business Mach Corp <Ibm> サポート・プロセッサによる最適化されたデータ・マイグレーションのための方法、システム、およびプログラム
JP2009064118A (ja) * 2007-09-05 2009-03-26 Nec Access Technica Ltd Usbデバイスバックアップ装置及びそれに用いるusbデバイスバックアップ方法並びにそのプログラム
WO2012140813A1 (ja) * 2011-04-14 2012-10-18 パナソニック株式会社 データ転送装置
JP2014048835A (ja) * 2012-08-30 2014-03-17 Fujitsu Ltd 情報処理装置、領域解放制御プログラム、および領域解放制御方法

Also Published As

Publication number Publication date
KR100919920B1 (ko) 2009-10-07
CN101305334B (zh) 2012-01-11
US20060143316A1 (en) 2006-06-29
US7395358B2 (en) 2008-07-01
CN101305334A (zh) 2008-11-12
WO2006071817A2 (en) 2006-07-06
TWI366764B (en) 2012-06-21
TW200636483A (en) 2006-10-16
WO2006071817A3 (en) 2007-04-19
KR20080031150A (ko) 2008-04-08

Similar Documents

Publication Publication Date Title
JP2008527496A (ja) 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
KR100909119B1 (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
US9760386B2 (en) Accelerator functionality management in a coherent computing system
US8433770B2 (en) Combined local and network storage interface
KR101517258B1 (ko) 크로스-시스템의 프록시-기반 태스크 오프로딩을 위한 장치, 시스템 및 방법
US20180300230A1 (en) Computing device, data transfer method between coprocessor and non-volatile memory, and computer-readable recording medium
CN112422606A (zh) 云游戏数据存储和检索的高速数据通信架构的***和方法
TWI793654B (zh) 雲端遊戲系統及操作雲端遊戲系統之方法
US9189166B2 (en) Multi-host SATA controller
US20160179432A1 (en) Information processing apparatus and memory management method
US7080128B2 (en) Inter-processor communication method using a disk cache in a network storage system
JP2004258840A (ja) 仮想化されたi/oデバイスをもつ計算機システム
US7409486B2 (en) Storage system, and storage control method
US9047264B2 (en) Low pin count controller
KR102000721B1 (ko) 컴퓨팅 디바이스, 코프로세서와 비휘발성 메모리 사이의 데이터 이동 방법 및 이를 포함하는 프로그램
KR100576721B1 (ko) 제로카피(zero-copy) 전송 기능을 구비한네트워크 카드와 서버 및 그 전송 방법
WO2010088864A1 (zh) 存储数据读取装置和方法以及计算机装置
TWI845935B (zh) 實施用於雲端遊戲資料儲存及擷取之高速資料通信組構之系統及方法
JP2006085393A (ja) デバイスからの高速データ転送方法及びデータ処理装置
JP2015215641A (ja) 情報処理装置,エミュレーションプログラム,及びエミュレーション方法
JP2021082182A (ja) 情報処理システム、ストレージ制御プログラム、及び、ストレージ制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110104