JP2013515980A - データ転送装置およびその制御方法 - Google Patents
データ転送装置およびその制御方法 Download PDFInfo
- Publication number
- JP2013515980A JP2013515980A JP2012530010A JP2012530010A JP2013515980A JP 2013515980 A JP2013515980 A JP 2013515980A JP 2012530010 A JP2012530010 A JP 2012530010A JP 2012530010 A JP2012530010 A JP 2012530010A JP 2013515980 A JP2013515980 A JP 2013515980A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data transfer
- writing
- completion
- control unit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Description
すなわち、本発明の目的は、複数パスで接続されていても、経路情報を記憶することなく、また、制御ソフトウェアの新たな介在を必要とせずにメモリへの書込みの確定を行うデータ転送装置およびその制御方法を提供することである。
本実施形態を図1〜図9を参照して説明する。
図1は本実施形態におけるストレージシステムの構成を示すブロック図である。ストレージ装置10は、複数のドライブ筐体51、52、…とストレージコントローラ筐体50とを含んで構成されている。ストレージ装置10は管理用LAN30を通じて管理端末31に接続されており、装置の設定等はこの管理端末31を通じて実行することが可能である。管理端末31はストレージ装置10の中に含んでいても良い。
A系、B系は互いに対象な構造であるから、以降では代表してA系を用いて説明する。
一方BE(Back-End)I/Fカード90A,91Aはバックエンド接続ケーブル510を通じてドライブ筐体51,52・・・の各ディスクと接続される。
MPパッケージ70Aには、プロセッサのチップセット75およびプロセッサ760,761、これらプロセッサ上で動くプログラム等が格納されるローカルメモリ770,771が設けられている。プロセッサの種類や世代によっては、ローカルメモリ770,771はチップセット75に接続される形態もあれば、プロセッサ760,761に直接接続される形態もある。また、チップセット75はプロセッサ760,761に内包されても良い。プロセッサ760,761は制御線71A,71Bを通じ主パッケージ60A,60BのASIC200A,200Bに接続され、ハードウェアの制御を行う。制御線71A,71Bに用いられる技術としては例えばPCI Expressなどがある。
また、S8070において、メモリリードレスポンスにエラーがあった場合(S8070:Yes)、書込み部2102、読出し部2101、パラメータフェッチ部2103は当該パラメータ300および当該パラメータ300にチェインされている後続パラメータ(すなわち、チェイン番号欄3005に設定されている値が当該パラメータ300から連続してインクリメントされている一連のパラメータ300)についてデータ転送処理を全て中断し(S8300)、エラーに起因した終了のステータスをプロセッサ760,761へ通知する。
以上のようにして、本実施形態のDMA210はデータ転送処理を行う。
本実施例1によれば、同じメモリコントローラ230〜233へのライトリクエストについては、書込みを確定させずに連続して送信し、書込み先が異なるメモリコントローラ230〜233にライトリクエストを送信する場合には、先のメモリコントローラ230〜233に対してダミーリードリクエストを送信することができる。同一のメモリコントローラ230〜233に対するリクエストは同一の経路を通って送信されるので、ポステッドアクセスによるライトリクエストの後に、ノンポステッドアクセスによるダミーリードリクエストを送信することにより、先に発行されたライトリクエストに係るデータの書込みを確定することができる。したがって、内部データ転送パス101,102において、書き込みの完了応答がなされないプロトコルを用いている場合にも、ライトリクエストの発行経路をパケットごとに記憶することなく、メモリへの書込みを確定することができる。加えて、パケット毎の経路記憶領域が不要となり実装の小型化を図ることができる。また、本実施形態ではDMA210〜212が、書込み先のメモリM0〜M7が切り替わるタイミングおよび書込みが終了するタイミングにおいて自動的にダミーリードリクエストを送信することができるので、管理端末31やホスト計算機20において実行される制御ソフトウェアなどによりダミーリードリクエストを発行する等の追加の処理を行う必要がないため、システム全体として性能の高速化を図る事ができる。
本実施形態では書込みの確定を行うため、メモリM0〜M7に対するダミーのリードリクエストを発行したが、代わりにメモリコントローラ230〜233のレジスタに対するリードリクエストを発行するように変形しても良い。なお、レジスタに対するリードリクエストもノンポステッドアクセスであるものとする。本変形例の場合、書込みを確定するためにメモリM0〜M7にアクセスしないため、より高速に書込みの確定を行うことが可能となり、メモリ利用効率を向上させるという追加の効果がある。また、上記メモリコントローラ230〜233のレジスタには、ライトリクエストの個数を記録する機能を持たせてもよい。この場合、DMA210〜212はレジスタからリードした値と発行したライトリクエストの数との差を比較することによって転送の正常/異常を判定することができる。したがって、より書込み確定の信頼性を高めることができるという追加の効果がある。前記レジスタはDMAやその他のメモリへアクセスを行う資源ごとに設けても良いし、アクセスエリアごとに設けても良い。また、メモリコントローラ230〜233がライトリクエスト以外にもリードリクエストの数やその他の統計情報を保持するレジスタを備えていても良い。
本実施形態ではメモリへの書込みの確定を行うため、ダミーリードリクエスト(ノンポステッドアクセス)を発行したが、この代わりに、先行するライトリクエストを追い抜かないポステッドアクセスの専用命令(書込み確認要求)を定義して発行するように変形しても良い。例えば、図10のようなフォーマットのTLP(Transaction Layer Packet)を書込み確認要求として定義し、この書込み確認要求を送信すると、メモリコントローラ230〜233はバッファ中のデータをメモリへフラッシュし、非同期で図11のようなポステッドアクセスによる応答(書込み確認応答)を返すようにする。この場合のシーケンスは図12のようになる。本変形例の場合、ノンポステッドアクセスと異なりDMA210〜212は、応答データ(リードレスポンス)受信用のバッファを確保して待つ必要がなくなる。これにより、動作の並列性が高まり性能改善する事ができるという追加の効果がある。なお、通常のPCI Expressでは未定義のリクエスト(TLP)は破棄されてしまうため、上記のリクエストや応答を受理するようにPCIコア221,223に前記定義を実装する。
本実施形態ではメモリへの書込みの確定を行うため、メモリへダミーのリードリクエストを発行したが、ASIC200内の実装および内部データ転送パス101,102の経路上に、書込み確定要求のための専用信号線を設けてもよい。図13はこの実装例を示したものである。DMA210〜212は、書込みの確定が必要になると、信号コントローラ280に、書込み確定の必要なメモリコントローラ230〜233に信号を送るよう指示する。信号は例えば、DMA210〜212からの書込み転送数等の情報を含むものであり、メモリコントローラ230〜233は要求された転送数が到着すると、確定完了信号を返すようにする。DMA210〜212は信号コントローラ280を通じて書込みが確定したことを確認することができる。本変形例の場合、書込み確定用のリクエストおよび応答がデータ転送経路を通らないので、データ転送への影響がなくなり転送効率が改善するという追加の効果がある。
本実施形態では書込みの確定をメモリコントローラ230〜233が切り替わる点を契機として実行したが、メモリコントローラ230〜233ではなく、その先に実装されるDIMM単位としても良い。この場合、メモリコントローラ230〜233ごとのアドレス範囲の代わりにDIMMごとのアドレス範囲を管理し、図7のS8050にてアクセス先のDIMMが前回と異なるか否かを判定するように変更すれば実現可能である。また通常DIMMは、複数のメモリチップで構成され、バンクという単位で管理される。従い、同様にして、DIMM内のバンクが切り替わる点を書き込み確定の契機としても良い。この場合、バンクごとのアドレス範囲を管理することとなる。
本実施形態では、メモリ面が切り替わるのを契機に書込みの確定処理を行うようにしたが、メモリ面が切り替わる前にも一定転送回数毎に定期的に行うようにしてもよい。本変形例の場合、非常に大きな転送長のデータを書き込む際、定期的に書込みを確定させることができるので、データの書込みの確実性を向上させることができるほか、細かく書込み確定処理を行うので、エラー発生時のリカバリ処理が容易になるといった追加の効果がある。また、転送パラメータ300にてプロセッサ760,761が明示的に書込み確定処理の必要性の有無や頻度を指定できるようにしても良い。あるいは、DMA210〜212の起動トリガレジスタを2種設け、一方のトリガレジスタによって起動された場合には書込み確定処理付きで動作し、他方のトリガレジスタによって起動された場合には書込み確定処理を行わないようにしてもよい。この場合、不要な書込み確定動作を削減させることができるので処理性能を向上させるといった追加の効果がある。
本実施形態では、DMA210〜212はパラメータ300をリードし、その指示によってメモリ間のデータ転送を実行するが、バッファまたはレジスタに書かれた小データを、ライト確定処理を実行しつつメモリに転送するための別のDMAを設けても良い。また、レジスタのサイズおよびアドレスからデータの転送長および転送元アドレスを知ることができるので、パラメータ300の構築を省略し、転送先アドレスをトリガレジスタにセットするように変形しても良い。更に、データ転送が正常終了の場合には、転送終了通知の送信を省略してもよい。本変形例の場合、データ転送におけるパラメータ作成や転送ステータスチェックのオーバーヘッドを削減できるので、小データ単位でのデータ転送においても処理性能を向上させる追加の効果がある。
なお上記の変形例1〜6は、必要に応じて組み合わせても構わない。
実施例2を図14〜図15を参照して説明する。
実施例2における装置の基本構成は図1に示すストレージ装置であり、ストレージコントローラの構成も図3と同じだが、ASIC200が備える機能が異なる。以降の説明では主に実施例1と異なる部分を説明し、同様の部分については説明を割愛する。なお、ASIC200A,ASIC200Bとも構成は同一であるため、以降の説明では末尾のアルファベット符号は省略する。
本実施例2によれば、内部データ転送パス101,102が複数ある場合、他の資源(DMA)による内部データ転送パス101,102の利用状況を踏まえて、データの転送に用いる内部データ転送パス101,102を選択することができるようになり、効率的な転送が可能となる。従来よく使われる手法としてネットワークパスの転送バッファ空き状況を見て選択する方法があるが、複数のDMA210〜212がわずかな時間差で空き状況を見た場合、全てのDMA210〜212が同じパスを選択する可能性があり効率的な転送が行えない。本実施例2では、テーブル401を参照したDMA210〜212は選択結果をテーブル401に反映する。次のDMA210〜212は前のDMA210〜212の選択結果も踏まえてデータの転送に用いる内部データ転送パス101,102を決定することができるので、全てのDMA210〜212が同じ内部データ転送パス101,102を選択してしまう可能性が減り、より効率的なパス選択が可能となる。
本実施例2では個々のDMA210〜212が他のDMA210〜212の情報を見てパス選択につき判定していたが、ステータスブロック400に判定論理を設け、DMA210〜212がステータスブロック400に問い合わせるようにしても良い。この場合、ステータスブロック400にはパス選択部を設け、DMA210〜212が転送元および転送先のメモリコントローラ230〜233を含むリクエストをパス選択部に送信し、パス選択部は、このリクエストに応じて、図16のS9000〜S9070の処理を行い、選択した内部データ転送パス101,102を応答する。本変形例1の場合、パス選択論理を一箇所に集約できるので実装効率が向上する可能性があるほか、テーブル401のレコードの更新タイミングをステータスブロック400で調整できるので、データ読取り中の書込みなどによる情報不正合を防止しやすくなるという追加の効果がある。
本実施例2では各DMA210〜212による内部データ転送パス101,102の選択状況を見てパス選択につき判断するようにしたが、これに加え内部データ転送パス101,102のバッファの空き状況やPCI Expressの転送クレジット残数などを加味して判断するようにしても良い。例えば内部データ転送パス0(101)の利用は少ないが対応バッファに空きがない場合、内部データ転送パス1(102)を選択するといった判断が可能になる。一例としては、内部データ転送パスアービタ220,222に、内部データ転送パス101,102で使用されているバッファ量をモニタする機能や、PCI Expressコア221,223に転送クレジット残数をモニタする機能を加えることで実現が可能となる。本変形例2では、ステータスブロック400には、転送クレジット残数などを記憶する図17に示すようなテーブル402を記憶しておくようにする。図17の例では、ヘッダやデータなどのより詳細なバッファのクレジット、すなわちポステッドヘッダバッファのクレジット(PH_CREDITS; Posted Header buffer CREDITS)や、ポステッドデータバッファのクレジット(PD_CREDITS; Posted Data buffer CREDITS)、ノンポステッドヘッダバッファのクレジット(NPH_CREDITS: Non-Posted Header buffer CREDITS)、ノンポステッドデータバッファのクレジット(NPD_CREDITS; Non-Posted Data buffer CREDITS)、完了応答ヘッダバッファのクレジット(CPLH_CREDITS; ComPLetion Header buffer CREDITS)、および完了応答データバッファのクレジット(CPLD_CREDITS; ComPLetion Data buffer CREDITS)を記憶するようにしている。メモリライトリクエストのようなポステッドアクセスの場合には、PH_CREDITSやPD_CREDITSの残数を、メモリリードリクエストのようなノンポステッドアクセスの場合には、NPH_CREDITSやNPD_CREDITSの残数を比較することで参照すればよい。本変形例の場合、内部データ転送パス101,102の混雑状況を加味できるのでより精度の高いパス選択が可能となる追加の効果がある。
本実施例2では各DMA210〜212による内部データ転送パス101,102の選択状況を見て判断するようにしたが、これに加えテーブル401の転送元/転送先メモリコントローラ番号4030,4040の利用状況を加味して判断するようにしても良い。内部データ転送パス101,102を通じてメモリコントローラ231にアクセスすることを想定する。例えば、内部データ転送パス0(101)の方がDMAの数が少ないが、アクセス先がみな同じメモリコントローラ230だった場合、当該メモリコントローラ230のバッファがあふれ、内部データ転送パス0上にある後続のパケットが滞留している可能性がある。そこで選択しているDMAの数が多くても内部データ転送パス1(102)を選択する、といったケースが考えられる。本変形例3では、状態管理部2104は、各内部データ転送パス101,102について、例えば宛先メモリコントローラを231とするDMAに限定し、S9030,S9050,S9060に示すカウントを行うことで実現できる。本変形例3の場合、内部データ転送パス101,102の混雑状況に加え、アクセス先のメモリコントローラ230〜233の混雑状況を加味できるのでより精度の高いパス選択が可能となる追加の効果がある。
本実施例2では各DMA210〜212による内部データ転送パス101,102の選択状況を見て判断するようにしたが、これに加え、転送長や、転送ブロック数、あるいは、残転送ブロック数などのより詳細な情報をテーブル401に加え、判断に利用しても良い。本変形例の場合、パス選択する上での精度を高めることができ、より効率的な判断が可能となる追加の効果がある。
実施例3を図18〜図20を参照して説明する。
実施例3における装置の基本構成は図1に示すストレージ装置であり、ストレージコントローラの構成も図3に同じであるが、プロセッサ760,761がDMA210〜212の転送指示に使うパラメータ300のフォーマット、およびプロセッサ760,761がASIC200にメモリM0〜M7の利用レイアウト情報を通知/設定できる点が異なる。以降の説明では主に先の実施例1、2と異なる部分のみ説明し、同様の部分については説明を割愛する。
図18は実施例3におけるプロセッサ760,761がDMA210〜212への転送指示を行うために作成するパラメータ300のフォーマットの一例である。本実施例3のパラメータ300には、先の実施例のパラメータ300が備えるフィールド3001〜3006に加え、当該転送のI/Oの種別や処理の優先度を指定するフィールド(I/O種別)3007がある。I/O種別フィールド3007は8ビットのフィールドで、上位4ビットがI/Oの種別、下位4ビットが優先度を示す。例えばI/Oの種別としては、ホストからのランダムなI/Oは1000b(2進数)、ホストからのシーケンシャルなI/Oは0100b、ストレージが備えるボリューム間の同期機能などの転送は0110bないし0111bなど種別毎に設定するものとする。一方、優先度は、最優先の転送は1000b、最低で良いものは0001bなどであり、プロセッサ760,761はパラメータ300を作成する際、これらの組合せによって値を指定する。
受領した要求信号が1つの場合(S9010:Yes)、アービタ220は当該要求信号に利用権を与え(S9100)、ACT信号603を通じてACT信号を返す。当該DMAはACT信号を受領するとメモリコントローラ230〜233との間でデータの転送を行い、終了するとREQ信号線601のREQ信号を取り下げて(信号をネゲートして)、利用権を解放する。アービタ220は利用権が解放されるのを待ち(S9110)、再び要求信号待ちに入る。
本実施例3によれば、プロセッサ760,761、すなわち制御ソフトウェアから設定されるメモリ資源利用情報を活用することにより、単にハードウェアのみで調停するよりも効率良く内部データ転送パス101,102の利用調停を行うことができ、内部データ転送パス101,102のデータ転送を効率化することができる。
Claims (25)
- 書込みが完了した旨が応答されないバスを介して、プロセッサから与えられる指示に応じてメモリにデータ転送を行うデータ転送装置であって、
メモリ間でデータ転送を行うメモリ間データ転送制御部を備え、
前記メモリ間データ転送制御部は、
前記プロセッサから動作開始契機を受けるための動作開始契機受信部と、
前記プロセッサが作成する、データ転送指示に関する情報を含む転送指示パラメータを取得するパラメータ取得部と、
前記転送指示パラメータで指定されたメモリからデータを読み出す読み出し部と、
前記転送指示パラメータで指定されたメモリへ、前記読み出し部が読み出したデータを書き込む書き込み部とを備え、
前記書き込み部は、
書き込み先のメモリが第1のメモリから第2のメモリに切り替わることを検出すると、前記第1のメモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いて前記第1のメモリに対して書き込み完了確認を行い、
前記転送指示パラメータで指定されたデータ転送が終了すると、データ転送終了時点での書き込み先メモリに対し、前記メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いてデータ転送終了時点での書き込み先メモリに対し書き込み完了確認を行い、
前記メモリ間データ転送制御部は、
前記書き込み完了確認を以て、メモリ間データ転送終了を前記プロセッサに通知する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部の前記書き込み部が、
メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段として、前記メモリからの読み出し動作を、前記メモリへの書き込みに用いた同一のバスを用いて行う
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部の前記書き込み部が、
メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段として、メモリコントローラのレジスタへのアクセス動作を、前記メモリへの書き込みに用いた同一のバスを用いて行う
データ転送装置。 - 請求項3に記載のデータ転送装置であって、
前記メモリコントローラが備える少なくとも1つのレジスタから、少なくとも書き込み回数を参照することが可能である
データ転送装置。 - 請求項4に記載のデータ転送装置であって、
前記メモリ間データ転送制御部は、
メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段として、前記メモリコントローラの書き込み回数が参照可能なレジスタからの読み出し動作を、前記メモリへの書き込みに用いた同一のバスを用いて行い、
前記レジスタから読み出した値と前記メモリ間データ転送制御部が書き込んだ回数とを比較し、データ転送が正常に行われたかを確認する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部は、
メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段として、
ライト確定要求専用の確認リクエストと前記確認リクエストへの応答用リクエストとを正常に処理できるリクエスト処理部
を備え、
前記確認リクエストの送信と前記応答リクエストの受信とによって書き込み完了を確認する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
メモリコントローラとの間に書き込み確定要求および応答用の信号線を備え、
前記メモリ間データ転送制御部は、
メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段として、
該当メモリコントローラへ書き込み確定要求信号を送信し、
前記確定要求信号を受信したメモリコントローラが、要求された書き込みが完了したのを検知したときに、前記要求の応答として要求元へ送信する確定完了信号を受信し、
前記確定完了信号の受信を以て書き込み完了を確認する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部は、
書き込み先メモリが第1のメモリから第2のメモリに切り替わる点を
アクセス先メモリコントローラの切り替わりによって検出する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部は、
書き込み先メモリが第1のメモリから第2のメモリに切り替わる点を
メモリのアクセス先アドレスを参照して判別する
データ転送装置。 - 請求項9に記載のデータ転送装置であって、
前記メモリ間データ転送制御部が、第1のメモリから第2のメモリに切り替わる点を
メモリコントローラ単位で判別する
データ転送装置。 - 請求項9に記載のデータ転送装置であって、
前記メモリ間データ転送制御部が、第1のメモリから第2のメモリに切り替わる点を
前記メモリのDIMM単位で判別する
データ転送装置。 - 請求項9に記載のデータ転送装置であって、
前記メモリ間データ転送制御部が、第1のメモリから第2のメモリに切り替わる点を
前記メモリのバンク単位で判別する
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記転送指示パラメータは、少なくとも
転送元メモリの開始アドレスと、
1以上の転送先メモリの開始アドレスと、
前記各転送先メモリへの書き込み完了チェック要否情報と、
転送データ長と
を前記データ転送指示に関する情報として含み、
前記書き込み部は、
書き込み先のメモリが第1のメモリから第2のメモリに切り替わることを検出すると、第1のメモリへの書き込みが完了したことを確認するか否かを前記転送指示パラメータの書き込み完了チェック要否情報に基づいて決定し、
完了チェック要の場合には、メモリへの書き込みとは異なる手段を用いて第1のメモリに対して完了確認を行い、
前記転送指示パラメータで指定されたデータ転送が終了すると、データ転送終了時点での書き込み先メモリに対し、前記メモリへの書き込みが完了したことを確認するか否かを前記転送指示パラメータの書き込み完了チェック要否情報に基づいて決定し、
完了チェック要の場合には、メモリへの書き込みとは異なる手段を用いてデータ転送終了時点での書き込み先メモリに対し完了確認を行う、
データ転送装置。 - 請求項1に記載のデータ転送装置であって、
前記メモリ間データ転送制御部は、
前記プロセッサから動作開始契機を受けるための動作開始契機受信部を2種備え、
前記メモリ間データ転送制御部は、
前記2種の動作開始契機受信部のうちの一方から契機を受けて起動された場合には、
書き込み先のメモリが第1のメモリから第2のメモリに切り替わることを検出すると、第1のメモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いて第1のメモリに対して完了確認を行い、
前記転送指示パラメータで指定されたデータ転送が終了すると、データ転送終了時点での書き込み先メモリに対し、前記メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いてデータ転送終了時点での書き込み先メモリに対し完了確認を行い、
前記書き込み完了確認を以て、メモリ間データ転送終了をプロセッサに通知し、
前記2種の動作開始契機受信部のうちの他方から契機を受けて起動された場合には、
前記書き込み先メモリへの書き込みが完了したことを確認する動作を省略して、メモリ間データ転送終了をプロセッサに通知する
データ転送装置。 - プロセッサから与えられる指示に応じてメモリ間データ転送を行うメモリ間データ転送制御部を用いて、書込みが完了した旨が応答されないバスを介して、メモリにデータ転送を行うデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記プロセッサから動作開始契機を受けると、
前記プロセッサが作成するデータ転送指示に関する情報を含む転送指示パラメータを取得し、
前記転送指示パラメータで指定されたメモリから前記転送指示パラメータで指定された転送長に達するまで繰り返しデータを読み出し、
前記転送指示パラメータで指定されたメモリへ、前記読み出したデータを前記転送指示パラメータで指定された転送長に達するまで書き込み、
前記書き込みの際、
書き込み先のメモリが第1のメモリから第2のメモリに切り替わることを検出すると、第1のメモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いて第1のメモリに対して完了確認を行い、
前記転送指示パラメータで指定された転送が終了すると、データ転送終了時点での書き込み先メモリに対し、前記メモリへの書き込みが完了したことを確認するために、メモリへの書き込みとは異なる手段を用いてデータ転送終了時点での書き込み先メモリに対し完了確認を行い、
前記書き込み完了確認を以て、メモリ間データ転送終了をプロセッサに通知する
データ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記メモリへの書き込みが完了したことを確認するために、前記メモリへの書き込みとは異なる手段として、前記メモリからの読み出し動作を、前記メモリへの書き込みに用いた同一のバスを用いて行う
データ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記メモリへの書き込みが完了したことを確認するために、前記メモリへの書き込みとは異なる手段として、メモリコントローラのレジスタからの読み出し動作を、前記メモリへの書き込みに用いた同一のバスを用いて行う
データ転送方法。 - 請求項17に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記メモリへの書き込みが完了したことを確認するために、前記メモリへの書き込みとは異なる手段として、前記メモリコントローラの書き込み回数が参照可能なレジスタからの読み出し動作を、前記メモリへの書き込みに用いた同一のバスを用いて行い、
前記レジスタから読み出した値と前記メモリ間データ転送制御部が書き込んだ回数とを比較し、データ転送が正常に行われたかを確認する
データ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記メモリへの書き込みが完了したことを確認するために、前記メモリへの書き込みとは異なる手段として、ライト確定要求専用の確認リクエストを送信し、前記確認リクエストへの応答用リクエストを正常に受信することによって書き込み完了を確認するデータ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込み先メモリが前記第1のメモリから前記第2のメモリに切り替わる点を
アクセス先メモリコントローラの切り替わりによって検出する
データ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込み先メモリが前記第1のメモリから前記第2のメモリに切り替わる点を
前記メモリのアクセス先アドレスから判別する
データ転送方法。 - 請求項21に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込み先メモリが前記第1のメモリから前記第2のメモリに切り替わる点をメモリコントローラ単位で管理するデータ転送方法。 - 請求項21に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込み先メモリが前記第1のメモリから前記第2のメモリに切り替わる点を前記メモリのDIMM単位で管理するデータ転送方法。 - 請求項21に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込み先メモリが前記第1のメモリから前記第2のメモリに切り替わる点を前記メモリのバンク単位で管理するデータ転送方法。 - 請求項15に記載のデータ転送方法であって、
前記メモリ間データ転送制御部は、
前記書き込みの際、
前記書き込み先のメモリが前記第1のメモリから前記第2のメモリに切り替わることを検出すると、前記第1のメモリへの書き込みが完了したことを確認するか否かを前記転送指示パラメータに含まれる転送先メモリへの書き込み完了チェック要否情報に基づいて決定し、
完了チェック要の場合には、前記メモリへの書き込みとは異なる手段を用いて前記第1のメモリに対して完了確認を行い、
前記転送指示パラメータで指定されたデータ転送が終了すると、データ転送終了時点での前記書き込み先メモリに対し、前記メモリへの書き込みが完了したことを確認するか否かを前記転送指示パラメータの前記書き込み完了チェック要否情報に基づいて決定し、
完了チェック要の場合には、前記メモリへの書き込みとは異なる手段を用いてデータ転送終了時点での前記書き込み先メモリに対し完了確認を行う、
データ転送方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/003661 WO2011151859A1 (en) | 2010-06-01 | 2010-06-01 | Data transfer device and method of controlling the same |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014098713A Division JP2014167818A (ja) | 2014-05-12 | 2014-05-12 | データ転送装置およびデータ転送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013515980A true JP2013515980A (ja) | 2013-05-09 |
JP5546635B2 JP5546635B2 (ja) | 2014-07-09 |
Family
ID=43501394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012530010A Expired - Fee Related JP5546635B2 (ja) | 2010-06-01 | 2010-06-01 | データ転送装置およびその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8572342B2 (ja) |
JP (1) | JP5546635B2 (ja) |
WO (1) | WO2011151859A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006111A1 (ja) * | 2014-07-11 | 2016-01-14 | 株式会社日立製作所 | ストレージシステム、記憶制御方法及び中継装置 |
JP2016170696A (ja) * | 2015-03-13 | 2016-09-23 | 株式会社東芝 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
JP2018502359A (ja) * | 2014-10-31 | 2018-01-25 | ザイリンクス インコーポレイテッドXilinx Incorporated | デッドロック回避のための方法及び回路 |
US11704208B2 (en) | 2021-05-12 | 2023-07-18 | Fujitsu Limited | Storage system and information processing method |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011154986A1 (en) * | 2010-06-07 | 2011-12-15 | Hitachi, Ltd. | Data transfer device and data transfer method |
WO2013105967A1 (en) * | 2012-01-13 | 2013-07-18 | Intel Corporation | Efficient peer-to-peer communication support in soc fabrics |
JP5998884B2 (ja) * | 2012-11-30 | 2016-09-28 | 富士通株式会社 | ストレージ装置、およびモジュール間データ転送方法 |
US8775687B1 (en) | 2013-04-15 | 2014-07-08 | Lsi Corporation | Method to ensure data coherency in a scalable aggregate neighbor-device interface |
US9740423B2 (en) | 2013-07-26 | 2017-08-22 | Hitachi, Ltd. | Computer system |
US9229654B2 (en) * | 2013-08-29 | 2016-01-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Input/output request shipping in a storage system with multiple storage controllers |
CN104007936B (zh) * | 2014-01-07 | 2017-09-29 | 华为技术有限公司 | 访问数据的方法及装置 |
US10827039B1 (en) | 2015-10-19 | 2020-11-03 | Quest Software Inc. | Systems and methods for dynamic compression of time-series data |
US20170315943A1 (en) * | 2016-04-29 | 2017-11-02 | Sandisk Technologies Inc. | Systems and methods for performing direct memory access (dma) operations |
JP7032631B2 (ja) * | 2017-07-04 | 2022-03-09 | 富士通株式会社 | 送受信システム、送受信システムの制御方法、及び送信装置 |
GB2578600B (en) * | 2018-10-31 | 2021-10-13 | Advanced Risc Mach Ltd | Memory transaction request management |
KR20210012825A (ko) * | 2019-07-26 | 2021-02-03 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11310732B1 (en) * | 2020-11-23 | 2022-04-19 | At&T Intellectual Property I, L.P. | Facilitation of fast aiding radio access network intelligent controllers for 5G or other next generation network |
CN114879584B (zh) * | 2022-07-05 | 2022-10-28 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172218A (ja) * | 2004-12-16 | 2006-06-29 | Nec Corp | コンピュータシステム及びシステム監視プログラム |
JP2006215873A (ja) * | 2005-02-04 | 2006-08-17 | Toshiba Corp | 制御装置、情報処理装置、及び転送処理方法 |
JP2009053946A (ja) * | 2007-08-27 | 2009-03-12 | Toshiba Corp | 二重化コントーラ構成ブロックデバイス制御装置 |
US20090248942A1 (en) * | 2008-03-31 | 2009-10-01 | Lsi Corporation | Posted Memory Write Verification |
US20100031272A1 (en) * | 2008-07-31 | 2010-02-04 | International Business Machines Corporation | System and method for loose ordering write completion for pci express |
JP2010061194A (ja) * | 2008-09-01 | 2010-03-18 | Hitachi Ltd | データ転送装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006293927A (ja) * | 2005-04-14 | 2006-10-26 | Toshiba Corp | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi |
JP2007310735A (ja) * | 2006-05-19 | 2007-11-29 | Nec Electronics Corp | ダイレクトメモリアクセスコントローラ |
JP4771988B2 (ja) | 2007-04-12 | 2011-09-14 | アラクサラネットワークス株式会社 | 負荷分散装置及びネットワーク装置 |
-
2010
- 2010-06-01 JP JP2012530010A patent/JP5546635B2/ja not_active Expired - Fee Related
- 2010-06-01 US US12/747,086 patent/US8572342B2/en active Active
- 2010-06-01 WO PCT/JP2010/003661 patent/WO2011151859A1/en active Application Filing
-
2013
- 2013-10-14 US US14/053,094 patent/US20140104967A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172218A (ja) * | 2004-12-16 | 2006-06-29 | Nec Corp | コンピュータシステム及びシステム監視プログラム |
JP2006215873A (ja) * | 2005-02-04 | 2006-08-17 | Toshiba Corp | 制御装置、情報処理装置、及び転送処理方法 |
JP2009053946A (ja) * | 2007-08-27 | 2009-03-12 | Toshiba Corp | 二重化コントーラ構成ブロックデバイス制御装置 |
US20090248942A1 (en) * | 2008-03-31 | 2009-10-01 | Lsi Corporation | Posted Memory Write Verification |
US20100031272A1 (en) * | 2008-07-31 | 2010-02-04 | International Business Machines Corporation | System and method for loose ordering write completion for pci express |
JP2010061194A (ja) * | 2008-09-01 | 2010-03-18 | Hitachi Ltd | データ転送装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006111A1 (ja) * | 2014-07-11 | 2016-01-14 | 株式会社日立製作所 | ストレージシステム、記憶制御方法及び中継装置 |
JPWO2016006111A1 (ja) * | 2014-07-11 | 2017-04-27 | 株式会社日立製作所 | ストレージシステム、記憶制御方法及び中継装置 |
US10229062B2 (en) | 2014-07-11 | 2019-03-12 | Hitachi, Ltd. | Storage system, storage control method, and relay device |
JP2018502359A (ja) * | 2014-10-31 | 2018-01-25 | ザイリンクス インコーポレイテッドXilinx Incorporated | デッドロック回避のための方法及び回路 |
JP2016170696A (ja) * | 2015-03-13 | 2016-09-23 | 株式会社東芝 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
US11704208B2 (en) | 2021-05-12 | 2023-07-18 | Fujitsu Limited | Storage system and information processing method |
Also Published As
Publication number | Publication date |
---|---|
WO2011151859A1 (en) | 2011-12-08 |
JP5546635B2 (ja) | 2014-07-09 |
US20140104967A1 (en) | 2014-04-17 |
US8572342B2 (en) | 2013-10-29 |
US20110296129A1 (en) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5546635B2 (ja) | データ転送装置およびその制御方法 | |
EP3796179A1 (en) | System, apparatus and method for processing remote direct memory access operations with a device-attached memory | |
US7664909B2 (en) | Method and apparatus for a shared I/O serial ATA controller | |
JP4392877B2 (ja) | ディスクアレイ制御装置 | |
CN100595720C (zh) | 用于基于集线器的存储***中直接存储器访问的设备和方法 | |
US9753880B1 (en) | Method and switch for transferring transactions between switch domains | |
WO2011010352A1 (en) | Storage apparatus and its data transfer method | |
US20080155163A1 (en) | Serial advanced technology attachment (SATA) and serial attached small computer system interface (SCSI) (SAS) bridging | |
US9244877B2 (en) | Link layer virtualization in SATA controller | |
US8694698B2 (en) | Storage system and method for prioritizing data transfer access | |
JP4100256B2 (ja) | 通信方法および情報処理装置 | |
US7725664B2 (en) | Configuration definition setup method for disk array apparatus, and disk array apparatus | |
CN107430584B (zh) | 经由具有完全连接网格拓扑的pci express结构从存储读取数据 | |
CN107533526B (zh) | 经由具有完全连接网格拓扑的pci express结构向存储写入数据 | |
US7409486B2 (en) | Storage system, and storage control method | |
US8667199B2 (en) | Data processing apparatus and method for performing multi-cycle arbitration | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 | |
US9003129B1 (en) | Techniques for inter-storage-processor cache communication using tokens | |
US9858222B2 (en) | Register access control among multiple devices | |
JP2001282631A (ja) | 書き込みデータの破壊を制限する方法及びシステムとpciバス・システム | |
JP4936088B2 (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
WO2007039933A1 (ja) | 演算処理装置 | |
US8775687B1 (en) | Method to ensure data coherency in a scalable aggregate neighbor-device interface | |
JP2005165592A (ja) | データ転送装置 | |
JP4526509B2 (ja) | ディスクアレイ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130802 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131015 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140317 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140415 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140513 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5546635 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |