JPWO2006114822A1 - Dmaコントローラ、ノード、データ転送制御方法、及びプログラム - Google Patents

Dmaコントローラ、ノード、データ転送制御方法、及びプログラム Download PDF

Info

Publication number
JPWO2006114822A1
JPWO2006114822A1 JP2007514345A JP2007514345A JPWO2006114822A1 JP WO2006114822 A1 JPWO2006114822 A1 JP WO2006114822A1 JP 2007514345 A JP2007514345 A JP 2007514345A JP 2007514345 A JP2007514345 A JP 2007514345A JP WO2006114822 A1 JPWO2006114822 A1 JP WO2006114822A1
Authority
JP
Japan
Prior art keywords
message
node
firmware
dma controller
completion
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
Application number
JP2007514345A
Other languages
English (en)
Other versions
JP4658122B2 (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2006114822A1 publication Critical patent/JPWO2006114822A1/ja
Application granted granted Critical
Publication of JP4658122B2 publication Critical patent/JP4658122B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Systems (AREA)

Abstract

DMAコントローラ14の転送制御部14aは、自ノード10のCPU11(ファームウェア)からの依頼に応じて、データやメッセージを、シリアルバス1、スイッチ2等を介して、任意の他のノード3に送信する。その際、ファームウェアは、メモリ12に、送信すべきデータやメッセージとそのディスクリプタを格納するが、メッセージ送信を依頼する場合には、ディスクリプタ中に“データ転送先からのレスポンスを待つ必要があるか否か”を示すフラグが含まれている。転送制御部14aは、このフラグがONであった場合には、送信先ノード3からの完了応答を待つことなく直ちに、ファームウェアに対して擬似的に完了通知を行う。

Description

本発明は、ダイレクトメモリアクセス制御技術に係り、任意のノード間での情報転送を行う技術に関する。
コンピュータシステムにおいて、メモリとメモリとの間、又はメモリと入出力デバイス(I/Oデバイス)との間のデータ転送を、効率良く行うことは、コンピュータシステムの性能を高める為に重要な事項であり、その為の技術としてDMA(Direct Memory Access)が知られている。DMAは、コンピュータシステム内のデータ転送の制御を、中央処理装置(CPU)の代わりに実行するものであり、DMA制御回路と呼ばれる専用のハードウェアが、CPUからの命令に基づいてデータ転送を制御する仕組みとなっている。
DMAコントローラに係る技術としては、例えば、特許文献1記載のように、マスタプロセッサ(MP)と複数のプロセッサエレメント(PE)やDMAコントローラ等を有し、MPから各DMAコントローラやPEへのコマンドを複数まとめて発行することができ、先に送ったコマンドに対する応答を待たずに次のコマンドを発行することができることが記載されている。
また、特許文献2には、メモリ部(MEM部)に格納されたプログラム(ファームウェア)により通信制御処理を行うCPU部と、通信インタフェース−MEM部間のデータ転送を、プログラム(CPU)を介さずにダイレクト・メモリ・アクセスにより行うDMA部とを有する通信制御処理装置において、ファームウェアの処理を監視する監視部を設け、上記DMA部は監視部により指示されたデータをトレースデータ格納部に転送するように構成することが開示されている。更に詳しくは、ファームウェア格納部に格納された複数の各処理モジュールに対してそれぞれラベルを付与し、処理モジュールは実行時に自モジュールに付加されたラベルを監視部に通知する。そして、監視部は、通知されたラベルを保持して監視を行い、異常発生が検出されると、ラベルに対応する処理モジュールの詳細データを、トレースデータ格納部に転送させるようにDMA部を制御する。
また、特許文献3には、レジスタ結合のマルチプロセッサ・システムにおけるプロセッサ間データ転送制御方式に関して、送信側と受信側とでフレームサイズが異なる場合に、送信側の最終フレームのデータがレジスタ部に転送され、送信側から受信側にEND通知を行ってデータ転送完了の処理を行い、受信側もEND通知によりデータ転送完了の処理を行うと、レジスタ部に最後のデータが残ってしまう為、通常のデータ転送処理とは別のプログラムを実行する必要が生じるという問題を解決するものである。
この問題を解決する為に、特許文献3では、送信側のダイレクトメモリアクセス制御部が、レジスタ部へ最終データを転送したときの完了信号と、受信側のダイレクトメモリアクセス制御部からのACKとの論理積を、割込制御部に加える送信完了信号とする。割込制御部は、この送信完了信号より、プロセッサに割込信号を加える。
また、近年、例えば上位装置に対して入出力装置を接続する為のI/Oインタフェースとして、PCI_Expressアーキテクチャが注目されている。
特開2002−163239号公報 特開平7−93233号公報 特開平5−334260号公報
ここで、近年、例えばRAID等において、上記PCI_Expressアーキテクチャを採用することが考えられている。
RAIDは、Redundant Arrays of InexpensiveDisksまたはRedundant Arrays of Independent Disksの略であり、高速化や安全性の向上を目的に、複数のストレージ(ハードディスク等)をまとめて1台のハードディスクとして管理するというストレージ冗長化の技術である。
図8に、上記PCI_Expressアーキテクチャを採用したRAIDを含む情報処理システムの一例を示す。
図示の情報処理システムは、RAIDを構成する複数のストレージ・モジュール50が、PCI_Expressのシリアルバス70とPCI_Expressスイッチ80を介して、相互に接続されている。PCI_Expressスイッチ80は、各シリアルバスを接続する各ポート(不図示)を有し、任意のポート間のパケットルーティングを行う。
各ストレージモジュール50は、ストレージ(ハードディスク等)53と、このストレージ53と接続したノード51を有する。ノード51は、上記PCI_Expressのシリアルバス70とPCI_Expressスイッチ80を介して、他のストレージ・モジュール50との間でデータ送受信を行う。
また、各ストレージ・モジュール50は、各々、CA(チャンネルアダプタ)52を介して任意のホストコンピュータ60と接続しており、ホストコンピュータ60から、任意の要求(例えばデータ更新要求)を受けると、この要求に応じて、自己のストレージ53に対するデータ更新等を行うと共に、例えばミラーリング先のストレージ・モジュール50に対してデータ転送を行って、同様のデータ更新を行わせる。
以下、この様にホストコンピュータからの要求を受けたノードをローカルノードと呼び、例えばミラーリング先のようにデータ転送先のノードを、リモートノードと呼ぶものとする。
各ノードは、不図示のCPUとローカルメモリとDMAコントローラを有する。CPUは、その内部に実装されたファームウェアによって、各種処理を実行するものであり、ファームウェアは、例えば上記ホストコンピュータからの要求があると、受取ったデータを一時的にローカルメモリに格納すると共にDMAコントローラを起動することで、上記データ転送処理をDMAコントローラに依頼する。
ここで、ファームウェアは、上記データをローカルメモリに格納する際に、ディスクリプタを発行する。すなわち、一般に、CPUがDMAコントローラに対して任意のデータの転送を依頼する際には、CPUは、CPU配下のローカルメモリに、転送を依頼するデータを格納すると共に、このローカルメモリ上に、DMAコントローラが利用する転送制御情報(転送元アドレス、転送先アドレス、転送データサイズ等)が入っているディスクリプタを展開する。その後、CPUはDMAコントローラを起動する。DMAコントローラは、起動すると、自律的に、まず、上記ディスクリプタをリードして転送制御情報を解析し、転送元アドレス(ローカルメモリにおける上記データの格納位置)に格納されている上記データを、上記データサイズ分読み出して、転送先ノードへと送信する。このデータとしては、転送すべきデータ(上記更新データ等;以下、DATAと表記する)以外にも各種メッセージがある。
図9は、図8の構成におけるノード間のデータ転送シーケンス図である。
まず、図9のデータ転送シーケンスに示すように、任意のDATAの転送処理は、実際にDATAを転送する処理の前後に、ローカルノード−リモードノード間で各種メッセージ送受信を行う。ローカルノードのファームウェア101は、1つのメッセージをDMAコントローラ102によって送信させる毎に、このメッセージとディスクリプタとをローカルメモリに格納してからDMAコントローラ102を起動することで、当該メッセージの送信をDMAコントローラ102に依頼する。これより、DMAコントローラ102は、ディスクリプタを読出し・解析することで(ディスクリプタの格納位置は決まっている)、上記メッセージをリモートノードに転送する。これは、リモートノード側においても同様である。また、メッセージ送信の場合だけでなく、DATA送信の場合も同様である。
図示のメッセージ“cmd”は、リモートノードへのリソース(メモリ)確保要求であり、メッセージ“adr”は、リモートノードからの確保メモリアドレス通知である。これらデータ転送前のメッセージ送受信が正常に終了したら、DATA転送が行われる。更に、DATA転送後にも所定のメッセージ交換を行う。すなわち、図示のメッセージ“done”は、リモートノードに対するデータ転送終結通知であり、メッセージ“cmp”は、リモートノードからのデータ受信完了通知である。
図9において、リモートノードのDMAコントローラ112は、上記メッセージ“cmd”を受信すると、自ノードのファームウェア111(CPU)に対してメッセージ“cmd”の受信を通知すると共に(正確には、メッセージ“cmd”をローカルメモリに格納して、ファームウェア111に対して割込みを行う)、ローカルノードのDMAコントローラ102に対して完了応答を返信する。ローカルノードのDMAコントローラ102は、完了応答を受けると、自ノードのファームウェア101に対して完了通知する(割込みを行う)。ローカルノードのファームウェア101は、上記DMA起動から完了通知を受けるまでの間、割込み待ち状態となり、他の処理を行えない。
また、上記リモートノードのDMAコントローラ112からメッセージ“cmd”の受信通知を受けたリモートノードのファームウェア111は、このメッセージ“cmd”に応じた所定のファームウェア処理(上記例ではリソース(メモリ)確保処理)を実行したら、このメッセージ“cmd”に対する返信メッセージ“adr”の送信を、DMAコントローラ112に依頼する。すなわち、メッセージ“adr”とそのディスクリプタをローカルメモリに格納して、DMAコントローラ112を起動する。起動されたDMAコントローラ112は、上記メッセージ“adr”をローカルノードに送信し、これに対する完了応答を受けると、自ノードのファームウェア111に対して完了通知する(割込みを行う)。リモートノードのファームウェア111は、上記DMA起動から完了通知を受けるまでの間、割込み待ち状態となり、他の処理を行えない。
図9に示すメッセージ“done”やメッセージ“cmp”の送信に関しても、上記と同様に、ファームウェアは、DMA起動から割込みを受けるまでの間、割込み待ち状態となり、他の処理を行えない。
上記の様に、何れのノードにおいても、メッセージ送信をDMAコントローラに依頼してから(DMA起動から)完了通知を受けるまでの間(例えばMAX2(ms)程度)、割込み待ち状態となり、他の処理を行えないが、従来では、これは特に問題にはならなかった。
すなわち、従来では、図10(a)に示すように、CPUの性能上、送信したメッセージに対する完了応答を受信するまでの時間(上記割込み待ち状態の時間)よりも、CPU(ファームウェア)が別タスクに移行可能となるまでの時間の方が大きい為、上記割込み待ち状態の時間は、装置性能上のネックとはならなかった。
しかしながら、近年、CPUの性能が向上した為に、図10(b)に示すように、ファームウェアが別タスクに移行可能となるまでの時間が大幅に短縮された。しかしながら、ファームウェアは、上記の通り、完了通知を受けるまでは他の処理(別タスク)に移行できない為、上記割込み待ち状態の時間が、装置性能上のネックとなってきた。
この問題は、PCI_Expressアーキテクチャを用いる場合に限らず、従来のシリアルインタフェースであっても起こるし、またパラレルインタフェースであっても起こり得る。
本発明の課題は、ファームウェアから見たレイテンシを改善するものであって、特にデータ転送前後に行われるメッセージ交換の際、送信したメッセージの種類によっては、応答を待つことなく擬似的に応答をファームウェアに通知することで、応答待ち時間を減少させて別処理を実行させることが可能となるDMAコントローラ、そのプログラム等を提供することである。
本発明のDMAコントローラは、DMAコントローラを有する複数のノードがバスにより接続された情報処理システムにおける該各DMAコントローラにおいて、自ノードのファームウェアからメッセージ送信依頼を受けると、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを判定し、該完了応答が必要無いものであると判定した場合には、該メッセージを前記バスを介して送信先ノードのDMAコントローラに送信すると共に、該送信先ノードからの完了応答を待たずに、前記自ノードのファームウェアに対して完了通知するデータ転送制御手段を有するように構成する。
この様に、送信先ノードからの完了応答を待たずに、DMAコントローラが擬似的に完了応答があった旨をファームウェアに通知することで、ファームウェアは、別の処理に移ることが出来る。
例えば、前記送信先ノードからの完了応答が必要無いメッセージは、該メッセージ送信後に、前記送信先ノードから何らかのメッセージが送られてくることが決められているメッセージである。従って、前記送信先ノードからの返信メッセージを受信したことを以って、上記送信したメッセージが送信先ノードに届いた旨を間接的に判断できる。もし、上記メッセージ送信から一定時間経過しても返信メッセージを受信しなかった場合には、そのときにエラー処理を行えばよい。
この様に、本発明のDMAコントローラによれば、ファームウェアの処理効率を向上させることができる。
本例の情報処理システムにおけるノードの構成図である。 ノード間のデータ(メッセージ)送受信プロセスを説明する為の図(その1)である。 ノード間のデータ(メッセージ)送受信プロセスを説明する為の図(その2)である。 (a)は各種メッセージのデータ転送シーケンス、(b)は各種メッセージの機能や“データ転送先からのレスポンスの要否”を一覧で示す図である。 本例のディスクリプタのイメージ図である。 本例のDMAコントローラの動作フローである。 本例のデータ転送シーケンスの一例である。 従来のRAID等の構成例である。 従来のデータ転送シーケンスの一例である。 (a)、(b)は従来の問題点を説明する為の図である。
以下、図面を参照して本発明の実施の形態について説明する。
尚、本実施の形態の説明では、DMAコントローラ間の接続にPCI_Expressアーキテクチャを用いる場合を例にして説明するが、本発明は、従来の任意のシリアルインタフェースやパラレルインタフェースを用いる構成であっても適用可能である。
図1は、本例の情報処理システムにおけるノードの構成図である。
本例の情報処理システム全体の構成は、図8で説明した従来の構成と略同様である。図1には、図8の様な情報処理システムにおける各ノードの構成例を示すものである。
図1に示すノード10は、CPU11、メモリ12、メモリハブ13、及びDMAコントローラ14を有する。
メモリ12は、CPU11配下のローカルメモリであり、CPU11は、メモリハブ13を介してメモリ12へのデータ・リード/ライトを行う。DMAコントローラ14も、メモリハブ13を介してメモリ12へのデータ・リード/ライトを行う。以下の説明では、メモリハブ13に関しては特に言及しないが、メモリ12に対するデータ・リード/ライトは、常にメモリハブ13に介して行っている。
CPU11に実装されるファームウェアは、任意のデータのデータ転送をDMAコントローラ14に依頼する場合には、この転送させるデータをメモリ12に格納すると共に上述したディスクリプタをメモリ12上に展開する。DMAコントローラ14の転送制御部14aは、このディスクリプタを参照して、このディスクリプタの情報に基づいて、上記データを、例えばPCI_Express等によるシリアルバス1、スイッチ2等を介して、任意の他のノード3に転送する。尚、上述した通り、上記データとしては、実データ(DATA)以外にも、各種メッセージがあり、実データ(DATA)転送処理の前後に、所定のメッセージ交換を実行する。尚、転送制御部14aは、DMAコントローラのメッセージチャネル(MSCH)ブロックに、本発明の機能が追加されたものである。
他のノード3(データ転送先のノード等)も、ノード10と同じ構成である。
以上述べた動作自体は、従来と略同様であるが、本例では、送信依頼する(メモリ12に格納する)データがメッセージである場合には、そのディスクリプタに“データ転送先からのレスポンスを待つ必要があるもの”であるか否かを示す情報(フラグ等)が含まれており、DMAコントローラ14の転送制御部14aが、このフラグを参照して、後述する転送制御処理を実行する点が、従来とは異なる。すなわち、転送するメッセージの種類によっては、DMAコントローラ14は、データ転送先からのレスポンスを待たずに、擬似的にファームウェアに対して完了通知する点が、従来とは異なる。
実データ(DATA)転送処理自体は本発明の特徴には関係ないので、以下の説明では、基本的にはメッセージを送受信する場合について説明する。
図2に、複数のノードがPCI_Expressのようなシリアルインタフェースを用いて相互に接続された、RAID等の情報処理システム全体の構成例を示す。この全体構成自体は、図8で説明した従来の構成と略同様であり、ここでは、各ノードについてはファームウェア(CPU11)とDMAコントローラ14のみを示している。
図2に示す構成の基本的な動作については、図8で既に説明してあるので、ここでは簡単に説明すると、任意のノードのDMAコントローラは、自ノードのファームウェアから任意のメッセージ送信を依頼されると、メッセージ転送先ノードのDMAコントローラに対して、シリアルバス1、スイッチ2を介して、このメッセージ(MSG)を送信する。
尚、以下の説明では、図3に示すように、この様なデータ送信元のノードをローカル側ノード20、データ送信先のノードをリモート側ノード30と呼ぶものとする。また、図3に示すように、ローカル側ノード20におけるDMAコントローラ、その転送制御部、及びファームウェアには、それぞれ符号22、22a、21を付すものとする。同様に、リモート側ノード30におけるDMAコントローラ、その転送制御部、及びファームウェアには、それぞれ符号32、32a、31を付すものとする。
リモート側ノード30のDMAコントローラ32の転送制御部32aは、上記メッセージ(MSG)を受信すると、自ノードのファームウェア31への通知(割込み)を行うと共に、ローカル側ノード20に対して完了応答を返信する。ローカル側ノード20のDMAコントローラ22の転送制御部22aは、この完了応答を受信すると、自ノードのファームウェア21へ完了通知(割込み)する。但し、本例では、ローカル側ノード20のDMAコントローラ22の転送制御部22aは、上記送信したメッセージの種類によっては、上記完了応答を待たずに直ちに、自ノードのファームウェア21への完了通知を行うようにする。これによって、ファームウェア21の割込み待ち時間を減らすことができ、別処理に移ることができるようになる。
また、リモート側ノード30のファームウェア31は、上記メッセージに対する応答メッセージを作成・送信するが、この場合にも、リモート側のDMAコントローラ32の転送制御部32aは、上記と同様、応答メッセージの種類によっては、完了応答を待たずに直ちに、自ノードのファームウェア31への完了通知を行う。
図4(a)に、上記ローカル側ノード20−リモート側ノード30間で送受信するメッセージの具体例を示す。
図4(a)には、ある実データ(DATA)のデータ送信に伴う各種メッセージのデータ転送シーケンスの具体例を示す。
図示の例では、まず、ローカル側ノード20がリモート側ノード30に対してメッセージ“cmd”を送信し、これに対してリモート側ノード30が応答メッセージ“adr”を返信する。ローカル側ノード20は、応答メッセージ“adr”を正常に受信できたら、実データ(DATA)を転送する。その後、ローカル側ノード20はリモート側ノード30に対してメッセージ“done”を送信し、これに対してリモート側ノード30が応答メッセージ“cmp”を返信する。ローカル側ノード20が応答メッセージ“cmp”を正常に受信できたら、当該データ送信処理は完了する。
図4(b)に、図4(a)に示す各種メッセージの機能と、上記“データ転送先からのレスポンスの要否”を一覧で示す。
図4(a)に示したメッセージの種類は、cmd、adr、done、及びcmpの4種類である。これら各種メッセージ・タイプの機能は、既に従来で説明してあり、図4(b)に示す通りである。すなわち、cmpは、ローカルノードからリモートノードに対するリソース(メモリ)確保要求である。adrは、リモートノードから返信されてくる、確保したメモリアドレスの通知である。doneは、ローカルノードからリモートノードに対するデータ転送終結通知である。cmpは、リモードノードから返信されてくる、データ受信完了通知である。
ここで、データ転送シーケンスの最終メッセージである“cmp”以外のメッセージは、このメッセージを送信先ノードが正常に受信できた場合には、送信先からメッセージが返信されてくるものであるので、この返信メッセージを受信することにより、間接的に、当該メッセージが送信先ノードに到達したことが確認できる。これより、この例では、図4(b)に示す通り、“cmp”以外のメッセージは全て、レスポンスが不要であり、“cmp”のみはレスポンスが必要となる。
この様に、各メッセージ種類毎に、レスポンスが必要か否かは予め分かっているので、予めファームウェアに図4(b)に示す情報を持たせておくことで、ファームウェアからDMAコントローラに対して、レスポンスが必要か否かを知らせることができる。すなわち、本例では、メモリ12上に格納されたデータがメッセージである場合には、図5に示すように、上記メモリ12上に展開するディスクリプタには、このメッセージの種類と、レスポンスが必要か否かを示すフラグ(終了割込みタイミングを示すフラグビット)が含まれている。勿論、ディスクリプタには、従来通り、データ(メッセージ)格納位置やそのサイズの情報も含まれているが、ここでは省略して示す。
例えば、ファームウェアは、メモリ12のデータ格納領域にメッセージ“cmd”を格納したときには、このメッセージ“cmd”に対応するディスクリプタをメモリ12上に展開する。このディスクリプタには、メッセージ“cmd”の格納位置(先頭アドレス)とデータサイズ等の情報が含まれているので、DMAコントローラ14の転送制御部14aは、後述する図6の処理のように、ディスクリプタを読み出して解析することで、メッセージ“cmd”を読出して送信することができる。そして、本例では更に、ディスクリプタに含まれる上記フラグによって、このメッセージ“cmp”に対するレスポンスを待つか否かを判定できる。
CPU11(ファームウェア)は、ディスクリプタをメモリ12上に展開する際に、メモリ12に格納したメッセージのタイプに応じて、ディスクリプタのフラグをセット又はリセットする。ここでは、レスポンスが必要ない場合には、フラグをセット(ON)する。
その後、DMAコントローラ14の転送制御部14aは、CPU11(ファームウェア)によって起動されると、図6に示す処理を実行する。
図6に示す処理は、ハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。ハードウェアで実現する場合には、従来のハードウェア構成に、上記フラグを参照して、フラグがOFFであって場合には従来通りの動作を行い、フラグがONであった場合にはメッセージ送信後直ちにファームウェアに対する割込みを発生させる回路構成が加わるだけである。
ここでは、図6に示す処理は、ソフトウェアによって実現するものとして説明する。ソフトウェアによって実現する場合には、DMAコントローラは、不図示のCPUとメモリを有しており、このメモリに図6に示す処理を実現する為のプログラムが格納されており、このプログラムをCPUが読み出して実行する。図6のデータ転送処理を実現する機能部が転送制御部14aに相当する。
図6に示すデータ転送処理は、DMAコントローラがファームウェアによって起動される毎に実行される。尚、ここでは、ローカル側ノード20がリモート側ノード30に対してメッセージ送信する場合を例にして説明するが、リモート側ノード30がローカル側ノード20に対して応答メッセージを送信する場合も同様の処理を行う。
図6において、DMAコントローラ22の転送制御部22aは、まず、メモリからディスクリプタを読み出して(ステップS11)、このディスクリプタを解析することで(ステップS12)、メモリからメッセージを読み出して(ステップS13)、リモート側ノード30に対して当該メッセージを送信する(ステップS14)。また、上記ディスクリプタの解析の際にフラグをチェックしており(ステップS15)、フラグがONであった場合には、リモード側ノード30からの完了応答を待つことなく、直ちに、ファームウェア21に対して完了通知を行う(ステップS17)。一方、フラグがOFFであった場合には、リモード側ノード30からの完了応答を待ち(ステップS16)、完了応答を受信したら、ファームウェア21に対して完了通知を行う(ステップS17)。
この様な転送制御を行うことで、ローカル側ノード20−リモート側ノード30間のデータ転送シーケンスは、例えば図7に示す様になる。
図7において、ローカル側ノード20のファームウェア21(CPU)がDMAコントローラ22を起動すると、DMAコントローラ22は、ディスクリプタを参照して、メッセージ“cmd”をリモート側ノード30に送信すると共に、このメッセージ“cmd”に対応する上記フラグがONであることから、リモート側ノード30からの完了応答を待つことなく、ファームウェア21に対する割込み(完了通知)を実行する。これによって、ファームウェア21は、例えば別の他ノードに対する処理等を実行することができる。その後、DMAコントローラ22は、リモート側ノード30からの完了応答を受信したら、これを破棄する。
一方、上記メッセージ“cmd”を受信したリモート側ノード30のDMAコントローラ32は、上記完了応答を行うと共に、自ノード30のファームウェア31に対して割込み(メッセージ“cmd”受信の通知)を行う。これよりリモート側ノード30のファームウェア31は、メッセージ“cmd”に応じた所定の処理を実行し、応答メッセージ“adr”送信の為の処理を実行後、DMAコントローラ32を起動する。DMAコントローラ32は、ディスクリプタを参照して、メッセージ“adr”をローカル側ノード20に送信すると共に、このメッセージ“adr”に対応する上記フラグがONであることから、ローカル側ノード20からの完了応答を待つことなく、ファームウェア31に対する割込み(完了通知)を実行する。
これより、ファームウェア31は、上記ファームウェア21の場合と同様、別の処理に移ることができる。
上記メッセージ“adr”を受信したDMAコントローラ22は、ファームウェア21に対する割込み(メッセージ“adr”受信の通知)を実行し、その後DATA転送が行われることになる。しかし、もし、何等かの理由で、上記メッセージ“cmd”送信依頼してから所定時間経過しても、メッセージ“adr”を受信しなかった場合には、ファームウェア21はタイムアウト検出することになる。この様に、データ転送シーケンスとして、あるメッセージの送信に対して、送信先から応答メッセージが返信されることが決まっている場合には、応答メッセージが送られてこないことを以って、当該送信したメッセージが相手先に届いていない、と間接的に判断できる。
それ故、送信したメッセージを相手先が正常に受信した場合でも相手先からの応答メッセージが無いケースを除いて、すなわち送信したメッセージがデータ転送シーケンスの最後のメッセージである場合(上記例ではcmp)を除いて、完了応答を待たずに(メッセージを投げっぱなしで)擬似的にファームウェアに対して割込みを行い、上記タイムアウト検出等によるエラー処理は後回しとしても、特に問題はない。
図7において、メッセージ“done”に関しても、上記メッセージ“cmd”等と同様、上記フラグがONであることから、DMAコントローラ22は、リモート側ノード30からの完了応答を待つことなく、ファームウェア21に対する割込みを実行する。
一方、図示のデータ転送シーケンス中の最後のメッセージであるメッセージ“cmp”の場合には、DMAコントローラ32は、上記フラグがOFFになっていることから、ローカル側ノード20に対してメッセージ“cmp”を送信したら、完了応答を待ち、完了応答を受信したら、ファームウェア31に対して割込み(完了通知)を行うことになる。
以上説明したように、本例のDMAコントローラによれば、特にデータ転送前後に行われるメッセージ交換の際、送信したメッセージの種類によっては、応答を待つことなく擬似的に応答をファームウェアに通知することで、応答待ち時間を減少させて別処理を実行させることが可能となる。よって、ファームウェアは、応答が来るまでの無駄な待ち時間を減らし、処理効率を向上させることができる。

Claims (7)

  1. DMAコントローラを有する複数のノードがバスにより接続された情報処理システムにおける該各DMAコントローラにおいて、
    自ノードのファームウェアからメッセージ送信依頼を受けると、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを判定し、該完了応答が必要無いものであると判定した場合には、該メッセージを前記バスを介して送信先ノードのDMAコントローラに送信すると共に、該送信先ノードからの完了応答を待たずに、前記自ノードのファームウェアに対して完了通知するデータ転送制御手段を有することを特徴とするDMAコントローラ。
  2. 前記ファームウェアは、前記メッセージ送信依頼において、前記メッセージと共に、該メッセージのディスクリプタとして、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを示すフラグ情報を含むディスクリプタを前記データ転送制御手段に渡し、
    前記データ転送制御手段は、該フラグ情報を参照することで、前記送信先ノードからの完了応答が必要なものであるか否かを判定することを特徴とする請求項1記載のDMAコントローラ。
  3. 前記送信先ノードからの完了応答が必要無いメッセージは、該メッセージ送信後に、前記送信先ノードから何らかのメッセージが送られてくることが決められているメッセージであることを特徴とする請求項1又は2記載のDMAコントローラ。
  4. 前記バスは、PCI_Expressアーキテクチャを用いたシリアルバスであることを特徴とする請求項1〜3の何れかに記載のDMAコントローラ。
  5. 複数のノードがバスにより接続された情報処理システムにおける該各ノードにおいて、
    自ノードのファームウェアからメッセージ送信依頼を受けると、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを判定し、該完了応答が必要無いものであると判定した場合には、該メッセージを前記バスを介して送信先ノードのDMAコントローラに送信すると共に、該送信先ノードからの完了応答を待たずに、前記自ノードのファームウェアに対して完了通知するDMAコントローラを有することを特徴とするノード。
  6. DMAコントローラを有する複数のノードがバスにより接続された情報処理システムにおける該各DMAコントローラによるデータ転送制御方法であって、
    自ノードのファームウェアからメッセージ送信依頼を受けると、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを判定し、該完了応答が必要無いものであると判定した場合には、該メッセージを前記バスを介して送信先ノードのDMAコントローラに送信すると共に、該送信先ノードからの完了応答を待たずに、前記自ノードのファームウェアに対して完了通知することを特徴とするデータ転送制御方法。
  7. DMAコントローラを有する複数のノードがバスにより接続された情報処理システムにおける該各DMAコントローラのコンピュータに、
    自ノードのファームウェアからメッセージ送信依頼を受けると、該メッセージが送信先ノードからの完了応答が必要なものであるか否かを判定し、該完了応答が必要無いものであると判定した場合には、該メッセージを前記バスを介して送信先ノードのDMAコントローラに送信すると共に、該送信先ノードからの完了応答を待たずに、前記自ノードのファームウェアに対して完了通知する機能を実現させる為のプログラム。
JP2007514345A 2005-04-01 2005-04-01 Dmaコントローラ、ノード、データ転送制御方法、及びプログラム Expired - Fee Related JP4658122B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/006504 WO2006114822A1 (ja) 2005-04-01 2005-04-01 Dmaコントローラ、ノード、データ転送制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2006114822A1 true JPWO2006114822A1 (ja) 2008-12-11
JP4658122B2 JP4658122B2 (ja) 2011-03-23

Family

ID=37214462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007514345A Expired - Fee Related JP4658122B2 (ja) 2005-04-01 2005-04-01 Dmaコントローラ、ノード、データ転送制御方法、及びプログラム

Country Status (5)

Country Link
US (1) US7849235B2 (ja)
JP (1) JP4658122B2 (ja)
KR (1) KR100958685B1 (ja)
CN (1) CN100538684C (ja)
WO (1) WO2006114822A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013512519A (ja) * 2009-12-01 2013-04-11 ブル・エス・アー・エス いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8687639B2 (en) 2009-06-04 2014-04-01 Nvidia Corporation Method and system for ordering posted packets and non-posted packets transfer
US8532098B2 (en) * 2009-11-30 2013-09-10 Nvidia Corporation System and method for virtual channel communication
FR2953308B1 (fr) 2009-12-01 2011-12-09 Bull Sas Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
US9176909B2 (en) * 2009-12-11 2015-11-03 Nvidia Corporation Aggregating unoccupied PCI-e links to provide greater bandwidth
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
US9330031B2 (en) 2011-12-09 2016-05-03 Nvidia Corporation System and method for calibration of serial links using a serial-to-parallel loopback
JP6070357B2 (ja) * 2013-03-28 2017-02-01 富士通株式会社 ストレージ装置
US10733118B2 (en) 2016-08-24 2020-08-04 Hitachi, Ltd. Computer system, communication device, and storage control method with DMA transfer of data
KR101948163B1 (ko) * 2017-01-10 2019-02-14 충북대학교 산학협력단 Pci 익스프레스 기반의 연결통신망에서 배리어 구현 방법
FR3070514B1 (fr) * 2017-08-30 2019-09-13 Commissariat A L'energie Atomique Et Aux Energies Alternatives Controleur d'acces direct en memoire, dispositif et procede de reception, stockage et traitement de donnees correspondants
US10657087B2 (en) * 2018-05-31 2020-05-19 Toshiba Memory Corporation Method of out of order processing of scatter gather lists
JP7326863B2 (ja) * 2019-05-17 2023-08-16 オムロン株式会社 転送装置、情報処理装置、および、データ転送方法
JP7318423B2 (ja) * 2019-08-30 2023-08-01 富士通株式会社 通信制御装置、通信制御方法及び通信制御プログラム
CN112835823B (zh) * 2021-01-25 2022-03-01 无锡众星微系统技术有限公司 存储控制器应答发送方法
CN113971151A (zh) * 2021-10-28 2022-01-25 上海兆芯集成电路有限公司 串行传输控制器及其数据传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619816A (ja) * 1992-07-06 1994-01-28 Nippon Telegr & Teleph Corp <Ntt> デ−タ書き込み方法
JP2004005382A (ja) * 2002-03-29 2004-01-08 Fujitsu Ltd データ転送装置および方法
JP2004326782A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> 暗黙の通知を伴うデータ転送

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334260A (ja) 1992-06-03 1993-12-17 Fujitsu Ltd プロセッサ間データ転送制御方式
JPH0793233A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd ファームウェア・トレースデータ取得方式
US6105080A (en) * 1997-12-30 2000-08-15 Lsi Logic Corporation Host adapter DMA controller with automated host reply capability
US6353619B1 (en) * 1998-02-13 2002-03-05 Paradyne Corporation Circuit to integrate a host processor with special packet-handling logic for use with a DSL modem
JP3884862B2 (ja) 1998-04-30 2007-02-21 キヤノン株式会社 データ転送装置、データ転送装置の制御方法、記憶媒体
JPH11327814A (ja) 1998-05-15 1999-11-30 Canon Inc 画像出力装置及びその方法、及び画像出力システム
US6538758B1 (en) * 1998-05-15 2003-03-25 Canon Kabushiki Kaisha Image output apparatus and method thereof, and image output system
JP2002163239A (ja) 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
JP2002163203A (ja) * 2000-11-22 2002-06-07 Net System Kk 情報提供装置、情報処理装置及び記録媒体
US20050232298A1 (en) * 2004-04-19 2005-10-20 Beverly Harlan T Early direct memory access in network communications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619816A (ja) * 1992-07-06 1994-01-28 Nippon Telegr & Teleph Corp <Ntt> デ−タ書き込み方法
JP2004005382A (ja) * 2002-03-29 2004-01-08 Fujitsu Ltd データ転送装置および方法
JP2004326782A (ja) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> 暗黙の通知を伴うデータ転送

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013512519A (ja) * 2009-12-01 2013-04-11 ブル・エス・アー・エス いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム

Also Published As

Publication number Publication date
US7849235B2 (en) 2010-12-07
JP4658122B2 (ja) 2011-03-23
CN101156144A (zh) 2008-04-02
KR20070116102A (ko) 2007-12-06
KR100958685B1 (ko) 2010-05-20
CN100538684C (zh) 2009-09-09
US20080104341A1 (en) 2008-05-01
WO2006114822A1 (ja) 2006-11-02

Similar Documents

Publication Publication Date Title
JP4658122B2 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US7526592B2 (en) Interrupt control system and storage control system using the same
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US20060218336A1 (en) PCI-Express communications system
US7631226B2 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
JP2009266119A (ja) ストレージ装置及びデータ転送方法
JP3664664B2 (ja) バスシステム及びそのバス仲裁方法
JP2006190257A (ja) データ転送装置およびデータ転送方法
US20170277456A1 (en) Apparatus and method to reduce a response time for writing data to redundant storage devices
WO2016135919A1 (ja) ストレージ装置
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
US20050256998A1 (en) Bus bridge device
US20070073960A1 (en) PCI-Express communications system
US20060265523A1 (en) Data transfer circuit and data transfer method
JP5516411B2 (ja) 情報処理システム
US8151028B2 (en) Information processing apparatus and control method thereof
JP4572138B2 (ja) サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法
US7336657B2 (en) Inter-nodal data transfer system and data transfer apparatus
US8423699B2 (en) Information processing apparatus and method for controlling information processing apparatus
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP4439295B2 (ja) データ転送制御装置
JP3056169B2 (ja) データ送受信方式とその方法
JPH08328990A (ja) 計算機システムおよびその処理方法
JP5120765B2 (ja) 並列計算機システム
JPH10271127A (ja) データ授受方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100420

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101005

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101021

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: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4658122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees