JP6711339B2 - 通信処理装置、プログラム、および通信処理方法 - Google Patents
通信処理装置、プログラム、および通信処理方法 Download PDFInfo
- Publication number
- JP6711339B2 JP6711339B2 JP2017206551A JP2017206551A JP6711339B2 JP 6711339 B2 JP6711339 B2 JP 6711339B2 JP 2017206551 A JP2017206551 A JP 2017206551A JP 2017206551 A JP2017206551 A JP 2017206551A JP 6711339 B2 JP6711339 B2 JP 6711339B2
- Authority
- JP
- Japan
- Prior art keywords
- real
- unit
- time
- request
- time communication
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Description
非特許文献1に記載の技術では、リアルタイム性の実現のために、送信局ごとに時間スロットを割り当てるなどといった工夫をしてパケット損失を防いでいる。また、非特許文献1に記載の技術では、オープンな標準プロトコルを採用して、マルチベンダー機器によるネットワーク構成を可能としている(非特許文献1の図4等を参照)。
図1は、本実施形態による通信処理装置3の概略機能構成を示すブロック図である。本実施形態による通信処理装置3は、PC・31上で構成される。PC・31(ハードウェア)は、物理CPU・310と、物理NIC・312と、NICインターフェース313とを含む。また、PC・31は、メモリー等、不図示の他の構成要素を含む。PCは、「パーソナルコンピューター」の略である。CPUは、「中央処理装置(Central Processing Unit)」である。NICは、「ネットワークインターフェースカード」の略である。NICは、単に「ネットワークカード」と呼ばれる場合もある。また、「インターフェース」は、「IF」と略記される場合がある。
物理NIC・312は、当該PC・31内の各機能が外部のネットワークを介して通信するためのインターフェース機能を有するものである。
NICインターフェース313は、ユーザー空間38内で稼働する機能と、物理NIC・312との間を仲介する機能を有するものである。
リアルタイム通信要求共有メモリー191は、ユーザー空間38内で稼働するすべてのタスクからアクセス可能なメモリーである。後述するリアルタイム通信要求処理共有ライブラリ192が、アプリケーション部701からの通信要求等を一時的に記憶するバッファーは、このリアルタイム通信要求共有メモリー191内に設けられる。汎用OS・36の機能として、タスク間で共有するためのメモリー空間を設けることができる。本実施形態では、リアルタイム通信要求共有メモリー191は、ユーザー空間の外に設けられているが、アプリケーション部701のメモリー空間内の所定の場所にマッピングされる。これにより、アプリケーション部701はリアルタイム通信要求共有メモリー191にもアクセスすることができる。
なお、アプリケーション部701−1,701−2,・・・を、単に「アプリケーション部701」と呼ぶ場合がある。
リアルタイム通信要求処理共有ライブラリ192は、内部に、いずれも不図示の、リアルタイム通信要求受付ロジックと、リアルタイム通信送信ロジックと、リアルタイム通信受信ロジックの機能を備える。
リアルタイム通信要求受付ロジックは、リアルタイム通信受信ロジックからの上記の通知に基づき、リアルタイム通信要求共有メモリー191内のバッファーから受信フレームを取り出し、受信要求を発行していたアプリケーション部701にその受信フレームを返す。
なお、汎用OS・36において、リアルタイム通信部181のタスクには、アプリケーション部701のタスクの優先度よりも高いタスク優先度を割り当てるようにする。つまり、汎用OSスケジューラー17が計算資源をリアルタイム通信部181に対して優先的に与えるため、リアルタイム通信部181は、同時並行的に稼働する他の機能部(例えば、アプリケーション部701)よりもより優先して実行される。
タスク優先度はリアルタイム通信部181に対して、アプリケーション部701よりも優先的に計算資源を割り当てるよう、汎用OSスケジューラー17に指示するための指標である。タスク優先度は一般的に優先順位を示す数値(値の高低でどちらを優先するのかは汎用OSの実装による)であるが、数値に限らず、例えば、汎用OSスケジューラーがより優先的に処理可能なスケジューリングアルゴリズムを指定してもよい。
なお、本実施形態で開示される優先度の設定方法は、これに限らず、他の設定方法であってもよい。
具体的には、リアルタイム通信通知部183は、定周期の時間通知をリアルタイム通信要求処理共有ライブラリ192に対して行う。リアルタイム通信要求処理共有ライブラリ192内のリアルタイム通信送信要求処理ロジックは、時間通知ごとに起床し、フレームを送信する処理がタイムアウトしていないか確認する。フレームの送信処理のタイムアウトは、例えばリアルタイム通信部181が送信先の外部機器からの肯定応答が返送されない等で、リアルタイム通信要求処理共有ライブラリ192に対して受信通知を用いた送信完了通知を行わないまま予め定められた時間が経過したときに発生する事象である。リアルタイム通信通知部183が送信タイムアウトに関する時間通知を行うことにより、リアルタイム通信部インターフェース182に対してフレームの再送(アプリケーション層による再送)を指示できる。
また、リアルタイム通信通知部183は、外部機器から通信処理装置1に向けて送信されたフレームを受信すると、リアルタイム通信要求処理共有ライブラリ192内のリアルタイム通信要求受付ロジックおよびリアルタイム通信受信処理ロジックに受信通知を行う。これにより、リアルタイム通信要求処理共有ライブラリ192内のリアルタイム通信受信処理ロジックは、受信したフレームを取り出すことができる。
なお、自己診断部185は、他の指標に基づいて不安定動作を検出するようにしてもよい。例えば、自己診断部185が、汎用OS・36全体のCPU使用率や、当該汎用OS・36が稼働する仮想ハードウェア15に割てられるCPUコア数等の数値情報を取得してもよい。自己診断部185は、これらの数値を複数組み合わせて判定した結果が所定の閾値(例えば、CPUコアが4個の時はCPU使用率30%、8個のときはCPU使用率15%等)を超えたときに不安定動作が生じたことを検出する。
図2における汎用OS・36は、図1に示した汎用OS・36と同じものである。汎用OS・36は、ユーザー空間38とカーネル空間39とを有している。ユーザー空間38は、アプリケーション部701−1,701−2,・・・と、リアルタイム通信部181とを含む。アプリケーション部701−1,701−2,・・・と、リアルタイム通信部181とは、独立のタスクとしてユーザー空間38内で稼働する。図示するように、リアルタイム通信要求処理共有ライブラリ192の機能とリアルタイム通信API共有ライブラリ193の機能とは、本実施形態では、例えばライブラリ関数として、アプリケーション部701−1,701−2,・・・に組み込まれている。また、カーネル空間39には、前述のリアルタイム通信要求共有メモリー191と、汎用OSスケジューラー37とを含む。
PC・31は、物理NIC・312を介して、制御ネットワーク800に接続される。制御ネットワーク800は、プロセス制御システムを構成する機器間で通信を行うためのネットワークである。制御ネットワーク800には、コントローラー801や、PC・802などといった機器が接続される。PC・31は、例えば、HMIで、制御ネットワーク800を介して、コントローラー801やPC・802との間で通信を行う。また、コントローラー801には、PC・31に対して測定データを送るとともに、PC・31からの操作量が入力される。そして、コントローラー801には、複数のフィールド機器803が接続される。コントローラー801は、フィールド機器803をコントロールすることにより、プラントの制御を行う。フィールド機器803は、例えば、流量計、温度計、湿度計、圧力計などのセンサーや、バルブ、ポンプ、アクチュエーターなどといった機器である。
上記の通り、本実施形態のリアルタイム通信部181を含んだ通信処理装置3では、リアルタイム性が阻害されない。つまり、通信処理装置3では、一度開始した他機器への通信や、自機器の存在を他機器へ通知する診断通信において、通信の停滞が生じない。
リアルタイム通信部181は、複数のアプリケーション部701からの要求に応じた処理を行う。そのため、リアルタイム通信部181への処理負荷の集中を避けることが好ましい。リアルタイム通信要求処理共有ライブラリ192とリアルタイム通信部181とを分離することによって、リアルタイム通信部181の処理負荷を軽くすることが可能となる。リアルタイム通信要求処理共有ライブラリ192の機能をアプリケーション部701に静的にリンクして実行させる場合、リアルタイム通信要求処理共有ライブラリ192の機能の処理負荷を、アプリケーション部701のタスクが負担する。したがって、アプリケーション部701は、リアルタイム通信部181の処理負荷状況を考慮することなく通信要求を行うことができる。
仮に、リアルタイム通信要求処理共有ライブラリ192の機能が、リアルタイム通信部181側のタスクに置かれていると、リアルタイム通信部181の計算資源の消費量(CPU使用率等)がアプリケーション部701の要求に左右される。これは、通信処理装置3のリアルタイム性を阻害の要因になり得る。
図3は、リアルタイム通信部181内のリアルタイム通信部インターフェース182の動作手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
なお、こういった計算資源の割当制御は、本実施形態においては汎用OSスケジューラー17が行う。
なお、ステップS11において「NO」(不安定動作通知なし)と判断されたときに直ちにステップS15における指定時間リセットの処理を行う代わりに、「不安定動作通知なし」の状態が所定時間継続した場合にのみステップS15において指定時間をリセットするようにしてもよい。
ステップS15の処理の終了後には、ステップS16に移る。
続いて、ステップS18において、リアルタイム通信部インターフェース182は、ステップS17で取り出した送信フレームを、送信バッファー184に格納する。
なお、送信バッファー184に格納された送信フレームを、リアルタイム通信部181は順次送信する(図4参照)
また、ステップS13で指定時間の加算を行う場合も含めて、S14において待つ時間(指定時間)の下限や上限を予め定めておいてもよい。上限が定められている場合、ステップS13における加算の結果は、当該上限値より大きくはならない。
また、ステップS14において待つ時間を、不安定動作通知の内容を加味して決定してもよい。ステップS14において待つ時間は、計時による値に限定されず、例えば「不安定動作が解消した」等の、何らかの状態変化が発生するまで待ち続ける動作であってもよい。
ステップS23において、リアルタイム通信部181は、ステップS22においてフレームを送信した相手(フレームの受信側)からの肯定応答(Ack,acknowledgement)が到着するのを所定時間待つ。
ステップS25において、リアルタイム通信部181は、送信が成功したフレーム、つまり肯定応答が得られた送信フレームを、送信バッファー184から消去する。
なお、一定処理回数の間に肯定応答の到着がなかった場合には、リアルタイム通信部181は、送信先が通信できない状況と判断してもよい。この場合、リアルタイム通信部181は、送信バッファーから送信フレームを消去し、送信を失敗させてもよい。
即ち、通信処理装置3では、リアルタイム通信部181の処理負荷に基づいて、リアルタイム通信部181の処理量を調整する。具体的には、例えば、処理すべき要求が流入するリアルタイム通信部181の処理のペースを、相対的に早くしたり遅くしたりするなどといった調整を行う。この調整は、自己診断部185が検出する処理負荷の重さに基づいて行う。具体的には、例えば、リアルタイム通信部181が要求バッファー188から取り出す通信要求の量(あるいは処理すべきデータの量)を調整し、処理にかかるCPU使用時間を増減する。これにより、非リアルタイム処理でもよいアプリケーション部701の処理と、リアルタイム処理であることが求められるリアルタイム通信部181との間で、ロードバランシングが可能になる。上記の作用により、通信処理装置3の処理のリアルタイム性が確保される。
また、リアルタイム通信要求処理共有ライブラリ192のロジックをアプリケーション部701側のタスクで実行する場合、そのロジックの処理の負荷がリアルタイム通信部181にかからず、通信処理装置3のリアルタイム性の阻害を防げる状態を保つことができる。
また、処理負荷のバランシングを行うことで、リアルタイム通信部181が一度開始した他機器への通信や、自機器の存在を他機器へ通知する診断通信が滞ることを防ぐことができる。
また、リアルタイム通信要求処理共有ライブラリ192やリアルタイム通信部181は汎用OSのカーネル空間のモジュール(デバイスドライバ)ではないので、デバイスドライバで発生するメンテナンス問題あるいは互換性問題を回避できる。
次に、本発明の第2実施形態について説明する。なお、前実施形態において既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
カーネル空間19には、汎用OSスケジューラー17と、リアルタイム通信要求共有メモリー191とが存在する。
汎用OSスケジューラー17は、ユーザー空間18内で稼働する複数のタスクをスケジューリングする。つまり、汎用OSスケジューラー17は、計算資源を、ユーザー空間18内の各タスクに割り当てる。本実施形態においても、ゲストOS・16はリアルタイム制御用のOSではなく、汎用OSスケジューラー17はリアルタイムスケジューラーではない。なお、同図では1つのユーザー空間18のみを示しているが、汎用OSスケジューラー17が複数のユーザー空間18を管理するものであってもよい。
アプリケーション部701−1,701−2,・・・には、リアルタイム通信要求処理共有ライブラリ192やリアルタイム通信API共有ライブラリ193が有するライブラリ関数の機能が組み込まれている。
リアルタイム通信部181は、アプリケーション部701−1,701−2,・・・から独立のタスクとして稼働する。
汎用NIC・112は、PC・11上のプログラム等からの通信の要求を受け、実行するものである。汎用NIC・112は、PC・11に接続されているネットワークを介して、外部の機器との間で通信を行う。
NICインターフェース113は、PC・11上のプログラム等と汎用NIC・112との間のインターフェースを提供するものである。
仮想ハードウェア15の内部構成は次の通りである。即ち、例えば、仮想ハードウェア15−1は、仮想CPUコア151−1と、仮想NIC・152−1と、NICインターフェース153−1とを含む。また、仮想ハードウェア15−2は、仮想CPUコア151−2と、仮想NIC・152−2と、NICインターフェース153−2とを含む。仮想ハードウェア15−3(またはそれ以後)が存在する場合、各々の仮想ハードウェアは仮想ハードウェア15−1等と同様の構成を有する。なお、仮想ハードウェア15の内部の機能は、仮想化技術によって実現される機能である。
なお、図面等では仮想ハードウェアおよびその内部の構成要素の符号にサフィックス(1,2等)を付けているが、以下において、単に、仮想ハードウェア15、仮想CPUコア151、仮想NIC・152、NICインターフェース153等と呼ぶ場合がある。
なお、ユーザー(通信処理装置1の管理者)が、仮想化部12を管理するためのツールを用いて、物理CPU・110内のコア111の仮想CPUコア151への割り当てを設定することができる。本実施形態では、仮想CPUコア151へのコア111の割り当て数を含む仮想ハードウェア15それぞれの仮想資源の構成は、基本的に固定的なものである。ただし、仮想化部12の実装により、仮想ハードウェア15の動作中にも、ツールを用いた設定により、仮想CPUコア151の割り当て数を含む仮想資源の構成を仮想の計算資源を増やす方向に変更できる場合がある。なお、仮想ハードウェア15の動作中に計算資源の減らす方向に仮想資源の構成を変更することは、突然の計算資源の減少がリアルタイム性に悪影響を与えるため、原則としてできない。
つまり、本実施形態において、ゲストOS・16(汎用OS)は、仮想ハードウェア15上で稼働するものである。また、複数の仮想ハードウェア15が、物理コアを共有しないよう構成した。言い換えれば、複数の仮想ハードウェアが、仮想ハードウェアに対して個々に割り当てられるCPU資源(中央処理装置資源)を共有しないよう構成した。これにより、各ゲストOS・16での処理にリアルタイム性を確保することができる。
また、NICインターフェース153−1,153−2等は、それぞれ、ゲストOS・16−1,16−2側から上記の仮想NIC・152−1,152−2等にアクセスするためのインターフェースである。
アプリケーション部701−11は、例えば、HMI(ヒューマンマシンインターフェエース)である。
アプリケーション部701−12は、例えば、ENG(エンジニアリングサーバー)である。
アプリケーション部701−13は、例えば、コントローラーである。
ゲスト・OS16−1および16−2のそれぞれにおいてリアルタイム通信部181も稼働するが、ここではリアルタイム通信部181の図示を省略している。
次に、本発明の第3実施形態について説明する。なお、前実施形態までにおいて既に説明した事項については以下において説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
図7は、本実施形態による通信処理装置2の一部の機能構成を示す機能ブロック図である。図7に示すゲストOS・16は、第2実施形態と同様に(図6を参照)、仮想ハードウェア15の上で稼働する。本実施形態による通信処理装置2では、図7に示すように、ユーザー空間18内において、アプリケーション部701−1,701−2,・・・と、リアルタイム通信API共有ライブラリ193と、アプリケーション代理部291と、リアルタイム通信部181との各機能が稼働する。
これらのうち、アプリケーション部701−1,701−2,・・・と、リアルタイム通信API共有ライブラリ193と、リアルタイム通信部181との各部の機能は、それぞれ、第1実施形態および第2実施形態におけるそれらと同様の機能を有するものである。
ただし、1つのアプリケーション部701に対して複数のアプリケーション要求処理部294を対応付けるようにしてもよい。その場合、例えば、通信種別毎あるいは通信方向毎に、それぞれアプリケーション要求処理部294を設けることができる。複数のアプリケーション要求処理部294は、タスクに割り当てられた計算資源を用いて、互いに並列に動作する(この並列に動作する実行体を一般的にはスレッドと呼ぶ)。
カーネル空間19には、汎用OSスケジューラー17と、共有メモリー199とが存在する。
汎用OSスケジューラー17は、ユーザー空間18内で稼働する複数のタスクをスケジューリングする。つまり、汎用OSスケジューラー17は、計算資源を、ユーザー空間18内の各タスクに割り当てる。本実施形態においても、ゲストOS・16はリアルタイム制御用のOSではなく、汎用OSスケジューラー17はリアルタイムスケジューラーではない。
共有メモリー199は、タスク間で共有する情報がある場合に適宜用いられる。本実施形態では、なお、アプリケーション代理部291内にリアルタイム通信要求タスク内メモリー293を持つ。よって、アプリケーション部701からの通信要求を一時的に格納するための記憶部をこの共有メモリー199内に持つ必要はない。
アプリケーション部701−1,701−2,・・・には、リアルタイム通信API共有ライブラリ193が有するライブラリ関数の機能が組み込まれている。本実施形態では、アプリケーション代理部291がアプリケーション部701−1,701−2,・・・から独立のタスクとして稼働している。つまり、アプリケーション部701−1,701−2,・・・自体は、第2実施形態とは異なり、リアルタイム通信要求処理共有ライブラリ192の機能を含んでいない。
1)リアルタイム通信部181が一度開始した他機器への通信(フレームの送信)は、通信の所定シーケンスが完了するまで滞らないことが必要である。所定シーケンスの完了とは、例えば、送信した相手からの肯定応答(Ack)の受信である。
2)自機器(通信処理装置)の存在を他機器へ通知するための診断通信が滞らないようにする。この診断通信が滞ってしまうと、自機器は、他機器から、少なくとも一時的に不存在であるかのように見える。
なお、リアルタイム通信部181には高い優先度を割り当てる。
通常、汎用OSにおいては、高優先度のタスクに計算資源が集中した場合、低優先度タスクの動作を維持するため、高優先度タスクの計算資源を低優先度タスクに分配する。そのように高優先度タスクの計算資源が供給されなくなると、通信処理装置として、リアルタイム性が維持できなくなる可能性もある。しかしながら、上で説明した各実施形態では、リアルタイム通信部181は、高優先度を割り当てつつ、かつ、計算資源の使用(CPU使用率等)を抑えるロジックを組み込んでいる。したがって、アプリケーション部701等の、リアルタイム通信部181以外の各部が、計算資源を多用しようと試みても、スケジューラーは計算資源の割り当てを抑制する。この動作により、リアルタイム通信部181以外の各部の処理能力は低下するものの、高優先度タスク(リアルタイム通信部181)への計算資源の分配が損なわれることはなく、つまりリアルタイム通信部181の計算資源は維持され、リアルタイム性を維持することが可能となる。
また、汎用OSのスケジューラーを利用してシステムを実現可能であり、その場合にもリアルタイム通信部181に充分な計算資源が与えられる。
また、デバイスドライバを用いずにリアルタイム通信部181やリアルタイム通信要求処理共有ライブラリ192等を、実現することが可能である。つまり、システム(ソフトウェア)の開発および保守が容易になる。
また、リアルタイム通信部181に対して、CPUコアの固定的な割り当てを行わずにリアルタイム通信が行うことが可能となる。
また、通信処理装置におけるリアルタイム通信性の阻害を回避できるため、その通信処理装置の影響でシステム内の他の機器における通信リアルタイム性の阻害も回避することが可能となる。
また、専用通信カードが必要であった制御通信(リアルタイム通信)を、汎用通信カードと汎用OS上とで実現することが可能となる。
例えば、図6に示した構成において、PC・11は、汎用NIC・112とNICインターフェース113との組を1組だけ備えていた。変形例として、PC・11が、汎用NIC・112とNICインターフェース113との組を複数組備えるようにしてもよい。つまり、PC・11が、物理的な(物理層の)ネットワークに接続される通信の系統を複数持つようにしてもよい。このとき、これら複数の通信系統を、PC・11が同時に使用して通信を行うようにしてもよい。また、これら複数の通信系統を、冗長構成と見なして、PC・11が、いずれかの通信系統に障害等が生じた場合に他の通信系統を用いた通信を行うようにしてもよい。なお、ここでは、図6の構成における汎用NIC・112とNICインターフェース113との組の数について述べたが、図1や図2(第1実施形態)におけるPC・31の、物理NIC・312とNICインターフェース313との組の数についても同じことが言える。つまり、物理NIC・312とNICインターフェース313との組の数を、単数としてもよいし複数としてもよい。
Claims (9)
- アプリケーションソフトウェアを稼働させるアプリケーション部と、
前記アプリケーションソフトウェアからの通信要求を受け、前記通信要求に基づいてデータの送受信を行うリアルタイム通信部と、
を具備し、プロセス制御システムにおける通信処理を行う通信処理装置であって、
前記リアルタイム通信部は、
前記アプリケーションソフトウェアからの前記通信要求を少なくとも一時的に蓄積する要求バッファーと、
前記通信要求がデータの送信要求である場合に、前記要求バッファーから前記送信要求を取り出して送信処理を行うリアルタイム通信部インターフェース部と、
前記リアルタイム通信部の処理に関する診断指標を検知し、前記診断指標が所定範囲にある場合にはその動作状況を前記リアルタイム通信部インターフェース部に対して通知する自己診断部と、
を具備し、
前記リアルタイム通信部インターフェース部は、前記自己診断部から前記動作状況の通知を受けた場合には、前記要求バッファーから前記送信要求を取り出す時間間隔を調整する、
ことを特徴とする通信処理装置。 - 前記リアルタイム通信部インターフェース部は、前記自己診断部から前記動作状況の前記通知を所定時間継続して受けた場合には、前記通知を所定時間継続して受けない場合よりも前記要求バッファーから前記送信要求を取り出す前記時間間隔をさらに調整する、
ことを特徴とする請求項1に記載の通信処理装置。 - 前記アプリケーション部は、複数の前記アプリケーションソフトウェアを同時並行的に稼働させるものであり、各々の前記アプリケーションソフトウェアからの前記通信要求を、前記複数のアプリケーションソフトウェア間で共有される記憶部であるリアルタイム通信要求共有メモリーに一旦格納してから、前記リアルタイム通信要求共有メモリーから取り出した前記通信要求を前記リアルタイム通信部に渡す、
ことを特徴とする請求項1または請求項2に記載の通信処理装置。 - 前記アプリケーション部から独立のタスクとして稼働し、前記アプリケーションソフトウェアからの前記通信要求を受け付け、受け付けた前記通信要求を当該タスク内の専用の記憶部であるリアルタイム通信要求タスク内メモリーに一旦格納してから、前記リアルタイム通信要求タスク内メモリーから取り出した前記通信要求を前記リアルタイム通信部に渡すアプリケーション代理部、
をさらに具備することを特徴とする請求項1または請求項2に記載の通信処理装置。 - 前記リアルタイム通信部は、前記アプリケーション部から独立のタスクとして稼働する、
ことを特徴とする請求項1から4までのいずれか一項に記載の通信処理装置。 - 前記アプリケーション部と前記リアルタイム通信部とは、汎用オペレーティングシステム上で稼働するものであり、前記汎用オペレーティングシステム内のスケジューラーの制御によって中央処理装置資源を与えられる、
ことを特徴とする請求項5に記載の通信処理装置。 - 前記汎用オペレーティングシステムは、仮想化部を有するコンピューターの仮想ハードウェア上で稼働するものであり、
複数の前記仮想ハードウェアが、前記仮想ハードウェアに対して個々に割り当てられる中央処理装置資源を共有しないよう構成した、
ことを特徴とする請求項6に記載の通信処理装置。 - コンピューターを、
請求項1から7までのいずれか一項に記載の通信処理装置として機能させるためのプログラム。 - プロセス制御システムにおける通信処理を行う通信処理装置において、
アプリケーション部が、アプリケーションソフトウェアを稼働させ、
リアルタイム通信部が、前記アプリケーションソフトウェアからの通信要求を受け、前記通信要求に基づいてデータの送受信を行い、
前記リアルタイム通信部において、
要求バッファーが、前記アプリケーションソフトウェアからの前記通信要求を少なくとも一時的に蓄積し、
リアルタイム通信部インターフェース部が、前記通信要求がデータの送信要求である場合に、前記要求バッファーから前記送信要求を取り出して送信処理を行い、
自己診断部が、前記リアルタイム通信部の処理に関する診断指標検知し、前記診断指標が所定範囲にある場合にはその動作状況を前記リアルタイム通信部インターフェース部に対して通知し、
前記リアルタイム通信部インターフェース部は、前記自己診断部から前記動作状況の通知を受けた場合には、前記要求バッファーから前記送信要求を取り出す時間間隔を調整する、
通信処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017206551A JP6711339B2 (ja) | 2017-10-25 | 2017-10-25 | 通信処理装置、プログラム、および通信処理方法 |
CN201811249170.8A CN109709905B (zh) | 2017-10-25 | 2018-10-25 | 通信处理装置、存储介质和通信处理方法 |
US16/170,994 US10862616B2 (en) | 2017-10-25 | 2018-10-25 | Communication processing apparatus and communication processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017206551A JP6711339B2 (ja) | 2017-10-25 | 2017-10-25 | 通信処理装置、プログラム、および通信処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019079348A JP2019079348A (ja) | 2019-05-23 |
JP6711339B2 true JP6711339B2 (ja) | 2020-06-17 |
Family
ID=66169958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017206551A Active JP6711339B2 (ja) | 2017-10-25 | 2017-10-25 | 通信処理装置、プログラム、および通信処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10862616B2 (ja) |
JP (1) | JP6711339B2 (ja) |
CN (1) | CN109709905B (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6889204B2 (ja) * | 2019-05-07 | 2021-06-18 | 株式会社東芝 | コントローラ |
JP7010272B2 (ja) * | 2019-10-08 | 2022-01-26 | 横河電機株式会社 | リアルタイム通信処理システム、およびリアルタイム通信処理方法 |
JP7120199B2 (ja) * | 2019-10-08 | 2022-08-17 | 横河電機株式会社 | 通信処理装置、通信処理方法、およびプログラム |
CN114546641B (zh) * | 2022-02-16 | 2022-08-26 | 重庆伏特猫科技有限公司 | 一种基于物联网网关和节点智能盒子的综合能源控制系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03278136A (ja) * | 1989-06-23 | 1991-12-09 | Hitachi Ltd | 計算機システムの負荷制御方法及び装置 |
JP4314733B2 (ja) * | 2000-08-22 | 2009-08-19 | 沖電気工業株式会社 | 通信接続装置およびデータ出力制御方法 |
JP3891273B2 (ja) * | 2002-03-05 | 2007-03-14 | 日本電気株式会社 | トランザクション処理の負荷分散方法およびそのシステム |
CN100411317C (zh) * | 2003-07-08 | 2008-08-13 | 联想(北京)有限公司 | 一种提高无线网络信道传输效率的方法 |
JP4244331B2 (ja) * | 2004-06-11 | 2009-03-25 | ソニー株式会社 | データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体 |
JP4446166B2 (ja) * | 2004-10-14 | 2010-04-07 | ソニー株式会社 | 送信装置および方法、記録媒体、プログラム、並びに制御装置 |
KR100743126B1 (ko) * | 2005-02-25 | 2007-07-27 | 한국동서발전(주) | 발전용 분산제어 시스템의 운전을 위한 운전 장치 |
JP4170302B2 (ja) * | 2005-03-10 | 2008-10-22 | 富士通株式会社 | 負荷制御装置および負荷制御プログラム |
JP4654106B2 (ja) * | 2005-10-12 | 2011-03-16 | アラクサラネットワークス株式会社 | 一定間隔通信を実行する通信装置 |
JP2008172515A (ja) * | 2007-01-11 | 2008-07-24 | Sony Corp | 送信装置および方法、通信装置、並びにプログラム |
JP4986155B2 (ja) * | 2007-10-15 | 2012-07-25 | 横河電機株式会社 | 通信品質診断装置 |
CN101587351B (zh) * | 2009-05-15 | 2011-07-20 | 深圳市康必达控制技术有限公司 | 智能电子设备可靠通讯的方法 |
CN103064352A (zh) * | 2011-10-24 | 2013-04-24 | 成都宏天电传工程有限公司 | 钻井平台信息集成处理系统 |
US8868672B2 (en) * | 2012-05-14 | 2014-10-21 | Advanced Micro Devices, Inc. | Server node interconnect devices and methods |
KR101811189B1 (ko) * | 2015-02-20 | 2017-12-20 | 미쓰비시덴키 가부시키가이샤 | 통신 장치, 통신 방법 및 기록 매체에 저장된 프로그램 |
JP6265158B2 (ja) * | 2015-03-27 | 2018-01-24 | 横河電機株式会社 | 電子機器 |
US10241947B2 (en) * | 2017-02-03 | 2019-03-26 | Intel Corporation | Hardware-based virtual machine communication |
-
2017
- 2017-10-25 JP JP2017206551A patent/JP6711339B2/ja active Active
-
2018
- 2018-10-25 US US16/170,994 patent/US10862616B2/en active Active
- 2018-10-25 CN CN201811249170.8A patent/CN109709905B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109709905B (zh) | 2022-07-29 |
US20190121666A1 (en) | 2019-04-25 |
US10862616B2 (en) | 2020-12-08 |
CN109709905A (zh) | 2019-05-03 |
JP2019079348A (ja) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6711339B2 (ja) | 通信処理装置、プログラム、および通信処理方法 | |
US10613883B2 (en) | Managing virtual machine migration | |
US11093284B2 (en) | Data processing system | |
US7934020B1 (en) | Managing network data transfers in a virtual computer system | |
US10592298B2 (en) | Method for distributing load in a multi-core system | |
Xu et al. | {vTurbo}: Accelerating Virtual Machine {I/O} Processing Using Designated {Turbo-Sliced} Core | |
EP1891787B1 (en) | Data processing system | |
US20160378545A1 (en) | Methods and architecture for enhanced computer performance | |
CN106874143B (zh) | 服务器备份方法及其备份系统 | |
US20150055499A1 (en) | Networking stack of virtualization software configured to support latency sensitive virtual machines | |
EP3402172B1 (en) | A data processing system | |
US20140068165A1 (en) | Splitting a real-time thread between the user and kernel space | |
WO2014118969A1 (ja) | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 | |
Gamage et al. | Protocol responsibility offloading to improve TCP throughput in virtualized environments | |
Jang et al. | MiAMI: Multi-core aware processor affinity for TCP/IP over multiple network interfaces | |
Li et al. | Prioritizing soft real-time network traffic in virtualized hosts based on xen | |
US11487633B2 (en) | Communication processing apparatus, communication processing method, and non-transitory computer-readable recording medium | |
JP2008186211A (ja) | 計算機システム | |
US11556434B2 (en) | Real-time communication processing system and real-time communication processing method | |
Gamage | Improving virtual machine I/O performance in cloud environments via I/O functionality offloading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200327 |
|
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: 20200428 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200511 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6711339 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |