JP2007501473A - メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置 - Google Patents

メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置 Download PDF

Info

Publication number
JP2007501473A
JP2007501473A JP2006530864A JP2006530864A JP2007501473A JP 2007501473 A JP2007501473 A JP 2007501473A JP 2006530864 A JP2006530864 A JP 2006530864A JP 2006530864 A JP2006530864 A JP 2006530864A JP 2007501473 A JP2007501473 A JP 2007501473A
Authority
JP
Japan
Prior art keywords
data
collection list
sector
distributed collection
transferred
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.)
Withdrawn
Application number
JP2006530864A
Other languages
English (en)
Inventor
ニーケルク,パウリュス アー ウェー ファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2007501473A publication Critical patent/JP2007501473A/ja
Withdrawn 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本発明は、ストレージシステムにおけるメインメモリとストレージ装置との間のデータの転送を表す装置及び方法に関する。本発明は、データ転送に関連するストレージ装置及びメインメモリの両方のデータエリアを記述するため、SGL(Scatter Gather List)を利用する。さらに、ディスク位置がソースであるか、メインメモリの一部が宛先である、あるいはその反対であるか表示する方向表示が利用される。このようにして、読出し、書き込み及び/または変更プロセスの効率的な方法が可能となる。さらに、データ、すなわち、ペアの参照のみがSGL間でコピーされるため、CPU処理中には実データは移動されず、格納及び帯域幅要求を大きく低減することができる。さらに、本発明はまた、SGLを用いたセクタアライメントを効率的に実行する方法に関し、これにより、CPUの依存性ははるかに低速なディスク/ストレージ入出力から切断される。

Description

