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

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

Info

Publication number
JP7435055B2
JP7435055B2 JP2020041071A JP2020041071A JP7435055B2 JP 7435055 B2 JP7435055 B2 JP 7435055B2 JP 2020041071 A JP2020041071 A JP 2020041071A JP 2020041071 A JP2020041071 A JP 2020041071A JP 7435055 B2 JP7435055 B2 JP 7435055B2
Authority
JP
Japan
Prior art keywords
priority
data
received data
transfer
main memory
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
JP2020041071A
Other languages
English (en)
Other versions
JP2021145182A (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 JP2020041071A priority Critical patent/JP7435055B2/ja
Priority to PCT/JP2021/001753 priority patent/WO2021181897A1/ja
Publication of JP2021145182A publication Critical patent/JP2021145182A/ja
Application granted granted Critical
Publication of JP7435055B2 publication Critical patent/JP7435055B2/ja
Active 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/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
    • 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

Landscapes

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

Description

本発明は、処理順を優先度順にする通信装置に関する。
従来、産業用制御装置に用いられる通信手段は多数あり、EtherCAT(登録商標)などが多く用いられてきている。データ容量の増加またはリアルタイム性の向上の為に、Gigabpsに対応したEtherCAT Gへの対応または、Time Sensitive Network(以下、TSN)への対応が求められている。更に、一定周期での制御データの通信と、不定期での情報データの通信とが混在した通信規格が求められている。
制御データは低遅延、小ジッターである必要があり、大容量の情報データよりも、制御データは高優先に通信を行う必要がある。この通信を実現するため、受信データの処理順を、入れ替える処理が従来技術として知られている。
特許文献1に、受信データ内のフィールド情報に基づき、受信データを複数あるデータバッファに振り分ける技術が開示されている。また、特許文献2に、パケットを分析し、遅延を許容可能なものかどうかでパケットを振り分けることで、優先度を考慮したパケット処理装置が開示されている。
特開2007-243382号公報 特開2016-046669号公報
しかしながら、上述のような従来技術は、開始された低優先度のデータの受信処理によって、高優先度のデータの受信処理が遅延する課題がある。産業用制御装置のように、リアルタイム性が必要なシステムでは、軽微な遅延またはタイミングのずれであっても無い方が好ましい。
本発明の一様態は、優先度順に受信データの転送順を調停でき、かつ高優先度の受信データに関しては、低遅延の転送処理を可能にすることを目的とする。
本発明の一様態に係る通信装置は、受信キューを備え、1つの前記受信キューは、ネットワークから受信した受信データの優先度を判定する優先度判定部と、前記受信データを格納するバッファと、前記バッファに格納されている前記受信データを主メモリに転送する転送部と、前記転送部が第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記転送部に前記第1優先度の受信データの転送を中止させ、前記第2優先度の受信データの前記主メモリへの転送を開始させる転送調停部と、を備える。
上記の構成によれば、優先度順に受信データの転送順を調停でき、かつ高優先度の受信データに関しては、低遅延でタイミングのばらつきがないリアルタイムな転送処理が可能である。
前記バッファは、前記第1優先度の受信データを格納する第1バッファと、前記第2優先度の受信データを格納する第2バッファとを含んでもよい。
上記の構成によれば、優先度毎にバッファを複数用意することができ、ハードウェアの構成が容易になる。
前記転送部は、前記主メモリの受信ディスクリプタ領域から受信ディスクリプタを取得し、前記受信ディスクリプタが示す前記主メモリのデータ領域に前記受信データを転送するものであり、前記転送部は、前記転送調停部から前記第1優先度の受信データの転送を中止し、前記第2優先度の受信データの前記主メモリへの転送を開始する指示を受けると、前記第1優先度の受信データを転送するために用いていた受信ディスクリプタを再度用いて、前記第2優先度の受信データを前記主メモリのデータ領域に転送してもよい。
上記の構成によれば、受信ディスクリプタを再利用することができ、OS(Operating System)は、転送中止に応じた処理を行う必要が無い。それゆえ、OSによるメモリ管理が容易になる。
前記第1バッファは、前記第1優先度の受信データの前記主メモリへの転送が完了するまで、前記第1優先度の受信データの全体を保持し続けてもよい。
上記の構成によれば、高優先度の受信データに割り込まれた、低優先度の受信データの再転送を、データの途中から再送信するのではなく、データの先頭から再送信でき、データの齟齬の防止・システムの容易化ができる。
前記優先度判定部は、前記受信データの送信元アドレスに基づいて前記受信データの優先度を判定してもよい。
前記受信データは優先度情報を含み、前記優先度判定部は、前記優先度情報に基づいて前記受信データの優先度を判定してもよい。
上記の構成によれば、送信元アドレスによらず、送信元が能動的に優先度を設定することができる。
本発明の一様態に係る通信装置の制御方法は、ネットワークから受信した受信データを格納するバッファを有する受信キューを備える通信装置の制御方法であって、前記受信データの優先度を判定する優先度判定ステップと、前記バッファに格納されている前記受信データを主メモリに転送する転送ステップと、第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記第1優先度の受信データの転送を中止させ、前記第2優先度の受信データの前記主メモリへの転送を開始させる受信調停ステップと、を含んでいる。
前記通信装置として機能する集積回路は、前記優先度判定部と、前記バッファと、前記転送調停部と、として機能する、ハードウェアの論理回路が形成されていてもよい。
本発明の一様態によれば、優先度順に受信データの転送順を調停でき、かつ高優先度の受信データに関しては、低遅延の転送処理が可能である。
本発明の一実施形態に係る情報処理装置の構成要素を示すブロック図である。 本発明の一実施形態に係る受信ディスクリプタと受信データのデータ構造を示す図である。 通信装置の動作フローチャートである。 受信データの転送のタイミングチャートを示す。 本発明の一実施形態の動作例と参考例との受信データの処理順を説明するタイミングチャートである。 本発明の一実施形態の動作例と参考例との受信データの処理順を説明するタイミングチャートである。
〔実施形態1〕
§1 適用例
図1は、本実施形態の情報処理装置の構成要素を示すブロック図である。情報処理装置1は、通信装置2と、CPU(中央演算処理装置)3と、主メモリ4と、を備える。
受信データを優先度によって並び替えて受信する場合において、ただ並び替えただけでは遅延が発生する。特にネットワークの通信速度が向上すると、通信装置2から主メモリ4への受信データの転送によって、後にネットワークから受信された受信データの転送が待たされる事態が発生し得る。
そこで、本実施形態の通信装置2は、優先度が低い第1データを主メモリへ転送している時に、より優先度が高い第2データを受信した場合は、第1データの転送処理(受信処理)を中断し、第2データの転送処理を行う。そのため、単に優先度順に転送処理を開始する従来技術よりも、優先度の高いデータの受信で割り込んで受信することで、低遅延な処理が実現できる。
§2 構成例
〔情報処理装置の機能構成〕
図1は、本実施形態の情報処理装置の構成要素を示すブロック図である。情報処理装置1は、通信装置2と、CPU(中央演算処理装置)3と、主メモリ4と、を備える。
通信装置2(通信コントローラ)は、送受信ポート21と、受信キュー22と、優先度記憶部23と、インタフェース24と、を備える。通信装置2は、データの受信処理を行うハードウェアである。通信装置2は、例えばネットワークインタフェースカード(NIC)であり、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)で構成された、論理回路が形成された集積回路である。通信装置2は、受信データに優先度をつけ通信する機能を有する。
送受信ポート21は、実際にデータ(送信データ/受信データ)を、ネットワークを介して複数の外部装置から送受信する部位である。ここでは、ネットワークとしてEthernet(登録商標)を想定した例を説明するが、これに限らない。ネットワークは、EtherCAT、EtherCAT G、またはTSN等のネットワークであってもよい。複数のネットワークがブランチコントローラを介して送受信ポート21に接続されていてもよい。外部装置としては、複数の優先度があり、外部装置に応じて優先度は異なる。外部装置としては、センサ入力、またはバルブ制御などの低遅延で定周期の制御データを送受信すべき高優先度の外部装置と、画像処理装置などの大容量の情報データを送受信すべき遅延を許した低優先度の外部装置とがある。
受信キュー22は、受信データを仮保存し、主メモリ4に書き込むまでのバッファとして機能する。優先度記憶部23は、複数の送信元アドレスと複数の優先度とを互いに関連付けて記憶する。インタフェース24は、CPU3と主メモリ4と通信する。
受信キュー22は、優先度判定部221と、複数のデータバッファ(バッファ)222と、転送調停部223と、DMAC(転送部)224と、ディスクリプタバッファ225と、を有する。優先度判定部221は、受信データのヘッダに基づいて優先度を判定し、該当の優先度のデータバッファ222に受信データを格納する。データバッファ222は、受信データを保存しておき、主メモリ4に転送する際のバッファとして機能する。データバッファ222は、受信優先度が高優先度(データバッファ0)のものから低優先度(データバッファn)のものまで複数ある。転送調停部223は、データバッファ222に格納されている受信データの主メモリ4へのデータ転送の処理順を、優先度に基づいて調停する機能をもつ。DMAC224は、DMA(Direct Memory Access)方式により主メモリ4にアクセスできる。DMAC224は、ディスクリプタバッファ225から受信ディスクリプタを取得する。DMAC224は、データバッファ222に格納されたデータを、インタフェース24を介して、受信ディスクリプタに基づいて主メモリ4に転送する。ディスクリプタバッファ225は、あらかじめ主メモリ4から複数の受信ディスクリプタを取得しておく。
CPU3は、OS(Operating System)31と、ドライバ32と、を動作させる。CPU3はソフトウェアを動作させるプロセッサ(ハードウェア)で、FWを動作させている。
OS31上でソフトウェア(アプリケーション)が動作する。ドライバ32は、ソフトウェアとハードウェアの仲立ちをするソフトウェアである。
主メモリ4は、受信ディスクリプタ領域41と、受信データ領域42と、を含む。受信ディスクリプタは、受信データを格納すべき主メモリ4の受信データ領域42におけるアドレスを示す情報を含む。
主メモリ4は、CPU3が処理したまたは処理に用いるデータを保存しておく領域であり、例えば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カードなどの記憶装置である。受信ディスクリプタ領域41は、受信ディスクリプタを複数格納しておくデータ領域である。受信データ領域42は、受信データを複数格納しておくデータ領域である。
図2は、受信ディスクリプタと受信データのデータ構造を示す図である。受信ディスクリプタ5は、バッファアドレス領域51と、受信完了フラグ領域52と、予約領域54と、を含む。バッファアドレス領域51は、受信データ6を格納すべき主メモリ4のアドレス(受信データ領域42におけるアドレス)を示す情報を含む。受信完了フラグ領域52は、受信キュー22から主メモリ4に受信データ6を転送されたか否かを示す情報を含む領域である。予約領域54は、その他通信に必要な情報および予備領域を含む。
受信データ6はEthernet(登録商標)フレームである。受信データ6は、ヘッダ60と、IPフレーム61と、を含む。受信データ6のヘッダ60は、送信元MACアドレス領域62と、予約領域63と、を含む。受信データ6のIPフレーム61は、ヘッダ64と、データ領域67と、を含む。IPフレーム61のヘッダ64は、送信元IPアドレス領域65と予約領域66とを含む。送信元MACアドレス領域62は、送信元の外部装置のMACアドレスを含む領域である。送信元IPアドレス領域65は、送信元の外部装置のIPアドレスを含む領域である。予約領域63、66は、その他通信に必要な情報および予備領域を含む。送信元MACアドレス領域62と送信元IPアドレス領域65とのいずれか一方でも設定されていれば受信は成立するプロトコルを採用している。
§3 動作例
CPU3は、通信装置2のインタフェース24を介して、予め優先度記憶部23に複数の送信元アドレスと複数の優先度とを互いに関連付けて設定する。送信元アドレスとしては、MACアドレス、IPアドレス、および/またはその他ネットワーク独自のアドレスでもよい。また、宛先アドレスがIPアドレスの場合、IPv6に対応していてもよい。
送信元と優先度との関係は、上位のコンピュータでユーザが任意に設定したものを、CPU3が主メモリ4に保存しておく。送信元と優先度との関係は、通信装置2の初期化時に主メモリ4から通信装置2に読み込まれる。
ドライバ32は、予め主メモリ4の受信ディスクリプタ領域41に受信ディスクリプタを複数用意する。
通信装置2による受信処理に伴い、主メモリ4の受信ディスクリプタ5は消費される。1つの受信データ6を主メモリ4に書き込むために、1つの受信ディスクリプタ5が使用される。
図3は、通信装置の動作フローチャートである。受信キュー22は、インタフェース24を介して、主メモリ4の受信ディスクリプタ領域41から、予め受信ディスクリプタ5を取得する。この時、予め複数の受信ディスクリプタ5を取得してもよい。受信キュー22は、取得した受信ディスクリプタ5を、ディスクリプタバッファ225に格納しておく。
送受信ポート21がネットワークから受信データ6(パケット)を受信すると、送受信ポート21は受信データ6を受信キュー22に出力する。受信キュー22の優先度判定部221は、受信データ6の送信元MACアドレス領域62および/または送信元IPアドレス領域65から、送信元MACアドレスおよび/または送信元IPアドレスを取得する。優先度判定部221は、優先度記憶部23から送信元アドレス(送信元MACアドレスおよび/または送信元IPアドレス)と優先度との関係を示す情報を取得し、該送信元アドレスから受信された受信データ6の優先度を判定する(S21)。
優先度判定部221は、判定した優先度に対応するデータバッファ222に、該受信データ6を格納する(振り分ける)(S22)。データバッファ222は先入れ先出し構造のデータバッファであり、末尾にデータを格納し、先頭からデータを取り出すものとする。また、データバッファ222は、主メモリ4まで受信データ6を転送完了するまでは、途中までデータを取り出していても、データを消さずに受信データ全体を保持する機能を持つ。
例えば、該データバッファ222の一例としては、n個のデータを保持できるリングバッファが挙げられる。該リングバッファでは、参照インデックスとして、HEADとTAILとを有する。HEADは現在転送中または次に転送するデータの先頭のアドレスを示し、TAILは未転送のデータの末尾のアドレスを示す。受信データ6がデータバッファ222に入力されると、受信データ6のデータ長さに応じてTAILのアドレスが加算される。受信データ6がデータバッファ222から読み出されると、読み出された分に応じてHEADのアドレスが加算される。転送が進み、HEADとTAILが同じインデックスを示す場合、そのデータバッファ222は空になり、転送が完了したものといえる。また、転送よりも受信が早く、未転送データが増えて、TAILがHEADに追いつく(=HEAD-1)と、リングバッファが満杯になり、リングバッファに空きができるまで、受信処理を中断する。
転送調停部223は、受信データ6を格納している1つ以上のデータバッファ222のうち、最も優先度の高いデータバッファ222から受信データ6を読み出す。転送調停部223は、受信データ6をDMAC224に出力し、DMAC224にデータ転送を指示する。DMAC224は、ディスクリプタバッファ225から1つの受信ディスクリプタ5を取得する。DMAC224は、受信ディスクリプタ5に基づき、主メモリ4に最も優先度の高い受信データ6の転送を開始する(S23)。これにより、DMAC224は、受信ディスクリプタ5が示す主メモリ4の受信データ領域42のアドレスに受信データ6を書き込む。この時、転送調停部223は、データバッファが空でない、最も優先度が高いデータバッファの受信データ6の転送をDMAC224にさせる。なお、データバッファ222は、転送を開始するとき、転送前のHEADの値を保存しておく。データバッファ222は、さらに受信データ6が入力され、TAILが増加し、保存したHEADにTAILが追いつくと、リングバッファが満杯になり、リングバッファに空きができるまで、受信処理を中断する。これにより、データバッファ222は、受信データ6の主メモリ4への転送が完了するまで、受信データ6の全体を保持し続ける。
転送調停部223は、主メモリ4へのデータ転送中も、転送元以外のデータバッファが受信データ6を受信したか否かを監視する(S24)。転送中の受信データ6を第1データとする。
第1データの転送中に、転送元以外のデータバッファが他の受信データ6を受信しなかった場合(S24でNo)、第1データの転送が完了する。転送完了後、DMAC224は、受信データ6が転送されたことを示す情報(転送完了フラグ)を受信ディスクリプタ領域41に書き込む(S27)。
第1データの転送中に、転送元以外のデータバッファが他の受信データ6(第2データ)を受信した場合(S24でYes)、転送調停部223は、第2データの方が第1データよりも優先度が高いか否かを判定する(S25)。
転送中の第1データの優先度より第2データの優先度が高くない場合(S25でNo)、転送調停部223は、DMAC224に第1データの転送を続けさせる。第1データの転送が完了すると、処理はS27へ進む。
転送中の第1データの優先度より第2データの優先度が高い場合(S25でYes)、転送調停部223は、ただちにDMAC224およびデータバッファ222に第1データの転送を中止させる。第1データを格納していたデータバッファ222は、転送前のHEADの値をHEADに上書きする。これにより、既に読み出して転送した分を含めて第1データ全体がデータバッファ222に復元される(S26)。それゆえ、後で第1データ全体を再度読み出すことが可能となる。また、転送調停部223は、DMAC224に最も優先度の高い第2データの主メモリ4への転送を開始させる(S23)。このとき、転送調停部223から第2データの転送開始の指示を受けたDMAC224は、第1データの転送に用いた受信ディスクリプタを再利用する。DMAC224は、第1データの転送に用いた受信ディスクリプタを再度用いて、第2データを主メモリ4の受信データ領域42に転送する。再利用された受信ディスクリプタは、同じ受信データ領域42のアドレスを指しているので、途中まで受信データ領域42に書き込まれた第1データは、第2データによって上書きされる。
第2データの転送完了後、DMAC224は、別の受信ディスクリプタ5をディスクリプタバッファ225から取得し、別の受信ディスクリプタ5を用いて次に優先度の高い受信データ6(第1データ)の転送を行う。受信ディスクリプタ5を再利用するため、OS31は転送順が変更されたことを考慮する必要がなく、メモリ管理の負荷が小さくて済む。
このようにして、通信装置2は、優先度がより高い受信データ6を受信すると、優先度が低い受信データ6の転送を中止し、優先度がより高い受信データ6の転送を開始する。
図4は、受信データの転送のタイミングチャートを示す。ネットワークを介して、通信装置2に、受信データとして、中優先度データ81a、低優先度データ82a、および高優先度データ83aがこの順に入力される場合を考える。ここでは、通信装置2から主メモリ4への転送速度より、ネットワークから通信装置2への通信速度が速いとする。そのため、受信した中優先度データ81a、低優先度データ82a、および高優先度データ83aを主メモリ4へ転送に必要な時間は、それぞれ中優先度データ81b、低優先度データ82b、および高優先度データ83bに示すように長くなる。中優先度データ81b、低優先度データ82b、および高優先度データ83bは互いに重なるよう図示しているが、実際は1つずつ転送される。
まず、通信装置2が中優先度データ81aを受信すると、通信装置2は、符号81cに示すように中優先度データの主メモリ4への転送を開始する。通信装置2は、中優先度データ81cの転送中に、低優先度データ82aを受信するが、中優先度データ81cの転送を継続する。
時刻t1で、通信装置2は、中優先度データ81cの転送中に、高優先度データ83aを受信する。高優先度データ83aは、転送中の中優先度データ81cより優先度が高い。そのため、通信装置2は、中優先度データ81cの転送を中止(キャンセル)する。そして通信装置2は、符号83cに示すように高優先度データの主メモリ4への転送を開始する。
時刻t2で、通信装置2は、高優先度データ83cの転送を完了する。通信装置2は、既に受信された中優先度データ81a、および低優先度データ82aのうち、より優先度の高い中優先度データの主メモリ4への転送を開始する(符号81d)。このように、通信装置2は、一旦転送が中止された中優先度データを、データの最初から再度転送する。
時刻t3で、通信装置2は、中優先度データ81dの転送を完了する。通信装置2は、既に受信された低優先度データ82aの主メモリ4への転送を開始する(符号82c)。
このように、通信装置2によれば、3つ以上の異なる優先度の受信データ6を受信した場合でも、より優先度が高い受信データの主メモリ4への転送を優先することができる。低い優先度の受信データ(低優先度データ82a、中優先度データ81a)のために、より高い優先度の受信データ(高優先度データ83a)の転送が待たされることを回避することができる。それゆえ、通信装置2は、制御データ等の定周期で受信すべき受信データを、迅速に処理することができ、リアルタイム性を向上させることができる。
図5は、実施形態の動作例1と参考例1との受信データの処理順を説明するタイミングチャートである。ここでは、通信装置は、受信と同時に主メモリへのデータ転送を行うとする。優先度が2段階でのモデルケースであり、通信装置2は低優先度データ71a、および高優先度データ72aを順に受信したとする。高優先度データ72aに関しては、低優先度データ71aの主メモリ4への転送処理完了前に受信したものとする。
(参考例1)
参考例1の通信装置は、受信済の受信データの転送順を調停するものの、低優先度の受信データの転送を中断してまで高優先度の受信データ転送を開始しない。
低優先度データ71aを受信すると同時に(データバッファに格納開始するとすぐに)、通信装置は低優先度データ71bの転送を開始する。転送中に、通信装置は高優先度データ72aを受信する。しかしながら、主メモリへの転送が低優先度データ71bによって占有されているため、通信装置は高優先度データ72aを即時に転送できない。低優先度データ71bの転送完了後、通信装置は高優先度データ72aの主メモリへの転送を開始する(符号72b)。そのため、高優先度データ72aを受信してから、高優先度データ72bの転送開始までに遅延が発生する。
(動作例1)
動作例1の通信装置2は、低優先度データ71aを受信すると同時に(データバッファに格納開始するとすぐに)、通信装置2は低優先度データ71cの転送を開始する。転送中に、通信装置2は高優先度データ72aを受信する。通信装置2は、高優先度データ72aを受信すると同時に(データバッファに格納開始するとすぐに)、低優先度データ71cの転送を中止(破棄)し、高優先度データ72aの主メモリ4への転送を開始する(符号72c)。通信装置2は、高優先度データ72cの転送が完了すると、低優先度データの最初から再度転送する(符号71d)。
§4 作用・効果
以上のとおり、本実施形態1に係る情報処理装置1は、通信装置2が受信データ6(パケット)を受信後、パケットの送信元アドレスから優先度を判定し、該当する優先度のデータバッファ222に受信データ6を振り分ける。その後、転送調停部223により、転送順を制御され、主メモリ4に受信データ6を転送する。この時、転送中の受信データ6よりも優先度が高いデータバッファ222に受信データ6が振り分けられた場合、転送を中断し、直ちに該高優先度の受信データ6の転送を開始する。そのため、本実施形態1に係る情報処理装置1では、例えば優先度の異なる複数の受信キューによって優先度振分を行って受信処理する従来技術よりも、高優先度の受信データがデータバッファ上に滞留する時間が短く、低遅延な処理が実現できる。
また、複数の優先度に応じて複数の受信キューを設ける従来技術では、複数の受信キューに対応して主メモリに複数の受信ディスクリプタ領域および複数の受信データ領域を設ける必要が生じる。そのため、OAまたはドライバによるメモリ管理が複雑になり、CPUの処理負荷と遅延が増加する。
本実施形態の通信装置2は、1つの受信キュー22の中で、複数の優先度の受信データの転送順の調停を行う。それゆえ、受信キューおよび受信ディスクリプタ領域の増加を抑制し、CPU3の処理負荷の低減および遅延の低減を実現することができる。
図5を参照されたい。参考例1に対して、本実施形態の動作例1の場合、低優先度データ71aの受信とほぼ同時に、低優先度データ71cの転送を開始する。その後、低優先度データ71cの転送中に、高優先度データ72aを受信する。低優先度データ71cの転送を中断し、転送済みのデータを破棄し、直ちに高優先度データ72cの転送を開始する。ここで、データを破棄するとは、主メモリ4において転送済みのデータ(受信データの一部)を保持せず高優先度データ72cで上書きすることを意味する。高優先度データ72cの転送完了後、先ほど破棄した低優先度データ71aを主メモリに再度転送を行う。そのため、処理順が前後し高優先度データが遅延なく転送でき、リアルタイム性が向上する。
〔実施形態2〕
本発明の他の実施形態について、以下に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
実施形態1では、受信と同時に主メモリへのデータ転送を行うことと規定したが、転送タイミングはこの限りではなく、受信完了時に(1つの受信データ6全体のデータバッファ222への格納が完了してから)主メモリ4への転送を開始してもよい。
図6は、実施形態2の動作例2と参考例2との受信データの処理順を説明するタイミングチャートである。優先度が2段階でのモデルケースであり、通信装置2は低優先度データ71a、および高優先度データ72aを順に受信したとする。高優先度データ72aに関しては、低優先度データ71aの主メモリへの転送処理完了前に受信が完了(データバッファ222への格納が完了)したものとする。
参考例2では、通信装置は、低優先度データ71a全体を受信完了すると同時に、主メモリへの低優先度データ71eの転送を開始する。低優先度データ71eの転送中に、高優先度データ72a全体の受信を完了(データバッファへの格納が完了)するが、低優先度データ71eの転送に占有されているため、高優先度データ72aの転送を開始できない。低優先度データ71eの転送完了後、主メモリへの高優先度データ72eの転送を行う。そのため、高優先度データ72eの転送は遅延する。
本実施形態の動作例2では、通信装置2は、低優先度データ71a全体を受信完了すると同時に、主メモリ4への低優先度データ71fの転送を開始する。通信装置2は、低優先度データ71fの転送中に、高優先度データ72a全体の受信を完了(データバッファへの格納が完了)する。転送中の低優先度データの優先度よりも、受信完了した高優先度データの優先度が高いため、通信装置2は、低優先度データの転送を直ちに中断し、転送済みのデータを破棄する。その後、通信装置2は、高優先度データ72aの主メモリ4への転送を開始する(符号72f)。高優先度データ72fの転送完了後、再度、中断した低優先度データ71g全体の転送を行う。そのため、処理順が前後し高優先度データが遅延なく転送できる。
また、受信完了後に転送を行うため、本実施形態では、受信中にノイズなどでデータ欠損があった場合でも、通信装置2においてデータ欠損を確認・補充後に転送を行える利点がある。
〔変形例1〕
実施形態1、2では、優先度判定部221は、受信データの送信元MACアドレス領域62または送信元IPアドレス領域65または予約領域63,66に記載の送信元アドレスに基づき、優先度の判定を行っているが、この限りではない。外部装置において、受信データ6の予約領域63,66に該受信データ6の優先度を示す優先度情報を記載してもよい。この場合、優先度判定部221は、該受信データ6に含まれる優先度情報に基づいて優先度を判定する。この場合、優先度記憶部23を省略することができる。これにより、同じ外部装置からの複数の受信データ6の中でも異なる優先度を設定することができる。
〔変形例2〕
実施形態1、2では、1つの受信キュー22は、複数の優先度に応じて複数のデータバッファ222を有しているが、この限りではない。1つの受信キューは、1つのデータバッファを有し、複数の優先度の受信データを1つのデータバッファに格納してもよい。この場合、データバッファは先入れ先出しではなく、転送調停部は、データバッファから優先度に応じて任意の順で受信データを取り出し可能である。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1 情報処理装置
2 通信装置
3 CPU
4 主メモリ
5 受信ディスクリプタ
6 受信データ
21 送受信ポート
22 受信キュー
23 優先度記憶部
24 インタフェース
31 OS
32 ドライバ
41 受信ディスクリプタ領域
42 受信データ領域
51 バッファアドレス領域
52 受信完了フラグ領域
54、63、66 予約領域
60、64 ヘッダ
61 IPフレーム
62 送信元MACアドレス領域
65 送信元IPアドレス領域
67 データ領域
71a、71b、71c、71e、71f、71g 低優先度データ
72a、72b、72c、72e、72f 高優先度データ
221 優先度判定部
222 データバッファ(第1バッファ、第2バッファ)
223 転送調停部
224 DMAC(転送部)
225 ディスクリプタバッファ(転送部)

