JP7435054B2 - 通信装置、通信装置の制御方法、および集積回路 - Google Patents

通信装置、通信装置の制御方法、および集積回路 Download PDF

Info

Publication number
JP7435054B2
JP7435054B2 JP2020041070A JP2020041070A JP7435054B2 JP 7435054 B2 JP7435054 B2 JP 7435054B2 JP 2020041070 A JP2020041070 A JP 2020041070A JP 2020041070 A JP2020041070 A JP 2020041070A JP 7435054 B2 JP7435054 B2 JP 7435054B2
Authority
JP
Japan
Prior art keywords
transmission
priority
descriptor
communication device
transmission data
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
JP2020041070A
Other languages
English (en)
Other versions
JP2021144324A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2020041070A priority Critical patent/JP7435054B2/ja
Priority to PCT/JP2021/001751 priority patent/WO2021181896A1/ja
Publication of JP2021144324A publication Critical patent/JP2021144324A/ja
Application granted granted Critical
Publication of JP7435054B2 publication Critical patent/JP7435054B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、優先度に応じたEtherパケット送信を自動振り分けする通信装置に関する。
従来、産業用制御装置に用いられる通信手段は多数あり、EtherCAT(登録商標)などが多く用いられてきている。データ容量の増加またはリアルタイム性の向上の為に、Gigabpsに対応したEtherCAT Gへの対応または、Time Sensitive Network(以下、TSN)への対応が求められている。更に、一定周期での制御データの通信と、不定期での情報データの通信とが混在した通信規格が求められている。
制御データは低遅延、小ジッターである必要があり、大容量の情報データよりも、制御データは高優先に通信を行う必要がある。この通信を実現するため、FirmWare(以下、FW)が、送信データの種類により、送信の優先順位を決め、それに応じて通信経路の振り分け処理を行うことが従来技術として知られている。
特許文献1に、送信されるデータの優先度によって、複数ある送信バッファを、排他的に切り替える技術が開示されている。
特開2019-161380号公報
しかしながら、上述のような従来技術は、FWによる通信経路の振り分け処理に時間がかかり、産業用制御装置のCPU負荷を増大させ、遅延を発生させるという課題がある。
また、高優先度を優先して処理していた場合、低優先度のバッファが送信ポートを排他的に占有している間に、高優先度のバッファにデータが入った場合、高優先度のデータの送信は開始されず、遅延が発生する課題がある。
本発明の一様態は、主メモリを備える情報処理装置のプロセッサの負荷を低減し、かつ、優先度に応じて適切に送信順を調停することを目的とする。
本発明の一様態に係る通信装置は、主メモリにDMA(Direct Memory Access)方式でアクセスする通信装置であって、前記主メモリの送信ディスクリプタ領域から送信ディスクリプタを取得し、前記送信ディスクリプタに基づいて前記送信ディスクリプタに対応する送信データの優先度を判定し、判定された優先度に対応するキューに前記送信ディスクリプタを渡す送信ディスクリプタフェッチと、複数の優先度にそれぞれ対応した複数のキューであって、前記主メモリから前記送信ディスクリプタに対応する送信データを取得する前記複数のキューと、優先度に応じて前記複数のキューに格納された前記送信データの送信順を調停する送信調停部と、を備える。
上記の構成によれば、送信ディスクリプタフェッチによって、主メモリにDMAでアクセスし、送信ディスクリプタに基づいて優先度を判定する。優先度を基に、送信順を調停されたキューからデータを送信できる。これにより、例えば主メモリを備える情報処理装置のプロセッサの負荷を低減し、かつ、優先度に応じて適切に送信順を調停することができる。
前記通信装置は、前記送信ディスクリプタフェッチが、前記送信ディスクリプタに基づいて、前記送信ディスクリプタに対応する前記送信データのヘッダの少なくとも一部を取得し、前記送信データのヘッダの少なくとも一部に基づいて前記送信データの優先度を判定してもよい。
上記の構成によれば、優先度を判定するために、ヘッダに加えて、全データを取得する必要がなく、送信データの一部だけ取得すればよい。そのため、必要なデータアクセスが減り、低負荷で優先度判定ができる。
前記通信装置は、前記送信ディスクリプタフェッチが、前記送信データのヘッダに含まれる宛先アドレスに基づいて前記送信データの優先度を判定する、構成でもよい。
上記の構成によれば、優先度を判定するための情報は、ヘッダのみでよい。そのため、部分的なデータアクセスにより、低負荷で優先度判定ができる。
前記通信装置は、複数の宛先アドレスと、前記複数の優先度とを関連付けて記憶する優先度記憶部を備えていてもよい。
上記の構成によれば、宛先アドレスから優先度を調べるためにFWへの問い合わせが不要になり、高速な送信が可能になる。
前記通信装置は、前記送信ディスクリプタが、前記送信データに関する優先度情報を含み、前記送信ディスクリプタフェッチが、前記優先度情報に基づいて、前記送信データの優先度を判定する、構成でもよい。
前記通信装置は、前記送信ディスクリプタが、前記送信データの宛先アドレスを含み、前記送信ディスクリプタフェッチが、前記宛先アドレスに基づいて前記送信データの優先度を判定する、構成であってもよい。
本発明の一様態に係る通信装置の制御方法は、主メモリにDMA(Direct Memory Access)方式でアクセスする通信装置の制御方法であって、前記主メモリの送信ディスクリプタ領域から送信ディスクリプタを取得するステップと、前記送信ディスクリプタに基づいて前記送信ディスクリプタに対応する送信データの優先度を判定するステップと、判定された優先度に対応するキューに前記送信ディスクリプタを渡すステップと、前記主メモリから前記送信ディスクリプタに対応する送信データを取得するステップと、優先度に応じて複数の前記送信データの送信順を調停するステップと、を含む。
前記通信装置として機能する集積回路は、前記送信ディスクリプタフェッチと、前記複数のキューと、前記送信調停部と、として機能する、ハードウェアの論理回路が形成されていてもよい。
本発明の一態様によれば、主メモリを備える情報処理装置のプロセッサの負荷を低減し、かつ、優先度に応じて適切に送信順を調停することができる。
本実施形態に係る情報処理装置の構成要素を示すブロック図である。 本実施形態に係る情報処理装置の構成要素を示すブロック図である。 送信ディスクリプタと送信データのデータ構造を示す図である。 CPUの動作フローチャートである。 通信装置の動作フローチャートである。
〔実施形態1〕
§1 適用例
図2は、本実施形態の情報処理装置1の構成要素を示すブロック図である。情報処理装置1では、FW(ドライバ23)によって送信データの優先度振分を行うのではなく、通信装置4で送信データのヘッダ内にある宛先アドレスから、優先度をハードウェア処理で判別する。その後、優先度に基づき、送信キューを振り分けられ、送信データの送信順を調停されながら送信される。そのため、FWによって優先度振分を行い送信する従来技術よりも、FWの処理を低減することができ、低遅延・低負荷な処理が実現できる。
§2 構成例
〔通信装置の機能構成〕
図1と図2は、本実施形態の情報処理装置の構成要素を示すブロック図である。情報処理装置1は、CPU2(中央演算処理装置)と、主メモリ3と、通信装置4と、を備える。
CPU2は、複数のアプリケーション21と、TCP/IPスタック22と、ドライバ23と、OS24(Operating System)と、を動作させる。CPU2はソフトウェアを動作させるプロセッサ(ハードウェア)で、FWを動作させている。
アプリケーション21は、ソフトウェアであり、OS24上で動作する。TCP/IPスタック22は、TCP/IP通信のプロトコルに関するソフトウェアである。ドライバ23は、ソフトウェアとハードウェアの仲立ちをするソフトウェアである。
主メモリ3は、送信ディスクリプタ領域31と、送信データ領域32と、を備える。送信ディスクリプタは送信データに関わる情報をまとめたヘッダである。
主メモリ3は、CPU2が処理したまたは処理に用いるデータを保存しておく記憶装置であり、例えばDRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)、SSD(Solid State Drive)、HDD(Hard Disc Drive)、またはSDカードなどの記憶装置である。送信ディスクリプタ領域31は、送信ディスクリプタを複数格納しておくデータ領域である。送信データ領域32は、送信データを複数格納しておくデータ領域である。
通信装置4(通信コントローラ)は、送信ディスクリプタフェッチ41と、2以上の複数の送信キュー42と、インタフェース43と、優先度記憶部44と、送信調停部45と、送受信ポート46と、を備える。通信装置4は、送信データを送信する処理を行うハードウェアである。通信装置4は、例えばネットワークインタフェースカード(NIC)であり、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)で構成された集積回路である。通信装置4は、送信データに優先度をつけ通信する機能を有する。
送信ディスクリプタフェッチ41は、送信ディスクリプタを解釈し、送信キューへの振り分けを行う。送信ディスクリプタフェッチ41は、送信データの優先度に応じて、優先度に対応する送信キュー42に送信ディスクリプタを出力する。送信キュー42は、送信ディスクリプタを保存しておき、先入れ先出しで送信データを送受信ポートから送信できる。送信キュー42は、送信優先度が高優先度(TX0)のものから低優先度(TXm)のものまで複数ある。インタフェース43(I/F)は、CPU2と主メモリ3と通信する。
優先度記憶部44は、複数の宛先アドレスと複数の優先度とを互いに関連付けて記憶する。送信調停部45は、複数の送信キューの優先度を考慮し、送信順を調停する。
送受信ポート46は、実際にデータ(送信データ/受信データ)を、ネットワークを介して複数の外部装置へ送受信する部位である。ここでは、ネットワークとしてEthernet(登録商標)を想定した例を説明するが、これに限らない。ネットワークは、EtherCAT、EtherCAT G、またはTSN等のネットワークであってもよい。複数のネットワークがブランチコントローラを介して送受信ポート46に接続されていてもよい。外部装置としては、複数の優先度があり、外部装置に応じて優先度は異なる。外部装置としては、センサ入力、またはバルブ制御などの低遅延で定周期の制御データを送受信すべき高優先度の外部装置と、画像処理装置などの大容量の情報データを送受信すべき遅延を許した低優先度の外部装置とがある。
送信ディスクリプタフェッチ41は、DMAC411と、振分部412と、を有する。複数の送信キュー42は、それぞれ、ディスクリプタFIFO421と、DMAC422と、データFIFO423と、を有する。DMAC411、422は、主メモリにDMA(Direct Memory Access)方式でアクセスする。振分部412は、送信データの優先度を確認し、該当する優先度の送信キュー42に振り分ける。ディスクリプタFIFO421(ディスクリプタバッファ)は、送信ディスクリプタを保存しておき、先入れ先出しで取り出せる。データFIFO423(データバッファ)は、送信データを保存しておき、先入れ先出しで取り出せる。
主メモリ3は、通信装置4のインタフェース43と、CPU2を介して接続されている。通信装置4のインタフェース43は、送信ディスクリプタフェッチ41と、2以上の送信キュー42と、接続されている。送信ディスクリプタフェッチ41は、2以上の送信キュー42と接続されている。接続されている箇所では、通信によりデータの受け渡しが可能である。
送信ディスクリプタフェッチ41と2以上の送信キュー42とは、DMAC411、422を用いて、インタフェース43を介して、主メモリと通信できる。
図3は、送信ディスクリプタと送信データのデータ構造を示す図である。送信ディスクリプタ5は、バッファアドレス領域51と、送信完了フラグ領域52と、予約領域53と、を有する。
バッファアドレス領域51は、主メモリ3における送信データ6の格納アドレスを含む領域である。送信完了フラグ領域52は、送信ディスクリプタ5に対応する送信データ6が送信されたか否かを示す情報を含む領域である。予約領域53は、その他通信に必要な情報および予備領域を含む。
送信データ6は、Ethernetフレームである。送信データ6は、ヘッダ60と、IPフレーム61と、を含む。送信データ6のヘッダ60は、宛先MACアドレス領域62と、予約領域63と、を含む。送信データ6のIPフレーム61は、IPフレーム61のヘッダ64と、データ領域67とを含む。IPフレーム61のヘッダ64は、宛先IPアドレス領域65と、予約領域66と、を含む。
宛先MACアドレス領域62は、送信先の外部装置(宛先)のMACアドレスを含む領域である。宛先IPアドレス領域65は、送信先の外部装置(宛先)のIPアドレスを含む領域である。予約領域63、66は、その他通信に必要な情報および予備領域を含む。宛先MACアドレス領域62と宛先IPアドレス領域65とのうちいずれか一方でも設定されていれば送信は成立するプロトコルを採用している。
§3 動作例
図4は、通信装置のCPU2の動作フローチャートである。まず、CPU2での処理の流れを記す。
ドライバ23は、通信装置4のインタフェース43を介して、予め優先度記憶部44に複数の宛先アドレスと複数の優先度とを互いに関連付けて設定する。宛先アドレスとしては、MACアドレス、IPアドレス、および/またはその他ネットワーク独自のアドレスでもよい。また、宛先アドレスがIPアドレスの場合、IPv6に対応していてもよい。
宛先と優先度との関係は、上位のコンピュータでユーザが任意に設定したものを、CPU2が主メモリ3に保存しておく。宛先と優先度との関係は、通信装置4の初期化時に主メモリ3から通信装置4に読み込まれる。
CPU2内では、複数のアプリケーション21が動作している。アプリケーション21は、APIを利用し、TCP/IPスタック22に対し、パケット送信を行う(S11)。
TCP/IPスタック22は、受信したパケットを基に、IPフレーム61を生成し、生成したIPフレーム61をドライバ23に送信する(S12)。IPフレーム61の宛先IPアドレス領域には、宛先IPアドレスが、設定されていてもよい。
ドライバ23は、Ethernet(登録商標)フレームを生成し、主メモリ3の送信データ領域32に、生成したEthernetフレームを送信データ6として書き込む(S13)。Ethernetフレーム(送信データ6)の宛先MACアドレス領域62には、宛先MACアドレスが、設定されていてもよい。この時、OS24は、主メモリ3の領域管理を行う。
ドライバ23は、送信ディスクリプタ5を生成し、主メモリ3の送信ディスクリプタ領域31に送信ディスクリプタ5を書き込む(S14)。この時、OS24は、主メモリ3の領域管理を行う。ドライバ23は、主メモリ3の送信データ領域32に書き込んだ送信データ6の先頭アドレスおよびデータ長を、送信ディスクリプタ5のバッファアドレス領域51に格納する。
ドライバ23は、通信装置4の送信ディスクリプタフェッチ41に対して、インタフェース43を介して、送信ディスクリプタ5を用意したことを通知する(S15)。この通知を受けて、通信装置4の送信ディスクリプタフェッチ41は動作を開始する。ドライバ23は、処理を終了する。
CPU2は、アプリケーション21からパケット送信が行われると、S11からの処理を繰り返す。
図5は、通信装置4の動作フローチャートである。次に、通信装置4での処理の流れを記す。
送信ディスクリプタフェッチ41は、ドライバ23から送信ディスクリプタ5を用意したことの通知を受けると、DMAC411によって、DMA方式で主メモリ3の送信ディスクリプタ領域31にアクセスし、送信ディスクリプタ5を一つ取得する(S21)。
DMAC411は、送信ディスクリプタ5の中の、バッファアドレス領域51を参照し、参照したアドレスを利用して、主メモリ3に格納されている送信データ6のヘッダの少なくとも一部を取得する(S22)。例えば、DMAC411は、送信データ6のヘッダ60全体および/またはヘッダ64全体を取得してもよいし、宛先MACアドレス領域62または宛先IPアドレス領域65を含むヘッダ60またはヘッダ64の一部を取得してもよい。すなわち、DMAC411は、送信データ6のうち、宛先アドレスの情報を含む送信データ6の一部を取得する。そのため、DMAC411は、送信データ6の他の一部(データ領域67)を取得しなくてもよい。DMAC411は、振分部412に、取得したヘッダ60、64を出力する。
送信ディスクリプタフェッチ41の振分部412は、ヘッダ60、64に含まれる宛先アドレスに基づいて、送信データ6の優先度を判定する。振分部412は、優先度記憶部44から、受け取った宛先アドレスと優先度との関係を示す情報を取得し、該宛先アドレスに送信される送信データ6の優先度を判定する(S23)。
送信ディスクリプタフェッチ41の振分部412は、判定した優先度を用いて、優先度に対応する送信キュー42内のディスクリプタFIFO421に送信ディスクリプタ5を渡す(S24)。
送信キュー42のDMAC422は、ディスクリプタFIFO421から送信ディスクリプタ5を取得する。DMAC422は、送信ディスクリプタ5が示す主メモリ3のアドレスから、送信ディスクリプタ5に対応する送信データ6を取得する(S25)。DMAC422は、取得した送信データ6をデータFIFO423に格納する。
送信調停部45は、優先度に応じて複数の送信キュー42に格納された複数の送信データ6の送信順を調停する。送信調停部45は、優先度がより高い送信キュー42から順に、送信キュー42に送信指令を出力する。送信キュー42は、送信調停部45の調停によった送信指令に従い、送信動作を開始する。送信指令を受けた送信キュー42は、データFIFO423に格納された送信データ6を、送受信ポート46から送信する(S26)。
送信完了後、送信キュー42は、主メモリ3の送信ディスクリプタ領域31内の該当する送信ディスクリプタ5の送信完了フラグ領域52に、送信データ6の送信が完了した旨を示す送信完了フラグを記載する(S27)。
(参考例)
参考例として、ドライバで優先度振分を行う場合について説明する。この場合、優先度が異なる複数の送信キューに応じて、異なる複数の送信ディスクリプタ領域および複数の送信データ領域を主メモリに確保する必要がある。ドライバが複数の送信データ領域から1つの送信データ領域を選択して送信データを書き込むとき、および複数の送信ディスクリプタ領域から1つの送信ディスクリプタ領域を選択して送信ディスクリプタを書き込むとき、OSによる主メモリの領域管理が必要になる。また、ドライバは、優先度を判定し、優先度に応じて1つの送信キューを選択して、起動する該送信キューのDMACを指定する必要がある。すなわち、ドライバは、優先度に応じて通信装置へのレジスタアクセスを変更する必要がある。各送信キューは、対応する送信ディスクリプタ領域から送信ディスクリプタを取得する。このように、ドライバで優先度振分を行う場合、ドライバ(FW)、およびOSにおいて、優先度に応じた処理が必要になる。そのため、ドライバおよびOSにおける負荷が増大し、処理の遅延が生じ得る。
§ 作用・効果
一方、本実施形態に係る情報処理装置1は、ドライバ23(FW)によって、優先度に関係なく、一つの送信ディスクリプタ領域と、一つの送信データ領域とにデータを格納する。その後、通信装置4は、送信ディスクリプタフェッチ41でのハードウェア処理により優先度振分をする。優先度振分された送信データは、送信調停部により送信順を制御され送信される。そのため、情報処理装置1は、ドライバ23(FW)によって優先度振分を行う参考例よりも、ドライバ23およびOS24の処理負荷を低減することができる。また、複数の送信ディスクリプタ領域のメモリスイッチおよび複数の送信データ領域のメモリスイッチに起因するメモリアクセスのオーバーヘッドを低減することができる。それゆえ、OS24によるメモリ管理が容易である。これにより、高速・低負荷な処理が実現でき、リアルタイム性の向上が見込める。また、ドライバ23は、通信装置4の1つの送信ディスクリプタフェッチ41のみにアクセスすればよいので、既存のドライバおよびOSを流用することができる。
〔変形例1〕
実施形態1ではS21~S23において、送信ディスクリプタフェッチ41は、送信ディスクリプタ5を一度読み込み、バッファアドレス領域51から送信データ6のアドレスを取得する。取得した一部の送信データ6内の、宛先MACアドレス領域62から宛先MACアドレスを、または、宛先IPアドレス領域65から宛先IPアドレスを取得する。振分部412は、これら、MACアドレスまたはIPアドレスと優先度との関係から、優先度の判定を行う。このステップを短縮するために、送信ディスクリプタ5の予約領域53に、宛先アドレス領域を設けてもよい。そしてドライバ23は、宛先アドレス領域に宛先MACアドレスまたは宛先IPアドレスを保存してもよい。この場合、送信ディスクリプタフェッチ41は、送信データの一部を取得せず、送信ディスクリプタのみから、送信データの優先度判定ができる。
〔変形例2〕
実施形態1ではS22とS23とで、送信ディスクリプタフェッチ41は、送信データ6から宛先MACアドレスまたは宛先IPアドレスを取得し、優先度記憶部44の情報と照合し優先度を判定する。このステップを短縮するために、送信ディスクリプタ5の予約領域53に、優先度領域を設けてもよい。送信データの優先度は、アプリケーション21によって決定される。S11において、TCP/IPスタック22は、アプリケーション21によって決定された優先度情報をパケットに付加する。そしてドライバ23は、優先度領域に直接送信データに関する優先度情報(送信データの優先度を示す情報)を保存してもよい。送信ディスクリプタフェッチ41は、S22およびS23の処理をスキップし、送信ディスクリプタのみから、送信データの優先度判定ができる。S24で、振分部412は、その優先度に基づき、送信データを送信キューに振り分けできる。
この場合、同じ宛先アドレスでも送信データに応じて異なる優先度をアプリケーション21で設定できる利点がある。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 情報処理装置
2 CPU
3 主メモリ
4 通信装置
5 送信ディスクリプタ
6 送信データ
21 アプリケーション
22 TCP/IPスタック
23 ドライバ
24 OS
31 送信ディスクリプタ領域
32 送信データ領域
41 送信ディスクリプタフェッチ
42 送信キュー
43 インタフェース
44 優先度記憶部
45 送信調停部
46 送受信ポート
51 バッファアドレス領域
52 送信完了フラグ領域
53、63、66 予約領域
60、64 ヘッダ
61 IPフレーム
62 宛先MACアドレス領域
65 宛先IPアドレス領域
67 データ領域

Claims (8)

  1. 主メモリにDMA(Direct Memory Access)方式でアクセスする通信装置であって、
    前記主メモリの送信ディスクリプタ領域から送信ディスクリプタを取得し、前記送信ディスクリプタに基づいて前記送信ディスクリプタに対応する送信データの優先度を判定し、判定された優先度に対応するキューに前記送信ディスクリプタを渡す送信ディスクリプタフェッチと、
    複数の優先度にそれぞれ対応した複数のキューであって、前記主メモリから前記送信ディスクリプタに対応する送信データを取得する前記複数のキューと、
    優先度に応じて前記複数のキューが取得した複数の前記送信データの送信順を調停する送信調停部と、
    を備える通信装置。
  2. 前記送信ディスクリプタフェッチは、
    前記送信ディスクリプタに基づいて、前記送信ディスクリプタに対応する前記送信データのヘッダの少なくとも一部を取得し、
    前記送信データのヘッダの少なくとも一部に基づいて前記送信データの優先度を判定する、請求項1に記載の通信装置。
  3. 前記送信ディスクリプタフェッチは、前記送信データのヘッダに含まれる宛先アドレスに基づいて前記送信データの優先度を判定する、請求項2に記載の通信装置。
  4. 複数の宛先アドレスと、前記複数の優先度とを関連付けて記憶する優先度記憶部を備える、請求項3に記載の通信装置。
  5. 前記送信ディスクリプタは、前記送信データに関する優先度情報を含み、
    前記送信ディスクリプタフェッチは、前記優先度情報に基づいて、前記送信データの優先度を判定する、請求項1に記載の通信装置。
  6. 前記送信ディスクリプタは、前記送信データの宛先アドレスを含み、
    前記送信ディスクリプタフェッチは、前記宛先アドレスに基づいて前記送信データの優先度を判定する、請求項1に記載の通信装置。
  7. 主メモリにDMA(Direct Memory Access)方式でアクセスする通信装置の制御方法であって、
    前記主メモリの送信ディスクリプタ領域から送信ディスクリプタを取得するステップと、
    前記送信ディスクリプタに基づいて前記送信ディスクリプタに対応する送信データの優先度を判定するステップと、
    判定された優先度に対応するキューに前記送信ディスクリプタを渡すステップと、
    前記主メモリから前記送信ディスクリプタに対応する送信データを取得するステップと、
    優先度に応じて複数の前記送信データの送信順を調停するステップと、を含む通信装置の制御方法。
  8. 請求項1に記載の通信装置として機能する集積回路であって、
    前記送信ディスクリプタフェッチと、前記複数のキューと、前記送信調停部と、として機能する、ハードウェアの論理回路が形成されていることを特徴とする集積回路。