本発明は、メインメモリとストレージ装置との間のデータ転送を行うための方法及び対応する装置に関する。
ストレージ装置とは、典型的には、データブロックの読み込みとおそらく書き込みが可能な任意の記憶装置である。このようなストレージ装置は、通常はブロックまたはセクタベースのものであり、すなわち、ブロックやセクタなどの一部しか要求されていないときでも、それ全体が読み出されなければならず、ブロックやセクタなどの一部しか更新/書き込みがされないときでも、まずそれ全体が読み出され、全体が変更及び書き込みされなければならない。
大多数のコンピュータベースシステムでは、データバッファのメモリは、連続的でなく「分散(scatter)」されている可能性がある。すなわち、バッファの各「フラグメント(fragment)」は、異なるメモリ位置に物理的に存在する。例えば、ホストコンピュータのメインメモリから二次的なストレージ装置に「分散」されたバッファデータを転送するとき、好ましくは連続的に二次的ストレージ装置に転送できるように、バッファの各フラグメントを「収集(gather)」する必要がある。このため、SGL(Scatter−Gather List)と呼ばれるデータ構造を利用することが一般に知られている。SGLの各要素は、各バッファフラグメントを指定または参照し、当該リストは要求される転送のため、フラグメントを効果的に「収集」する。このとき、DMA(Direct Access Memory)コントローラなどのメモリコントローラが、SGLの連続する各要素に指定されるような転送を実行する。
従来のファイル/ストレージシステムでは、セクタアライメント(sector alignment)制限なしにファイル/ストレージシステムに格納されているデータとのアクセスを可能にするバッファキャッシュが、典型的には利用可能である。しかしながら、従来のファイル/ストレージシステムでは、典型的には分散されているデータが格納されることは可能でない。例外は、UNIX(登録商標)系ファイルシステムの「vwrite」及び「vread」コマンドである。
パフォーマンスの点から、リアルタイムファイル/ストレージシステム(RTFS)は、通常はバッファキャッシュを備えず、sector−unalignedな書き込みは、セクタ全体の読出し−変更−書き込み処理として通常は実現される。セクタアライメントは、ストレージ装置に対しセクタ全体でしか読み書きできず、各バイトを個別に読み書きすることはできないという事実である。上述のように、SGLは典型的には、DMA対応装置などによるディスクまたはメインメモリ位置との間のデータ転送に関して、メインメモリスペースに分散されているデータ位置を記述するのに利用される。
RTFSでは、部分的なブロック/セクタの書き込みは、典型的には電力故障中に失われたデータ量に関する制限及び/または時間制限など、データの永続性(persistency)に関する要求から生じたものである。データストリームと、特にCPI(Characteristic Point Information)や他のタイプのメタデータなどの極めて薄いデータストリームに関して、これは部分的なブロックの更新を生じさせる可能性がある。他の部分的書き込みのソースは、ディスク記憶装置に基づくPVR(Personal Video Recorder)アプリケーションにおける記録など、添付データから既存データに至るまで可能である。部分的読み出しは、PVRアプリケーションを用いたトリックプレイシナリオなどでは一般的なものである。データストリームは、典型的には連続するデータフローである。スタートすると、ミドルウェアからの制御は不要である。データ転送は、それを利用しているコンポーネントにより規制される。通常、ストリームのシンクとソースとの間には「ラバーバンディング(rubber banding)」を提供するバッファ機構が存在する。バッファの取扱いは、ストリーミングデータを利用するコンポーネント間の主要なインタフェースである。
部分的なセクタ更新を行う従来方法は、ブロック全体を読み出すコマンドを実行し、ブロック全体の読み出しが完了するまで待機するというものである。
その後、読み出されたデータを新たなデータにより変更/合成し、最後に更新されたブロックを書き込むコマンドが実行される。上記3つのステップは、通常は同一コンテクストの一部であり、すなわち、スレッド、プロセス、タスクなどであり、これにより、求められるコンテクストスイッチングのためCPUの使用は非効率なものとなり、ストレージ装置の使用も非効率なものとなる。ディスクI/Oは、CPUと比較して低速であり、これにより、CPUは典型的には次のステップを処理する前に、ディスクが各ステップを完了させるのを待機する。この待機状態において、待機中のCPUは他のスレッド、プロセス、タスクなどに割込みされ、これにより、コンテクストスイッチングが行われる。さらに、CPUでは1つのスレッド、プロセス、タスクなどしか利用可能でない場合、低速なディスクI/Oに対するCPUの待機は、1秒あたりのセクタ書き込み数を良好に制限することができるであろう。同一のブロックの読出しコマンド及び書き込みコマンドは装置により確認されるようにアトミックなものであり、これにより、装置のスループットは非効率なCPUの使用により影響を受けるため、あるいは、アトミックではなく、このため、他のディスクリクエストが介入し得るため、非効率なストレージ装置の使用が発生する。アトミックでないため、追加的なシークオーバヘッドが、この同一のディスクブロック位置に対し生ずる。
一部のケースでは、スループットに対する影響はまた遅延に依存し、大きな遅延はスループットに大きな影響を及ぼす。より大きな遅延が、IEEE1394あるいはイーサネット(登録商標)ベースのネットワーク上のSBP−2などのネットワーク対応ストレージ装置に与えられる。
本発明の課題は、上述の問題を解決するデータ転送方法(及び対応する装置)を提供することである。さらなる課題は、当該方法をシンプルかつ効率的な方法により提供することである。他の課題は、分散されたデータがストレージ装置のディスクに対し読み書きされることを可能にすることである。さらなる課題は、従来のATA(Advanced Technology Attachment)/IDE(Integrated Drive Electronics)読出しコマンド及び/または書き込みコマンドとの他のインタフェースを提供することである。
これは、ストレージシステムにおけるストレージ装置とメインメモリとの間のデータの転送を表す方法であって、前記ストレージシステムは、転送対象となる前記データのソースまたは宛先であるディスク位置を参照する0以上の分散収集リスト要素を有するよう構成される第1分散収集リストデータ構造と、転送対象となる前記データのソースまたは宛先である前記メインメモリの一部を参照する0以上の分散収集リスト要素を有するよう構成される第2分散収集リストデータ構造と、前記第1分散収集リストデータ構造または前記第2分散収集リストデータ構造の各分散収集リスト要素に対する方向表示とを有し、前記方向表示は、前記ディスク位置がソースであり、前記メインメモリの一部が宛先であるか表示するか、あるいは、前記ディスク位置が宛先であり、前記メインメモリの一部がソースであるか表示し、当該方法は、第1及び第2分散収集リストデータ構造を生成するステップを有することを特徴とする方法(及び対応する装置)により達成される。
このように、読み書き動作を処理するシンプルかつ効率的な方法が提供される。特にリアルタイムストレージシステムにおいてである。さらに、データ、すなわち、ペアの参照のみがSGL間においてコピーされるため、CPU処理中には実データは移動されず、格納及び帯域幅要求を大きく低減することができる。
本発明による方法の効果的な実施例が、従属クレームにおいて規定される。
本発明はまた、本発明による方法に対応する装置に関する。
より詳細には、本発明は、ストレージシステムにおけるストレージ装置とメインメモリとの間のデータの転送を表す装置であって、前記ストレージシステムは、転送対象となる前記データのソースまたは宛先であるディスク位置を参照する0以上の分散収集リスト要素を有するよう構成される第1分散収集リストデータ構造と、転送対象となる前記データのソースまたは宛先である前記メインメモリの一部を参照する0以上の分散収集リスト要素を有するよう構成される第2分散収集リストデータ構造と、前記第1分散収集リストデータ構造または前記第2分散収集リストデータ構造の各分散収集リスト要素に対する方向表示とを有し、前記方向表示は、前記ディスク位置がソースであり、前記メインメモリの一部が宛先であるか表示するか、あるいは、前記ディスク位置が宛先であり、前記メインメモリの一部がソースであるか表示することを特徴とする装置に関する。
本発明による装置の効果的な実施例が、従属クレームにおいて規定される。
さらに、本発明はまた、本発明による方法を1以上の処理ユニットに実行させる命令を格納したコンピュータ可読媒体に関する。
以下において、第1分散収集リストデータ構造は、ディスク入力SGL(201)/SGL1と記され、第2分散収集リストデータ構造は、メモリ入力SGL(202)/SGL2と記され、第3分散収集リストデータ構造は、出力メモリSGL(230)/SGL7と記され、第4分散収集リストデータ構造は、出力ディスクSGL(231)/SGL8と記され、第5分散収集リストデータ構造は、ディスク入力SGL(208)/SGL5と記され、第6分散収集リストデータ構造は、メモリ入力SGL(209)/SGL6と記され、第7分散収集リストデータ構造は、ディスク出力SGL(232)/SGL4と記され、第8分散収集リストデータ構造は、メモリ出力SGL(233)/SGL3と記される。
図1は、SGL(Scatter−Gather List)を概略的に示す。SGL(101)は、矢印(102)により示されるような論理データシーケンスを記述するのに利用される。当該データシーケンスは、メインメモリ(103)または本発明によるとストレージ装置(103)のディスク上に分散されているかもしれない。SGL(101)により記述されるデータは、同一または異なるサイズのデータエリアに配置されてもよい。メモリ/ディスクアドレスの順序は、矢印(104)により示される。
この図のSGLの具体例(101)は、「A」、「B」、「C」、「D」及び「E」により示される一定数の分散収集ユニット(105、105’)を有し、メモリ/ディスク位置Mem3、Mem2、Mem4及びMem1にこの順序で格納される論理データシーケンスを記述する。SGLの具体例(101)は、追加的な連続するデータが添付可能であるため、SGユニット「E」(105’)において完全には充填されていない。論理データ(「A」、「B」、「C」、「D」)の順序は、メモリ/ディスクアドレスの順序(104)と同一である必要はないということに留意されたい。さらに、図示されたユニット「A」〜「E」はSGL(101)の内部にあるということに留意されたい。
本発明によると、SGLは、各ユニットが連続的なメモリ部分であり、メモリ/ディスク位置のスタートアドレス(ポインタ、アドレスオフセットなどを利用することにより)への参照を有し、通常はバイト単位で表されるメモリ/ディスク位置に格納されているデータのサイズまたは長さなどを指定するSGユニット(105、105’)を有するFIFO(First−In First−Out)キューとして実現される。SGユニットは、シンプルなペア(a,l)である。ここで、「a」はスタートアドレス、「l」は長さを示す。SGLのアドレス及び/または長さにはアライメントの制約はない。
メモリ/ディスク位置の実データは、SGLには格納されないか、あるいはSGL間では転送されない。当該ペアのみが格納または転送されるため、格納及び帯域幅の要求を大きく低下させることができる。
すなわち、SGLは、データが分散/不連続であったとしても、メモリまたは本発明によるディスクに格納されるデータを参照する効率的な方法である。
以下において、小文字はメインメモリに関するペアに用いられ、大文字はディスク/ストレージメモリに関するペアに用いられる。すなわち、それぞれ(a,l)及び(A,B)のように用いられる。
本発明によると、ディスク位置がソースであり、メインメモリの当該部分が宛先であるか、あるいはその反対であるか示すのに用いられる方向表示(図示せず)が指定される必要がある。好ましくは、ディスクのSGLの各ペアは、以下でより詳細に説明されるように、当該ペアにより記述される転送方向を指定する方向表示(図示せず)を有する。好ましくは、方向表示は、単一のビットにより実現される。好ましくは、64ビットディスクアドレスの1つのビットが使用されるようにしてもよい。それらが使用されず、例えばATA6では、LBAのサイズは48ビットであり、1セクタは512バイトであるためである。これにより、64−48−9=7ビットが残り、このうちの1ビットが与えられたディスクSGLのペアに対する方向表示として使用されてもよい。あるいは、他の未使用ビットが、SCSIなどの他のファイルコントローラなどのため利用されてもよい。他の例として、方向表示はまた独立したSGLとしてなど他の方法によりメインメモリSGLなどの各ペアに格納されてもよい。
図2は、本発明による転送の一部として用いられるSGLを示す。メモリ入力SGL(202)(図4のSGL2に対応する)とディスク入力SGL(201)(図4のSGL1に対応する)が示されている。メモリ入力SGL(202)は、ペア(a1,l1)及び(a2,l2)を含み、これにより、長さl1を有するアドレスa1及び長さl2を有するアドレスa2において、メインメモリ(204)にデータを格納するため(ディスクからの読み出しの場合)、あるいはメインメモリ(204)から読み出すため(ディスクへの書き込みの場合)、(分散された)データエリア(207)を参照する。
ディスク入力SGL(201)は、ペア(A1,L1)を有し、これにより、メモリ入力SGL(202)により参照されるデータが格納され(ディスクへの書き込みの場合)、あるいはデータが配置され、参照されているメモリ入力SGL(202)であるデータエリアに格納される(ディスクからの読み出しの場合)ストレージ装置(203)のデータエリア(206)を参照する。ディスク入力SGL(201)のデータは、本例では連続しているが、本発明の一特徴によると分散されていてもよい。ディスク入力SGL(201)はまた、ディスク入力SGL(201)に格納されている各ペアに対し本発明による「方向表示」(205)、すなわち、本例では1を有する。好ましくは、この方向表示(205)は、ディスクSGLの与えられたペアにより参照されるデータが、ストレージ装置(203)からメインメモリ(204)に転送、あるいはその反対にメインメモリ(204)からストレージ装置(203)に転送されるべきか指示する。このようにして、以下に説明されるように、各ペアに対する既存の剰余ビットのみを使用し、効率的なセクタアライメントを可能にすることにより、転送方向のシンプルかつコンパクトな表示が取得される。
また、セクタ境界(S.B.)の表示が、ストレージ装置(203)に関して示される。このシンプルな例では、(方向表示(205)により与えられるような)読み書きに用いられるストレージ装置(203)のデータエリア(206)は、セクタ境界において開始及び終了し、すなわち、部分的なブロックの読み書きは必要とされない。
処理中、読出し、書き込み及び変更(読み書きを合成したものである)コマンドは、ペアをディスク入力SGL(201)及びメモリ入力SGL(202)にキュー処理し、メインメモリ及びディスクのソース及び宛先を指定するため、ディスク入力SGL(201)の各ペアに対し方向表示(205)を設定することにより単に処理される。
メモリ及びディスクSGLにおいて「十分」となった後、実際の転送、すなわち、物理的なデータ転送がIDE、ATAなどのインタフェース及び/またはストレージ制御レイヤの制御の下で非同期的に行うことが可能である。SGL(201、202)のペアは、標準的なATA/IDEコマンドに変換する必要がある。「十分」とは、例えば、最後の実際の転送以降の経過した与えられた期間及び/またはSGLなどにより表されるトータルのデータ量の与えられたサイズなどの少なくとも1つの所定の基準に好ましくは従属する。本発明によるSGLの使用は、メインメモリとストレージ装置との間の「仮想的」な転送のタイプを記述し、「十分」なデータが存在するとき、実際の物理的転送が行われる。
このシンプルな例では、メインメモリのデータエリアのコンテンツ(a1,l1及びa2,l2により与えられる)を指定されたストレージ装置のデータエリア(206)(A1から始まり、L1の長さを有する)に転送する転送コマンド、すなわち、従来の意味での書き込みコマンドは、ディスク入力SGLのペア(A1,L1)の方向表示が、上述のように単にビットを設定することにより(あるいはクリアすることにより)、当該方向がメインメモリからストレージ装置に向いていることを指定するよう設定される一方、2つのペア(a1,l1)と(a2,l2)をメモリ入力SGLに配置し、ペア(A1,L1)をディスク入力SGLに配置する。本例では、L1はl1+l2に等しい。
実際の転送が行われるとき、例えば、他の書き込み、読出し及び/または変更コマンドがさらなるペアをSGLに追加させた後など、メインメモリのデータエリア(207)の具体的コンテンツが、ストレージ装置のデータエリア(206)に格納される。本発明によるSGLの特有のFIFO構造は、各種コマンドが正確な順序で処理されることを保証する。
その反対の各コンテンツをストレージ装置からメインメモリに転送することを指示する転送コマンドでは(従来の意味での読出しコマンド)、ペア(A1,L1)の方向指示(205)の値のみが変更される。同一のペアがSGLに配置されるべきである。
すなわち、ストレージ装置のデータエリア(206)を指定し(好ましくは、ディスク入力SGLの1以上のペアを利用し)、メインメモリのデータエリア(207)及びディスク入力SGLの各ペアに好ましくは格納されている方向表示の値を指定することにより(メモリ入力SGLの1以上のペアを利用し)、読出しまたは書き込みプロセスが処理される。ここで、方向表示の具体的値は、それがディスク入力SGL(201)の1以上のペア及びメモリ入力SGL(202)の1以上の対応するペアに対する読出しプロセス(すなわち、ストレージ装置からメインメモリへの転送)か、あるいは書き込みプロセス(すなわち、メインメモリからストレージ装置への転送)を指定する。
このように、ストレージシステムにおいて、大変シンプルかつ効率的な方法により読出し/書き込み処理を可能にすることができる。図3a及び3bに関して説明されるように、これらの処理が部分的なブロック/セクタに基づくものであっても可能である。
図3a及び3bは、部分的ブロックの読み書きに関する本発明による転送の一部として用いられるSGLを示す。
図3aは、本発明によるセクタアライメント実行前のSGLを示す。他の一例となる状況を除き、メモリ入力SGL(201)(図2のメモリ入力SGLに対応する)と、ディスク入力SGL(201)(図2のディスク入力SGLに対応する)が示されている。この一例となる状況は、部分的ブロック読み書き処理を示す。この具体例では、方向表示(205)により示されるような転送方向は、メインメモリ(204)からディスク/ストレージ装置(203)へと向いており、すなわち書き込み処理となっている。この書き込みは、他の部分的ブロック(213)が後続する2つのフルブロックが後続する部分的ブロック(210)に関するものであり、これらのブロック(210−213)のすべては、ストレージ装置上で連続し、アドレスAから始まり、ディスク入力SGL(201)のペア(A1,L1)により与えられるようなトータルでL1の長さを有する。ソースメインメモリの位置は分散し、メモリ入力SGL(202)のペア(a1,l1)、(a2,l2)及び(a3,l3)により与えられるような3つのユニット(214、215、216)から構成される。このため、破線エリアは入力SGL(201、202)により記述され、セクタ境界のアライメントはない。この場合、ソースと宛先の長さはストレージ装置にアクセスするため同一でなければならないため、L1はl1、l2及びl3の和に等しい。入力SGL(201、202)は上述のように、さらなるデータを有するかもしれないが、例を簡単化するため、そのようなデータは図示または説明されない。
上述のように、SGLは基本的にはそのようなペアのキューとして実現され、追加的処理及び最適化を提供する。
A1は、2つのセクタ境界間のセクタの何処かを指し示し、当該セクタの第1部分はタッチされず、第2部分が破線エリアにより示されるように変更される。上述のように、ディスクからの読出し(及び書き込み)は、いくつかのセクタ全体でのみ実行可能である。アドレスa1、a2及びa3は、メインメモリが転送を行うハードウェア及び/またはソフトウェアにアクセス可能である場合、メインメモリの何れかを指し示すことができる。
セクタアライメントの処理が、図3bに関してさらに説明される。
図3bは、本発明によるセクタアライメント実行後のSGLを示す。セクタアライメントの実行後のメモリ入力SGL(209)(図4のSGL6に対応する)、ディスク入力SGL(208)(図4のSGL5に対応する)及びそれぞれに関連するメモリ(203、204)が示され、ディスクメモリ(203)はもはや部分的ブロックのアクセスを含まない。この図において、ディスク入力SGL(208)とメモリ入力SGL(209)は、ディスク入力SGL(図3aでは201)及びメモリ入力SGL(図3aでは202)に基づき、本発明によるセクタアライメントレイヤ/アプリケーションにより生成される。図3aに関して示されるように、本例ではメインメモリのデータコンテンツは、ディスクに転送される。読み出された部分的ブロックは、処理がはるかに容易であり、以降において説明される。
また、メインメモリの一部であり、セクタアライメントプロセスにおいて用いられる一時的なメモリブロック(217、218)が示される。一時的なメモリブロック(217、218)は、ストレージ装置のブロック/セクタと少なくとも同じサイズを有し、以下で説明されるように部分的ブロックの「ヘッド」と「テール」に用いられる。
セクタアライメントは、転送の始めと終わりに追加されたセクタ部分(219、220)を生じさせ、これにより、完全なブロック/セクタを与える。
ディスク入力SGL(208)とメモリ入力SGL(209)は、セクタアライメントを実行するため、以下に従って図3aのディスク入力SGL(図3aの201)及びメモリ入力SGL(図3aの202)に基づき生成される。
まず、ディスクの先頭セクタが、書き込み/変更ステップによりタッチされないデータ(219)を含むため(転送対象のデータがセクタ境界において始まらない場合)、書き込み実行前にプリフェッチ/読み出しされる。これは、メモリ入力SGL(209)のペア(a1’,l1’)をキューに入力し、ディスク入力SGL(208)にペア(A2,L2)をキューに入力し、読み出す(A2,L2)を方向表示に示すことにより行われる(すなわち、ディスクがソースであり、メインメモリは(A2,L2)/(a1’,l1’)により参照されるデータの宛先である)。当該ペア(a1’,l1’)は、一時的メモリブロック(217)のデータを参照する。
その後、本実施例では、ディスクのテールセクタがタッチされないデータ(220)を有するとき、書き込みの実行前にプリフェッチ/読み出しされる(転送対象のデータがセクタ境界で終わらない場合)。
これは、メモリ入力SGL(209)のペア(a2’,l2’)をキューに入力し、ディスク入力SGL(208)のペア(A3,L3)をキューに入力し、方向表示に読出す(A3,L3)を指定することにより行われる(すなわち、ディスクがソースであり、メインメモリは(A3,L3)/(a2’,l2’)により参照されるデータの宛先である)。当該ペア(a2’,l2’)は、一時的なメモリブロック(217)のデータを参照する。
一般に、テールセクタの読み出しは、テールセクタへのデータの書き込み前に実行される必要がある。ペア(a2’,l2’)及び(A3,L3)は、テールセクタへの書き込みを規定するペアはキューに入力される前にキューに入力されている限り、ペア(a1’,l1’)及び(A2,L2)の前後でキューに入力されているかどうかは問題ではなく、これにより、ヘッドのデータ(219)とタッチされていないテールのデータ(220)は、書き込み後もその状態を維持することが保証される。
この後、ヘッドセクタのヘッド(219)、すなわち、アラインされていない書き込みによってはタッチされないヘッドセクタの一部が書き込まれる。
これは、メモリ入力SGL(209)のペア(a3’,l3’)をキューに入力することにより行われる。ここで、a3’はa1’に等しく、l3’<l1’である。より詳細には、l3’は、セクタ長から書き込み対象となるヘッダセクタのデータ長を引いたものに等しい。あるいは、l3’はA1(図3aのディスク入力SGLから)からA2を引いたものとして決定されてもよい。
この後、新しい/変更されたデータ(214、215、216)が書き込みされる。
これは、図3aのメモリ入力SGL(202)からメモリ入力SGL(209)のペア(a1,l1)、(a2,l2)及び(a3,l3)をキューに入力することにより行われる。
最終的には、テールセクタ(220)のテール、すなわち、アラインされない書き込みによりタッチされないテールセクタの一部が書き込まれる。
これは、l4’がセクタ長から書き込みされるテールセクタのデータ長を引いたものに等しいメモリ入力SGL(209)の(a4’,l4’)をキューに入力することにより行われる。a4’は、a2’に書き込みされるテールセクタのデータの長さを加えたものに等しい。ここで、a2’+l2’は、a4’+l4’に等しく、それらは共にテールセクタの終わりで終了することに留意されたい。
ペア(a3’,l3’)、(a1,l1)、(a2,l2)、(a3,l3)及び(a4’,l4’)は、ペア(A4,L4)をキューに入力することによりディスク入力SGL(図3aの201)のペア(A1,L1)を変更することによりディスクと関連付けされる。ここえd、A4はA2に等しく、L4はl3’+l1+l2+l3+l4’、すなわち、書き込み/変更対象のデータ(214、215、216)、タッチされないヘッドの部分(219)及びタッチされないテールの部分(220)の長さの和に等しい。(A4,L4)の方向表示は、書き込みを指示するよう設定される。
この後、ディスクに関するペアは、ブロック/セクタストレージ装置への転送準備がされたセクタアラインデータエリアを参照/規定する。その後、SGL(208、209)は、適切な変換機構に対する入力として、各自のコンテンツをIDEインタフェースなどのストレージ装置インタフェースに対するコマンドに変換するのに用いられてもよい。
部分的ブロックの読み出しのため、追加された部分的セクタ(219、220)は、それらがフェッチされると単に破棄される。読み出された部分的ブロック(同一のデータエリアを使用して)に対し、SGLのヘッドは、(A4,L4)と(a3’,l3’)、(a1,l1)、(a2,l2)、(a3,l3)及び(a4’,l4’)になるであろう。しかしながらこれに対し、ヘッド及びテールのプリフェッチ/読み出しは、必要とされない。読み出された後、ヘッドセクタ(219)のヘッドのデータとテールセクタ(220)のテールのデータは単に破棄される。言い換えると、ストレージ装置(506)からすべてのセクタ(219+210、211、212、213+220)を(任意の適切な順序により)読出し、転送対象のデータがセクタ境界(S.B.)において開始されない場合に転送対象のデータの何れも有しないテールセクタ(213+220)の一部を破棄し、転送対象のデータがセクタ境界(S.B.)において終了しない場合に転送対象のデータの何れも有しないテールセクタ(213+220)の一部(220)を破棄する。読み出しは、ディスク入力SGL(208)とメモリ入力SGL(209)の分散収集リスト要素により表される。
転送対象のデータがセクタ境界において始まる場合、(A2;L2)、(a1’,l1’)及び(a3’,l3’)は省略されるか、あるいは生成されず、A4=A1となる。
転送対象のデータがセクタ境界において終わる場合、(A3;L3)、(a2’,l2’)及び(a4’,l4’)は省略されるか、あるいは生成されず、A4+L4=A1+L1となり、それらは同じ位置で終わる。
説明されたセクタアライメントプロセスは、上述の従来技術による処理の場合と同様にCPUをブロックしない。なぜなら、CPUのタスクは従来技術による3つのステップと反対に、ディスクI/Oが各ステップの後に必要とされる場合、相対的に低速なディスクI/Oから切断されるためである。
さらに、データ、すなわちペアへの参照のみが格納及び帯域幅要求を大きく減少させるSGL間において複製されるため、実データはコピーされない。
本発明によるセクタアライメントでは、メインメモリは書き込みコマンドだけでなく、読出しコマンドの一部であるため、「変更」部が「自動的に」起動する。唯一の制限は、読み出しが要求されたメモリ位置に要求されたデータを生じさせた後にのみ、書き込み可能となるということである。このような制限は、既に知られているように、ストレージ装置の上のディスクスケジューラにより容易に処理される。当該スケジューラは、ストレージ装置のスループットを容易に最適化することができる。
ディスク入力SGL(図3aの201)のペアにより参照されるデータエリア全体が単一のセクタの範囲内にある状況では、当該セクタはヘッドとテール両方であるため、上述のように二度でなく一度のみプリフェッチを行いさえすればよい。この状況では、プリフェッチは書き込み前に実行される必要がある。このとき、セクタアライメントプロセスは、ストレージ装置から単一のセクタを読出し、それを一時的セクタ(217;218)に格納するようにしてもよく、当該セクタの読出し後、転送対象のデータがセクタ境界(S.B.)において始まらない場合には当該セクタのヘッドを書き込み、転送対象のデータを書き込み、転送対象のデータがセクタ境界(S.B.)において終わらない場合には単一のセクタのテールを書き込む。
各種ペアの機能が以下のテーブルにまとめられている。
Figure 2007501473
図4は、本発明の一実施例によるインタフェースのレイヤを概略的に示す。ストレージスステムのレイヤ/ファイル管理レイヤ、セクタアライメントレイヤ、ディスクインタフェース/IDEレイヤ、DMAエンジンなどが示される。さらに、図2及び3aのものに対応するディスク入力SGL/SGL1(201)、図2及び3aに示されるものに対応するメモリ入力SGL/SGL2(202)、図3bに示されるものに対応する他のディスク入力SGL(208)/SGL5、及び図3bに示されるものに対応する他のメモリ入力SGL(209)/SGL6が示される。
好適な実施例では、既に実際の転送の一部となった、すなわち、必要に応じてセクタアライメントの後にメインメモリを記述するのに用いられる追加的な出力メモリSGL(230)が利用される。各転送は、入力メモリSGL(209)から出力メモリSGL/SGL7(230)にメモリを「移動」する。データ自体は移動されず、その記述のみ、すなわち、関連するペアのみが移動される。さらに、同様にすでに実際の転送の一部となったディスク位置を記述するのに、追加的な出力ディスクSGL/SGL8(図4の231)が利用される。
言い換えると、転送の一部が実行された後、当該部分は入力SGL(208、209)から対応する出力SGL(231、230)、すなわち、図4に示されるようにSGL5からSGL8へ、またはSGL6からSGL7へ移動される。これにより、実行された転送プロセスの容易かつシンプルなモニタリングが可能となり、各種アプリケーション、他のプロセスなどに有用であるかもしれない。
さらなる実施例では、セクタアライメントレイヤはまた、一時的ヘッド及びテールセクタ(図3bの217及び218)の一時的メモリをリサイクルし、それの出力SGL3(233)及びSGL4(232)をもとの入力SGL2(202)及びSGL1(201)と整合させるため、出力SGL7(230)及びSGL8(231)上で実行される反対の処理を有する。これにより、極めてシンプルな方法により使用されているメモリの再利用を容易にする。
ATA6では、LBAのサイズは48ビットであり、1セクタは512バイトであるため、64ビットディスクアドレスの一部のビットは利用されていない。これにより、64−48−9=7ビットが放置され、前述のように当該ビットの1つは方向表示として使用されてもよい。アラインされていない書き込みアクセスは、図3a及び3bに関して説明されたように、アラインされた書き込みアクセスに先行する(アラインされた)読出しアクセス(ヘッド及びテールセクタ)に変換される。それをシンプルなものに保つため、このような変換の結果は再び単一のSGLであるが、一実施例では、読出しリクエストは使用されていないビットセット(クリアされたビットは書き込みを示す)。あるいは、クリアされたビットは、読出しリクエストを表すかもしれない。IDE/ディスクレイヤは、読出しリクエストがちょうど読み出されたデータをディスクに書き込む前に終了したことを確実にする。SGL5(208)及び/またはSGL6(209)の方向表示が変更するときは常に、それらが同じメモリ位置にアクセスしているときは常に書き込み前に読み出しが終了していることが確実にされるべきである。これは、特にネットワーク対応のストレージ装置に対して重要であるかもしれない。
ハードウェア要求により存在するハーフワード(half−word)アライメント要求は、通常通り処理される。
図5は、本発明の一実施例による装置の一例を概略的に示す。本発明の一実施例により示される装置は、内部のデータ/アドレスバス(504)などを介しメインメモリ(502)及び少なくとも1つのストレージ装置(506)に接続される1以上のマイクロプロセッサ(501)を有する。さらに、当該装置(500)はまた、ネットワークを介し1以上のリモートシステムと通信するための通信手段(501)及び/またはディスプレイ(507)に接続されるか、あるいは有するようにしてもよい。メモリ(502)及び/またはストレージ装置(506)が、本発明による機能を提供するための実行可能なコンピュータコードと共に、関連するデータを格納及び抽出するのに利用される。マイクロプロセッサ(501)は、本発明によるSGLの生成、処理などのためのものである。
ストレージ装置(506)は、DVD、CD、光ディスク、PVR、プレーヤー/レコーダ、ハードディスク(IDE、ATAなど)、フロッピー(登録商標)ディスク、スマートカード、PCMCIAカードなど、データブロックの読出し及びおそらく書き込みが可能な1以上の記憶装置からなる。当該ストレージ装置は、ネットワーク対応のディスクであってもよい。
請求項において、かっこ内の任意の参照記号は、請求項を限定するものと解釈されるべきではない。「有する」という用語は、請求項に列挙された以外の要素またはステップの存在を排除するものではない。要素に前置される「ある」という用語は、当該要素が複数存在することを排除するものではない。
本発明は、複数の相異なる要素を有するハードウェア、及び適切にプログラムされたコンピュータにより実現することが可能である。複数の手段を列挙した装置クレームでは、これらの手段のいくつかが同一のハードウェアアイテムにより実現可能である。ある手段が相互に異なる従属クレームに記載されているという事実は、これらの手段の組み合わせが効果的に利用可能でないということを示すものではない。
図1は、SGL(Scatter−Gather List)を概略的に示す。 図2は、本発明による転送の一部として用いられるSGLを示す。 図3aは、本発明の一実施例によるセクタアライメント前のSGLを示す。 図3bは、本発明の一実施例によるセクタアライメント後のSGLを示す。 図4は、本発明の一実施例によるインタフェースのレイヤを概略的に示す。 図5は、本発明の一実施例による装置の一例を概略的に示す。

Claims (21)

  1. ストレージシステムにおけるストレージ装置とメインメモリとの間のデータの転送を表す方法であって、
    前記ストレージシステムは、
    転送対象となる前記データのソースまたは宛先であるディスク位置を参照する0以上の分散収集リスト要素を有するよう構成される第1分散収集リストデータ構造と、
    転送対象となる前記データのソースまたは宛先である前記メインメモリの一部を参照する0以上の分散収集リスト要素を有するよう構成される第2分散収集リストデータ構造と、
    前記第1分散収集リストデータ構造または前記第2分散収集リストデータ構造の各分散収集リスト要素に対する方向表示と、
    を有し、
    前記方向表示は、前記ディスク位置がソースであり、前記メインメモリの一部が宛先であるか表示するか、あるいは、前記ディスク位置が宛先であり、前記メインメモリの一部がソースであるか表示し、
    当該方法は、第1及び第2分散収集リストデータ構造を生成するステップを有する、
    ことを特徴とする方法。
  2. 請求項1記載の方法であって、
    前記第1分散収集リストデータ構造は前記方向表示を有し、
    前記第2分散収集リストデータ構造は前記方向表示を有する、
    ことを特徴とする方法。
  3. 請求項1記載の方法であって、さらに、読出しまたは書き込み処理の実行時に、
    宛先データエリア、ソースデータエリア及び方向を受付けるステップと、
    前記方向に応じた前記宛先データエリアを有する少なくとも1つの分散収集リスト要素を前記第1分散収集リストデータ構造にキュー入力するステップと、
    前記方向に応じた前記ソースデータエリアを有する少なくとも1つの分散収集リスト要素を前記第2分散収集リストデータ構造にキュー入力するステップと、
    前記メインメモリ及び前記ストレージ装置の何れがソース及び宛先であるか表示するよう前記方向表示を設定するステップと、
    を有することを特徴とする方法。
  4. 請求項1記載の方法であって、
    前記ストレージシステムはさらに、
    第5分散収集リストデータ構造と、
    第6分散収集リストデータ構造と、
    を有し、
    当該方法はさらに、前記ストレージ装置へのアラインされていない書き込み前に転送されるデータのセクタアライメントを実行するステップを有し、
    該ステップは、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記ストレージ装置からヘッドセクタを読出し、該ヘッドセクタを一時的ヘッドセクタに格納し、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記ストレージ装置からテールセクタを読出し、該テールセクタを一時的テールセクタに格納し、
    前記ヘッドセクタと前記テールセクタが読み出された後、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記ヘッドセクタのヘッドを書き込み、
    前記転送対象となるデータを書き込み、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記テールセクタのテールを書き込む、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする方法。
  5. 請求項1記載の方法であって、
    前記第1分散収集リストデータ構造は、ディスク位置の単一のセクタ内に転送されるデータを参照する1つの分散収集リスト要素を有し、
    前記ストレージシステムは、第5分散収集リストデータ構造と第6分散収集リストデータ構造とを有し、
    当該方法はさらに、前記ストレージ装置へのアラインされていない書き込み前に転送されるデータのセクタアライメントを実行するステップを有し、
    該ステップは、
    前記ストレージ装置から単一のセクタを読出し、該セクタを一時的セクタに格納し、
    前記単一のセクタが読み出された後、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記単一のセクタのヘッドを書き込み、
    前記転送対象となるデータを書き込み、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記単一のセクタのテールを書き込む、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする方法。
  6. 請求項1記載の方法であって、
    前記ストレージシステムはさらに、第5分散収集リストデータ構造と第6分散収集リストデータ構造とを有し、
    当該方法はさらに、前記ストレージ装置から転送されるデータのアラインされていない読出しを実行するステップを有し、
    該ステップは、
    前記ストレージ装置からすべてのセクタを読み出し、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記転送対象となるデータの何れも有しない前記ヘッドセクタの一部を破棄し、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記転送対象となるデータの何れも有しない前記テールセクタの一部を破棄する、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする方法。
  7. 請求項1記載の方法であって、
    前記ストレージシステムはさらに、
    前記転送対象となるデータのソースまたは宛先である前記メインメモリの一部を参照する1以上の分散収集リスト要素を有する第3分散収集リストデータ構造と、
    前記転送対象となるデータのソースまたは宛先であるディスク位置を参照する1以上の分散収集リスト要素を有する第4分散収集リストデータ構造と、
    を有し、
    当該方法はさらに、転送の一部が実行されたとき、前記第6データ構造から前記第3データ構造に前記一部のデータの参照を転送し、前記第5データ構造から前記第4データ構造に前記一部のデータを転送するステップを有する、
    ことを特徴とする方法。
  8. 請求項7記載の方法であって、
    前記ストレージシステムはさらに、
    前記転送対象となるデータのソースまたは宛先である前記メインメモリの一部を参照する1以上の分散収集リスト要素を有する第7分散収集リストデータ構造と、
    前記転送対象となるデータのソースまたは宛先であるディスク位置を参照する1以上の分散収集リスト要素を有する第8分散収集リストデータ構造と、
    を有し、
    当該方法はさらに、
    前記一時的ヘッドセクタ及び/または前記一時的テールセクタの前記一時的メモリをリサイクルするため、前記第3及び第4分散収集リストデータ構造に対し反対処理を実行するステップと、
    前記反対処理に基づき、前記第2分散収集リストデータ構造と整合させるため、前記第7分散収集リストデータ構造を生成するステップと、
    前記反対処理に基づき、前記第1分散収集リストデータ構造と整合させるため、前記第8分散収集リストデータ構造を生成するステップと、
    を有することを特徴とする方法。
  9. 請求項1記載の方法であって、
    前記方向表示は、ATA6によるディスクアドレスのコンピュータ表現のビットの中の単一の余剰ビットとして実現されることを特徴とする方法。
  10. 請求項1記載の方法であって、
    前記ストレージシステムは、リアルタイムストレージシステムであることを特徴とする方法。
  11. ストレージシステムにおけるストレージ装置とメインメモリとの間のデータの転送を表す装置であって、
    前記ストレージシステムは、
    転送対象となる前記データのソースまたは宛先であるディスク位置を参照する0以上の分散収集リスト要素を有するよう構成される第1分散収集リストデータ構造と、
    転送対象となる前記データのソースまたは宛先である前記メインメモリの一部を参照する0以上の分散収集リスト要素を有するよう構成される第2分散収集リストデータ構造と、
    前記第1分散収集リストデータ構造または前記第2分散収集リストデータ構造の各分散収集リスト要素に対する方向表示と、
    を有し、
    前記方向表示は、前記ディスク位置がソースであり、前記メインメモリの一部が宛先であるか表示するか、あるいは、前記ディスク位置が宛先であり、前記メインメモリの一部がソースであるか表示する、
    ことを特徴とする装置。
  12. 請求項11記載の装置であって、
    前記第1分散収集リストデータ構造は前記方向表示を有し、
    前記第2分散収集リストデータ構造は前記方向表示を有する、
    ことを特徴とする装置。
  13. 請求項11記載の装置であって、
    当該装置は読出しまたは書き込み処理の実行時に、
    宛先データエリア、ソースデータエリア及び方向を受付け、
    前記方向に応じた前記宛先データエリアを有する少なくとも1つの分散収集リスト要素を前記第1分散収集リストデータ構造にキュー入力し、
    前記方向に応じた前記ソースデータエリアを有する少なくとも1つの分散収集リスト要素を前記第2分散収集リストデータ構造にキュー入力し、
    前記メインメモリ及び前記ストレージ装置の何れがソース及び宛先であるか表示するよう前記方向表示を設定する、
    よう構成されることを特徴とする装置。
  14. 請求項11記載の装置であって、
    前記ストレージシステムはさらに、
    第5分散収集リストデータ構造と、
    第6分散収集リストデータ構造と、
    を有し、
    当該装置はさらに、前記ストレージ装置へのアラインされていない書き込み前に転送されるデータのセクタアライメントを実行するよう構成され、
    該ステップは、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記ストレージ装置からヘッドセクタを読出し、該ヘッドセクタを一時的ヘッドセクタに格納し、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記ストレージ装置からテールセクタを読出し、該テールセクタを一時的テールセクタに格納し、
    前記ヘッドセクタと前記テールセクタが読み出された後、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記ヘッドセクタのヘッドを書き込み、
    前記転送対象となるデータを書き込み、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記テールセクタのテールを書き込む、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする装置。
  15. 請求項11記載の装置であって、
    前記第1分散収集リストデータ構造は、ディスク位置の単一のセクタ内に転送されるデータを参照する1つの分散収集リスト要素を有し、
    前記ストレージシステムは、第5分散収集リストデータ構造と第6分散収集リストデータ構造とを有し、
    当該装置はさらに、前記ストレージ装置へのアラインされていない書き込み前に転送されるデータのセクタアライメントを実行するよう構成され、
    該ステップは、
    前記ストレージ装置から単一のセクタを読出し、該セクタを一時的セクタに格納し、
    前記単一のセクタが読み出された後、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記単一のセクタのヘッドを書き込み、
    前記転送対象となるデータを書き込み、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記単一のセクタのテールを書き込む、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする装置。
  16. 請求項11記載の装置であって、
    当該方法はさらに、前記ストレージ装置から転送されるデータのアラインされていない読出しを実行するステップを有するよう構成され、
    該ステップは、
    前記ストレージ装置からすべてのセクタを読み出し、
    前記転送対象となるデータがセクタ境界において始まらない場合、前記転送対象となるデータの何れも有しない前記ヘッドセクタの一部を破棄し、
    前記転送対象となるデータがセクタ境界において終わらない場合、前記転送対象となるデータの何れも有しない前記テールセクタの一部を破棄する、
    ことを有し、
    前記読み出しと書き込みは、前記第5及び第6データ構造の分散収集リスト要素により表される、
    ことを特徴とする装置。
  17. 請求項11記載の装置であって、
    前記ストレージシステムはさらに、
    前記転送対象となるデータのソースまたは宛先である前記メインメモリの一部を参照する1以上の分散収集リスト要素を有する第3分散収集リストデータ構造と、
    前記転送対象となるデータのソースまたは宛先であるディスク位置を参照する1以上の分散収集リスト要素を有する第4分散収集リストデータ構造と、
    を有し、
    当該装置はさらに、転送の一部が実行されたとき、前記第1データ構造から前記第3データ構造に前記一部のデータの参照を転送し、前記第2データ構造から前記第4データ構造に前記一部のデータを転送するよう構成される、
    ことを特徴とする装置。
  18. 請求項17記載の装置であって、
    前記ストレージシステムはさらに、
    前記転送対象となるデータのソースまたは宛先である前記メインメモリの一部を参照する1以上の分散収集リスト要素を有する第7分散収集リストデータ構造と、
    前記転送対象となるデータのソースまたは宛先であるディスク位置を参照する1以上の分散収集リスト要素を有する第8分散収集リストデータ構造と、
    を有し、
    当該装置はさらに、
    前記一時的ヘッドセクタ及び/または前記一時的テールセクタの前記一時的メモリをリサイクルするため、前記第3及び第4分散収集リストデータ構造に対し反対処理を実行し、
    前記反対処理に基づき、前記第2分散収集リストデータ構造と整合させるため、前記第7分散収集リストデータ構造を生成し、
    前記反対処理に基づき、前記第1分散収集リストデータ構造と整合させるため、前記第8分散収集リストデータ構造を生成する、
    よう構成されることを特徴とする装置。
  19. 請求項11記載の装置であって、
    前記方向表示は、ATA6によるディスクアドレスのコンピュータ表現のビットの中の単一の余剰ビットとして実現されることを特徴とする装置。
  20. 請求項11記載の装置であって、
    前記ストレージシステムは、リアルタイムストレージシステムであることを特徴とする装置。
  21. 請求項1乃至10何れか一項記載の方法を1以上の処理ユニットに実行させる命令を格納したコンピュータ可読媒体。