Claims (8)

  1. 受信キューを備え、
    1つの前記受信キューは、
    ネットワークから受信した受信データの優先度を判定する優先度判定部と、
    前記受信データを格納するバッファと、
    前記バッファに格納されている前記受信データを主メモリに転送する転送部と、
    前記転送部が第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記転送部に前記第1優先度の受信データの転送を中止させ、前記第2優先度の受信データの前記主メモリへの転送を開始させる転送調停部と、を備え、
    前記転送部は、受信ディスクリプタが示す前記主メモリのデータ領域に前記受信データを転送するものであり、
    前記転送部は、前記転送調停部から前記第1優先度の受信データの転送を中止し、前記第2優先度の受信データの前記主メモリへの転送を開始する指示を受けると、前記第1優先度の受信データを転送するために用いていた受信ディスクリプタを再度用いて、前記第2優先度の受信データを前記主メモリのデータ領域に転送する、通信装置。
  2. 受信キューを備え、
    1つの前記受信キューは、
    ネットワークから受信した受信データの優先度を判定する優先度判定部と、
    前記受信データを格納するバッファと、
    前記バッファに格納されている前記受信データを主メモリに転送する転送部と、
    前記転送部が第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記転送部に前記第1優先度の受信データの転送を中止させ、前記第2優先度の受信データの前記主メモリへの転送を開始させる転送調停部と、を備え、
    前記バッファは、
    前記第1優先度の受信データを格納する第1バッファと、
    前記第2優先度の受信データを格納する第2バッファと、を含み、
    前記第1バッファは、前記第1優先度の受信データの前記主メモリへの転送が完了するまで、前記第1優先度の受信データの全体を保持し続ける、通信装置。
  3. 前記転送部は、前記第1優先度の受信データの一部を前記主メモリに転送してから転送を中止し、前記第2優先度の受信データを前記主メモリへ転送した後、前記第1優先度の受信データの最初から前記主メモリに再度転送する、請求項2に記載の通信装置。
  4. 前記優先度判定部は、前記受信データの送信元アドレスに基づいて前記受信データの優先度を判定する、請求項1から3のいずれか一項に記載の通信装置。
  5. 前記受信データは優先度情報を含み、
    前記優先度判定部は、前記優先度情報に基づいて前記受信データの優先度を判定する、請求項1から3のいずれか一項に記載の通信装置。
  6. ネットワークから受信した受信データを格納するバッファを有する受信キューを備える通信装置の制御方法であって、
    前記受信データの優先度を判定する優先度判定ステップと、
    前記バッファに格納されている前記受信データを、受信ディスクリプタが示す主メモリのデータ領域に転送する転送ステップと、
    第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記第1優先度の受信データの転送を中止させ、前記第1優先度の受信データを転送するために用いていた受信ディスクリプタを再度用いて、前記第2優先度の受信データを前記主メモリのデータ領域に転送することを開始させる受信調停ステップとを含む、通信装置の制御方法。
  7. ネットワークから受信した受信データを格納するバッファを有する受信キューを備える通信装置の制御方法であって、
    前記受信データの優先度を判定する優先度判定ステップと、
    前記バッファに格納されている前記受信データを主メモリに転送する転送ステップと、
    第1優先度の受信データを前記主メモリに転送しているときに、前記バッファが前記第1優先度より優先度が高い第2優先度の受信データを受信すると、前記第1優先度の受信データの転送を中止させ、前記第2優先度の受信データの前記主メモリへの転送を開始させる受信調停ステップと、を含み、
    前記バッファは、
    前記第1優先度の受信データを格納する第1バッファと、
    前記第2優先度の受信データを格納する第2バッファと、を含み、
    前記第1バッファには、前記第1優先度の受信データの前記主メモリへの転送が完了するまで、前記第1優先度の受信データの全体を保持し続けさせる、通信装置の制御方法。
  8. 請求項1または2に記載の通信装置として機能する集積回路であって、
    前記優先度判定部と、前記バッファと、前記転送部と、前記転送調停部と、として機能する、ハードウェアの論理回路が形成されていることを特徴とする集積回路。