JP2020041070A 2020-03-10 2020-03-10 通信装置、通信装置の制御方法、および集積回路 Active JP7435054B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020041070A JP7435054B2 (ja) 2020-03-10 2020-03-10 通信装置、通信装置の制御方法、および集積回路
PCT/JP2021/001751 WO2021181896A1 (ja) 2020-03-10 2021-01-20 通信装置、通信装置の制御方法、および集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020041070A JP7435054B2 (ja) 2020-03-10 2020-03-10 通信装置、通信装置の制御方法、および集積回路

Publications (2)

Publication Number Publication Date
JP2021144324A JP2021144324A (ja) 2021-09-24
JP7435054B2 true JP7435054B2 (ja) 2024-02-21

Family

ID=77671300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020041070A Active JP7435054B2 (ja) 2020-03-10 2020-03-10 通信装置、通信装置の制御方法、および集積回路

Country Status (2)

Country Link
JP (1) JP7435054B2 (ja)
WO (1) WO2021181896A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979142A (zh) * 2022-05-16 2022-08-30 深圳市金瑞铭科技有限公司 云平台的边缘设备数据处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001257684A (ja) 2000-03-09 2001-09-21 Fuji Xerox Co Ltd 計算機システム
JP2003319009A (ja) 2002-04-24 2003-11-07 Communication Research Laboratory データ通信制御方法、データ通信制御システム、データ送出機構、データ通信制御プログラム、およびデータ通信制御プログラム記録媒体
JP2011182369A (ja) 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送装置、データ転送方法、データ転送プログラム及び記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001257684A (ja) 2000-03-09 2001-09-21 Fuji Xerox Co Ltd 計算機システム
JP2003319009A (ja) 2002-04-24 2003-11-07 Communication Research Laboratory データ通信制御方法、データ通信制御システム、データ送出機構、データ通信制御プログラム、およびデータ通信制御プログラム記録媒体
JP2011182369A (ja) 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送装置、データ転送方法、データ転送プログラム及び記録媒体