JP2006530864A 2003-05-26 2004-05-17 メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置 Withdrawn JP2007501473A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03101516 2003-05-26
PCT/IB2004/050712 WO2004104846A2 (en) 2003-05-26 2004-05-17 Method and device for transferring data between a main memory and a storage device

Publications (1)

Publication Number Publication Date
JP2007501473A true JP2007501473A (ja) 2007-01-25

Family

ID=33462213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006530864A Withdrawn JP2007501473A (ja) 2003-05-26 2004-05-17 メインメモリとストレージ装置との間のデータ転送を行うための方法及び装置

Country Status (8)

Country Link
US (1) US20070011398A1 (ja)
EP (1) EP1631911B1 (ja)
JP (1) JP2007501473A (ja)
KR (1) KR20060017816A (ja)
CN (1) CN1795442A (ja)
AT (1) ATE354130T1 (ja)
DE (1) DE602004004780T2 (ja)
WO (1) WO2004104846A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205366A (ja) * 2008-02-27 2009-09-10 Fujitsu Ltd チャネル装置、情報処理システム、及びデータ転送方法
JP2017539030A (ja) * 2014-12-10 2017-12-28 クゥアルコム・インコーポレイテッドQualcomm Incorporated 非整列ブロック転送動作の処理

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5076967B2 (ja) * 2008-02-27 2012-11-21 富士通株式会社 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
US8074113B2 (en) * 2009-03-10 2011-12-06 Emulex Design & Manufacturing Corporation System and method for data protection against power failure during sector remapping
US10095433B1 (en) 2012-10-24 2018-10-09 Western Digital Technologies, Inc. Out-of-order data transfer mechanisms for data storage systems
US10049061B2 (en) * 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US9338057B2 (en) * 2013-10-30 2016-05-10 Netapp, Inc. Techniques for searching data associated with devices in a heterogeneous data center
US9990298B2 (en) * 2014-05-12 2018-06-05 Western Digital Technologies, Inc System and method for caching solid state device read request results
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
CN109684140B (zh) * 2018-12-11 2022-07-01 广东浪潮大数据研究有限公司 一种慢盘检测方法、装置、设备及计算机可读存储介质
US11061676B2 (en) 2019-04-24 2021-07-13 International Business Machines Corporation Scatter gather using key-value store
JP6997235B2 (ja) * 2020-02-19 2022-01-17 株式会社日立製作所 データ転送システム
CN113031876B (zh) * 2021-03-31 2024-04-09 深信服科技股份有限公司 一种数据处理方法、装置、设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
US5802546A (en) * 1995-12-13 1998-09-01 International Business Machines Corp. Status handling for transfer of data blocks between a local side and a host side
US6021462A (en) * 1997-08-29 2000-02-01 Apple Computer, Inc. Methods and apparatus for system memory efficient disk access to a raid system using stripe control information
WO1999034273A2 (en) * 1997-12-30 1999-07-08 Lsi Logic Corporation Automated dual scatter/gather list dma
US7155569B2 (en) * 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205366A (ja) * 2008-02-27 2009-09-10 Fujitsu Ltd チャネル装置、情報処理システム、及びデータ転送方法
JP2017539030A (ja) * 2014-12-10 2017-12-28 クゥアルコム・インコーポレイテッドQualcomm Incorporated 非整列ブロック転送動作の処理