JP2020041071A 2020-03-10 2020-03-10 通信装置、通信装置の制御方法、および集積回路 Active JP7435055B2 (ja)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2021145182A JP2021145182A (ja) 2021-09-24
JP7435055B2 true JP7435055B2 (ja) 2024-02-21

Family

ID=77671297

Family Applications (1)

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

Country Status (2)

Country Link
JP (1) JP7435055B2 (ja)
WO (1) WO2021181897A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288115A (ja) 2001-03-27 2002-10-04 Ricoh Co Ltd Usbコントローラ
JP2003318971A (ja) 2002-04-25 2003-11-07 Fujitsu Ltd ネットワークスイッチ装置およびネットワークスイッチ方法
JP2007088709A (ja) 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd パケット通信装置およびその処理方法
JP2018025879A (ja) 2016-08-08 2018-02-15 富士通株式会社 データ転送装置およびデータ転送方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3642626B2 (ja) * 1996-05-23 2005-04-27 三菱電機株式会社 フレーム組立装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288115A (ja) 2001-03-27 2002-10-04 Ricoh Co Ltd Usbコントローラ
JP2003318971A (ja) 2002-04-25 2003-11-07 Fujitsu Ltd ネットワークスイッチ装置およびネットワークスイッチ方法
JP2007088709A (ja) 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd パケット通信装置およびその処理方法
JP2018025879A (ja) 2016-08-08 2018-02-15 富士通株式会社 データ転送装置およびデータ転送方法