Also Published As

Publication number Publication date
WO2021181896A1 (ja) 2021-09-16
JP2021144324A (ja) 2021-09-24

Similar Documents

Publication Publication Date Title
US11799764B2 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US8660133B2 (en) Techniques to utilize queues for network interface devices
US7493427B2 (en) Apparatus and method for supporting received data processing in an offload of network protocol processing
US6836808B2 (en) Pipelined packet processing
CA2573156C (en) Apparatus and method for supporting memory management in an offload of network protocol processing
US7620745B2 (en) Transferring data between a memory and peripheral units employing direct memory access control
US5546543A (en) Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
EP3544247B1 (en) Transfer control device, transfer control method and computer-readable medium
US7461214B2 (en) Method and system for accessing a single port memory
JP2008086027A (ja) 遠隔要求を処理する方法および装置
US20100169528A1 (en) Interrupt technicques
US20100146157A1 (en) Multi-radio interfacing and direct memory access based data transferring methods and sink node for performing the same in wireless sensor network
WO2006019512A1 (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
US9471521B2 (en) Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US8094677B2 (en) Multi-bus structure for optimizing system performance of a serial buffer
JP7435054B2 (ja) 通信装置、通信装置の制御方法、および集積回路
US7529857B2 (en) Data processing apparatus and data transfer control method
JP2006217600A (ja) 通信システムにおける送信キューデータの移動方法及び装置
JP7435055B2 (ja) 通信装置、通信装置の制御方法、および集積回路
WO2021112947A1 (en) Apparatus and methods for managing packet transfer across a memory fabric physical layer interface
US20120246263A1 (en) Data transfer apparatus, data transfer method, and information processing apparatus
KR20010095103A (ko) 데이터 블록 전송 방법 및 장치
KR102496994B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US20020181456A1 (en) Switch device and data transfer system
US20120016949A1 (en) Distributed processing system, interface, storage device, distributed processing method, distributed processing program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R150 Certificate of patent or registration of utility model

Ref document number: 7435054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150