JP2008299581A - データ転送制御装置 - Google Patents

データ転送制御装置 Download PDF

Info

Publication number
JP2008299581A
JP2008299581A JP2007144840A JP2007144840A JP2008299581A JP 2008299581 A JP2008299581 A JP 2008299581A JP 2007144840 A JP2007144840 A JP 2007144840A JP 2007144840 A JP2007144840 A JP 2007144840A JP 2008299581 A JP2008299581 A JP 2008299581A
Authority
JP
Japan
Prior art keywords
data
network
transfer
node
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007144840A
Other languages
English (en)
Other versions
JP4854598B2 (ja
Inventor
Satoyuki Fuse
智行 布施
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007144840A priority Critical patent/JP4854598B2/ja
Publication of JP2008299581A publication Critical patent/JP2008299581A/ja
Application granted granted Critical
Publication of JP4854598B2 publication Critical patent/JP4854598B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】リアルタイムネットワークに接続されるノードで送受信されるデータ量が増大している状況下でも、リンクスキャンタイムの周期を増大させず、またCPUにかかるデータ転送の負荷を増大させないデータ転送制御装置を得ること。
【解決手段】CPU11と、CPU11によって使用または生成されるデータを記憶するメインメモリ12と、ネットワーク30に接続されるノード10ごとに設けられた格納領域に、ノード10ごとのデータをリアルタイムに記憶するネットワーク用バッファメモリ14と、所定の周期ごとに、CPU11を介さずにネットワーク用バッファメモリ14と他のノードとの間のデータ転送処理を行うバッファメモリ用DMAコントローラ15と、ノード10ごとに設定された転送タイミングに基づいてCPU11を介さずにメインメモリ12とネットワーク用バッファメモリ14との間でデータの転送を行うDMAコントローラ16と、を備える。
【選択図】 図1

Description

この発明は、リアルタイムでデータの送受信を行うネットワークに接続された情報処理装置のメインメモリへのデータの格納を制御するデータ転送制御装置に関するものである。
複数の被制御機器を制御するプログラマブルコントローラなどの制御機器が複数接続してなる工業用ネットワークなどの制御システムでは、取り扱うデータがいつ交信されたかが明確であるようなリアルタイム性が要求される。たとえば、モータの回転速度が230回/秒というデータが、1秒前の計測値であるのか、10秒前の計測値であるのか、ということがわからないと、モータを制御することが困難となる。このようなリアルタイム性が必要とされるネットワークにおいて用いられる手法の一つにリンクスキャンという方式がある。リンクスキャンは、ネットワーク上で送受信されるデータを予め決め、それらを所定の周期で更新することで、リアルタイム性を確保する手法である。
リンクスキャンを用いたリアルタイムネットワーク(以下、略してリアルタイムネットワークともいう)を構成するノードは、通常、中央演算処理装置(Central Processing Unit、以下、CPUという)と、メインメモリと、ネットワークインタフェースと、を有する。メインメモリは、リアルタイムネットワークを構成するノードごとに、取り扱うデータにしたがって領域が分割される。そして、このメモリの割り当ての大きさは、全てのリアルタイムネットワークを構成するノードのメインメモリ間で同じ大きさとなっている。
このノードでデータを他のノードに送信する場合には、CPUは、送信したいデータを、メインメモリの自ノードに割り当てられた領域に格納し、これを、ネットワークインタフェースに渡す。ネットワークインタフェースは、渡されたデータをネットワーク上に流すことができる形式に変換して、ネットワークに接続される他ノードに送信する。一方、このノードで他ノードからデータを受信する場合には、ネットワークインタフェースがそのデータの受信処理を行い、CPUがそのデータをメインメモリのデータの送信元ノードに割り当てられた領域に書込む処理を行う。
通常、リアルタイム性が要求されるノードのCPUでは、自ノードのデータの他ノードへの送信処理と、他ノードからのデータの受信処理と、リアルタイムネットワークでの作業以外に必要なその他の動作処理と、を行う。
リンクスキャンでは、各ノードがそれぞれ1回ずつ順番にデータを送信するが、初めのノードが送信を開始し、最後のノードが送信を終了するまでの時間をリンクスキャンタイムという。このリンクスキャンタイムの1周期で、各ノードが全く同じデータをメインメモリに有することとなり、その時間でのデータの正しさが保証される。つまり、各ノードにとって必要なデータが必ず所定の周期(=リンクスキャンタイム)で転送され、いつのデータか(何回目のリンクスキャンのデータか)ということが明確になり、リアルタイム性が確保される。その結果、各ノード間で時間によってデータの値が異なる、送信データが既に受け取られたかどうかわからない、といった問題を回避することができる。
しかし、上述したように、リンクスキャンタイムの1周期の間に、CPUが、ネットワークに流すデータをメインメモリに書込むとともに、ネットワークを流れるデータをメインメモリへ転送する処理を行う必要があるため、ネットワークにデータが流れている間は、CPUはデータの転送処理に追われてしまう。そのため、CPUには過剰の負荷がかかっていた。
ところで、リアルタイム性が要求されないネットワークに接続されたパーソナルコンピュータなどの情報処理端末についてであるが、CPUに負荷をかけない処理方法として、CPUを介さずにメインメモリへのデータの書込みを行うDMA(Direct Memory Access)転送制御が知られている。
従来のDMA転送制御として、たとえば、パーソナルコンピュータや周辺装置から構成される外部装置に複数の論理的に割り当てられた論理チャネルを有する通信ケーブルを介して接続される情報処理装置におけるDMA転送制御についての技術が提案されている(たとえば、特許文献1参照)。この情報処理装置では、外部装置からのデータを受信するインタフェースコントローラに、通信ケーブルからのデータを、そのデータが送られてきた論理チャネルに対応するチャネルメモリ制御部のバッファメモリに格納する。その後、DMA制御部は、所定期間内におけるデータの受信回数が最大となるチャネルをDMA転送の対象として選択する。そして、この選択に基づいて、バスセレクタとDMAコントローラは、選択されたチャネルメモリ制御部のバッファメモリからメインメモリにデータを転送する。
特開2006−119890号公報
上述したリアルタイムネットワークを有する制御システムでは、制御システムの大規模化や制御の高精度化などの要因によって、近年、送受信されるデータ量が増大してきている。その一方で、ユーザからは、リンクスキャンタイムの短周期化の要求がなされるようになってきている。たとえば、制御システムの大規模化などの影響でデータ量が2倍になると、処理時間も2倍必要になり、それに応じてリンクスキャンタイムもほぼ2倍必要になってしまう。しかし、これではリンクスキャンタイムの短周期化の要求に応えることができない。つまり、上述した従来の方法では、データ量の増大により、ノードのCPUにかかるデータ転送の負荷がさらに大きくなるだけであり、リンクスキャンタイムの短縮化という要求を満たすことができないという問題点があった。
また、特許文献1に記載のDMA転送制御では、所定期間内の受信回数が最大のチャネルのデータをメインメモリに転送するようにしているが、一度に大量のデータが全てのチャネルに送信されてしまうような環境下においては、DMA転送の処理にかかる負荷を低減することができない。また、DMA転送中は、アドレス/データバスが占有されてしまい、その間、CPUはアドレス/データバスを用いた処理を行うことができないという問題点もあった。
さらに、この特許文献1に記載のDMA転送制御では、情報処理装置が外部装置からのデータを受信できない場合、たとえば上記したように一度に大量のデータが全てのチャネルに送信されてしまうような環境では、1つのチャネルごとにメインメモリへのデータのDMA転送を行うので、他のチャネルへのデータを情報処理装置で受信することができない。つまり、他のチャネルは、そのチャネルがDMA転送の処理が許可されるまでは、そのチャネルからのデータを受信することができない。その結果、データ受信のリアルタイム性が損なわれてしまい、リアルタイム性を要求されるような環境下で使用される情報処理装置では、特許文献1に記載のDMA転送制御を使用することができないという問題点もあった。
この発明は、上記に鑑みてなされたもので、リアルタイムネットワークに接続されるノードにおいて、送受信されるデータ量が増大している状況下でも、リンクスキャンタイムの周期をそのデータ量に比例して増大させることなく、またCPUにかかるデータ転送の負荷を増大させないデータ転送制御装置を得ることを目的とする。
上記目的を達成するため、この発明にかかるデータ転送制御装置は、ネットワークに接続される他のノードとの間でリンクスキャンの周期でデータを送受信し、前記データを用いて演算処理を行うデータ転送制御装置であって、前記他のノードからのデータを用いて演算を行うとともに、前記他のノードに送信するデータを生成する中央演算処理手段と、前記中央演算処理手段によって使用されまたは生成されるデータを記憶する主記憶手段と、前記ネットワークに接続されるノードごとに設けられた格納領域に、前記ノードからのデータをリンクスキャンの周期ごとに記憶するネットワーク用一時記憶手段と、リンクスキャンの周期を基にして定められた転送周期で、前記ネットワーク用一時記憶手段から前記主記憶手段へデータの転送を行う転送制御手段と、を備えることを特徴とする。
この発明によれば、中央演算処理手段がネットワークを流れるデータの送受信処理を行う必要がなく、送受信されるデータ量が増大しても中央演算処理手段にかかる負荷を減らすことができる。その結果、今までネットワークでの転送処理に使用されていた時間を、中央演算処理手段によるネットワークで必要な作業以外の処理時間に割り当てることができるとともに、余った時間を削減することができるので、リンクスキャンタイムを短くすることができるという効果を有する。また、送受信されるデータの中央演算処理手段による使用頻度やその重要度、更新周期などによって、データを主記憶手段に格納するようにしたので、使用されないデータを主記憶手段に転送することがなくなり、処理の無駄を省くこともできる。
以下に添付図面を参照して、この発明にかかるデータ転送制御装置の好適な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、以下の説明では、この発明にかかる実施の形態との比較として、最初に従来のリアルタイムネットワークで構成される制御システムにおける通信方法とCPUの動作の概要について説明し、その後にこの発明による実施の形態について説明する。
(従来の制御システムにおける通信)
図7は、リアルタイムネットワークを有する制御システムの構成の従来例を模式的に示す図である。この例では、制御システムは、パーソナルコンピュータなどの情報処理端末や中継器などの3つのネットワークノード(以下、単にノードという)100(100A〜100C)がネットワーク110を介して接続される。各ノード100A〜100Cは、ノード全体の処理を行うCPU101と、ネットワーク110に接続する全てのノード100A〜100Cのデータを格納するメインメモリ102と、ネットワーク110との通信を行うネットワークインタフェース103と、がアドレス/データバスを介して相互に接続される。
図8は、ノードのメインメモリ内のデータ構成の一例を示す図である。メインメモリ102は、取り扱うデータにしたがってノード100ごとに領域が分割される。その各ノード100に対するメインメモリ102の割り当ての大きさは、全てのノード100のメインメモリ102間で同じ大きさになっている。図に示されるように、各ノード100のメインメモリ102のアドレス「0000 0000」〜「0000 0FFF」には、ノード100Aのデータを格納するための領域が割り当てられており、アドレス「0000 1000」〜「0000 3FFF」には、ノード100Bのデータを格納するための領域が割り当てられており、アドレス「0000 4000」〜「0000 5FFF」には、ノード100Cのデータを格納するための領域が割り当てられている。これによって、各ノード100A〜100Cのメインメモリ102間ではデータの共有がなされる。
このような構成のノード100におけるデータの通信処理について説明する。最初に、リンクスキャンタイムについて説明する。図9は、リンクスキャンタイムの概要を示す図である。この図に示されるように、ネットワーク110に接続されるノード100A〜100Cが、ネットワーク110上で送受信するデータを予め決めておき、そのデータを所定の周期で交信することで、リアルタイム性を確保している。このデータを交信する所定の周期のことをリンクスキャンタイムという。
つぎに、データの送受信方法について説明する。図10は、リアルタイムネットワークでの通信時におけるCPUとメインメモリの動作の概略を示す図である。この図において、横軸は時間を表している。また、この図では、ネットワークに3つのノードS,T,Uが接続されており、それぞれがリンクスキャンタイム中にデータs(n),t(n),u(n)を送信し、相互に同期を取っているものとする。ここで、nは自然数を示し、リンクスキャンの回数を示している。さらに、この図10では、ノードUでのデータ通信時におけるCPU101とメインメモリ102の動作を示している。
まず、リンクスキャンの1周期の間に、CPU101は、ネットワークインタフェース103から他ノードSからのデータs(n)の受信通知を受けると、メインメモリ102のノードSに割り当てられた領域へデータs(n)の転送処理を行う。続いて、ネットワークインタフェース103から他ノードTからのデータt(n)の受信通知を受けると、メインメモリ102のノードTに割り当てられた領域へデータt(n)の転送処理を行う。これにより、他ノードS,Tのデータがメインメモリ102の所定の領域に書込まれる。
その後、CPU101は、メインメモリ102の自ノードUに割り当てられた領域に格納されている自ノードUのデータu(n)を操作し、ネットワークインタフェース103に渡す。ネットワークインタフェース103では、渡されたデータu(n)をネットワーク110で流れる形式のデータに変換して、ネットワークを介して他ノードS,Tに送信する処理を行う。
そして、最後にネットワークでの作業以外のデータ処理(以下、その他の作業処理という)を行う。このように、CPU101は、ネットワークを流れるデータとメインメモリ102との間の転送処理を行うために、ネットワークにデータが流れている間は、CPU101はデータの転送処理に追われることになる。そして、このデータ転送処理は、リンクスキャンタイムごとに実行される。これにより、各ノードS〜Uは、データの転送が完了した時点で、それぞれのメインメモリ102が全く同じデータを持つことになり、その時間でのデータの正しさが保証される。また、各ノードS〜U間で時間によってデータの値が異なる、送信したデータが既に受け取られたかどうかわからない、というような問題は発生せず、何回目のリンクスキャンのデータかということが明確になり、リアルタイム性が確保される。
しかし、この図10で示されるように、従来のリアルネットワークでの通信においては、データ量が2倍になると、処理時間も2倍必要になり、その結果リンクスキャンタイムも2倍必要になってしまう。また、その他の作業処理では、ネットワークでの作業以外のデータ処理を行う必要があり、ある程度の余裕が必要となるので、この時間を削ることはできない。このように、従来のリアルネットワークでの通信では、CPU101にかかる負荷は、データ量の増大とともに増大していく傾向にあり、それにつれてリンクスキャンタイムも長くなっていた。
また、図10の1回目のリンクスキャンタイムのその他の作業処理では、CPU101は受信したデータs(1),t(1)を用いた処理は何も行っていない。しかし、2回目のリンクスキャンタイムでは、メインメモリ102に受信したデータのうちデータs(2)のみを用いて処理を行っている。また、3回目のリンクスキャンタイムでは、受信したデータのうちデータt(3)のみを用いて処理を行うとともに、つぎの(4回目の)リンクスキャンタイムで送信するデータu(4)の処理を行っている。そして、4回目のリンクスキャンタイムでは再び受信したデータに対して何の処理も行われていない。このように、メインメモリ102に転送したデータの全てがCPU101による処理に用いられるわけではなく、一部しか使用されない。そのために、毎回メインメモリ102にデータを転送することは無駄が多かった。
実施の形態.
制御対象である被制御機器と接続されるプログラマブルコントローラなどの制御装置がネットワークを介して接続される制御システムにおいて、制御装置の中には、高い精度で制御を行わなければならないものもあれば、低い精度で制御を行えばよいものもある。たとえば、この精度の観点からは、高い精度で制御を行わなければならないものほど、その制御に必要なデータを短い周期で更新する必要があるが、低い精度で制御を行えばよいものでは、その制御に必要なデータの更新周期を長くしても構わない。
また、上述した図10に示されるように、メインメモリに転送されたデータの全てがCPUによる処理に使用されているわけではない。そのため、CPUによって使用される頻度に応じて、メインメモリへのデータの転送を行うようにしてもよい。
そこで、この実施の形態では、ネットワークに接続される他ノードとのデータの通信を、CPUを介さずに行い、リアルタイムでデータを保持するネットワーク用バッファメモリをノードに備える構成とし、また、たとえばCPUによる処理時にデータが必要な周期などの各ノードに応じた所定の周期で、各ノードのデータをネットワーク用バッファメモリとメインメモリとの間で、CPUを介さずに転送するようにしている。たとえば、高い精度で制御を行う必要があるデータほど、短い周期でメインメモリに格納し、低い精度で制御を行えばよいデータほど長い周期でメインメモリに格納すればよい。この周期的に更新を行うデータとしては、被制御機器の制御を行うための入力データや出力データなどの制御データを例示することができるが、他のデータであってもよい。
図1は、この発明が適用されるリアルタイムネットワークを用いた制御システムの構成を模式的に示す図である。この図1の例では、制御システムは、パーソナルコンピュータなどの情報処理端末や中継器などの3つのノード10(10A〜10C)がネットワーク30を介して接続される。この図1では、ノード10Aのみに内部構成が示されているが、他のノード10B,10Cも同様の構成を有している。また、このノード10が、この発明によるデータ転送制御装置に該当する。
各ノード10A〜10Cは、CPU11と、メインメモリ12と、ネットワークインタフェース13と、ネットワーク用バッファメモリ14と、バッファメモリ用DMAコントローラ15と、DMAコントローラ16と、DMA起動タイミングカウンタ17と、を備える。
CPU11は、自ノード10全体の処理を行い、メインメモリ12は、ネットワーク30に接続する全てのノード10A〜10Cのデータを格納する。データとしては、たとえば、ノードに接続される被制御機器を制御するためのデータや、被制御機器から出力されるデータなどを例示することができる。ネットワークインタフェース13は、メインメモリ12とネットワーク30との間でデータの送受信を行う。ここで、CPU11は、特許請求の範囲における中央演算処理手段に対応し、メインメモリ12は、同じく主記憶手段に対応している。
ネットワーク用バッファメモリ14は、他ノードからのデータをリンクスキャンタイムごとに全て格納し、CPU11によって処理され、他ノードに所定の周期ごとに転送されるデータも格納する。このネットワーク用バッファメモリ14は、ネットワーク30に接続されるノード10A〜10Cのそれぞれに対して、データを格納する領域が設けられている。このネットワーク用バッファメモリ14は、従来例の図8で示したメインメモリの構成と同様であり、これまではネットワークインタフェースで他ノードからのデータを受信すると、直接にCPUがメインメモリに転送していたものを、後述するバッファメモリ用DMAコントローラ15によって、一旦このネットワーク用バッファメモリ14内に格納するようにしている。なお、バッファメモリ用DMAコントローラ15には、内部にレジスタを有し、その中に、他のノード10から受信したデータを、ネットワーク用バッファメモリ14内のどのアドレスに転送するか、またはネットワーク用バッファメモリ14内のどのアドレスのデータをどのノード10に転送するかを示すネットワークデータ転送設定情報も格納される。なお、このネットワーク用バッファメモリ14は、特許請求の範囲におけるネットワーク用一時記憶手段に対応する。
図2は、ネットワーク用バッファメモリ内のデータ構成の一例を示す図である。ネットワーク用バッファメモリ14は、取り扱うデータにしたがってノード10ごとに領域が分割され、そのメモリの割り当ての大きさは、全てのノード10A〜10Cのネットワーク用バッファメモリ14間で同じ大きさになっている。図に示されるように、各ノード10A〜10Cのネットワーク用バッファメモリ14のアドレス「0000 0000」〜「0000 0FFF」には、ノード10Aのデータを格納するための領域が割り当てられており、アドレス「0000 1000」〜「0000 3FFF」には、ノード10Bのデータを格納するための領域が割り当てられており、アドレス「0000 4000」〜「0000 5FFF」には、ノード10Cのデータを格納するための領域が割り当てられている。これによって、各ノード10A〜10Cのネットワーク用バッファメモリ14間ではデータの共有がなされる。
バッファメモリ用DMAコントローラ15は、ネットワークインタフェース13で受信したデータをネットワーク用バッファメモリ14に転送する。このとき、バッファメモリ用DMAコントローラ15の内部レジスタに格納されたネットワークデータ転送設定情報に基づいて、受信したデータの送信元(ノード10)に対応したネットワーク用バッファメモリ14の所定の領域に、データを格納する。このバッファメモリ用DMAコントローラ15は、CPU11を介さずにデータをネットワーク用バッファメモリ14に転送するものであり、ネットワーク用バッファメモリ専用に設けられたデータ転送機能である。このバッファメモリ用DMAコントローラ15により、CPU11による毎周期のデータの転送が行われず、CPU11は別の処理を実行できるようになる。なお、このバッファメモリ用DMAコントローラ15は、特許請求の範囲における一時記憶手段用転送制御手段に対応している。
DMAコントローラ16は、DMA起動タイミングカウンタ17からの制御信号に基づいて、ネットワーク用バッファメモリ14に格納されるデータをメインメモリ12に転送する。
DMA起動タイミングカウンタ17は、内部にレジスタを有し、その中に、リンクスキャンの何回目ごとに、ネットワーク用バッファメモリ14からメインメモリ12にデータを転送するかを示す転送設定情報を格納し、この転送設定情報に基づいて、DMAコントローラ16を起動する。また、DMA起動タイミングカウンタ17は、転送タイミングが発生すると、割り込み信号を使って、データの転送が発生したことと、DMAコントローラ16がメインメモリ12を使用するために、CPU11によるメインメモリ12の使用を禁じることを示す割り込み信号をCPU11に伝える。なお、DMAコントローラ16とDMA起動タイミングカウンタ17は、特許請求の範囲における転送制御手段に対応し、転送タイミングは、同じく転送周期に対応している。
図3は、転送設定情報の一例を示す図であり、図4は、メインメモリとネットワーク用バッファメモリとのデータの割り当て状態の詳細を示す図である。図3に示されるように、転送設定情報は、ネットワーク用バッファメモリ14とメインメモリ12との間でデータを転送する周期を定める「転送タイミング」と、転送タイミングが発生した場合に、データの転送先または転送元のネットワーク用バッファメモリ14のアドレスを示す「バッファアドレス」と、データの転送元または転送先のメインメモリ12のアドレスを示す「メインメモリアドレス」と、データの転送方向を示す「転送方向」と、データの転送量を示す「転送データ量」と、を含む。なお、転送タイミングは、リンクスキャンタイムの何周期ごとに転送を行うかを示すものである。
また、図4に示されるように、ネットワーク用バッファメモリ14には、ノード10Aのデータaは、アドレス0x3850〜0x39BFに格納され、ノード10Bのデータbは、アドレス0x4100〜0x414Fに格納され、ノード10Cのデータcは、アドレス0x4630〜0x466Fに格納される。また、メインメモリ12には、ノード10Aのデータaは、アドレス0x0010〜0x007Fに格納され、ノード10Bのデータbは、アドレス0x0100〜0x014Fに格納され、ノード10Cのデータcは、アドレス0x0200〜0x023Fに格納される。
この図4に示されるようなメインメモリ12とネットワーク用バッファメモリ14とのデータの割り当ての場合の転送設定情報が図3に示されている。すなわち、図3の転送設定情報において、行301に格納されるデータは、ノード10Aのデータaに対する転送設定情報であり、行302に格納されるデータは、ノード10Bのデータbに対する転送設定情報であり、行303に格納されるデータは、ノード10Cのデータcに対する転送設定情報である。ただし、この図3と図4に示される例はノード10Cの設定であって、ノード10A,10Bでは、それぞれの設定がなされる。
さらに詳細には、行301に示される内容は、ネットワーク用バッファメモリ14のアドレス0x3850から60hの転送データ量のデータを、メインメモリ12のアドレス0x0010に転送タイミング1で転送することを示している。また、行302に示される内容は、ネットワーク用バッファメモリ14のアドレス0x4100から30hの転送データ量のデータを、メインメモリ12のアドレス0x0100に転送タイミング3で転送することを示している。さらに、行303に示される内容は、メインメモリ12のアドレス0x0200から40hの転送データ量のデータを、ネットワーク用バッファメモリ14のアドレス0x4630に転送タイミング2で転送することを示している。この転送設定情報に示されるように、ネットワーク用バッファメモリ14とメインメモリ12との間のCPU11を介さないデータの転送が行われる。
以上の構成を有するノード10において、CPU11と、メインメモリ12と、ネットワーク用バッファメモリ14と、バッファメモリ用DMAコントローラ15と、DMAコントローラ16と、DMA起動タイミングカウンタ17と、はそれぞれアドレス/データバスを介して相互に接続される。また、DMAコントローラ16とネットワーク用バッファメモリ14とは、アドレス/データバスを介して接続される。さらに、バッファメモリ用DMAコントローラ15は、ネットワークインタフェース13とネットワーク用バッファメモリ14と、アドレス/データバスを介して接続される。また、ネットワークインタフェース13とDMA起動タイミングカウンタ17との間と、DMA起動タイミングカウンタ17とDMAコントローラ16との間で、制御信号がやり取りされ、DMA起動タイミングカウンタ17からCPU11へ割り込み信号が出力される。
ここで、ネットワーク用バッファメモリ14とメインメモリ12との間でデータ転送の周期をノード10ごとに変化させることについて説明する。CPU11でネットワークのデータを扱うには、ネットワーク用バッファメモリ14のデータをメインメモリ12に転送する必要があるが、全てのデータを転送すると、図10で示したように従来のリアルネットワークでの通信のように、CPUの負荷が大きくなってしまう。ところで、図1で、たとえばノード10A〜10Cがプログラマブルコントローラなどの制御装置や、この制御装置によって制御される被制御機器で構成される場合を考える。また、データは、ノード10Aが処理するデータa、ノード10Bが処理するデータb、およびノード10Cが処理するデータcの3種類であるとする。そして、これらの3種類のデータa,b,cはそれぞれ異なった意味合いのデータであるものとする。たとえば、データaはモータの回転速度を示し、データbはモータの温度を示し、データcはモータの消費電流を示すものとする。
このとき、モータの回転速度は、短い時間で変化するため、できる限り早い周期でデータを取得する必要がある。一方、温度は変化が遅く、比較的遅い周期でデータを取得しても問題がない。そこで、それぞれのデータのメインメモリ12へのデータの取得タイミングまたはメインメモリ12からネットワーク用バッファメモリ14へのデータ転送タイミングを、リンクスキャンの毎周期ではなく、2周期に1回、3周期に1回などのように重み付けを行って、重み付けに応じてデータの取得頻度または転送頻度を下げるようにした。たとえば、ここでは、図4に示されるように、データaに対しては転送頻度を「1」に設定し、データbに対しては転送頻度を「3」に設定し、データcに対しては転送頻度を「2」に設定したものとする。
図5は、この発明によるデータの転送方法の概念を模式的に示す図である。ここでは、ノード10Cのメインメモリ12とネットワーク用バッファメモリ14の様子を示しており、図4の転送設定情報に基づいて転送が行われるものとする。リンクスキャンが開始される前には、メインメモリ12にはデータは格納されていないものとする。また、ネットワーク用バッファメモリ14はリンクスキャン開始前なので、a(0),b(0),c(0)となっている。
その後、リンクスキャンの1回目が開始されると、ネットワーク30に接続されるノード10A,10Bからデータa(1),b(1)がネットワークインタフェース13を介して、バッファメモリ用DMAコントローラ15によってネットワーク用バッファメモリ14のそれぞれの領域に格納される。
データaについては、図4の転送設定情報によって1周期ごとに転送が行われるので、DMA起動タイミングカウンタ17がCPU11に割り込み信号を出力し、CPU11はメインメモリ12の使用を中止する。その後、データa(1)がネットワーク用バッファメモリ14からメインメモリ12へとDMAコントローラ16によって転送される。なお、このとき、データb(1),c(1)は、転送設定情報における転送タイミングとなっていないので、ネットワーク用バッファメモリ14からメインメモリ12へのデータb(1)の転送と、メインメモリ12からネットワーク用バッファメモリ14へのデータc(1)の転送は行われない。以上により、1回目のリンクスキャンが終了する。
ついで、リンクスキャンの2回目が開始されると、1回目のリンクスキャンと同様に、データa(2),b(2)がネットワーク用バッファメモリ14に格納される。また、CPU11からは自ノード10Cに関係するデータc(2)が作成され、メインメモリ12の対応する領域に格納される。
データaについては1周期ごとに転送が行われ、データcについては2周期ごとに転送が行われるので、DMA起動タイミングカウンタ17がCPU11に割り込み信号を出力し、CPU11はメインメモリ12の使用を中止する。データa(2)については、1回目のリンクスキャンと同様に、ネットワーク用バッファメモリ14からメインメモリ12へと転送される。また、データc(2)については、メインメモリ12からネットワーク用バッファメモリ14へとDMAコントローラ16によって転送される。このとき、データb(2)は、転送タイミングではないので、ネットワーク用バッファメモリ14からメインメモリ12へのデータ転送は行われない。以上により、2回目のリンクスキャンが終了する。
さらに、リンクスキャンの3回目が開始されると、1回目のリンクスキャンと同様に、データa(3),b(3)がネットワーク用バッファメモリ14に格納され、データc(2)がCPU11からメインメモリ12に格納される。その後、データa(3)については1周期ごとに転送が行われ、データbについては3周期ごとに転送が行われるので、DMA起動タイミングカウンタ17がCPU11に割り込み信号を出力し、CPU11はメインメモリ12の使用を中止する。そして、データa(3),b(3)がネットワーク用バッファメモリ14からメインメモリ12へ転送される。このとき、データc(3)については、転送タイミングではないので、メインメモリ12からネットワーク用バッファメモリ14へのデータ転送は行われない。以上により、3回目のリンクスキャンが終了する。
この後は、以上のように、データaについては、毎周期ごとにネットワーク用バッファメモリ14からメインメモリ12へのデータ転送が行われ、データbについては、mを自然数とすると、周期3mごとにネットワーク用バッファメモリ14からメインメモリ12へのデータ転送が行われ、データcについては、周期2mごとにメインメモリ12からネットワーク用バッファメモリ14へのデータ転送が行われる。
つぎに、ノード10内のCPU11、メインメモリ12およびネットワーク用バッファメモリ14の処理について説明する。図6は、この発明によるノード内の処理の様子を模式的に示す図である。なお、この説明では、ネットワークに3つのノードS,T,Uが接続されており、それぞれがリンクスキャンタイム中にデータs(n),t(n),u(n)を送信し、相互に同期を取っているものとする。ここで、nは自然数を示し、リンクスキャンの回数を示している。また、図の横軸は時間を示している。
各リンクスキャンタイムにおいて、ノードSが所定のタイミングで自ノードのメインメモリ12にあるデータs(n)をネットワーク用バッファメモリ14に転送し、さらにネットワークインタフェース13がネットワークを介してノードT,Uに順に送信する。ついで、ノードTも所定のタイミングで自ノードのメインメモリ12にあるデータt(n)をネットワーク用バッファメモリ14に転送し、さらにネットワークインタフェース13を介してノードU,Sに順に送信する。そして、ノードUも所定のタイミングで自ノードのメインメモリ12にあるデータu(n)をネットワーク用バッファメモリ14に転送し、さらにネットワークインタフェース13を介してノードS,Tに順に送信する。
これにより、図6に示されるノードUでは、各リンクスキャンタイムにおいて、バッファメモリ用DMAコントローラ15が、ネットワークインタフェース13に到達したノードS,Tからのデータs(n),t(n)をネットワーク用バッファメモリ14に転送する。また、バッファメモリ用DMAコントローラ15は、自ノードUのデータu(n)を、ネットワークインタフェース13へ転送し、ネットワークインタフェース13はデータu(n)をネットワークに接続されるノードS,Tへと送信する。
各リンクスキャンタイム内のネットワーク用バッファメモリに対するデータの送受信処理は、上述したようにバッファメモリ用DMAコントローラ15によって行われるので、CPU11がその処理に追われることはない。そのため、データ転送中においても、CPU11はネットワークでの作業以外のその他の動作処理を実行することができる。
1回目のリンクスキャンタイム中では、ノードUのCPU11は、受信したデータの処理を行わないので、ネットワーク用バッファメモリ14からメインメモリ12への転送処理が行われない。そのため、1回目のリンクスキャンタイム中では、CPU11は、空き時間が多く、ネットワークでの作業以外のその他の動作処理を実行することができる。
2回目のリンクスキャンタイム中では、ネットワーク用バッファメモリ14中のノードSに対応する領域からデータs(2)がメインメモリ12へとDMAコントローラによって転送される。そして、CPU11は、このデータs(2)を使用して所定の処理を実行する。なお、CPU11は、このデータs(2)を使用した処理以外の時間では、空き時間としてその他の動作処理を実行することが可能である。
3回目のリンクスキャンタイム中では、ネットワーク用バッファメモリ14中のノードTに対応する領域からデータt(3)がメインメモリ12へとDMAコントローラ16によって転送される。そして、CPU11は、このデータt(3)を使用して所定の処理を実行する。なお、CPU11は、このデータt(3)を使用した処理以外の時間では、あき時間として、その他の動作処理を実行することが可能である。
4回目のリンクスキャンタイム中では、CPU11は、他ノードS,Tに送信するためのデータu(4)を生成する処理を行い、そのデータu(4)をメインメモリ12の自ノードUに割り当てられた領域に格納する。そして、DMAコントローラ16は、メインメモリ12中のデータu(4)をネットワーク用バッファメモリ14のノードUに割り当てられた領域に格納する。ここでも、CPU11は、データu(4)を生成する処理以外の時間では、空き時間として、その他の動作処理を実行することができる。
上記で示したように、バッファメモリ用DMAコントローラ15とDMAコントローラ16を設けることによって、ネットワークを介したデータの転送処理をCPU11が行うことがないので、その分、CPU11は他の処理を実行することができる。その結果、リンクスキャンタイムを短縮化することが可能である。
図10に示した従来のノード内の処理に比して、図6に示されるこの実施の形態によるノード内の処理では、他ノードからのデータをネットワーク用バッファメモリ14に格納し、このネットワーク用バッファメモリ14に格納されたデータごとに所定の周期でメインメモリ12にDMAによって転送するようにしたので、メインメモリ12へのデータの転送とメインメモリ12からネットワーク用バッファメモリ14へのデータの転送をCPU11が処理することがないので、CPU11にかかる負荷を削減することができる。そして、従来、CPUが実行していたネットワークを用いたデータ転送処理に要した時間を他の処理に振り向けることができ、そのうちの余った時間を短縮化することも可能である。
また、たとえばCPU11がメインメモリ12に転送したデータを用いる頻度に応じて、ネットワーク用バッファメモリ14からメインメモリ12へとデータを転送するようにすれば、メインメモリ12へのデータ転送の無駄を省くこともできる。
なお、上述した説明では、転送設定情報は、ネットワークに接続されるノード10ごとに設定するようにしていた。しかし、ノード10で処理されるデータは、1種類ではなく、複数種類ある場合も存在する。そこで、図3に示される転送設定情報において、各ノード10に対して割り当てられた領域を、そのノード10が扱うデータ種類の数にさらに分割して、分割した各領域をデータ種類に応じて割り当て、ノード種類とデータ種類に応じて転送タイミングを設定することも可能である。
この実施の形態によれば、ネットワークに接続される他ノードとの通信に使用されるデータを格納するネットワーク用バッファメモリ14を設け、このネットワーク用バッファメモリ14へのデータの転送処理を、DMAを用いて行うようにしたので、他ノードとの間のデータ転送をCPU11が処理する必要がなくなり、CPU11にかかる負荷を従来に比して削減することができるという効果を有する。
また、ネットワーク用バッファメモリ14とメインメモリ12との間のデータ転送は、データごとに予め設定された周期で、DMAを用いて行われるようにしたので、CPU11にかかる負荷を削減することができる。以上のように、従来CPUで実行していたネットワークでのデータ転送処理をCPU11で行わないようにしたので、その分、CPU11全体の動作に余裕ができ、その他の動作処理に振り向けることができる。そして、余った時間を短縮化することができるため、リンクスキャンタイムも従来に比して短くすることができる。
さらに、CPU11が処理する際に必要なデータのみをメインメモリ12に転送することで、全てのデータをメインメモリ12に転送する場合に比して、無駄を省き、効率のよいデータ転送を実現することができる。
以上のように、この発明にかかるデータ転送制御装置は、リアルタイムでデータの更新が必要なノードがネットワークを介して接続された制御システムに有用である。
この発明が適用されるリアルタイムネットワークを用いた制御システムの構成を模式的に示す図である。 ネットワーク用バッファメモリ内のデータ構成の一例を示す図である。 転送設定情報の一例を示す図である。 メインメモリとネットワーク用バッファメモリとのデータの割り当て状態の詳細を示す図である。 この発明によるデータの転送方法の概念を模式的に示す図である。 この発明によるノード内の処理の様子を模式的に示す図である。 リアルタイムネットワークを有する制御システムの構成の従来例を模式的に示す図である。 ノードのメインメモリ内のデータ構成の一例を示す図である。 リンクスキャンタイムの概要を示す図である。 リアルタイムネットワークでの通信時におけるCPUとメインメモリの動作の概略を示す図である。
符号の説明
10,10A〜10C ノード
11 CPU
12 メインメモリ
13 ネットワークインタフェース
14 ネットワーク用バッファメモリ
15 バッファメモリ用DMAコントローラ
16 DMAコントローラ
17 DMA起動タイミングカウンタ
30 ネットワーク

Claims (4)

  1. ネットワークに接続される他のノードとの間でリンクスキャンの周期でデータを送受信し、前記データを用いて演算処理を行うデータ転送制御装置であって、
    前記他のノードからのデータを用いて演算を行うとともに、前記他のノードに送信するデータを生成する中央演算処理手段と、
    前記中央演算処理手段によって使用されまたは生成されるデータを記憶する主記憶手段と、
    前記ネットワークに接続されるノードごとに設けられた格納領域に、前記ノードからのデータをリンクスキャンの周期ごとに記憶するネットワーク用一時記憶手段と、
    リンクスキャンの周期を基にして定められた転送周期で、前記ネットワーク用一時記憶手段から前記主記憶手段へデータの転送を行う転送制御手段と、
    を備えることを特徴とするデータ転送制御装置。
  2. 前記転送制御手段は、前記ノードごとに割り当てられた前記ネットワーク用一時記憶手段中のアドレスと前記主記憶手段中のアドレス、データを転送する方向、および前記データを転送する前記リンクスキャンの周期を基にした転送周期を、前記ネットワークに接続されるノードごとに設定した転送設定情報に基づいてデータの転送を行うことを特徴とする請求項1に記載のデータ転送制御装置。
  3. 前記転送制御手段は、格納されるデータの種類ごとに割り当てられた前記ネットワーク用一時記憶手段中のアドレスと前記主記憶手段中のアドレス、データを転送する方向、および前記データを転送する前記リンクスキャンの周期を基にした転送周期を、前記ネットワークに接続されるノードに格納されるデータの種類ごとに設定した転送設定情報に基づいてデータの転送を行うことを特徴とする請求項1に記載のデータ転送制御装置。
  4. 前記転送周期は、前記中央演算処理手段によってデータが使用される頻度または前記データ生成される頻度に応じて、前記ノードごとに設定されることを特徴とする請求項1〜3のいずれか1つに記載のデータ転送制御装置。
JP2007144840A 2007-05-31 2007-05-31 データ転送制御装置 Expired - Fee Related JP4854598B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007144840A JP4854598B2 (ja) 2007-05-31 2007-05-31 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007144840A JP4854598B2 (ja) 2007-05-31 2007-05-31 データ転送制御装置

Publications (2)

Publication Number Publication Date
JP2008299581A true JP2008299581A (ja) 2008-12-11
JP4854598B2 JP4854598B2 (ja) 2012-01-18

Family

ID=40173057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007144840A Expired - Fee Related JP4854598B2 (ja) 2007-05-31 2007-05-31 データ転送制御装置

Country Status (1)

Country Link
JP (1) JP4854598B2 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03182975A (ja) * 1989-12-12 1991-08-08 Fujitsu Ltd 画像メモリ読み出し制御方式
JPH04308956A (ja) * 1991-04-05 1992-10-30 Fujitsu Ltd 受信バッファ
JPH08153035A (ja) * 1994-11-29 1996-06-11 Canon Inc 共有メモリ装置
JPH08190411A (ja) * 1995-01-12 1996-07-23 Mitsubishi Electric Corp データ通信方法
JPH11250633A (ja) * 1998-02-27 1999-09-17 Sony Corp 記録媒体及び記録装置
JP2000004243A (ja) * 1998-06-15 2000-01-07 Mitsubishi Electric Corp プログラマブルコントローラのデータ通信方法およびプログラマブルコントローラ
JP2000200241A (ja) * 1998-09-30 2000-07-18 Stmicroelectronics Inc 共用メモリ内にバッファ構造を形成する方法及びネットワ―ク装置
JP2002196991A (ja) * 2000-12-26 2002-07-12 Mitsubishi Electric Corp ネットワークの時刻合わせ方法
WO2006046972A1 (en) * 2004-07-14 2006-05-04 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03182975A (ja) * 1989-12-12 1991-08-08 Fujitsu Ltd 画像メモリ読み出し制御方式
JPH04308956A (ja) * 1991-04-05 1992-10-30 Fujitsu Ltd 受信バッファ
JPH08153035A (ja) * 1994-11-29 1996-06-11 Canon Inc 共有メモリ装置
JPH08190411A (ja) * 1995-01-12 1996-07-23 Mitsubishi Electric Corp データ通信方法
JPH11250633A (ja) * 1998-02-27 1999-09-17 Sony Corp 記録媒体及び記録装置
JP2000004243A (ja) * 1998-06-15 2000-01-07 Mitsubishi Electric Corp プログラマブルコントローラのデータ通信方法およびプログラマブルコントローラ
JP2000200241A (ja) * 1998-09-30 2000-07-18 Stmicroelectronics Inc 共用メモリ内にバッファ構造を形成する方法及びネットワ―ク装置
JP2002196991A (ja) * 2000-12-26 2002-07-12 Mitsubishi Electric Corp ネットワークの時刻合わせ方法
WO2006046972A1 (en) * 2004-07-14 2006-05-04 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
JP2008507030A (ja) * 2004-07-14 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク・プロトコル処理のオフロードにおいてメモリ管理をサポートする装置および方法

Also Published As

Publication number Publication date
JP4854598B2 (ja) 2012-01-18

Similar Documents

Publication Publication Date Title
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
US20170177509A1 (en) Host controller and program executed by host controller
CN110169017B (zh) 控制装置以及通信装置
JP4902640B2 (ja) 集積回路、及び集積回路システム
JP2016066278A (ja) データ転送制御システム、データ転送制御方法、及び、データ転送制御プログラム
CN110278716B (zh) Plc、网络单元、cpu单元、以及数据传送方法
JP4854598B2 (ja) データ転送制御装置
JP7294912B2 (ja) コントロールシステム
CN110178344B (zh) 控制装置以及通信装置
CN113032300A (zh) 数据的传输控制方法
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP2007506174A (ja) 複数の通信用デジタル信号プロセッサを有する集積回路
CN113032301B (zh) 存储控制器及其片上系统以及电子设备
JP6356736B2 (ja) コントローラシステムおよび制御方法
JP7277206B2 (ja) 通信制御装置および方法
JP4320622B2 (ja) ノード
JP7226084B2 (ja) 情報処理装置
KR100584583B1 (ko) 직렬 버스 제어 장치 및 방법
JP2000099452A (ja) Dma制御装置
JP2008165463A (ja) バス制御装置
RU2638781C2 (ru) Способ организации прямого доступа в память при передаче информации между физическими объектами
KR20170055964A (ko) 태스크의 배분 경로를 결정하는 방법, 디바이스 및 시스템
KR20230119306A (ko) 메모리 액세스 방법
JP2023108935A (ja) 中継装置、プログラム及び、中継方法
JP2012073741A (ja) バス転送システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111025

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4854598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees