JP2008172515A - 送信装置および方法、通信装置、並びにプログラム - Google Patents

送信装置および方法、通信装置、並びにプログラム Download PDF

Info

Publication number
JP2008172515A
JP2008172515A JP2007003582A JP2007003582A JP2008172515A JP 2008172515 A JP2008172515 A JP 2008172515A JP 2007003582 A JP2007003582 A JP 2007003582A JP 2007003582 A JP2007003582 A JP 2007003582A JP 2008172515 A JP2008172515 A JP 2008172515A
Authority
JP
Japan
Prior art keywords
transmission
memory
data
network
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007003582A
Other languages
English (en)
Inventor
Hiroshi Kusogami
宏 久曽神
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2007003582A priority Critical patent/JP2008172515A/ja
Priority to US11/971,509 priority patent/US8214552B2/en
Publication of JP2008172515A publication Critical patent/JP2008172515A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

【課題】CPUに負荷をかけずに、ネットワークに接続するための機器におけるバッファ溢れを回避することができるようにする。
【解決手段】転送レート制御部161は、ネットワークカード114の送信バッファ121の容量を超える送信データが、送信データを記憶するメモリ113から送信バッファ121に転送される場合、メモリ113から送信バッファ121への転送レートを制御して、送信バッファ121に蓄積される送信データのデータ量を抑制することで、CPUに負荷をかけずに、ネットワーク102に接続するためのネットワークカード114における送信バッファ121のバッファ溢れを回避することができるようになる。本発明は、DMA転送を行う電子機器に適用することが可能である。
【選択図】図5

Description

本発明は、送信装置および方法、通信装置、並びにプログラムに関し、特に、ネットワークに接続するための機器におけるバッファ溢れを回避することができるようにした送信装置および方法、通信装置、並びにプログラムに関する。
近年、非常に高速なデータバスが登場しており、例えば、10Gbps(Giga bit per second)のネットワークカードが接続されているデータバスが、x8(8レーン)のPCI Expressの規格に準拠している場合、そのデータバスは、16Gbps(2Gbps×8レーン(1レーンごとに2Gbps))の帯域が転送可能となる。
図1は、そのような高速なデータバスを有している従来の通信装置の構成を示すブロック図である。なお、図1においては、通信装置1は、ネットワーク2を介して、自装置と同様の構成を有する通信装置3と通信を行う。
通信装置1は、所定のプログラムを実行することにより通信装置1の各部の動作を制御するCPU(Central Processing Unit)11と、データバス12を介してCPU11に接続されたメモリ13、およびネットワークカード14から構成されている。また、ネットワークカード14は、通信装置3に送信する送信データを蓄積する送信バッファ21と、通信装置3から受信した受信データを蓄積する受信バッファ22を有している。
図2は、従来の通信装置1と通信装置3との間で行われる通信について説明する図である。なお、図2において、送信データバスおよび受信データバスは、図1のデータバス12に相当し、送信ネットワークカードおよび受信ネットワークカードは、図1のネットワークカード14に相当する。また、送信バッファは、図1の送信バッファ21に相当し、受信バッファは、図1の受信バッファ22に相当する。
さらにまた、送信アプリケーションおよび受信アプリケーションは、それぞれ、通信装置1および通信装置3のCPU11により実行され、図2の四角は、送信アプリケーションによって生成される送信データを表現している。
通信装置1においては、図2に示すように、送信データを格納したパケットを送信する場合、CPU11により実行される送信アプリケーションによってメモリ13に記憶された送信データは、通常、CPU11を占有しないように、メモリ13からDMA(Direct Memory Access)によって読み出されて、送信データバスを介して、送信ネットワークカードの送信バッファに転送される。その後、送信データを格納したパケットは、送信ネットワークカードからネットワーク2を介して通信装置3に送信される。
ところで、上述したように、8レーンで構成されたPCI Expressの規格に準拠したデータバス12は、16Gbpsの帯域が転送可能であるので、例えば、ネットワークカード14の帯域幅が10Gbpsである場合、送信データバスの帯域幅は、送信ネットワークカードの帯域幅よりも広帯域となる。その結果、送信アプリケーション(メモリ13)から送信バッファ(送信バッファ21)に対するDMAを送信データバスの帯域幅の限界(16Gbps)で行うと、どれほど迅速に、送信データが格納されたパケットをネットワーク2に送信したとしても、送信データが、送信ネットワークカードの送信バッファから溢れてしまう。
そこで、通信装置1は、ネットワークカード14の送信バッファ21に空きがある否かを確認した後、DMAによって、送信データをメモリ13から送信バッファ21に転送させる。次に、図3のフローチャートを参照して、DMAによって、メモリ13に記憶されている送信データを、送信バッファ21に転送させる処理について説明する。
ステップS11において、CPU11は、送信データがメモリ13にあるか否かを判定する。ステップS11において、CPU11によって実行される送信アプリケーションによって、送信データがメモリ13に記憶されていない場合、ステップS11に戻り、上述した処理が繰り返される。
一方、ステップS11において、送信データがメモリ13にあると判定された場合、ステップS12において、CPU11は、送信バッファ21に空きがあるか否かを判定する。ステップS12において、送信バッファ21に空きがないと判定された場合、ステップS12に戻り、上述した処理が繰り返される。
一方、ステップS12において、送信バッファ21に空きがあると判定された場合、ステップS13において、CPU11は、例えば、ネットワークカード14(メモリ13)に設けられているディスクプリタに、送信データのパケット単位の情報をセットする。
これにより、メモリ13とネットワークカード14との間でDMA転送が行われ、メモリ13に記憶されていた送信データは、パケット単位で送信バッファ21に転送される(コピーされる)。そして、ネットワークカード14は、そのパケットを、ネットワーク2を介して、通信装置3に送信する。
すなわち、ステップS11およびS12において、送信データがメモリ13に存在し、かつ、送信バッファ21に空きがあると判定された場合にだけ、DMA転送が行われるので、送信データを格納したパケットが、送信バッファ21から溢れることを防止できる。
その後、処理は、ステップS11に戻り、例えば、送信アプリケーションによる送信処理が終了するまで、ステップS11乃至S13の処理が繰り返されて、DMA転送が行われる。
このように、従来の通信装置1では、送信バッファ21に空きがあることを確認してからDMA転送を行うことで、送信データが送信バッファ21から溢れることを回避していた。
図2に戻り、また、通信装置1からの送信データを受信する通信装置3においては、送信データを格納したパケットを受信する場合、通信装置1による送信処理と丁度、逆の手順を踏むことになる。すなわち、受信ネットワークカード(ネットワークカード14)によって、ネットワーク2を介して受信されたパケットは、通常、受信バッファに一度蓄積された後、DMAによって受信データバスを介して受信アプリケーション(メモリ13)に転送される。そして、(メモリ13に転送された)受信データは、受信アプリケーションによって処理される。
以上のようにして、従来の通信装置1と通信装置3とは、ネットワーク2を介して通信を行っていた。
また、フロー制御の仕組みを用いて、帯域制御や優先制御を行う技術としては、例えば、特許文献1および特許文献2が知られている。
特許文献1には、ポーズフレームにより送信端末におけるパケット送信の停止および解除を繰り返し調整することで、使用帯域を制限する技術が提案されている。
特許文献2には、イーサーネットスイッチの各ポートごとに優先度を設け、ポーズフレームの送信の必要が生じた際に、その優先度に応じてポーズフレームの送信を行う技術が提案されている。
特開2002−353979号公報 特表平11−506287号公報
ところで、図1の通信装置1においては、送信バッファ21に空きがなくなると、DMA転送が一時的に中断されて、送信バッファ21に空きができるのを待つことになる。この際、CPU11は、その空きができたことを、ネットワークカード14から割り込み処理で通知されたり、ネットワークカード14の状態をポーリングして確認する必要があり、そのために、DMA処理用のプログラムが複雑になるという問題があった。
また、送信バッファ21が溢れない場合と比較すると、同じデータ量の送信データを、同じ時間で送信するにもかかわらず、より多くのCPU時間がかかってしまうという問題もあった。
また、上記特許文献1および2においては、フロー制御の仕組みを用いて、帯域制御や優先制御を実現しているが、フロー制御自体の発生を抑制するものではない。
本発明はこのような状況に鑑みてなされたものであり、CPUに負荷をかけずに、ネットワークに接続するための機器におけるバッファ溢れを回避することができるようにするものである。
本発明の第1の側面の送信装置は、送信データを記憶するメモリと、前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段と、前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制する第1のレート制御手段とを備える。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであってもよいし、1つの装置を構成している内部ブロックどうしであってもよい。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、すなわち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであってもよい。
前記送信データは、DMAによって、前記メモリから前記送信バッファに転送されるようにすることができる。
前記第1のレート制御手段には、前記メモリと前記送信手段とを接続するバスの第1の帯域幅が、前記送信手段の第2の帯域幅よりも大きい場合、前記第1のレートが、前記送信手段から前記ネットワークへの転送速度である第2のレートよりも遅くなるように、前記第1のレートを制御させることができる。
前記ネットワークを介して、前記他の機器から、前記他の機器の受信バッファが溢れていることを示す通知が送信されてきた場合、前記第2のレートを制御して、前記送信データのデータ量を抑制する第2のレート制御手段をさらに設けることができる。
前記通知は、IEEE802.3x規格に準拠したポーズフレームであるようにすることができる。
前記第2のレート制御手段には、前記ポーズフレームによってあらかじめ定められた時間を経過するか、または前記ネットワークを介して、前記他の機器から、前記ポーズフレームによる停止状態を解除させる、IEEE802.3x規格に準拠した解除フレームが送信されてきた場合、前記第2のレートを制御して、前記送信データのデータ量を増加させることができる。
前記第2のレート制御手段には、AIMDにより、前記送信データのデータ量を調整させることができる。
前記第1のレート制御手段には、前記DMAの転送の間隔を制御して、前記第1のレートを制御させることができる。
本発明の第1の側面の送信方法は、送信データを記憶するメモリと、前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段とを有する送信装置の送信方法であって、前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制するステップを含む。
本発明の第1の側面のプログラムは、送信データを記憶するメモリと、前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段とを有する送信装置の送信処理を、コンピュータに行わせるプログラムにおいて、前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制するステップを含む。
本発明の第1の側面においては、送信手段の送信バッファの容量を超える送信データが、メモリから送信バッファに転送される場合、メモリから送信バッファへの転送速度である第1のレートが制御され、送信バッファに蓄積される送信データのデータ量が抑制される。
本発明の第2の側面の通信装置は、請求項1に記載の送信装置と、前記ネットワークを介して、前記他の機器から送信されてくる受信データを受信する受信手段を備える。
本発明の第2の側面においては、送信手段の送信バッファの容量を超える送信データが、メモリから送信バッファに転送される場合、メモリから送信バッファへの転送速度である第1のレートが制御され、送信バッファに蓄積される送信データのデータ量が抑制され、ネットワークを介して、他の機器から送信されてくる受信データが受信する受信される。
以上のように、本発明の第1の側面によれば、CPUに負荷をかけずに、ネットワークに接続するための機器におけるバッファ溢れを回避することができる。
本発明の第2の側面によれば、CPUに負荷をかけずに、ネットワークに接続するための機器におけるバッファ溢れを回避することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
なお、特許請求の範囲における、「メモリ」は、例えば、図5のメモリ113に対応し、「送信手段」は、例えば、図5のネットワークカード114に対応し、さらに、「第1のレート制御手段」は、例えば、「第1のレート」(例えば、転送レート)を制御する、図5の転送レート制御部161に対応する。また、特許請求の範囲における、「第2のレート制御手段」は、例えば、「第2のレート」(例えば、送信レート)を制御する、図5の送信レート制御部162に対応するものとなっている。
以下、図面を参照しながら本発明の実施の形態について説明する。
図4は、本発明の一実施の形態である通信装置の構成例を示すブロック図である。この通信装置101は、内蔵するメモリ113に記憶されている(あるいは蓄積されている)送信データを、レートを制御しながらネットワーク102を介して通信装置103に送信するものである。また、通信装置101は、ネットワーク102を介して、ネットワーク102に接続された通信装置103から送信されてくる受信データを受信する。
なお、図4においては、通信装置101は、ネットワーク102を介して通信装置103と通信を行うが、通信装置103は、通信装置101と同様の構成を有しており、その説明は、繰り返しになるので省略する。
通信装置101は、CPU111、メモリ113、およびネットワークカード114を含むようにして構成され、それらは、データバス112を介して、相互に接続されている。
CPU111は、通信装置101の各部の動作を制御する。また、CPU111は、メモリ113に記憶されているプログラムを実行することにより、後述する図5に示す機能ブロックを実現する。
メモリ113には、CPU111によって実行されるプログラム(ネットワークカード114を制御するためのデバイスドライバプログラムを含む)が記憶されている。また、メモリ113には、送信データや受信データが適宜記憶される。
ネットワークカード114は、通信装置101をネットワーク102に接続させるための機器である。ネットワークカード114は、ネットワーク102を介して通信装置103に送信する送信データを蓄積する送信バッファ121と、ネットワーク102を介して通信装置103から受信した受信データを蓄積する受信バッファ122を有している。
ネットワークカード114は、CPU111によってセットされたディスクプリタにしたがって、DMA転送により、メモリ113からパケット単位の送信データを取得し、ネットワーク102を介して通信装置103に送信する。
ドライブ104は、必要に応じて通信装置101に接続される。ドライブ104には、例えば、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等からなるリムーバブルメディア105が適時装着される。ドライブ104は、装着されたリムーバブルメディア105から記憶されているプログラムを読み出して、読み出したプログラムをCPU111に供給する。
ネットワーク102は、例えば、有線または無線の、通信回線、ネットワーク、またはインターネット等からなる伝送路であり、所定の遅延時間で、例えば、通信装置101から送信された送信データを格納したパケットを通信装置103まで伝送する。
なお、通信装置101には、メモリ113とネットワークカード114との間で行われるDMA転送を制御するメモリコントローラを設けるようにしてもよい。
図5は、CPU111がプログラムを実行することによって実現される機能ブロックを示す図である。なお、図5のデータバス112乃至ネットワークカード114は、図4のデータバス112乃至ネットワークカード114と同様であるので、その説明は適宜省略する。
送信制御部151は、通信装置101における、送信データのネットワーク102に接続された通信装置103への送信を制御する。
送信制御部151は、転送レート制御部161、送信レート制御部162、およびDMA制御部163を含むようにして構成される。
転送レート制御部161は、メモリ113とネットワークカード114との間に接続されているデータバス112の転送レートを制御する。
送信レート制御部162は、ネットワークカード114によってネットワーク102に送信される送信データの送信レートを制御する。
DMA制御部163は、ディスクリプタにパケット単位の情報をセットして、メモリ113とネットワークカード114との間で行われるDMA転送を制御する。
なお、ディスクプリタにセットされるパケット単位の情報は、例えば、対応するパケットのメモリ113におけるアドレス(例えば、記録開始アドレスの上位32ビットを示すアドレスおよび下位32ビットを示すアドレス)、そのパケットのサイズ(例えば、16ビットのパケット長)、またはDMA転送の間隔を示す時間(例えば、DMA転送の間隔を調整するための遅延時間)等の情報である。
次に、図6のフローチャートを参照して、送信制御部151による、データバス112の転送レート制御の処理を説明する。
ステップS31において、転送レート制御部161は、設定帯域幅Bと、設定時刻Tnを設定する。例えば、転送レート制御部161は、設定帯域幅Bとして、ネットワークカード114(またはネットワーク102)の帯域幅10Gbpsを設定し、設定時刻Tnの初期値として現在時刻を設定する。
ステップS32において、送信制御部151は、送信データがメモリ113にあるか否かを判定する。
ステップS32において、送信データがメモリ113に記憶されていないと判定された場合、ステップS32に戻り、上述した処理が繰り返される。すなわち、例えば、CPU111によって実行される送信アプリケーションによって、送信データがメモリ113に蓄積させられて、ステップS32において、送信データがメモリ113にあると判定されるまで、ステップS32の処理が繰り返される。
一方、ステップS32において、送信データがメモリ113にあると判定された場合、ステップS33において、送信制御部151は、ネットワークカード114の送信バッファ121に空きがあるか否かを判定する。
ステップS33において、送信バッファ121に空きがないと判定された場合、ステップS33に戻り、上述した処理が繰り返される。すなわち、例えば、送信バッファ121に蓄積されている送信データを格納したパケットが、ネットワークカード114からネットワーク102を介して通信装置103に送信されて、ステップS33において、送信バッファ121に空きがあると判定されるまで、ステップS33の処理が繰り返される。
一方、ステップS33において、送信バッファ121に空きがあると判定された場合、ステップS34において、転送レート制御部161は、現在時刻Tに現在時刻を設定する。
ステップS35において、転送レート制御部161は、現在時刻Tが設定時刻Tnを経過しているか否かを判定する。
ステップS35において、現在時刻Tが設定時刻Tnを経過していないと判定された場合、ステップS34に戻り、現在時刻Tが設定時刻Tnを経過するまで、ステップS34およびS35の処理が繰り返される。
一方、ステップS35において、現在時刻Tが設定時刻Tnを経過していると判定された場合、すなわち、例えば、ステップS34の処理で設定された現在時刻Tの現在時刻は、ステップS31の処理で設定された設定時刻Tnの現在時刻よりも後に設定された時刻であるため、現在時刻Tは設定時刻Tnを経過しているので、ステップS36において、DMA制御部163は、ディスクプリタにパケット単位の情報をセットする。
例えば、DMA制御部163は、ネットワークカード114(またはメモリ113)のディスクプリタに、対応するパケットのメモリ113におけるアドレスと、そのパケットのサイズの情報をセットする。
これにより、例えば、ネットワークカード114においては、CPU111からのディスクリプタにしたがって、パケット単位の送信データが、DMA転送によって送信バッファ121に蓄積される。そして、ネットワークカード114は、その送信データを格納したパケットを、ネットワーク102を介して通信装置103に送信する。
ステップS37において、転送レート制御部161は、設定時刻Tnを算出する。具体的には、転送レート制御部161は、例えば、下記の式(1)を用いて、設定時刻Tnを算出する。
設定時刻Tn=現在時刻T+(パケット長÷設定帯域幅B)・・・(1)
つまり、例えば、帯域幅10Gbpsのネットワークカード114によって、1,000バイトのパケットを連続して送信する場合について考えると、パケット長÷設定帯域幅Bは、1,000(byte)/10(Gbps)=8×1,000(bit)/10×1,000,000,000(bit/sec)=8/10,000,000(sec)=0.00000008=0.8(μs)となる。そして、設定時刻Tnには、現在時刻Tに、0.8マイクロ秒を加えた値が代入される。したがって、例えば、100バイトのパケットを送信する場合には、設定時刻Tnは、現在時刻T+0.08マイクロ秒となり、10,000バイトのパケットを送信する場合には、設定時刻Tnは、現在時刻T+8マイクロ秒となる。
その後、処理は、ステップS32に戻り、ステップS32乃至S37において、例えば、CPU111によって実行される送信アプリケーションからの送信データがメモリ113に存在し、かつ、送信バッファ121に空きがある場合、現在時刻Tが設定時刻Tnを経過しているかが判定され、現在時刻Tが設定時刻Tn(例えば、現在時刻T+0.8マイクロ秒)を経過したとき、そのパケット単位の送信データを、DMAによって送信バッファ121に転送させる処理が繰り返される。
つまり、例えば、帯域幅16Gbpsのデータバス112においては、DMAによるパケット単位の送信データをメモリ113からネットワークカード114に転送するときの帯域幅を、データバス112の帯域幅の限界(16Gbps)よりも狭いネットワークカード114の帯域幅(10Gbps)にあわせることで、ネットワークカード114の帯域幅よりもデータバス112の帯域幅が広帯域とならず、送信データが、ネットワークカード114の送信バッファ121から溢れないようにすることが可能となる。
このように、通信装置101においては、データバス112の転送レート(転送速度)を制御することで、送信バッファ121が溢れることを回避することが可能となる。なお、実際には、ネットワーク102の状態によっては、帯域幅10Gbpsのネットワークカード114だからといって必ずしも、送信データを10Gbpsでネットワーク102に送信できるというわけではないが、少なくとも、通信装置101自身が原因で送信バッファ121が溢れてしまうということは回避できる。
次に、図7のタイミングチャートを参照して、送信制御部151(すなわち、CPU111)によって実行される図6のデータバス112の転送レート制御の処理が行われているときの、CPU111、メモリ113、およびネットワークカード114の動作について説明する。
図7には、図中上から順に、CPU111(送信制御部151)のタイミングチャート、メモリ113のタイミングチャート、ネットワークカード114のタイミングチャートを示されている。なお、図7の各タイミングチャートにおいて、水平方向の実線は、時間軸を表わしており、図中下に示されるように、時間の方向は、図中左から右に向かう方向とされている。
例えば、図6のステップS36において、DMA制御部163によって、ネットワークカード114のディスクプリタにパケット単位の情報がセットされたとき、図7に示されるように、CPU111によって、送信データのパケット単位ごとに記述されたディスクリプタD11が、データバス112を介してネットワークカード114にセットされる。
このディスクリプタD11には、上述したように、例えば、対応するパケットのメモリ113におけるアドレス(例えば、記録開始アドレスの上位32ビットを示すアドレスおよび下位32ビットを示すアドレス)や、そのパケットのサイズ(例えば、16ビットのパケット長)等が記述されている。
ネットワークカード114は、ディスクリプタD11に記述されている、例えば、パケットのアドレスやサイズの情報に基づいて、メモリ113の当該記録開始アドレスを先頭とする当該パケット長のデータを、メモリ113から送信バッファ121にDMAにより転送させる。これにより、ネットワークカード114は、DMA転送されたパケットを、ネットワーク102を介して通信装置103に送信する。
その後、図6のステップS32乃至S37の処理が繰り返されることで、送信バッファ121に空きがあるときに送信データがメモリ113に存在する場合、現在時刻Tが設定時刻Tn(例えば、現在時刻T+0.8マイクロ秒)を経過したとき、図6のステップS36において、DMA制御部163によって、ディスクリプタにパケット単位の情報がセットされたとき、図7に示されるように、CPU111によってディスクリプタD12が、データバス112を介してネットワークカード114にセットされる。
そして、ネットワークカード114は、ディスクリプタD11と同様にディスクリプタD12に記述されている、例えば、パケットのアドレスやサイズの情報に基づいて、メモリ113に記憶されている送信データを格納したパケットを、メモリ113から送信バッファ121にDMAにより転送させて、そのパケットを、ネットワーク102を介して通信装置103に送信する。
同様に、図6のステップS32乃至S37の処理が繰り返されることで、図6のステップS36において、DMA制御部163によって、ディスクリプタにパケット単位の情報がセットされたとき、図7に示されるように、CPU111によってディスクリプタD13乃至D1n(nは自然数)(ディスクリプタD1nは図示せず)が、それぞれ、データバス112を介してネットワークカード114に、順次セットされる。
そして、ネットワークカード114は、ディスクリプタD11と同様にディスクリプタD13乃至D1nにそれぞれ記述されている、例えば、パケットのアドレスやサイズの情報に基づいて、メモリ113に記憶されている送信データを格納したパケットを、それぞれ、メモリ113から送信バッファ121にDMAにより順次転送させて、そのパケットを、ネットワーク102を介して通信装置103に送信する。
このように、CPU111(送信制御部151)が、ソフトウェアの処理によって、パケット単位の情報をディスクリプタにセットするタイミングを調整することで、メモリ113とネットワークカード114の送信バッファ121との間で行われるDMA転送の間隔を調整している。その結果、通信装置101においては、データバス112の転送レート(転送速度)が調整され、送信バッファ121が溢れることを回避することが可能となる。
ところで、ネットワーク102に接続された受信側の通信装置103において、帯域幅10Gbpsのネットワークカードが、x4(4レーン)のPCI Expressのデータバス(8Gbps(2Gbps×4レーン)の帯域が転送可能)に接続されている場合、受信ネットワークカードの帯域幅(10Gbps)よりも、受信データバスの帯域幅(8Gbps)のほうが狭くなる。つまり、受信ネットワークカードの受信バッファに、10Gbpsで受信データが受信されたとしても、DMAを利用した受信バッファからメモリへの転送速度は8Gbpsとなり、この場合、受信バッファが溢れてしまう。
このとき、例えば、ネットワークカード114がIEEE(The Institute of Electrical and Electronic Engineers , Inc.)802.3x規格に準拠している場合、ポーズフレームと称される送信側のフレーム送出を一時的に停止させるための制御フレームが規定されているので、受信ネットワークカードの帯域幅よりも受信データバスの帯域幅が狭い場合にはこのポーズフレームを利用して、送信側のネットワークカード114に対して、受信側の通信装置103からポーズフレームを出すことで、所定の時間を指定して送信の一時中断を行うことが可能となる。
すなわち、IEEE802.3x規格に準拠した送信側のネットワークカード114は、図8に示すように、「通常状態」でパケットを送信しているとき、ネットワーク102を介して受信側の通信装置103からポーズフレームを受信すると、その状態が「ポーズ状態」に移行する。また、「ポーズ状態」のIEEE802.3x規格に準拠した送信側のネットワークカード114は、ポーズフレームによってあらかじめ定められたポーズ時間が経過するか、またはネットワーク102を介して受信側の通信装置103から待ち時間ゼロを指定したポーズフレームであるゼロポーズフレームを受信すると、その状態が「通常状態」に戻る。
つまり、受信側の通信装置103からのポーズフレームの受信に応じて、送信側の通信装置101で、実際に通信装置103が受信可能な帯域に送信レートを制御することで、受信側の通信装置103からの不要なポーズフレームの発生を抑制するとともに、送信側の通信装置101の負荷を軽減することが可能となる。そこで、次に、受信側からのポーズフレームに応じて、送信側で送信データの送信レートを制御する処理について説明する。
図9は、送信制御部151による、ネットワークカード114の送信レート制御の処理を説明するフローチャートである。
ステップS51において、送信レート制御部162は、送信レートに対応する設定帯域幅Bを設定する。例えば、送信レート制御部162は、設定帯域幅Bとして、ネットワークカード114(またはネットワーク102)の帯域幅10Gbpsを設定する。
ステップS52において、送信制御部151は、ネットワークカード114によって、ネットワーク102を介して受信側の通信装置103からポーズフレームが受信されたか否かを判定する。
ステップS52において、ポーズフレームが受信されていないと判定された場合、ステップS53において、送信制御部151は、ネットワークカード114によって、ネットワーク102を介して受信側の通信装置103へのパケットの送信が成功したか否かを判定する。
ステップS53において、パケットの送信が失敗したと判定された場合、ステップS52に戻り、上述した処理が繰り返される。
一方、ステップS53において、パケットの送信が成功したと判定された場合、ステップS55において、送信レート制御部162は、設定帯域幅Bがネットワークカード114(またはネットワーク102)の帯域幅よりも小さいか否かを判定する。
ステップS55において、例えば、ネットワークカード114の帯域幅が10Gbpsで、設定帯域幅Bに10Gbpsが設定されており、設定帯域幅Bがネットワークカード114の帯域幅以上であると判定された場合、ステップS52に戻り、上述した処理が繰り返される。すなわち、通信装置101は、ポーズフレームを受信せず、かつ、ネットワークカード114の帯域幅でパケットの送信が成功している場合、例えば、送信レート10Gbpsで、ネットワーク102を介して通信装置103にパケットを送信し続ける。
その後、ステップS52において、ネットワークカード114によって、受信側からポーズフレームが受信されたと判定された場合、ステップS54において、送信レート制御部162は、設定帯域幅Bを狭くする。具体的には、送信レート制御部162は、例えば、下記の式(2)を用いて、設定帯域幅Bの値を減少させる。
設定帯域幅B=設定帯域幅B÷2・・・(2)
つまり、例えば、ネットワークカード114の帯域幅10Gbpsが設定帯域幅Bに設定されている場合に、受信側の通信装置103からポーズフレームを受信したときについて考えると、設定帯域幅B÷2は、10(Gbps)/2=5(Gbps)となる。これにより、通信装置101は、受信側の通信装置103からポーズフレームを受信した場合、例えば10Gbpsから5Gbpsに送信レートを下げて、パケットを送信する。
そして、その後、ステップS52およびS53において、受信側からポーズフレームを受信せず、かつ、パケットの送信が成功していると判定された場合、再度、ステップS55において、送信レート制御部162は、設定帯域幅Bがネットワークカード114(またはネットワーク102)の帯域幅よりも小さいか否かを判定する。
ステップS55において、例えば、ネットワークカード114の帯域幅が10Gbpsで、設定帯域幅Bに5Gbpsが設定されている場合など、設定帯域幅Bがネットワークカード114の帯域幅よりも小さいと判定された場合、ステップS56において、送信レート制御部162は、設定帯域幅Bを広くする。具体的には、送信レート制御部162は、例えば、下記の式(3)を用いて、設定帯域幅Bの値を増加させる。
設定帯域幅B=設定帯域幅B+1(Mbps)・・・(3)
つまり、例えば、設定帯域幅Bが5Gbpsに設定されている場合について考えると、設定帯域幅B+1(Mbps)は、5(Gbps)+1(Mbps)=5.001(Gbps)となる。これにより、通信装置101は、受信側の通信装置103からポーズフレームを受信せず、かつ、パケットの送信が成功している場合、設定帯域幅Bの値は、ネットワークカード114の帯域幅を超えない範囲で、5.001(Gbps),5.002(Gbps),5.003(Gbps),・・・と増加する。
すなわち、通信装置101は、ポーズフレームを受信せず、かつ、パケットの送信が成功している場合、例えば、5.001(Gbps),5.002(Gbps),5.003(Gbps),・・・のように順次送信レートを上げながら、ネットワーク102を介して通信装置103にパケットを送信し続ける。
換言すれば、送信レート制御部162は、IEEE802.3x規格に準拠したポーズフレームによってあらかじめ定められた時間を経過するか、またはネットワーク102を介して、受信側の通信装置103からIEEE802.3x規格に準拠したゼロポーズフレームが送信されてきた場合、送信データのデータ量が増加するように、送信レートを制御しているとも言える。
以上のように、通信装置101においては、ポーズフレームを受信していない場合、ネットワークカード114(またはネットワーク102)の帯域幅を超えない範囲内で、設定帯域幅Bの値は増加し、ポーズフレームを受信した場合、設定帯域幅Bの値は減少する。その結果、送信側の通信装置101において、設定帯域幅Bに対応する送信レートは、受信側の通信装置103の処理能力に応じた速度となる。
なお、送信レートの制御は、一般的に、TCP(Transmission Control Protocol)のレート制御のように、AIMD(Additive Increase Multiple Decrease)によって、帯域を広くするときには少しの値を加えて、帯域を狭くするときには多くの値を減らすように行われる。そこで、本実施の形態では、帯域を広くするときには設定帯域幅Bに1Mbpsを加え、帯域を狭くするときには設定帯域幅Bの半分となるようにしたが、他の値を加えたり、減じたりしてもよい。要は、受信側でパケットの受信に成功したときには帯域を広くし、ポーズフレームを受信したときには帯域を狭くすればよいのであって、その演算方法は任意である。
ところで、本出願人は、特開2006−293799号公報において、DMA送信間隔制御の処理を先に提案している。本実施の形態では、このようなDMA送信間隔制御の処理を適用して、メモリ113上の送信データをDMAにより読み出して送信する際の送信間隔を調整することで、ネットワークカード114の送信バッファ121におけるバッファ溢れを回避することができる。そこで、次に、このDMA送信間隔制御の処理を適用したデータバス112の転送レートを制御する処理を説明する。
図10は、送信制御部151による、DMA送信間隔制御の処理を適用したデータバス112の転送レートを制御する処理を説明するフローチャートである。
ステップS71において、転送レート制御部161は、設定帯域幅Bを設定する。例えば、転送レート制御部161は、設定帯域幅Bとして、ネットワークカード114(またはネットワーク102)の帯域幅10Gbpsを設定する。
ステップS72およびS73の処理において、図6のステップS32およびS33における場合と同様に、送信制御部151による、メモリ113に蓄積される送信データの存在の確認と、送信バッファ121の空き状況の確認が行われる。
ステップS74において、DMA制御部163は、ディスクプリタにパケット単位の情報をセットする。
例えば、DMA制御部163は、ネットワークカード114(またはメモリ113)のディスクプリタに、対応するパケットのメモリ113におけるアドレス、そのパケットのサイズ、およびDMAの間隔を示す時間を、ネットワークカード114のディスクリプタにセットする。
具体的には、DMA制御部163は、例えば、下記の式(4)を用いて、DMA転送の間隔を調整するための時間を算出する。
DMA間隔=パケット長÷設定帯域幅B・・・(4)
つまり、例えば、帯域幅10Gbpsのネットワークカード114によって、1,000バイトのパケットを連続して送信する場合について考えると、パケット長÷設定帯域幅Bは、1,000(byte)/10(Gbps)=8×1,000(bit)/10×1,000,000,000(bit/sec)=8/10,000,000(sec)=0.00000008=0.8(μs)となる。すなわち、DMA間隔は、0.8マイクロ秒となる。
そして、DMA制御部163は、対応するパケットのメモリ113におけるアドレスおよびサイズとともに、DMA間隔として、0.8マイクロ秒をネットワークカード114のディスクリプタにセットする。
これにより、例えば、ネットワークカード114においては、CPU111からのディスクリプタにしたがって、パケット単位の送信データが、DMA転送によって送信バッファ121に蓄積される。そして、ネットワークカード114は、その送信データを格納したパケットを、ネットワーク102を介して通信装置103に送信する。
ステップS75において、DMA制御部163は、メモリ113とネットワークカード114の送信バッファ121との間で行われるDMA転送が終了したか否かを判定する。
ステップS75において、DMA転送が終了していないと判定された場合、ステップS75に戻り、上述した処理が繰り返される。
すなわち、ディスクプリタにセットされたDMA間隔に基づいて、メモリ113とネットワークカード114の送信バッファ121との間でDMA転送が行われるので、そのDMA転送が終了し、ステップS75において、DMA転送が終了したと判定されるまで、ステップS75の処理が繰り返される。
一方、ステップS75において、DMA転送が終了したと判定された場合、ステップS72に戻り、ステップS72乃至S75において、例えば、送信アプリケーションからの送信データがメモリ113に存在し、かつ、送信バッファ121に空きがある場合、DMA制御部163によって、パケットのメモリ113におけるアドレス、そのパケットのサイズ、およびDMA間隔がディスクプリタにセットされるので、DMAによって、パケットをメモリ113から送信バッファ121に転送させる処理が繰り返される。
このように、通信装置101においては、DMA転送の間隔を調整するための遅延時間を示しているDMA間隔に基づいて、データバス112の転送レートを制御することで、送信バッファ121が溢れることを回避することが可能となる。
次に、図11のタイミングチャートを参照して、送信制御部151(すなわち、CPU111)によって実行される図10のDMA送信間隔制御の処理を適用したデータバス112の転送レート制御の処理が行われているときの、CPU111、メモリ113、およびネットワークカード114の動作について説明する。
図11には、図7と同様に、図中上から順に、CPU111(送信制御部151)のタイミングチャート、メモリ113のタイミングチャート、ネットワークカード114のタイミングチャートを示されている。なお、図11の各タイミングチャートにおいて、水平方向の実線は、時間軸を表わしており、図中下に示されるように、時間の方向は、図中左から右に向かう方向とされている。
例えば、図10のステップS74において、DMA制御部163によって、パケットのメモリ113におけるアドレス、そのパケットのサイズ、およびDMA間隔がディスクプリタにセットされたとき、図11に示されるように、CPU111によって、送信データのパケット単位ごとに記述されたディスクリプタD21、D22、およびD23乃至D2m(mは自然数)(ディスクリプタD2mは図示せず)がデータバス112を介してネットワークカード114にセットされる。
つまり、このディスクリプタD21、D22、およびD23乃至D2mには、それぞれ、例えば、対応するパケットのメモリ113におけるアドレス、そのパケットのサイズ、およびDMA間隔が記述されている。
ネットワークカード114は、ディスクリプタD21に記述されているDMA間隔が経過した後、例えば、ディスクリプタD21に記述されているパケットのアドレスおよびサイズの情報に基づいて、メモリ113の当該記録開始アドレスを先頭とする当該パケット長のデータを、メモリ113から送信バッファ121にDMAにより転送させる。これにより、ネットワークカード114は、DMA転送されたパケットを、ネットワーク102を介して通信装置103に送信する。
そして、ディスクリプタD22に記述されているDMA間隔が経過した後、ネットワークカード114は、ディスクリプタD21と同様にディスクリプタD22に記述されている、例えば、パケットのアドレスおよびサイズの情報に基づいて、メモリ113に記憶されている送信データを格納したパケットを、メモリ113から送信バッファ121にDMAにより転送させて、そのパケットを、ネットワーク102を介して通信装置103に送信する。
同様に、ディスクリプタD23乃至D2mにそれぞれ記述されているDMA間隔が経過した後、ネットワークカード114は、ディスクリプタD23乃至D2mにそれぞれ記述されている、例えば、パケットのアドレスおよびサイズの情報に基づいて、メモリ113に記憶されている送信データを格納したパケットを、メモリ113から送信バッファ121にDMAにより転送させて、そのパケットを、ネットワーク102を介して通信装置103に送信する。
このように、CPU111(送信制御部151)が、ソフトウェアの処理によって、ディスクリプタにセットするDMA間隔を調整することで、DMA転送の間隔を示す時間にしたがって、ハードウェア側が動作し、メモリ113とネットワークカード114の送信バッファ121との間で行われるDMA転送の間隔を調整することができる。その結果、通信装置101において、データバス112の転送レートが調整され、送信バッファ121が溢れることを回避することが可能となる。
以上のように、CPUに負荷をかけずに、ネットワークカードの内部に設けられた送信バッファにおけるバッファ溢れを抑制し、回避することができる。つまり、送信バッファに空きができたことを、ネットワークカードから割り込み処理で通知されたり、ネットワークカードの状態をポーリングして確認する必要がないので、DMA処理用のプログラムが簡略化され、CPUの負荷を軽減することが可能となる。
また、受信側の通信装置でのパケット受信処理負荷を軽減するともに、不要なポーズフレームの発生を抑制することが可能となる。これにより、フロー制御自体の発生を抑制することが可能となる。
なお、上述した例では、説明を分かり易くするために、CPU111は、ネットワークカード114にディスクプリタをセットするとして説明したが、メモリ113のディスクプリタにセットするようにしてもよい。
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
従来の通信装置の構成を示すブロック図である。 従来の通信装置と他の通信装置との間で行われる通信について説明する図である。 DMA制御の処理について説明するフローチャートである。 本発明の一実施の形態である通信装置の構成例を示すブロック図である。 CPUがプログラムを実行することによって実現される機能ブロック図である。 転送レート制御の処理について説明するフローチャートである。 転送レート制御の処理について説明するタイミングチャートである。 ポーズフレームによる状態遷移を説明する図である。 送信レート制御の処理について説明するフローチャートである。 DMA送信間隔制御の処理を適用した転送レート制御の処理について説明するフローチャートである。 DMA送信間隔制御の処理を適用した転送レート制御の処理について説明するタイミングチャートである。
符号の説明
101 通信装置, 102 ネットワーク, 103 通信装置, 104 ドライブ, 105 リムーバブルメディア, 111 CPU, 112 データバス, 113 メモリ, 114 ネットワークカード, 121 送信バッファ, 122 受信バッファ, 151 送信制御部, 161 転送レート制御部, 162 送信レート制御部, 163 DMA制御部

Claims (11)

  1. 送信データを記憶するメモリと、
    前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段と、
    前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制する第1のレート制御手段と
    を備える送信装置。
  2. 前記送信データは、DMA(Direct Memory Access)によって、前記メモリから前記送信バッファに転送される
    請求項1に記載の送信装置。
  3. 前記第1のレート制御手段は、前記メモリと前記送信手段とを接続するバスの第1の帯域幅が、前記送信手段の第2の帯域幅よりも大きい場合、前記第1のレートが、前記送信手段から前記ネットワークへの転送速度である第2のレートよりも遅くなるように、前記第1のレートを制御する
    請求項1に記載の送信装置。
  4. 前記ネットワークを介して、前記他の機器から、前記他の機器の受信バッファが溢れていることを示す通知が送信されてきた場合、前記第2のレートを制御して、前記送信データのデータ量を抑制する第2のレート制御手段をさらに備える
    請求項3に記載の送信装置。
  5. 前記通知は、IEEE(The Institute of Electrical and Electronic Engineers , Inc.)802.3x規格に準拠したポーズフレームである
    請求項4に記載の送信装置。
  6. 前記第2のレート制御手段は、前記ポーズフレームによってあらかじめ定められた時間を経過するか、または前記ネットワークを介して、前記他の機器から、前記ポーズフレームによる停止状態を解除させる、IEEE802.3x規格に準拠した解除フレームが送信されてきた場合、前記第2のレートを制御して、前記送信データのデータ量を増加させる
    請求項5に記載の送信装置。
  7. 前記第2のレート制御手段は、AIMD(Additive Increase Multiple Decrease)により、前記送信データのデータ量を調整する
    請求項6に記載の送信装置。
  8. 前記第1のレート制御手段は、前記DMAの転送の間隔を制御して、前記第1のレートを制御する
    請求項2に記載の送信装置。
  9. 送信データを記憶するメモリと、前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段とを有する送信装置の送信方法であって、
    前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制する
    ステップを含む送信方法。
  10. 送信データを記憶するメモリと、前記送信データを、ネットワークを介して前記ネットワークに接続された他の機器に送信する送信手段とを有する送信装置の送信処理を、コンピュータに行わせるプログラムにおいて、
    前記送信手段の送信バッファの容量を超える前記送信データが、前記メモリから前記送信バッファに転送される場合、前記メモリから前記送信バッファへの転送速度である第1のレートを制御して、前記送信バッファに蓄積される前記送信データのデータ量を抑制する
    ステップを含むプログラム。
  11. 請求項1に記載の送信装置と、
    前記ネットワークを介して、前記他の機器から送信されてくる受信データを受信する受信手段を備える
    通信装置。