Also Published As

Publication number Publication date
JP2021145182A (ja) 2021-09-24
WO2021181897A1 (ja) 2021-09-16

Similar Documents

Publication Publication Date Title
US10778594B2 (en) Transfer control device, transfer control method, and computer program product
JP3452590B2 (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
JP4586031B2 (ja) パケットメモリを有するアービトレーションシステムとハブに基づくメモリシステムにおけるメモリ応答の方法
US8248945B1 (en) System and method for Ethernet per priority pause packet flow control buffering
WO2011089660A1 (ja) バス調停装置
US20050172091A1 (en) Method and an apparatus for interleaving read data return in a packetized interconnect to memory
JP7000088B2 (ja) 通知制御装置、通知制御方法及びプログラム
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
JP2008086027A (ja) 遠隔要求を処理する方法および装置
US11018986B2 (en) Communication apparatus, communication method, and computer program product
US7984210B2 (en) Method for transmitting a datum from a time-dependent data storage means
JP7354361B2 (ja) 処理装置、処理方法及びプログラム
EP1891503B1 (en) Concurrent read response acknowledge enhanced direct memory access unit
US6061748A (en) Method and apparatus for moving data packets between networks while minimizing CPU intervention using a multi-bus architecture having DMA bus
US12010045B2 (en) Packet processing device and packet processing method
JP7435055B2 (ja) 通信装置、通信装置の制御方法、および集積回路
CN111970213A (zh) 排队系统
JP7435054B2 (ja) 通信装置、通信装置の制御方法、および集積回路
JP2006217600A (ja) 通信システムにおける送信キューデータの移動方法及び装置
CN115955441A (zh) 一种基于tsn队列的管理调度方法、装置
JP7431848B2 (ja) 車両制御装置及びデータ転送制御方法
JP5293516B2 (ja) データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
JPH1040215A (ja) Pciバス・システム
JP2004318315A (ja) データ通信装置
JP2014211842A (ja) ネットワーク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231218

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150