Also Published As

Publication number Publication date
EP1631911A2 (en) 2006-03-08
US20070011398A1 (en) 2007-01-11
DE602004004780D1 (de) 2007-03-29
KR20060017816A (ko) 2006-02-27
WO2004104846A2 (en) 2004-12-02
CN1795442A (zh) 2006-06-28
WO2004104846A3 (en) 2005-01-13
EP1631911B1 (en) 2007-02-14
DE602004004780T2 (de) 2007-12-06
ATE354130T1 (de) 2007-03-15

Similar Documents

Publication Publication Date Title
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
JP4579494B2 (ja) 順不同の書き込み動作を実行するように構成されたディスク制御装置
JP5274257B2 (ja) フラッシュメモリ・デバイスおよび方法
US7620749B2 (en) Descriptor prefetch mechanism for high latency and out of order DMA device
US7069350B2 (en) Data transfer control system, electronic instrument, and data transfer control method
JP7191967B2 (ja) NVMeベースのデータ読み取り方法、装置及びシステム
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP5029513B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2012508428A (ja) 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
JP2001312373A (ja) データの書き込み方法およびディスクドライブ装置
JP2009134391A (ja) ストリーム処理装置、ストリーム処理方法及びデータ処理システム
EP1631911B1 (en) Method and device for transferring data between a main memory and a storage device
KR20150050457A (ko) 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐
US7376786B2 (en) Command stack management in a disk drive
US20190361825A1 (en) Method and apparatus for scatter gather processing engine in a storage controller for caching applications
JP4502375B2 (ja) ファイルシステムおよびその制御方法
US7334056B2 (en) Scalable architecture for context execution
US20030172229A1 (en) Systems and methods for detecting and compensating for runt block data transfers
US10346070B2 (en) Storage control apparatus and storage control method
US7596639B2 (en) Skip mask table automated context generation
US11029878B2 (en) Information processing system
JP4536189B2 (ja) Dma転送装置及びdma転送システム
JPH0628261A (ja) データ転送方法及び装置
JP4244836B2 (ja) コンピュータシステム、そのバックアップ/リストア方法、ホストコンピュータ、プログラム
KR102230669B1 (ko) 실시간 고속 데이터 병렬 처리 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070514

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070608