JP2007003582A 2007-01-11 2007-01-11 送信装置および方法、通信装置、並びにプログラム Pending JP2008172515A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007003582A JP2008172515A (ja) 2007-01-11 2007-01-11 送信装置および方法、通信装置、並びにプログラム
US11/971,509 US8214552B2 (en) 2007-01-11 2008-01-09 Transmission apparatus, transmission method, communication apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007003582A JP2008172515A (ja) 2007-01-11 2007-01-11 送信装置および方法、通信装置、並びにプログラム

Publications (1)

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

Family

ID=39700191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007003582A Pending JP2008172515A (ja) 2007-01-11 2007-01-11 送信装置および方法、通信装置、並びにプログラム

Country Status (2)

Country Link
US (1) US8214552B2 (ja)
JP (1) JP2008172515A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011164682A (ja) * 2010-02-04 2011-08-25 Ricoh Co Ltd データ通信装置及び画像処理装置
US8786892B2 (en) 2011-08-05 2014-07-22 Brother Kogyo Kabushiki Kaisha Control apparatus, storage medium in which control program is stored, and printer to execute a plurality of processing in parallel
JP2015502590A (ja) * 2011-10-27 2015-01-22 ▲ホア▼▲ウェイ▼技術有限公司 高速データ配布のための方法および装置
JP2015512083A (ja) * 2012-12-11 2015-04-23 インテル・コーポレーション 暗示的なメモリの登録のための明示的なフロー制御
WO2018211805A1 (ja) * 2017-05-15 2018-11-22 シャープ株式会社 情報処理装置、電子機器、情報処理装置の制御方法、および制御プログラム
CN109709905A (zh) * 2017-10-25 2019-05-03 横河电机株式会社 通信处理装置、存储介质和通信处理方法
CN112770356A (zh) * 2021-01-06 2021-05-07 维沃移动通信有限公司 数据传输方法和电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7936669B2 (en) 2008-06-04 2011-05-03 Entropic Communications, Inc. Systems and methods for flow control and quality of service
JP5593517B2 (ja) * 2011-07-15 2014-09-24 株式会社日立製作所 ネットワーク装置及び送信フレームの制御方法
US20150279089A1 (en) * 2014-03-27 2015-10-01 Ethan Kerzner Streaming compression anti-aliasing approach to deferred shading
US10595270B2 (en) * 2015-06-18 2020-03-17 Sony Corporation Information processing apparatus, communication system, information processing method and program
US10819647B2 (en) * 2017-12-06 2020-10-27 Marvell Israel (M.I.S.L) Ltd. Network device having reduced latency

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859837A (en) 1995-06-07 1999-01-12 Advanced Micro Devices Inc. Flow control method and apparatus for ethernet packet switched hub
JP4596693B2 (ja) 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
JP2002353979A (ja) 2001-05-30 2002-12-06 Toyo Commun Equip Co Ltd Pauseパケットを併用する帯域制限方法
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
US7191271B2 (en) * 2001-09-20 2007-03-13 Lockheed Martin Corporation Two level multi-tier system bus
JP2004159203A (ja) 2002-11-08 2004-06-03 Fujitsu Ltd パケット転送装置
US7397764B2 (en) * 2003-04-30 2008-07-08 Lucent Technologies Inc. Flow control between fiber channel and wide area networks
JP2005044047A (ja) 2003-07-24 2005-02-17 Ntt Docomo Inc 端末装置及びデータ送信方法
JP4091506B2 (ja) 2003-09-02 2008-05-28 日本電信電話株式会社 2段音声画像符号化方法、その装置及びプログラム及びこのプログラムを記録した記録媒体
FR2863130A1 (fr) * 2003-12-01 2005-06-03 Thomson Licensing Sa Dispositif et procede de preparation de donnees d'emission et produits correspondants
JP2005236447A (ja) 2004-02-18 2005-09-02 Nec Access Technica Ltd 輻輳制御方式および輻輳制御装置
US20060031607A1 (en) * 2004-08-05 2006-02-09 Microsoft Corporation Systems and methods for managing input ring buffer
JP2006203639A (ja) 2005-01-21 2006-08-03 Matsushita Electric Ind Co Ltd 通信装置、通信システム、記録媒体、集積回路及び制御方法
JP2006293799A (ja) 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
US7457892B2 (en) * 2006-06-05 2008-11-25 Freescale Semiconductor, Inc. Data communication flow control device and methods thereof

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011164682A (ja) * 2010-02-04 2011-08-25 Ricoh Co Ltd データ通信装置及び画像処理装置
US8786892B2 (en) 2011-08-05 2014-07-22 Brother Kogyo Kabushiki Kaisha Control apparatus, storage medium in which control program is stored, and printer to execute a plurality of processing in parallel
JP2015502590A (ja) * 2011-10-27 2015-01-22 ▲ホア▼▲ウェイ▼技術有限公司 高速データ配布のための方法および装置
US9774651B2 (en) 2011-10-27 2017-09-26 Huawei Technologies Co., Ltd. Method and apparatus for rapid data distribution
JP2015512083A (ja) * 2012-12-11 2015-04-23 インテル・コーポレーション 暗示的なメモリの登録のための明示的なフロー制御
US9176911B2 (en) 2012-12-11 2015-11-03 Intel Corporation Explicit flow control for implicit memory registration
WO2018211805A1 (ja) * 2017-05-15 2018-11-22 シャープ株式会社 情報処理装置、電子機器、情報処理装置の制御方法、および制御プログラム
CN109709905A (zh) * 2017-10-25 2019-05-03 横河电机株式会社 通信处理装置、存储介质和通信处理方法
CN109709905B (zh) * 2017-10-25 2022-07-29 横河电机株式会社 通信处理装置、存储介质和通信处理方法
CN112770356A (zh) * 2021-01-06 2021-05-07 维沃移动通信有限公司 数据传输方法和电子设备

Also Published As

Publication number Publication date
US8214552B2 (en) 2012-07-03
US20090110110A1 (en) 2009-04-30

Similar Documents

Publication Publication Date Title
JP2008172515A (ja) 送信装置および方法、通信装置、並びにプログラム
US8238239B2 (en) Packet flow control
US20100188980A1 (en) Explicit Flow Control in a Gigabit/10 Gigabit Ethernet System
CN113687770B (zh) 调节跨速率失配网络的NVMe-oF命令请求和数据流的系统和方法
US10419355B2 (en) Flow control of network device
CN109218222B (zh) 一种实现发送端调速的方法、装置和系统
WO2022001175A1 (zh) 数据包发送的方法、装置
TW201635159A (zh) 通用串列匯流排的協定適應層資料流控制
JP2004304806A (ja) 通信システム内のフロー制御のための方法
US8576734B2 (en) Information processing apparatus, control method thereof and program
JP4450061B2 (ja) 通信制御方法、通信装置、及び通信システム
US20100086021A1 (en) Information transmission apparatus, method of controlling the same, and storage medium
US9736076B2 (en) Device server and control method thereof
JP2009141565A (ja) 受信端末装置
CN114443533A (zh) 扩展环境中usb设备的移除和ping干预
JP2005109765A (ja) データ受信装置
JP4438634B2 (ja) 接続装置およびプログラム
JP2008294851A (ja) Ponシステム
JP6222724B2 (ja) Usbデバイス、usbシステム、データ転送方法、及びプログラム
TW201916710A (zh) 動態調整訊框聚合大小的方法及通信設備
WO2023119511A1 (ja) 通信装置、通信システム、及び通信方法
JP2015509310A (ja) ネットワークゲートウェイ、および、データストリームのパケットを送信する方法
JP2009267642A (ja) フロー制御装置及びフロー制御方法
JP2004186882A (ja) 通信装置および通信方法
JP4905181B2 (ja) 通信装置、フレーム送信制御方法及びフレーム送信制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081202