JP6402576B2 - 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法 - Google Patents

通信装置、情報処理装置、情報処理システム及び通信装置の制御方法 Download PDF

Info

Publication number
JP6402576B2
JP6402576B2 JP2014211242A JP2014211242A JP6402576B2 JP 6402576 B2 JP6402576 B2 JP 6402576B2 JP 2014211242 A JP2014211242 A JP 2014211242A JP 2014211242 A JP2014211242 A JP 2014211242A JP 6402576 B2 JP6402576 B2 JP 6402576B2
Authority
JP
Japan
Prior art keywords
packet
transmission
unit
generation
time
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.)
Active
Application number
JP2014211242A
Other languages
English (en)
Other versions
JP2016082363A (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
Priority to JP2014211242A priority Critical patent/JP6402576B2/ja
Priority to US14/875,994 priority patent/US9893992B2/en
Publication of JP2016082363A publication Critical patent/JP2016082363A/ja
Application granted granted Critical
Publication of JP6402576B2 publication Critical patent/JP6402576B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、通信装置、情報処理装置、情報処理システム及び通信装置の制御方法に関する。
近年、情報処理の高度化や複雑化に伴い、複数の演算処理装置間で通信を行い、処理を実行する情報処理システムが増加する傾向にある。例えば、並列計算機は、計算を行うノード及びノード間のネットワークを構成するスイッチを有する。
このような並列計算機において、ノード間通信を行う場合、ノードはメッセージをパケットに分割し、接続先のスイッチへ送信する。スイッチは、ノードや他のスイッチが接続されている入力ポートを経由して送られてくるパケットを受信すると、パケットの宛先に基づいて、宛先ポートを決定し、決定した宛先ポートを用いてパケットを送信する。
また、スイッチは、複数の入力ポートのそれぞれを介して受信した複数のパケットを同じ宛先ポートへ送信する場合、調停を行い、調停結果異に基づいた順番でパケットを送信する。スイッチは、宛先ポート毎にバッファを持ち、調停により待機させるパケットをバッファに保持する。
例えば、ノードN1−N4がスイッチを介して直列に並んでいる場合を考える。この場合、スイッチは、ポート同士を接続し、ノードをバイパスする経路を有する。ノードN1がN4にパケットを送信する場合、ノードN1のネットワークインタフェースは、ノードN4へのパケットを順次生成し送信バッファに格納する。これは、先行するパケットの送信が完了し、後続のパケットが送信できる状態になっても、後続のパケットが生成されていなければ、直ちにパケットを送信することができず、スループットが低下するためである。
このようなスループットの低下を抑えるために、スイッチ又は受信側装置が輻輳状態になった場合に、送信側装置に通知を送り送信レートを抑える従来技術が提案されている。また、スイッチのバッファのデータ蓄積量が閾値を超えた場合に、送信装置からのパケットの送信を禁止する従来技術が提案されている。
特開平09−270821号公報 特表2002−519912号公報
しかしながら、後続のパケットが送信可能な状態になるのはネットワークの状態に依存する。後続のパケットが送信可能状態になるまでに時間がかかると、他ノードへの通信に影響を与えるおそれがある。
例えば、上述したノードN1〜N4を有する例で、ノードN1とともに、ノードN2及びN3がノードN4にパケットを送信する場合を考える。この場合、同時に複数の送信元からのパケットが同じ宛先のノードN4に送信されるため、経路上の各スイッチにおいて、調停が行われ送信が保留されるパケットが発生する。この間、パケットはバッファに格納され、保留時間が長ければバッファに格納されるパケットは徐々に蓄積されていく。スイッチのバッファが飽和すると、経路上の他のスイッチのバッファにおいて送信されたパケットが蓄えられ、経路上にはバッファが飽和したスイッチが増えていく。最終的には、送信元のノードN1に接続するスイッチまで飽和し、ノードN1が送信するパケットは、接続するスイッチのバッファに空きができるまで送信可能な状態にならない。このようにパケットの宛先のポートに接続するスイッチが飽和状態になることを、以下では「宛先ポートの詰まり」という。宛先ポートが詰まった状態で、ノードN1からノードN0へパケットを送信しようとしても、ノードN1のネットワークインタフェースの送信バッファが飽和し十分な空きがなくなり、ノードN0へのパケットの生成が行えない。そのため、ノードN1のスループットが低下してしまうおそれがある。
このように、従来の情報処理システムでは、宛先ポートの詰まりによる性能の低下を軽減することは困難である。
また、ネット―ワークインタフェースにおいて宛先ポート毎に送信バッファを設けることも考えられるが、宛先が多くなるにつれ物量が必要となり、製造コストの増加や実装面積の増加などから実現することは困難である。
また、輻輳状態になった場合に送信側装置に通知を送り送信レートを低下させる従来技術では、送信レートを低下させるためシステムの性能の低下を軽減することは困難である。さらに、バッファのデータ蓄積量が閾値を超えた場合に送信装置からのパケットの送信を禁止する従来技術でも、パケットの送信が停止してしまうため、システムの性能は低下を軽減することは困難である。
開示の技術は、上記に鑑みてなされたものであって、通信性能の低下を軽減する通信装置、情報処理装置、情報処理システム及び通信装置の制御方法を提供することを目的とする。
本願の開示する通信装置、情報処理装置、情報処理システム及び通信装置の制御方法は、一つの態様において、通信装置はスイッチ装置に接続し、且つ、以下の各部を有する。接続ポートは、スイッチ装置に接続する。生成部は、外部装置に送信するデータを取得しパケットを生成する。格納部は、前記生成部により生成された前記パケットを格納する。送信部は、前記パケットの送信指示を受信すると前記スイッチ装置に対して送信要求を送信し、前記送信要求に対する送信許可の通知を前記スイッチ装置から受信すると、前記パケットの送信許可の通知を送出し、前記格納部に格納された前記パケットを取得し、取得した前記パケットを前記接続ポートを介して外部装置に送信する。制御部は、前記送信部に対して前記パケットの送信指示を送信してから、前記送信部が前記パケットの送信許可の通知を送出するまでの所要時間を、前記接続ポートが接続するネットワークの状態として取得し、予め決められたパケット生成時間及び取得した前記ネットワークの状態を基に、前記生成部が生成するパケットの数を制御する。
本願の開示する通信装置、情報処理装置、情報処理システム及び通信装置の制御方法の一つの態様によれば、通信性能の低下を軽減することができるという効果を奏する。
図1は、情報処理システムの一例を表すシステム構成図である。 図2は、実施例1に係る情報処理装置のブロック図である。 図3は、N=1の場合のパケットの生成及び送信を説明するための図である。 図4は、N=2の場合のパケットの生成及び送信を説明するための図である。 図5は、実施例1に係るネットワークインタフェースによるパケット生成の制御のフローチャートである。 図6は、パケット送信処理のフローチャートである。 図7は、実施例2に係る情報処理装置のブロック図である。 図8は、実施例2に係るネットワークインタフェースによるパケット生成の制御のフローチャートである。 図9は、情報処理装置のハードウェア構成の一例の図である。
以下に、本願の開示する通信装置、情報処理装置、情報処理システム及び通信装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信装置、情報処理装置、情報処理システム及び通信装置の制御方法が限定されるものではない。
図1は、情報処理システムの一例を表すシステム構成図である。図1に示すように、本実施例に係る情報処理システムは、情報処理装置である複数のノード101〜104を有する。以下では、ノード101〜104のそれぞれを区別しない場合、「ノード10」と呼ぶ。また、本実施例に係る情報処理システムは、複数のスイッチ21〜24を有する。以下では、スイッチ21〜24のそれぞれを区別しない場合、「スイッチ20」と呼ぶ。
そして、ノード101は、スイッチ21に接続されており、ノード102は、スイッチ22に接続されており、ノード103は、スイッチ23に接続されており、ノード104は、スイッチ24に接続されている。そして、スイッチ21〜24は、直列に接続されている。すなわち、ノード101〜104は、一次元の直線状に配置された1次元メッシュのネットワークトポロジを有する。ここで、本実施例にでは、説明の都合上、ネットワークトポロジが1元メッシュの場合で説明するが、実際にはネットワークトポロジに特に制限はなく、1次元トーラス、2次元メッシュもしくはトーラス、又は、3次元メッシュもしくはトーラスであってもよい。
各ノード10は、対応するスイッチ20に接続するためのポートを有する。さらに、各ノード10のポートは、パケット格納部132を有する。パケット格納部132は、送信バッファである。
スイッチ20は、ノード10に接続するためのポート及び他のスイッチ20へ接続するためのポートを有する。さらに、各スイッチ20の各ポートは、バッファ201を有する。
例えば、ノード101は、ノード104へメッセージを送る場合、メッセージを分割してパケットを生成し、生成したパケットをスイッチ21〜24を経由させて、ノード104へ送信する。そして、スイッチ21のスイッチ22へ繋がるポートのバッファ201に空きが無い場合、ノード101は、パケットの送信許可をスイッチ22から受けるまで、パケットをパケット格納部132へ格納する。パケットの送信許可をスイッチ22から受けると、ノード101は、パケット格納部132に格納されていたパケットをスイッチ22へ出力する。
次に、図2を参照して、本実施例に係る情報処理装置の詳細について説明する。図2は、実施例1に係る情報処理装置のブロック図である。
ノード10は、プロセッサ11、主記憶部12、通信装置であるネットワークインタフェース13及びポート14を有する。プロセッサ11、主記憶部12及びネットワークインタフェース13は、相互にバスで接続されている。ポート14は、ネットワークインタフェース13の一部と考えることもできる。
プロセッサ11は、演算処理装置である。プロセッサ11は、ネットワークインタフェース13からDMA(Direct Memory Access)要求を受ける。そして、プロセッサ11は、データが格納されているアドレスをネットワークインタフェース13へ送信する。さらに、プロセッサ11は、バスの使用許可及びメッセージ送信要求をネットワークインタフェース13へ送信する。そして、プロセッサ11は、バスの解放を行う。
その後、プロセッサ11は、ネットワークインタフェース13からDMA完了の通知を受けると、バスの使用権を回復する。
主記憶部12は、格納領域毎にアドレスを有する。そして、主記憶部12は、各アドレスに対応する格納領域にデータを格納する。
次に、ネットワークインタフェース13について説明する。ネットワークインタフェース13は、図2に示すように、DMA処理部131、パケット格納部132、制御部133及びパケット送信部134を有する。そして、ネットワークインタフェース13は、ポート14を介してスイッチ20と接続される。
DMA処理部131は、DAMの対象とするデータの情報とともにDMA要求をプロセッサ11へ送信する。その後、DMA処理部131は、データを送信するための各パケットに格納されるデータのアドレスとデータ長を後述するDMA管理部331から受信する。ここで、データは、複数のパケットに分割されて送信される。そこで、以下では、データが格納されるパケットの先頭のパケットを「先頭パケット」と言い、他の先頭パケットに続くパケットを「後続パケット」という。
そして、DMA処理部131は、DMA管理部331から受信したアドレスから始まる指定されたデータ長分のデータを主記憶部12から順次取得する。そして、DMA処理部131は、取得したデータを格納したパケットを生成する。その後、DMA処理部131は、生成したパケットをパケット格納部132へ送信する。
ここで、DMA処理部131は、パケットに格納するデータの開始アドレス及びデータ長がDMA管理部331から送られてくる限り、順次指定されたアドレス及びデータ長を基にパケットを生成し、パケット格納部132へ格納する。
DMA処理部131は、DMA管理部331からDMA終了の通知を受けると、DMA完了の通知をプロセッサ11へ送信する。このDMA処理部131が、「生成部」の一例にあたる。
パケット格納部132は、DMA処理部131から送信されたパケットを順次格納し、蓄積する。このパケット格納部132が、「格納部」の一例にあたる。
制御部133は、DMA処理部131が実行するDMA処理を制御する。制御部133は、DMA管理部331及び生成数制御部332を有する。
DMA管理部331は、プロセッサ11からメッセージ送信要求とともにDMAの対象であるデータのアドレスを受信する。そして、DMA管理部331は、DMAの対象であるデータをパケットに格納できるサイズに分割するために、各パケットに格納するデータの先頭のアドレス及びデータ長を求める。
次に、DMA管理部331は、生成するパケットの数をN個に制限する指示を生成数制御部332から受けたか否かを判定する。
生成するパケットの数の制限を受けていない場合、DMA管理部331は、先頭パケットからそれに続く全ての後続パケットのそれぞれに格納するデータの先頭のアドレス及びデータ長を順次DMA処理部131へ送信する。
これに対して、生成するパケットの数をN個に制限する指示を受けた場合、DMA管理部331は、先頭パケットからそれに続く後続パケットのそれぞれに格納するデータの先頭のアドレス及びデータ長を順次DMA処理部131へ送信する。そして、DMA管理部331は、パケット格納部132に格納されているパケットの数がN個になるとアドレス及びデータ長のDMA処理部131への送信を一次停止する。その後、パケット格納部132に格納されているパケットの数がN個になるように、DMA管理部331は、DMA処理部131にアドレス及びデータ長を順次送る。このように、パケット格納部132に格納されているパケットの数がN個になるようにDMA処理部131にパケットを生成させている状態を、「パケットの生成数が制限された状態」という。
ここで、パケットの生成数が制限された状態で、生成数制御部332から制限の解除の通知を受けると、DMA管理部331は、パケットの生成数の制限なく各パケットに格納される残りのデータの先頭のアドレス及びデータ長をDMA処理部131へ送信する。ここで、生成数制御部332からパケットの生成数をN個に制限する指示を再度受けた場合、DMA管理部331は、パケットの生成数が制限された状態に戻る。
また、DMA管理部331は、先頭パケットの生成が完了すると、先頭パケットの生成の完了通知をDMA処理部131から受ける。先頭パケットの完了通知を受けると、DMA管理部331は、先頭パケットの送信指示をパケット送信部134に送信する。さらに、DMA管理部331は、先頭パケットの送信指示の出力を生成数制御部332へ通知する。
また、後続パケットの場合、DMA管理部331は、アドレス及びデータ長をDMA処理部131へ送信するタイミングで、そのパケットの送信指示をパケット送信部134へ送信する。さらに、DMA管理部331は、パケットの送信指示の出力を生成数制御部332へ送信する。
そして、DMA管理部331は、DMAの対象であるデータを送信するための全パケットの生成が完了したか否かを判定する。全パケットの生成が完了していなければ、DMA管理部331は、アドレス及びデータ長の送信を継続する。これに対して、全パケットの生成が完了した場合、DMA管理部331は、DMA終了の通知をDMA処理部131へ送信する。
生成数制御部332は、パケット生成にかかる時間である「パケット生成時間」と予め記憶する。パケット生成時間は、例えば、以下のように求めることができる。DMA処理部131が、主記憶部12へデータを要求してからそのデータを格納したパケットをパケット格納部132に格納されるまでの時間を「パケット格納までのレイテンシ」とする。また、データ長を主記憶部12とネットワークインタフェース13との間の帯域幅で割った値を「データ転送時間」とする。パケット格納までのレイテンシ及びデータ転送時間は、仕様書から取得してもよいし、実際にパケット作成時の経過時間を計測することで求めてもよい。この場合、パケット生成時間は、パケット格納までのレイテンシとデータ転送時間とを加算した値として求められる。
生成数制御部332は、各パケットの送信指示の出力の通知をDMA管理部331から受信する。その後、生成数制御部332は、送信指示に対応する送信許可をパケット送信部134から受信する。そして、生成数制御部332は、送信指示が出力されてから送信許可を受信するまでの時間である「送信許可時間」を算出する。例えば、生成数制御部332は、送信許可を受信した時刻からパケットの送信指示がDMA管理部331から出力された時刻を減算することで送信許可時間を算出する。この送信許可時間が、「ネットワークの状態」の一例にあたる。
次に、生成数制御部332は、送信許可時間とパケット生成時間とを比較する。送信許可時間がパケット生成時間より長い場合、生成数制御部332は、パケットの生成数をN個に制限することをDMA管理部331に通知する。
また、パケットの生成数が制限された状態で、送信許可時間がパケット生成時間より短くなった場合、生成数制御部332は、送信キャンセルをパケット送信部134から受信したか否かを判定する。送信キャンセルを受信した場合、生成数制御部332は、パケットの生成数の制限の解除をDMA管理部331に通知する。これに対して、送信キャンセルを受信していない場合、生成数制御部332は、パケットの生成数をN個に制限した状態を維持する。なぜなら、パケットの送信がキャンセルされていない場合、送信対象のパケットがすでに生成されていない状態である。この場合、既に多数のパケットがパケット格納部132に格納されていることが考えられる。そのため、送信許可時間がパケット生成時間より短いとしても、パケットの生成数の制限を解除しパケットを制限なく生成した場合、生成されたパケットがパケット格納部132に蓄積していってしまうおそれがある。そこで、送信キャンセルを受けた場合、すなわち、パケットの生成がパケットの送信に追いついていない場合に、生成数制御部332は、パケットの生成数をN個に制限する。
ここで、パケットの生成数を制限する場合の個数Nの決定方法について説明する。スループットの低下を防ぐために、Nは、例えば、N=パケット生成時間/(パケット送信時間+送信許可が戻るまでの最短時間)とすることができる。ここで、パケット送信時間は、送信許可を受けてから、スイッチ20へパケットの送信が完了するまでの時間である。また、送信許可が戻るまでの最短時間とは、DMA管理部331がパケットの送信指示をパケット送信部134へ出力した後、生成数制御部332が送信許可をパケット送信部134から受信するまでの最短時間である。すなわち、パケット送信時間に送信許可が戻るまでの最短時間を加算した時間が、次のパケットを送るまでの最短時間と考えることができる。
次のパケットを送るまでの最短時間が、パケット生成時間と等しければ、パケットの送信を開始してから後続パケットを生成すればよいので、スループットの低下を防ぐには、生成しておく後続パケット数は高々1となる。すなわち、この場合、N=1とすることができる。
図3は、N=1の場合のパケットの生成及び送信を説明するための図である。図3は、横軸が時間の経過を表す。ここでは、パケットA及びBを処理する場合で説明する。処理201は、パケットAの送信時間である。また、処理202は、パケットBに対する送信許可時間である。さらに、処理203は、パケットBの生成時間である。N=1の場合、時間T3=時間T1+時間T2である。すなわち、パケットBの送信許可を受信したときには、既にパケットBが生成されており、ネットワークインタフェース13は、直ぐにパケットBを送信できる。これにより、ネットワークインタフェース13は、スループットの低下を防ぐことができる。
しかし、パケット生成時間が次のパケットを送るまでの最短時間の2倍かかるとすると、生成しておく後続パケット数は少なくとも2つ生成しておくことが好ましい。すなわちN=2とすることが好ましい。この場合、N=1とすると、パケットを送信しない期間が発生してしまい、スループットの低下を招いてしまう。
図4は、N=2の場合のパケットの生成及び送信を説明するための図である。図4は、横軸が時間の経過を表す。ここでは、パケットA〜Dを処理する場合で説明する。処理211は、パケットAの送信時間である。また、処理212は、パケットBに対する送信許可時間である。また、処理213は、パケットBの送信時間である。また、処理214は、パケットCに対する送信許可時間である。また、処理215は、パケットCの送信時間である。また、処理216は、パケットDに対する送信許可時間である。さらに、処理217は、パケットCの生成時間であり、処理218は、パケットDの生成時間である。ここでは、処理211及び217の前にパケットA及びBの2つのパケットの生成が完了した場合で説明する。
N=2の場合、パケットを3つ送信し、且つ後続のパケットの送信許可を受けるまでの時間が、2つのパケットを生成する時間に等しい。すなわち、時間T17=時間T11+時間T12+時間T13+時間T14+時間T15+時間T16である。これにより、パケットCの送信許可を受信したときには、既にパケットCが生成されており、ネットワークインタフェース13は、直ぐにパケットCを送信できる。さらに、パケットDの送信許可を受信したときには、既にパケットDが生成されており、ネットワークインタフェース13は、直ぐにパケットDを送信できる。これにより、ネットワークインタフェース13は、スループットの低下を防ぐことができる。
また、制限の個数であるNの他の決定方法として、スイッチ20に接続されるポート数を用いて、N=(バッファサイズ/(パケットサイズ×ポート数))としてもよい。
パケット送信部134は、パケットの送信指示をDMA管理部331から受信する。そして、パケット送信部134は、ポート14を介して、指定されたパケットの送信要求をスイッチ20の宛先ポートへ送信する。その後、スイッチ20の宛先ポートから送信許可を受信すると、パケット送信部134は、送信許可を生成数制御部332へ送信する。また、パケット送信部134は、受信した送信許可に対応するパケットがパケット格納部132にあるか否かを判定する。
パケットがパケット格納部132にあれば、パケット送信部134は、そのパケットをポート14を介して、スイッチ20の宛先ポートへ送信する。
これに対して、パケット格納部132に送信許可に対応するパケットがない場合、パケット送信部134は、送信キャンセルをスイッチ20へ送信する。さらに、パケット送信部134は、送信キャンセルを生成数制御部332へ送信する。このパケット送信部134が、「送信部」の一例にあたる。
スイッチ20は、パケットの送信要求をパケット送信部134から受信する。そして、スイッチ20は、送信要求で指定された宛先ポートのバッファ201(図1参照)に空きがあるか否かを判定する。バッファ201に空きが有る場合、スイッチ20は、送信許可をパケット送信部134へ送信する。
これに対して、バッファ201に空きが無ければ、スイッチ20は、その宛先ポートのバッファ201に空きが出るまで待機し、空きができると、スイッチ20は、送信許可をパケット送信部134へ送信する。
次に、図5を参照して、本実施例に係るネットワークインタフェース13によるパケット生成の制御の流れについて説明する。図5は、実施例1に係るネットワークインタフェースによるパケット生成の制御のフローチャートである。
DMA管理部331は、メッセージ送信要求をプロセッサ11から受信する(ステップS101)。そして、DMA管理部331は、メッセージ送信要求が指定したデータをパケットに格納できるサイズに分割するために、先頭パケット及びそれに続く各後続パケットに入るデータの先頭アドレス及びデータ長を算出する。
次に、DMA管理部331は、先頭パケットに入るデータの先頭アドレスとデータ長をDMA処理部131へ送信する(ステップS102)。
そして、DMA管理部331は、DMA処理部131からの通知により、先頭パケットの生成が完了したか否かを判定する(ステップS103)。先頭パケットの生成が完了していない場合(ステップS103:否定)、DMA管理部331は、先頭パケットの生成が完了するまで待機する。
これに対して、先頭パケットの生成が完了した場合(ステップS103:肯定)、DMA管理部331は、先頭パケットの送信指示をパケット送信部134に送信する(ステップS104)。さらに、DMA管理部331は、送信指示の出力を生成数制御部332に通知する。
その後、生成数制御部332は、送信指示に対応する送信許可の通知をパケット送信部134から受信する(ステップS105)。
次に、生成数制御部332は、送信許可時間を算出する。そして、生成数制御部332は、算出した送信許可時間が予め決められたパケット生成時間以上か否かを判定する(ステップS106)。送信許可時間がパケット生成時間以上の場合(ステップS106:肯定)、生成数制御部332は、生成するパケットの数をN個に制限することをDMA管理部331に通知する。DMA管理部331は、通知を受けて、生成するパケットの数をN個に制限する(ステップS107)。
これに対して、送信許可時間がパケット生成時間未満の場合(ステップS106:否定)、生成数制御部332は、送信キャンセルをパケット送信部134から受信したか否かを判定する(ステップS108)。送信キャンセルを受信していない場合(ステップS108:否定)、パケット生成の処理は、ステップS110へ進む。
これに対して、送信キャンセルを受信した場合(ステップS108:肯定)、生成数制御部332は、制限の解除をDMA管理部331に通知する。DMA管理部331は、通知を受けて、生成するパケットの数の制限を解除する(ステップS109)。その後、パケット生成の処理は、ステップS111へ進む。
そして、DMA管理部331は、生成済みのパケットがN個未満か否かを判定する(ステップS110)。生成済みのパケットがN個の場合(ステップS110:否定)、DMA管理部331は、ステップS113へ進む。
これに対して、生成済みのパケットがN個未満の場合(ステップS110:肯定)、DMA管理部331は、後続パケットに入るデータのアドレスとデータ長をDMA処理部131へ送信する(ステップS111)。
次に、DMA管理部331は、後続パケットの送信指示をパケット送信部134へ送信する(ステップS112)。さらに、DMA管理部331は、送信指示の出力を生成数制御部332へ通知する。
その後、DMA管理部331は、パケット送信部134に対して全てのパケットの送信指示が完了したか否かを判定する(ステップS113)。送信指示が完了していないパケットが残っている場合(ステップS113:否定)、パケット生成の処理はステップS106へ戻る。これに対して、全てのパケットの送信指示が完了した場合(ステップS113:肯定)、DMA管理部331は、パケット生成の処理を終了する。
次に、図6を参照して、パケット送信部134によるパケット送信処理の流れについて説明する。図6は、パケット送信処理のフローチャートである。
パケット送信部134は、パケットの送信指示をDMA管理部331から受信する(ステップS201)。
次に、パケット送信部134は、スイッチ20の宛先ポートにパケットの送信要求を送信する(ステップS202)。
その後、パケット送信部134は、送信要求に対する応答として送信許可をスイッチ20から受信する(ステップS203)。
そして、パケット送信部134は、送信許可の受信を生成数制御部332へ通知する(ステップS204)。
さらに、パケット送信部134は、受信した送信許可に対応するパケットの生成が完了したか否かを判定する(ステップS205)。パケットの生成が完了していない場合(ステップS205:否定)、パケット送信部134は、受信した送信許可に対応するパケットの送信をキャンセルする(ステップS206)。さらに、パケット送信部134は、送信キャンセルを生成数制御部332へ送信する。その後、パケット送信部134は、ステップS202へ戻る。
これに対して、パケットの生成が完了た場合(ステップS205:肯定)、パケット送信部134は、創始許可を受けたパケットをスイッチ20の宛先ポートへ送信する(ステップS207)。
以上に説明したように、本実施例に係るネットワークインタフェース及びそれを備えた情報処理装置は、スイッチへのパケット送信を開始するまでに時間がかかる場合、生成するパケットの数を制限する。すなわち、宛先ポートの詰りが発生した場合に、生成するパケットの数が制限される。これにより、宛先ポートの詰まりによる性能の低下を軽減することができる。
図7は、実施例2に係る情報処理装置のブロック図である。本実施例に係るネットワークインタフェース13は、スイッチ20のバッファ使用率及びパケット送信時間を基にネットワークの状態を判定することが実施例1と異なる。以下の説明では、各部の実施例1と同様の機能については説明を省略する。
生成数制御部332は、送信指示に対応するパケットが送信されるスイッチ20の宛先ポートのバッファ201(図1参照)のバッファ使用率及びパケット送信時間をスイッチ20から受信する。ここで、パケット送信時間とは、宛先ポートへパケットが送信されてからそのパケットがその宛先ポートから送出されるまでにかかる時間である。このスイッチ20の宛先ポートのバッファ使用率及びパケット送信時間が、「ネットワークの状態」の一例にあたる。
そして、生成数制御部332は、宛先ポートのバッファ201の使用率が100%か否かを判定する。宛先ポートのバッファ201の使用率が100%でなければ、生成数制御部332は、生成するパケットの数の制限を行わないと決定する。そして、パケットの生成数が制限された状態であれば、生成数制御部332は、制限の解除をDMA管理部331へ通知する。
これに対して、バッファ201の使用率が100%の場合、生成数制御部332は、パケットの送信時間が予め決められたパケットの生成時間以上か否かを判定する。パケットの送信時間が予め決められたパケットの生成時間以上の場合、生成数制御部332は、生成するパケットの数の制限をDMA管理部331へ通知する。一方、パケットの送信時間が予め決められたパケットの生成時間未満の場合、生成数制御部332は、生成するパケットの数の制限を行わないと決定する。そして、パケットの生成数が制限された状態であれば、生成数制御部332は、制限の解除をDMA管理部331へ通知する。
スイッチ20は、自己に備わった各ポートのバッファ201の使用率及び各ポートのパケット送信時間を監視する。そして、スイッチ20は、パケット送信部134から送信要求を受信すると、送信要求の対象となる宛先ポートのバッファ201の使用率及びパケット送信時間を取得する。その後、スイッチ20は、取得した宛先ポートのバッファ201の使用率及びパケット送信時間を、生成数制御部332へ送信する。
次に、図8を参照して、本実施例に係るネットワークインタフェース13によるパケット生成の制御の流れについて説明する。図8は、実施例2に係るネットワークインタフェースによるパケット生成の制御のフローチャートである。
DMA管理部331は、メッセージ送信要求をプロセッサ11から受信する(ステップS301)。そして、DMA管理部331は、メッセージ送信要求が指定したデータをパケットに格納できるサイズに分割するために、先頭パケット及びそれに続く各後続パケットに入るデータの先頭アドレス及びデータ長を算出する。
次に、DMA管理部331は、先頭パケットに入るデータの先頭アドレスとデータ長をDMA処理部131へ送信する(ステップS302)。
そして、DMA管理部331は、DMA処理部131からの通知により、先頭パケットの生成が完了したか否かを判定する(ステップS303)。先頭パケットの生成が完了していない場合(ステップS303:否定)、DMA管理部331は、先頭パケットの生成が完了するまで待機する。
これに対して、先頭パケットの生成が完了した場合(ステップS303:肯定)、DMA管理部331は、先頭パケットの送信指示をパケット送信部134に送信する(ステップS304)。
その後、生成数制御部332は、送信指示に対応するパケットが送信されるスイッチ20の宛先ポートのバッファ201の使用率及びパケット送信時間をスイッチ20から受信する(ステップS305)。
そして、生成数制御部332は、宛先ポートのバッファ201の使用率が100%で、且つ、パケット送信時間が予め決められたパケット生成時間以上か否かを判定する(ステップS306)。宛先ポートのバッファ201の使用率が100%で、且つ、パケット送信時間がパケット生成時間以上の場合(ステップS306:肯定)、生成数制御部332は、生成するパケットの数をN個に制限することをDMA管理部331に通知する。DMA管理部331は、通知を受けて、生成するパケットの数をN個に制限する(ステップS307)。
これに対して、宛先ポートのバッファ201の使用率が100%未満、又は、パケット送信時間がパケット生成時間未満の場合(ステップS306:否定)、生成数制御部332は、送信キャンセルをパケット送信部134から受信したか否かを判定する(ステップS308)。送信キャンセルを受信していない場合(ステップS308:否定)、パケット生成の処理は、ステップS310へ進む。
これに対して、送信キャンセルを受信した場合(ステップS308:肯定)、生成数制御部332は、制限の解除をDMA管理部331に通知する。DMA管理部331は、通知を受けて、生成するパケットの数の制限を解除する(ステップS309)。その後、パケット生成の処理は、ステップS311へ進む。
そして、DMA管理部331は、生成済みのパケットがN個未満か否かを判定する(ステップS310)。生成済みのパケットがN個の場合(ステップS310:否定)、DMA管理部331は、ステップS313へ進む。
これに対して、生成済みのパケットがN個未満の場合(ステップS310:肯定)、DMA管理部331は、後続パケットに入るデータのアドレスとデータ長をDMA処理部131へ送信する(ステップS311)。
次に、DMA管理部331は、後続パケットの送信指示をパケット送信部134へ送信する(ステップS312)。さらに、DMA管理部331は、送信指示の出力を生成数制御部332へ通知する。
その後、DMA管理部331は、パケット送信部134に対して全てのパケットの送信指示が完了したか否かを判定する(ステップS313)。送信指示が完了していないパケットが残っている場合(ステップS313:否定)、パケット生成の処理はステップS306へ戻る。これに対して、全てのパケットの送信指示が完了した場合(ステップS313:肯定)、DMA管理部331は、パケット生成の処理を終了する。
以上に説明したように、本実施例に係るネットワークインタフェースは、バッファ使用率及びパケット送信時間を基にネットワークの状態を判定し、生成するパケットの数を制限するか否かを決定する。このように、パケットを送信するネットワークインタフェースから送信先までの間のネットワークの状態を判断できる情報であれば、どのような情報を用いても生成するパケット数を制限するか否かを判定することができる。したがって、取得できる情報に応じて、生成するパケット数の制限の判定方法を変更でき、システムに合わせた柔軟な運用を行うことができる。
(ハードウェア構成)
次に、図9を参照して各実施例に係るネットワークインタフェースのハードウェア構成について説明する。図9は、情報処理装置のハードウェア構成の一例の図である。
図9に示すように、ネットワークインタフェース13は、プロセッサ91、DMAコントローラ92及び送信バッファ93を有する。
プロセッサ91は、DMAコントローラ92及び送信バッファ93とバスで接続されている。また、プロセッサ91、DMAコントローラ92及び送信バッファ93を結ぶバスは、ノード10のメインのプロセッサ11及びメモリ90を接続するバスと接続されている。さらに、プロセッサ91、DMAコントローラ92及び送信バッファ93を結ぶバスは、ポート14に接続されている。
メモリ90は、例えば図2に例示した主記憶部12の機能を実現する。
また、プロセッサ91は、図2に例示したDMA管理部331及び生成数制御部332を含む制御部133、並びに、パケット送信部134の機能を実現する。
また、送信バッファ93は、図2に例示したパケット格納部132の機能を実現する。さらに、DMAコントローラ92は、図2に例示したDMA処理部131の機能を実現する。
10 ノード
11 プロセッサ
12 主記憶部
13 ネットワークインタフェース
14 ポート
20 スイッチ
131 DMA処理部
132 パケット格納部
133 制御部
134 パケット送信部
331 DMA管理部
332 生成数制御部

Claims (8)

  1. スイッチ装置に接続する通信装置において、
    前記スイッチ装置に接続する接続ポートと、
    外部装置に送信するデータを取得しパケットを生成する生成部と、
    前記生成部により生成された前記パケットを格納する格納部と、
    前記パケットの送信指示を受信すると前記スイッチ装置に対して送信要求を送信し、前記送信要求に対する送信許可の通知を前記スイッチ装置から受信すると、前記パケットの送信許可の通知を送出し、前記格納部に格納された前記パケットを取得し、取得した前記パケットを前記接続ポートを介して外部装置に送信する送信部と、
    前記送信部に対して前記パケットの送信指示を送信してから、前記送信部が前記パケットの送信許可の通知を送出するまでの所要時間を、前記接続ポートが接続するネットワークの状態として取得し、予め決められたパケット生成時間及び取得した前記ネットワークの状態を基に、前記生成部が生成するパケットの数を制御する制御部と
    を備えたことを特徴とする通信装置。
  2. 前記制御部は、前記所要時間が前記パケット生成時間以上の場合、前記生成部が生成するパケットの数を制限することを特徴とする請求項に記載の通信装置。
  3. 前記制御部は、前記所要時間が前記パケット生成時間よりも短い場合に、前記パケットの送信許可の通知を受信したときに、前記パケットの生成が完了していなければ、前記生成部が生成するパケットの数の制限を解除することを特徴とする請求項2に記載の通信装置。
  4. スイッチ装置に接続する通信装置において、
    前記スイッチ装置に接続する接続ポートと、
    外部装置に送信するデータを取得しパケットを生成する生成部と、
    前記生成部により生成された前記パケットを格納する格納部と、
    前記格納部に格納された前記パケットを取得し、取得した前記パケットを前記接続ポートを介して外部装置に送信する送信部と、
    前記スイッチ装置の前記外部装置へ繋がる送信ポートが有する送信バッファの使用率及び前記送信ポートがパケットを前記送信部から受信し前記送信ポートから送出するまでの前記送信ポートの使用時間を、前記接続ポートが接続するネットワークの状態として取得し、予め決められたパケット生成時間及び取得した前記ネットワークの状態を基に、前記生成部が生成するパケットの数を制御する制御部と
    を備えたことを特徴とする通信装置。
  5. 前記制御部は、前記使用率が100%であり、且つ、前記使用時間が前記パケット生成時間以上の場合、前記生成部が生成するパケットの数を制限することを特徴とする請求項に記載の通信装置。
  6. 演算処理装置、主記憶装置及び通信装置を有する情報処理装置を有するとともに、スイッチ装置に接続する情報処理装置において、
    前記通信装置は、
    前記スイッチ装置に接続する接続ポートと、
    他の情報処理装置に送信するデータを取得しパケットを生成する生成部と、
    前記生成部により生成された前記パケットを格納する格納部と、
    前記パケットの送信指示を受信すると前記スイッチ装置に対して送信要求を送信し、前記送信要求に対する送信許可の通知を前記スイッチ装置から受信すると、前記パケットの送信許可の通知を送出し、前記格納部に格納された前記パケットを取得し、取得した前記パケットを前記接続ポートを介して外部装置に送信する送信部と、
    前記送信部に対して前記パケットの送信指示を送信してから、前記送信部が前記パケットの送信許可の通知を送出するまでの所要時間を、前記接続ポートが接続するネットワークの状態として取得し、予め決められたパケット生成時間及び取得した前記ネットワークの状態を基に、前記生成部が生成するパケットの数を制御する制御部と
    を備えたことを特徴とする情報処理装置。
  7. 複数の情報処理装置と前記複数の情報処理装置の各々にそれぞれ接続する複数のスイッチ装置を有する情報処理システムであって、
    前記情報処理装置は、演算処理装置、主記憶装置及び通信装置を有し、
    前記通信装置は、
    前記スイッチ装置に接続する接続ポートと、
    他の情報処理装置に送信するデータを取得しパケットを生成する生成部と、
    前記生成部により生成された前記パケットを格納する格納部と、
    前記パケットの送信指示を受信すると前記スイッチ装置に対して送信要求を送信し、前記送信要求に対する送信許可の通知を前記スイッチ装置から受信すると、前記パケットの送信許可の通知を送出し、前記格納部に格納された前記パケットを取得し、取得した前記パケットを前記接続ポートを介して外部装置に送信する送信部と、
    前記送信部に対して前記パケットの送信指示を送信してから、前記送信部が前記パケットの送信許可の通知を送出するまでの所要時間を、前記接続ポートが接続するネットワークの状態として取得し、予め決められたパケット生成時間及び取得した前記ネットワークの状態を基に、前記生成部が生成するパケットの数を制御する制御部とを備えた
    ことを特徴とする情報処理システム。
  8. スイッチ装置に接続する通信装置の制御方法において、
    外部装置に送信するデータを取得しパケットを生成し、
    生成した前記パケットを格納し、
    送信器に対して前記パケットの送信指示を送信し、
    前記パケットの送信指示を受信した前記送信器に、前記スイッチ装置に対して送信要求を送信させ、前記送信要求に対する送信許可の通知を前記スイッチ装置から受信させ、前記パケットの送信許可の通知を送出させ、
    前記送信器に、格納した前記パケットを取得させ
    前記送信器に、前記スイッチ装置に接続する接続ポートを介して外部装置、取得した前記パケットを送信させ
    前記送信器に対して前記パケットの送信指示を送信してから、前記送信器が前記パケットの送信許可の通知を送出するまでの所要時間を、前記接続ポートが接続するネットワークの状態として取得し、
    予め決められたパケット生成時間及び取得した前記接続ポートの状態を基に、生成するパケットの数を制御する
    ことを特徴とする通信装置の制御方法。
JP2014211242A 2014-10-15 2014-10-15 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法 Active JP6402576B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014211242A JP6402576B2 (ja) 2014-10-15 2014-10-15 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
US14/875,994 US9893992B2 (en) 2014-10-15 2015-10-06 Communication apparatus, information processing apparatus, and method of controlling communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014211242A JP6402576B2 (ja) 2014-10-15 2014-10-15 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016082363A JP2016082363A (ja) 2016-05-16
JP6402576B2 true JP6402576B2 (ja) 2018-10-10

Family

ID=55749959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014211242A Active JP6402576B2 (ja) 2014-10-15 2014-10-15 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法

Country Status (2)

Country Link
US (1) US9893992B2 (ja)
JP (1) JP6402576B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7004900B2 (ja) * 2017-12-08 2022-01-21 富士通株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6889126B2 (ja) 2018-03-20 2021-06-18 株式会社東芝 転送制御装置、転送制御方法及びプログラム
CN114884909B (zh) * 2022-07-11 2022-09-09 苏州联讯仪器有限公司 Dma数据传输方法、dma数据传输装置及数据传输系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02170645A (ja) * 1988-12-22 1990-07-02 Nec Corp パケット送信方式及びパケット送信装置
JP3301682B2 (ja) * 1995-08-11 2002-07-15 松下電器産業株式会社 パケット出力装置
JPH09270821A (ja) 1996-03-29 1997-10-14 Hitachi Ltd データ処理装置
US6396814B1 (en) * 1997-09-12 2002-05-28 Kabushiki Kaisha Toshiba Network construction method and communication system for communicating between different groups via representative device of each group
US6252849B1 (en) 1998-06-30 2001-06-26 Sun Microsystems, Inc. Flow control using output port buffer allocation
US6850489B1 (en) * 1999-04-28 2005-02-01 Matsushita Electric Industrial Co., Ltd. Communication system to which multiple access control method is applied
JP3858002B2 (ja) * 2003-05-23 2006-12-13 三洋電機株式会社 無線伝送システム
WO2005015841A1 (en) * 2003-08-06 2005-02-17 Matsushita Electric Industrial Co., Ltd. Master station of communication system and access control method
WO2008001481A1 (en) * 2006-06-29 2008-01-03 Mitsubishi Electric Corporation Communication system, base station, and mobile station
KR101479883B1 (ko) * 2010-09-15 2015-01-12 미쓰비시덴키 가부시키가이샤 통신 장치 및 지연 검출 방법
US9014029B1 (en) * 2012-03-26 2015-04-21 Amazon Technologies, Inc. Measuring network transit time
US9077619B2 (en) * 2012-09-18 2015-07-07 Cisco Technology, Inc. Exporting real time network traffic latency and buffer occupancy
JP2015039131A (ja) * 2013-08-19 2015-02-26 株式会社東芝 計測装置および方法

Also Published As

Publication number Publication date
JP2016082363A (ja) 2016-05-16
US9893992B2 (en) 2018-02-13
US20160112312A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
US9571402B2 (en) Congestion control and QoS in NoC by regulating the injection traffic
CN107005494B (zh) 用于在交换机中缓冲数据的装置和方法
US9264371B2 (en) Router, method for controlling the router, and computer program
KR101960147B1 (ko) 중계 장치 및 데이터 전송 방법
CN110059043B (zh) 数据处理器及用于控制数据处理器的方法
KR102369305B1 (ko) 클라이언트 전송 방법 및 디바이스
JP6029763B2 (ja) メッシュ通信ネットワークにおいて資源を割り当てる方法、コンピュータプログラム、情報記憶手段およびノード装置
JP5800032B2 (ja) 計算機システム,通信制御装置及び計算機システムの制御方法
US20210336886A1 (en) Network devices in duty cycle limited networks
JP6402576B2 (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
US9001841B2 (en) Communication control device, parallel computer system, and communication control method
US8725827B2 (en) Data communication system and data communication apparatus in a token passing system with improved recovery
CN109716719B (zh) 数据处理方法及装置、交换设备
JP2017530643A5 (ja)
TW201811083A (zh) 通訊系統以及通訊方法
JP2007189592A (ja) トークンバケットによるトラヒック制御装置、方法及びプログラム
CN112491715A (zh) 路由装置及片上网络的路由设备
WO2009125368A2 (en) Electronic device and method for controlling an electronic device
JP7044081B2 (ja) 車載用通信システム
KR102113641B1 (ko) 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치
JP6362564B2 (ja) 通信装置およびバッファ制御方法
JP5949312B2 (ja) 並列計算機システム、データ転送装置及び並列計算機システムの制御方法
US11777869B2 (en) Message arbitration in a ring interconnect system based on activity indications for each node in the ring interconnect
US20150095621A1 (en) Arithmetic processing unit, and method of controlling arithmetic processing unit
WO2016088371A1 (ja) 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180827

R150 Certificate of patent or registration of utility model

Ref document number: 6402576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150