図面 (/)

技術 パイプライン演算装置、プログラマブルロジックコントローラ、及び、パイプライン処理の実行方法

出願人 オムロン株式会社
発明者 西垣弘二清水隆也日下武紀
出願日 2019年3月20日 (1年9ヶ月経過) 出願番号 2019-053468
公開日 2020年9月24日 (3ヶ月経過) 公開番号 2020-154830
状態 未査定
技術分野 プログラマブルコントロ-ラ マルチプロセッサ
主要キーワード 蓄積データ数 工場管理者 CPU時間 データ収集対象 パイプライン演算 メモリ監視 パイプライン中 モーション制御
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2020年9月24日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

パイプライン処理が全体として効率的に実行できるパイプライン演算装置を実現する。

解決手段

パイプライン演算装置(110)は、パイプラインで構成される演算部(120)、ノード処理時間を取得するノード監視部(161)、蓄積メッセージ量を取得するキュー監視部(162)、ノード処理時間と、当該ノードの前段受信キューの蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出する優先度変数算出部(163)、優先度変数に応じ、各ノードに対して稼動時間を割り当てる時間割当部(164)を備える。

概要

背景

様々な生産現場におけるファクトリーオートメーションFA)において、各種機器動作情報流動品の測定データ、その他の生産情報に関するサンプリングデータを収集し、データベース化を行う要請が高まっている。そのため、生産工場において、多様な各種機器へのアクセスが可能で、膨大なデータの取り扱いを行うデータ収集分析系高性能化が求められている。

一方、情報処理装置において多様なデータを扱えるようにする技術として、パイプライン処理が良く知られている。特許文献1には、このようなパイプライン処理において、各タスクへの実行優先度を調整し、受信バッファ受信キュー)のオーバーフローを防止して、適切なデータ処理を行う方法が開示されている。

概要

パイプライン処理が全体として効率的に実行できるパイプライン演算装置を実現する。パイプライン演算装置(110)は、パイプラインで構成される演算部(120)、ノード処理時間を取得するノード監視部(161)、蓄積メッセージ量を取得するキュー監視部(162)、ノード処理時間と、当該ノードの前段の受信キューの蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出する優先度変数算出部(163)、優先度変数に応じ、各ノードに対して稼動時間を割り当てる時間割当部(164)を備える。

目的

本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置を実現することにある

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

複数のノードと、複数の受信キューとを有する演算部であって、前記ノードが前記受信キューを介して複数接続されるパイプラインの少なくとも1つで構成される演算部と、ノード監視部と、キュー監視部と、優先度変数算出部と、時間割当部とを有する制御部と、を備え、前記ノード監視部は、前記ノードから、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得し、前記キュー監視部は、前記受信キューから、前記受信キューへの蓄積メッセージ量を取得し、前記優先度変数算出部は、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出し、前記時間割当部は、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てる、パイプライン演算装置

請求項2

前記蓄積メッセージ量は、前記受信キューへ蓄積されたメッセージ数または蓄積されたメッセージの総サイズである、請求項1に記載のパイプライン演算装置。

請求項3

前記優先度変数算出部は、前記ノードの前記ノード処理時間と前記蓄積メッセージ量との積を、当該ノードの優先度変数として算出する、請求項1または2に記載のパイプライン演算装置。

請求項4

前記優先度変数算出部は、前記ノード監視部が取得した前記ノードの過去からの複数の前記ノード処理時間に基づいて、当該ノードの前記優先度変数を算出するための前記ノード処理時間を生成する、請求項1から3のいずれか1項に記載のパイプライン演算装置。

請求項5

前記演算部は、合流監視部と、補正係数算出部とを更に備え、前記合流監視部は、前記パイプラインのうち、複数の部分パイプラインが合流するパイプラインについて、前記複数の部分パイプラインの合流点の前記ノードよりも上流の、互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量を、前記キュー監視部から取得して、前記互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量の不均衡度合いを算出し、前記補正係数算出部は、前記互いに異なる部分パイプラインのうちの、いずれかの部分パイプラインに属するノードについて、前記不均衡の度合いに応じて補正係数を算出し、前記時間割当部は、前記ノードについて前記補正係数が算出された場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる、請求項1から4のいずれか1項に記載のパイプライン演算装置。

請求項6

前記演算部は、メモリ監視部と、補正係数算出部とを更に備え、前記メモリ監視部は、前記受信キューの蓄積メッセージを保存するメモリの空き容量が所定値よりも小さくなった場合に前記補正係数算出部に通知し、前記補正係数算出部は、前記通知を受信した場合に、前記複数のパイプラインのうち、パイプラインでのメッセージの処理が完了するまでの時間がより短い、または、分岐のより少ないパイプラインに属する前記ノードについて、1より大きい補正係数を与え、前記時間割当部は、前記ノードについて前記補正係数が与えられた場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる、請求項1から4のいずれか1項に記載のパイプライン演算装置。

請求項7

請求項1から6のいずれか1項に記載のパイプライン演算装置を備えたプログラマブルロジックコントローラ

請求項8

ノードが受信キューを介して複数接続される少なくとも1つのパイプラインにより、パイプライン処理を実行する方法であって、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得するステップと、前記受信キューへの蓄積メッセージ量を取得するステップと、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出するステップと、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てるステップと、を備えたパイプライン処理の実行方法

技術分野

背景技術

0002

様々な生産現場におけるファクトリーオートメーションFA)において、各種機器動作情報流動品の測定データ、その他の生産情報に関するサンプリングデータを収集し、データベース化を行う要請が高まっている。そのため、生産工場において、多様な各種機器へのアクセスが可能で、膨大なデータの取り扱いを行うデータ収集分析系高性能化が求められている。

0003

一方、情報処理装置において多様なデータを扱えるようにする技術として、パイプライン処理が良く知られている。特許文献1には、このようなパイプライン処理において、各タスクへの実行優先度を調整し、受信バッファ受信キュー)のオーバーフローを防止して、適切なデータ処理を行う方法が開示されている。

先行技術

0004

特開平11−237993号公報

発明が解決しようとする課題

0005

FAにおけるデータ収集分析系は、生産工程に応じ、ユーザ(工場管理者)によって、データ収集対象機器、データ処理方法等が自在に定め得るように構成される必要がある。そのためのデータ収集分析機器として、パイプライン演算装置を用いることが考えられている。

0006

パイプライン演算装置では、データ収集対象機器や、所望のデータ処理方法に対応する準備された機能ブロックノード)を組み合わせることで、ユーザが要求するデータ処理手順の設定を容易に行えるようにすることができる。

0007

更に、データ収集分析機器としてのパイプライン演算装置を、各種制御対象機器の制御を行うプログラマブルロジックコントローラ(Programmable Logic Controller:PLC)に統合することも考えられる。これにより、収集したデータを分析した結果を、各種制御対象機器への制御に反映させることも、容易となる。

0008

このようなFAで用いるためのパイプライン演算装置の取り扱うデータは膨大であるため、その高性能化が求められる。

0009

本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置を実現することにある。

課題を解決するための手段

0010

本発明は、上述した課題を解決するために、以下の構成を採用する。

0011

本発明の一側面に係るパイプライン演算装置は、複数のノードと、複数の受信キューとを有する演算部であって、前記ノードが前記受信キューを介して複数接続されるパイプラインの少なくとも1つで構成される演算部と、ノード監視部と、キュー監視部と、優先度変数算出部と、時間割当部とを有する制御部と、を備え、前記ノード監視部は、前記ノードから、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得し、前記キュー監視部は、前記受信キューから、前記受信キューへの蓄積メッセージ量を取得し、前記優先度変数算出部は、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出し、前記時間割当部は、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てる構成を備える。

0012

上記構成によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置が実現される。

0013

上記一側面に係るパイプライン演算装置において、前記蓄積メッセージ量は、前記受信キューへ蓄積されたメッセージ数または蓄積されたメッセージの総サイズであってもよい。

0014

上記構成によれば、パイプライン処理が全体として効率的に実行できるようにするための優先度変数を具体的に算出できる。

0015

上記一側面に係るパイプライン演算装置において、前記優先度変数算出部は、前記ノードの前記ノード処理時間と前記蓄積メッセージ量との積を、当該ノードの優先度変数として算出する構成を有していてもよい。

0016

上記構成によれば、メッセージ入力待ちによるノードの動作のアイドル状態が生じる事態が発生し、パイプライン全体としての動作の効率が悪くなることを抑制しうる。

0017

上記一側面に係るパイプライン演算装置において、前記優先度変数算出部は、前記ノード監視部が取得した前記ノードの過去からの複数の前記ノード処理時間に基づいて、当該ノードの前記優先度変数を算出するための前記ノード処理時間を生成する構成を有していてもよい。

0018

上記構成によれば、突発的な事由による各ノードにおける極端稼働時間の割り当ての発生を防止し得る。

0019

上記一側面に係るパイプライン演算装置において、前記演算部は、合流監視部と、補正係数算出部とを更に備え、前記合流監視部は、前記パイプラインのうち、複数の部分パイプラインが合流するパイプラインについて、前記複数の部分パイプラインの合流点の前記ノードよりも上流の、互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量を、前記キュー監視部から取得して、前記互いに異なる部分パイプラインに属するノードの前段の受信キューの前記蓄積メッセージ量の不均衡度合いを算出し、前記補正係数算出部は、前記互いに異なる部分パイプラインのうちの、いずれかの部分パイプラインに属するノードについて、前記不均衡の度合いに応じて補正係数を算出し、前記時間割当部は、前記ノードについて前記補正係数が算出された場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる構成を有していてもよい。

0020

上記構成によれば、合流のあるパイプラインにおいても、確実にパイプライン処理が全体として効率的に実行できるようになる。

0021

上記一側面に係るパイプライン演算装置において、前記演算部は、メモリ監視部と、補正係数算出部とを更に備え、前記メモリ監視部は、前記受信キューの蓄積メッセージを保存するメモリの空き容量が所定値よりも小さくなった場合に前記補正係数算出部に通知し、前記補正係数算出部は、前記通知を受信した場合に、前記複数のパイプラインのうち、パイプラインでのメッセージの処理が完了するまでの時間がより短い、または、分岐のより少ないパイプラインに属する前記ノードについて、1より大きい補正係数を与え、前記時間割当部は、前記ノードについて前記補正係数が与えられた場合には、前記優先度変数に前記補正係数を乗じた値に応じて、前記稼動時間を割り当てる構成を有していてもよい。

0022

上記構成によれば、メモリの空き容量が少なくなった場合に、演算部に滞留しているメッセージを減少させることができ、メモリ資源不足が生じる事態の発生を抑制することができる。

0023

本発明の一側面に係るプログラマブルロジックコントローラは、上記一側面に係るパイプライン演算装置を備えたプログラマブルロジックコントローラであってもよい。

0024

上記構成によれば、高性能化されたデータ収集機能を有し、各種制御対象機器の制御について、収集したデータを分析した結果を反映させるFAシステムをユーザが構築することが容易となる。

0025

本発明の一側面に係るパイプライン処理の実行方法は、ノードが受信キューを介して複数接続される少なくとも1つのパイプラインにより、パイプライン処理を実行する方法であって、前記ノードにおける1つのメッセージの処理に要する時間であるノード処理時間を取得するステップと、前記受信キューへの蓄積メッセージ量を取得するステップと、少なくとも前記ノードの前記ノード処理時間と、当該ノードの前段の受信キューの前記蓄積メッセージ量とに基づいて、当該ノードの優先度変数を算出するステップと、前記ノード毎の前記優先度変数に応じ、前記各ノードに対して稼動時間を割り当てるステップと、を備えている。

0026

上記構成によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算処理が実現される。

発明の効果

0027

本発明の一側面に係るパイプライン演算装置によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算を実現できる。

0028

本発明の一側面に係るプログラマブルロジックコントローラによれば、高性能化されたデータ収集機能を有し、各種制御対象機器の制御について、収集したデータを分析した結果を反映させるFAシステムをユーザが構築することが容易となる。

0029

本発明の一側面に係るパイプライン処理の実行方法によれば、受信キューのオーバーフローを防止しつつも、更にパイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算を実現できる。

図面の簡単な説明

0030

本発明の実施形態1に係るパイプライン演算装置を示す概略構成図である。
本発明の実施形態1に係るパイプライン演算装置の動作を説明するための図である。(a)、(b)はそれぞれ異なる時刻の状態を示す。
本発明の実施形態2に係るプログラマブルロジックコントローラを示す概略構成図である。
本発明の実施形態3に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。
本発明の実施形態4に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。
本発明の実施形態5に係るパイプライン演算装置を示す概略構成図である。
本発明の実施形態7に係るパイプライン演算装置を示す概略構成図である。
本発明の実施形態7に係るパイプライン演算装置における、パイプラインの構成と動作を説明するための図である。
本発明の実施形態8に係るパイプライン演算装置を示す概略構成図である。

実施例

0031

〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)が、図面に基づいて説明される。

0032

§1 適用例
図1を参照して、まず、本発明が適用される場面の一例が述べられる。図1は、本実施形態に係るパイプライン演算装置110の構成を示す概略図である。

0033

パイプライン演算装置110は、演算部120と制御部160とを備える。

0034

演算部120は、機能ブロックである、複数のノード(入力ノード130、ロジックノード140、出力ノード150)と、複数の受信キュー141、151とを有する。演算部120では、前記ノードが受信キューを介して複数接続されるパイプラインが構成されており、演算部120には少なくとも1つのパイプラインが設けられている。

0035

制御部160は、機能ブロックであるノード監視部161と、キュー監視部162と、優先度変数算出部163と、時間割当部164とを有する。

0036

パイプライン演算装置110は、その外部からロードした、もしくはそれが備える記録装置(不図示)からロードしたパイプライン処理実行プログラムを実行することで、機能ブロックとしてのこれら各部の機能を実現する。

0037

ノード監視部161は、各ノード(入力ノード130、ロジックノード140、出力ノード150)から、ノードでのメッセージの処理に要する時間であるノード処理時間Tを取得する。

0038

キュー監視部162は、受信キュー141、151から、それぞれの蓄積メッセージ量を取得する。

0039

優先度変数算出部163は、少なくとも前記ノードのノード処理時間と、当該ノードの前段の受信キューの蓄積メッセージ量とに基づいて、当該ノードの優先度変数PRIを算出する。

0040

時間割当部164は、ノード毎の優先度変数PRIに応じ、各ノードに対して稼動時間を割り当てて、動作させる。

0041

このように、本実施形態のパイプライン演算装置110は、少なくともノード処理時間と受信キューの蓄積メッセージ量とに基づいて、優先度変数PRIを算出し、これに応じて各ノードに対して稼動時間を割り当てる。

0042

よって、受信キューでのオーバーフローを防止しつつも、パイプライン処理が全体として効率的に実行できる、改良されたパイプライン演算装置が実現される。

0043

§2 構成例
続いて、本実施形態のパイプライン演算装置110の構成の一例が説明される。

0044

演算部120におけるノードとは、入力ノード130、ロジックノード140、出力ノード150のいずれかである。それぞれの機能は次の通りである。

0045

入力ノード130は、パイプライン演算装置110の外部の機器等から、メッセージを収集する機能ブロックである。入力ノード130は外部の機器等の種類や扱うメッセージの種類に応じて、多種多様である。本明細書において、ひとまとまりのデータを、メッセージと称し、メッセージの内容は生産情報、制御情報環境情報などの情報である。制御情報は、例えばサーボモータから取得できるリアルタイムトルク等のパラメータといった情報であり得、環境情報は、例えば気温といった情報であり得る。

0046

ロジックノード140は、入力されたメッセージに対して処理を行い、後段に出力する機能ブロックである。ロジックノード140は実施する処理の内容に応じて、多種多様である。

0047

出力ノード150は、入力されたメッセージをパイプライン演算装置110の外部の機器等へ出力する機能ブロックである。出力ノード150は外部の機器等の種類や扱うメッセージの種類に応じて、多種多様である。

0048

パイプライン演算装置110の外部の機器等としては、工作機械測定機器その他の各種FA機器、各種生産情報に関するデータを収集し提供するデータベース、各種生産情報に関するデータを保存するデータベース、インターネットやその他のネットワーク上のクラウドサーバ、であり得る。

0049

更に、パイプライン演算装置110がPLCに統合されている場合において、パイプライン演算装置110の入力ノード130または出力ノード150の接続先としては、PLCの備える記憶装置上のデータファイルや、PLC上で動作している工作機械のモーション制御プログラム等のアプリケーションでもあり得る。

0050

生産情報とは、工作機械や測定機器その他の各種FA機器の動作に関する情報、測定データ、その他生産に係わる情報を含む概念である。

0051

図1には、それぞれ入力ノード130、出力ノード150の接続先の外部の機器の例示としての、データサーバ11、データベース12が示されている。

0052

演算部120においては、入力ノード130と出力ノード150との間に、順次必要なロジックノード140が接続されて、パイプラインが構成される。

0053

ロジックノード140の前段には、ロジックノードの受信キュー141が設けられている。同様に、出力ノード150の前段には、出力ノードの受信キュー151が設けられている。それぞれの受信キュー141、151は、ロジックノード140や出力ノード150に入力されるメッセージを、ロジックノード140や出力ノード150での処理が終了して次のメッセージの受け入れが可能となるまで一時的に蓄積する。

0054

演算部120を構成するパイプラインは、通常多数であるが、少なくとも1つあればよい。また、パイプラインは、1つの入力ノード130から1つの出力ノード150へと、単数もしくは複数のロジックノードが直列に接続されるもののみに限られず、途中で分岐や合流をするものであってもよい。

0055

ノード監視部161、キュー監視部162、優先度変数算出部163、時間割当部164を有する制御部160の構成の概略は、上記§1適用例に記載の通りである。各部の機能の詳細は、パイプライン演算装置110の動作の説明とともに後述される。

0056

なお本実施形態においては、各々の受信キューの蓄積メッセージ量として、メッセージの数である、蓄積メッセージ数Qが採用される。

0057

ノード処理時間Tは具体的に、以下の開始時刻から終了時刻までの時間であり得る。ノードが受信キューからメッセージを受け取った時刻である受信キューのデキュー時刻を開始時刻とし得る。なお、入力ノード130の場合には、入力ノード130が実行のスタートキック)を行った時刻を開始時刻とし得る。

0058

また、ノードが接続先のノードの受信キューにメッセージを送り込む時刻である、接続先のノードの受信キューのエンキュー時刻を終了時刻とし得る。なお、出力ノード150の場合には、出力ノード150の出力先外部機器等へのメッセージの出力が完了した時刻とし得る。更に、特にノードが後段にメッセージを出力しない場合等において、ノードが受け取ったメッセージに係る処理を、メッセージを受け取ったノード自身でそれ以上行う必要のなくなった時点(自身での処理が完了した時点)を、完了した時刻としてもよい。

0059

§3 動作例
本実施形態のパイプライン演算装置110の動作について、より具体的な例に基づいて説明する。

0060

入力ノード130は複数のデータサーバ11から、順次メッセージを取得する。各々のデータサーバ11は、ハイパーテキストトランスファープロトコル(Hypertext Transfer Protocol:http)やハイパーテキストトランスファープロトコルセキュア(Hypertext Transfer Protocol Secure:https)に基づいてメッセージを提供するウェブサーバ(Web Server)であり得る。

0061

ロジックノード140は順次、入力されたメッセージから、例えば、設備の状態の解析に必要なデータの抽出を行い所要の演算を行って出力する。ロジックノード140、例えば、ハイパーテキストマークアップラングイッジ(HyperText Markup Language:html)解析スクリプトを用いた処理を行うものであってよい。

0062

出力ノード150は、ロジックノード140が出力するメッセージを、順次、データベース12に対して出力する。

0063

図2(a)は、各ノードがこのような動作を実行するにあたっての、演算部120におけるパイプライン121の状態を示す図である。ノード処理時間T、受信キューの蓄積メッセージ数Q、及び、優先度変数PRIについての添え字i、n、oは、それぞれ、入力ノード130、ロジックノード140あるいはその受信キュー141、出力ノード150あるいはその受信キュー151を表す。

0064

この例において、各ノードがメッセージを処理するのに要するノード処理時間Tについて、Ti=20ms、Tn=100ms、To=50msである。

0065

このとき、ノード監視部161が、入力ノード130、ロジックノード140、出力ノード150から、それぞれのノード処理時間Ti=20ms、Tn=100ms、To=50msを取得する。なお、ここで単位をミリ秒として表したが、CPU(Central Processing Unit)のクロック数であってもよい。

0066

また、各々の受信キューに蓄積されたメッセージの数である蓄積メッセージ数Qについて、図2(a)の状態では、一時的にQn=3、Qo=0となっている。

0067

このとき、キュー監視部162が、受信キュー141、151から、それぞれ蓄積メッセージ数Qn=3、Qo=0を取得する。

0068

次に、優先度変数算出部163が、ノード監視部161から各ノードのノード処理時間Tを受信し、また、キュー監視部162から各ノードの蓄積メッセージ数Qを受信する。また、優先度変数算出部163は、入力ノード130に関して蓄積メッセージ数Qiを1とみなす

0069

それから優先度変数算出部163が、各ノードについての優先度変数PRIを算出する。ここで、優先度変数PRIは、少なくともノード処理時間Tと蓄積メッセージ数Qとから算出される値である。本実施形態における具体的な例示では、優先度変数PRIはノード処理時間Tと蓄積メッセージ数Qとの積である。

0070

優先度変数算出部163は、各ノードについての優先度変数PRIを、PRIi1=1×20、PRIn=3×100、PRIo=0×50と算出する。

0071

続いて、時間割当部164が、優先度変数算出部163が算出した各ノードについての優先度変数PRIに応じて、演算部120に与えられる時間についての情報処理資源、例えば、CPU時間を配分する。例示としては、演算部120に与えられるCPU時間を優先度変数PRIによって按分して、各ノードを稼働させる。

0072

すると、図2(a)の状態から所定時間内は、出力ノード150にCPU時間は割り当てられず、ロジックノード140には、入力ノード130よりも大きなCPU時間が割り当てられる。

0073

ロジックノード140には大きなCPU時間が割り当てられたため、一定時間経過後に、ロジックノード140の受信キュー141の蓄積メッセージ数Qnが減少し、例示として図2(b)の状態に遷移した。このように、入力ノード130がロジックノード140に送ったメッセージの積み上がりが解消された。

0074

ただし時間割当部164は、入力ノード130に定周期実行の予約がされている場合、例外的に、当該入力ノード130には、その動作の定周期実行が行えるCPU時間を与える。

0075

入力ノード130について、定周期実行の予約がされている際の、時間割当部164の動作は、次のようなものである。例えば、1msの定周期で外部機器からメッセージを取得する予約がされ、入力ノード130の処理時間が0.02msとした場合、少なくとも1ms以内に0.02msのCPU時間を確保するように、時間割当部164は、入力ノード130を稼働させる。時間割当部164は残余の演算部120に与えられるCPU時間を他のノードで按分して他の各ノードを稼働させる。

0076

なお、入力ノード130について、定周期実行の予約がされ、入力ノード130に比較的大きな一定のCPU時間が割り当てられた場合には、入力ノード130からのメッセージの出力が高頻度となる。すると、パイプラインの動作の初期に特定のノードの受信キューにメッセージが積み上がろうとするが、この場合においても各ノードの稼働時間が上記同様に調整されて、解消される。

0077

§4 作用、効果
上述のように、本実施形態のパイプライン演算装置110は、一時的に特定の受信キューにメッセージが過剰に蓄積されたとしても、各ノードの稼動時間が状況に応じて動的に割り当てられて、過剰な蓄積が解消するように、動作する。従って、パイプライン演算における受信キューのオーバーフローが効果的に抑制される。

0078

また、上述のように、優先度変数PRIはノード処理時間Tと蓄積メッセージ数Qとから算出され、各ノードの動作時間が優先度変数PRIに応じて動的に割り当てられる。つまり、本実施形態のパイプライン演算装置110では、ノードにおける動作待ちが生じないような、パイプライン全体としての効率化が実現されている。

0079

(比較1)
比較のため、制御部160による上述のような、各ノードの稼動時間の調整が無いケースが説明される。

0080

この場合、例えばロジックノード140でのメッセージの処理が時間を要するものである際に、入力ノード130から出力されるメッセージが、ロジックノード140の受信キュー141に積みあがる(Qnが過剰になる)。このような状況が続くと、受信キュー141がオーバーフローしてしまう状況に陥る。

0081

そこでオーバーフローを回避するため、入力ノード130の動作について、待ち時間を設けることが考えられる。例えば、ロジックノード140のノード処理時間がTn=100msである場合に、入力ノード130の動作の待ち時間を200msに設定し、200ms以上の時間間隔でしか、ロジックノード140の受信キュー141にメッセージが送付されないようにする。このような待ち時間の設計は、パイプライン後段の処理時間を考慮して行う必要がある。

0082

しかしながら、演算部120に設定されるパイプラインが多数の場合において、このような調整をユーザが行うことは、非常に煩わしく、また適切に待ち時間を設定することも難しい。

0083

一方、本実施形態のパイプライン演算装置110においては、ユーザが入力ノード毎にこのような調整を行わなくとも、動的にメッセージの蓄積が解消される。

0084

よって、ユーザが各ノードの待ち時間等のパラメタを設定する必要が無く、各種機器からのデータ収集分析が可能な、データ収集システムを容易に構築できるようになる。

0085

(比較2)
また比較のため、特許文献1の従来技術を適用したケースが説明される。従来技術を適用したパイプライン演算装置においては、各々のノードに割り当てる稼働時間は、各々のノードの受信キューに蓄積されたデータ量(メッセージによるメモリ使用量)から算出される。

0086

一方、本実施形態のパイプライン演算装置110において、各々のノードに割り当てる稼働時間は、各々のノードの受信キューの蓄積メッセージ量である蓄積データ数Qと、ノード処理時間Tとの積である優先度変数PRIに応じて按分される。

0087

従って、一時的にあるノードの受信キューにメッセージが過剰に蓄積された場合に、ノード処理時間まで考慮されて、ノードにCPU時間が割り当てられる。よって、パイプライン演算装置110によれば、従来技術を適用するよりも、より早くメッセージの過剰な蓄積の状態が解消され得る。

0088

また、例えばノード処理時間100msのノードと、ノード処理時間200msのノードとが接続されている場合に一定流量のメッセージがパイプラインを通過するには、後者のノードに2倍のCPU時間が割り当てられる必要がある。よって、従来技術では、後者のノードの受信キューに前者のノード受信キューの2倍のメッセージが蓄積されると、そのような割り当てが実行される。

0089

一方、本実施形態のパイプライン演算装置110では、そのような割り当てを実行するためにこれらのノードで蓄積するメッセージ数は同等である。蓄積メッセージ数Qと、ノード処理時間Tとの積により、CPU時間が割り当てられるからである。このように、本実施形態のパイプライン演算装置110によれば、稼動しているパイプライン121における各ノードの受信キューに蓄積されるメッセージ数に差異が生じにくい。従って、受信キューを構成するためのメモリリソースが限られた場合であっても、パイプライン演算装置110は効率的な運用が可能である。

0090

また、従来技術のように、受信キューに蓄積されるメッセージ量にばらつきがある場合、特定のノードにおいて、処理すべきメッセージが枯渇してしまい、稼働時間の割合が更新される次のタイミングまで、そのノードが受信待ちとなる非効率な状況が生じやすい。しかし、本実施形態のパイプライン演算装置110では、このような事態が抑制されるから、パイプライン処理が全体として効率的に実行できるようになる。

0091

以上の実施形態1に関する作用、効果については、以下の実施形態においても、同様に発揮される。

0092

〔実施形態2〕
本発明の他の実施形態が、以下に説明される。なお、説明の便宜上、上記実施形態にて説明した構成要素と同じ機能を有する構成要素については、同じ符号が付記され、その説明は繰り返されない。

0093

図3は、実施形態2に係るプログラマブルロジックコントローラ(PLC)200の構成を示す概略図である。

0094

プログラマブルロジックコントローラ200は、実施形態1と同様のパイプライン演算装置210を備える。パイプライン演算装置210には、演算部220と制御部260とが設けられている。

0095

演算部220には、ユーザ(工場管理者)が、データ収集対象機器等、データ出力対象機器等やデータ処理方法に対応するノードを接続したパイプラインを構築することで、ユーザが必要なデータ収集とその処理の設定を容易に行える。

0096

図3において、入力ノードInput、ロジックノードLogic、出力ノードOutputにより構成される複数のパイプラインが示されている。なお、図示されないが、上記実施形態同様、各々のロジックノードLogicと出力ノードOutputの前段には受信キューが接続される。制御部260の構成は、上記実施形態と同様である。

0097

プログラマブルロジックコントローラ200は更に、それが備える記憶装置内のデータファイル201、202や、その内部で動作する、工作機械のモーション制御プログラム等のアプリケーション203、204を有している。

0098

パイプライン演算装置210の入力ノードInputの接続先は、データファイル201や、アプリケーション203であり得る。更に、入力ノードInputの接続先は、プログラマブルロジックコントローラ200の外部機器である、工作機械や測定機器その他の各種FA機器、各種生産情報に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを保存するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。

0099

パイプライン演算装置210の出力ノードOutputの接続先は、データファイル202や、アプリケーション204であり得る。更に、出力ノードOutputの接続先は、プログラマブルロジックコントローラ200の外部機器である、工作機械や測定機器その他の各種FA機器、FA機器に関するデータを収集し提供するデータサーバ11、各種生産情報に関するデータを収集し提供するデータベース12、インターネットやその他のネットワーク上のクラウドサーバ13であり得る。

0100

入力ノードInputの接続先であるアプリケーション203と、出力ノードOutputの接続先であるアプリケーション204とは、異なるアプリケーションであってもよいし、同一のアプリケーションであってもよい。

0101

実施形態2によれば、データ収集分析機器としてのパイプライン演算装置210が、各種制御対象機器の制御を行うプログラマブルロジックコントローラ200に統合されている。よって、各種制御対象機器の制御について、収集したデータを分析した結果を反映させるシステムをユーザが構築することが容易となる。

0102

〔実施形態3〕
実施形態3に係るパイプライン演算装置は、上記各実施形態と同様である。実施形態3では、パイプラインに分岐が設定された場合の演算部の動作が説明される。

0103

図4は、実施形態3に係るパイプライン演算装置の演算部に属するパイプライン321を示す図である。パイプライン321は以下の構成を有する。

0104

入力ノード330が、パイプライン演算装置外部の工作機械14からメッセージを取得し、ロジックノード340が必要データを抽出する。ロジックノード340の前段には、受信キュー341が設けられている。ロジックノード340は処理されたメッセージを出力ノード(A)350と出力ノード(B)352とに分岐して出力する。

0105

出力ノード(A)350は、パイプライン演算装置外部のデータベース12に対して処理されたメッセージを出力する。出力ノード(B)352は、パイプライン演算装置外部のクラウドサーバ13に対してメッセージを出力する。出力ノード(B)352は、例えば、MQTT(Message Queuing Telemetry Transport)プロトコルにより処理を実行する。

0106

ここで、データベース12に接続する出力ノード(A)350のノード処理時間Toaが50msであり、クラウドサーバ13に接続する出力ノード(B)352は、より時間を要して、ノード処理時間Tobが150msであるケースを想定する。データベース12が、工場内部のローカルなネットワークに接続されており、インターネット上のクラウドサーバ13に対するよりも、速やかに出力処理が実行されるようなケースに相当する。

0107

パイプライン321の動作が開始すると、出力ノード(A)350の受信キュー351と、出力ノード(B)352の受信キュー353とには、ロジックノード340から、ほぼ同時にメッセージが出力される。そして受信キュー(A)351の蓄積メッセージ数Qoaと、受信キュー(B)353の蓄積メッセージ数Qobのいずれもが1となる。

0108

すると、出力ノード(A)350の優先度変数PRIoa=1×50と、出力ノード(B)352の優先度変数PRIob=1×150との比率は1:3となる。この比率に従って、CPU時間が割り当てられるから、出力ノード(A)350と出力ノード(A)350におけるメッセージの処理は、ほぼ同時に終了する。

0109

このようにメッセージの処理がほぼ同時に終了するから、その後も、蓄積メッセージ数Qoa、数Qobは、ほぼ同数であり、受信キュー(A)351と受信キュー(B)とに与えられるCPU時間の比は、ノード処理時間に対応する。従って、パイプライン321の動作が継続している間、出力ノード350、352のいずれか一方が、メッセージ入力待ちとなって、動作にアイドル状態が生じる事態になることがなく、極めて効率的に各ノードへのCPU時間の配分が実行されている。

0110

一方、特許文献1の従来技術を適用した場合には、例えば、パイプラインの動作が開始し、受信キュー(A)351の蓄積メッセージ数Qoaと、受信キュー(B)353の蓄積メッセージ数Qobのいずれもが1となった際に、同じCPU時間が配分される。このように、特許文献1の従来技術を適用した場合には、ノード処理時間がより短い出力ノード(A)350において、メッセージ入力待ちによる動作のアイドル状態が生じる事態が発生し、パイプライン全体としての動作の効率が悪くなる。

0111

以上のように、実施形態3の例においては、ノードにおける動作待ちが生じないような、パイプライン全体としての効率化が図られたパイプライン演算装置が実現する。

0112

〔実施形態4〕
実施形態4に係るパイプライン演算装置は、上記各実施形態と同様である。実施形態4では、パイプラインに合流が設定された場合の演算部の動作が説明される。

0113

図5は、実施形態4に係るパイプライン演算装置の演算部に属するパイプライン421を示す図である。ノード処理時間T、受信キューの蓄積メッセージ数Q、及び、優先度変数PRIについての添え字ia、ib、na、nb、n2は、それぞれ、入力ノード(A)430、入力ノード(B)432、ロジックノード(A)440あるいはその受信キュー(A)441、ロジックノード(B)442あるいはその受信キュー(B)443、ロジックノード(2)444あるいはその受信キュー(2)445を表す。パイプライン421は以下の構成を有する。

0114

入力ノード(A)430が、パイプライン演算装置外部の工作機械14からメッセージを取得し、ロジックノード(A)440が必要データを抽出する。ロジックノード(A)440の前段には、受信キュー(A)441が設けられている。ロジックノード(A)440は処理したメッセージをロジックノード(2)444の受信キュー(2)445にエンキューする。

0115

入力ノード(B)432が、パイプライン演算装置外部の工作機械15からメッセージを取得し、ロジックノード(B)442が必要データを抽出する。ロジックノード(B)442の前段には、受信キュー(B)443が設けられている。ロジックノード(B)442は処理したメッセージをロジックノード(2)444の受信キュー445にエンキューする。

0116

このようにパイプラインが合流するロジックノード(2)444の受信キュー(2)445においては、各ノードからのメッセージを1セットとして蓄積メッセージ数Qn2をカウントする。

0117

ロジックノード(2)444が、受信キュー445から、上記両メッセージをデキューし、両メッセージをマージする等の処理を行って、出力ノード450に出力する。出力ノード450の前段には、受信キュー451が設けられている。出力ノード450は、パイプライン演算装置外部のデータベース12に対してメッセージを出力する。

0118

ここで、ロジックノード(A)440のノード処理時間Tnaが50msであり、ロジックノード(B)442のノード処理時間Tnbが100msであるケースを想定する。

0119

各々の入力ノード430、432についても、優先度変数PRIに基づいたCPU時間の割り当てが実行されていれば、上記実施形態と同様にして、各ノードでのメッセージの処理は、同じ時間で完了し得る。

0120

よって実施形態4によれば、合流点のロジックノード(2)444が、いずれかのメッセージの入力待ちとなって、動作にアイドリング状態が生じることが無いようにでき、極めて効率的に各ノードへのCPU時間の配分が実行され得る。

0121

このように、実施形態4の例においては、ノードにおける動作待ちが生じないような、パイプライン全体としての効率化が図られたパイプライン演算装置が実現する。

0122

なお、図5において、Qia=1、Qib=1、Qna=1、Qnb=1、Qn2=1、Tia=10ms、Tib=20ms、Tn2=100msである。また、PRIia=1×10、PRIib=1×20、PRIna=1×50、PRInb=1×100、PRIn2=1×100である。

0123

〔実施形態5〕
実施形態4に係るパイプライン演算装置のパイプライン421のように、パイプラインに複数の入力ノードからの合流が設定されている場合に、少なくとも1つの入力ノードに定周期実行の予約がされていると次の事象が発生する。

0124

合流する部分パイプライン同士でメッセージの処理に要する時間が異なるため合流後のノードの受信キュー(図5では受信キュー445)に、一方の部分パイプラインからのメッセージが積み上がりつつも、他方の部分パイプラインからのメッセージが枯渇する状況となる。そうして、合流後のノードがメッセージ待ちとなり、効率的なパイプラインの運用がなされない状況となる。実施形態5に係るパイプライン演算装置は、このような事象を解消し得る構成を有する。

0125

図6は、実施形態5に係るパイプライン演算装置610の構成を示す概略図である。

0126

パイプライン演算装置610は、演算部620と制御部660とを備える。

0127

演算部620は、上記実施形態のパイプライン演算装置と同様であり、各種のパイプラインを内部に設定し得る。

0128

制御部660は、パイプライン演算装置110の制御部160の構成に加えて、更に合流監視部665と、補正係数算出部666とを備える。

0129

合流監視部665は、少なくとも合流直前のノードの受信キュー(図5では、受信キュー441、443)の蓄積メッセージ数をキュー監視部562から受け取り、それらを比較する。そうして、比較の結果、合流する部分パイプライン間の蓄積メッセージ数の不均衡の度合いを判断する。

0130

補正係数算出部666は、合流監視部665から、合流する部分パイプライン間の蓄積メッセージ数の不均衡の状態の情報を受け取る。補正係数算出部666は、合流する部分パイプライン間の不均衡の度合いに応じて、メッセージの蓄積が生じている部分パイプラインに属するノードについて、補正係数Kを算出する。

0131

例えば、仮に図5のような合流のあるパイプラインにおいて、受信キュー441の蓄積メッセージ数Qnaが、受信キュー443の蓄積メッセージ数Qnbの3倍になっていたとする。このようなとき、補正係数算出部666は、受信キュー441の属する部分パイプラインのノードである、入力ノード(A)430とロジックノード(A)440とに、補正係数K=3を設定する。

0132

時間割当部664は、補正係数算出部666が算出した補正係数Kと、パイプライン演算装置110の優先度変数算出部163と同様にして優先度変数算出部663が算出した優先度変数PRIに応じて、各ノードにCPU時間を割り当てる。より具体的には、補正係数が設定されたノードについては、優先度変数PRIに補正係数を乗じた値に応じたCPU時間を割り当てる。

0133

すると、メッセージの蓄積が生じている部分パイプラインに属するノードによりCPU時間のリソースが割り当てられ、合流点における不均衡が解消する。

0134

このように、実施形態5に係るパイプライン演算装置610によれば、合流のあるパイプラインにおいても、確実にパイプライン処理が全体として効率的に実行できるようになる。

0135

〔実施形態6〕
実施形態6に係るパイプライン演算装置は、上記各実施形態と同様であるが、優先度変数PRIの計算式が異なる一例である。

0136

上記実施形態での例示において、優先度変数算出部の実行する、優先度変数算出のための計算式は、PRI=T×Qであった。つまり、ノード処理時間Tと蓄積メッセージ数Qとは、同様の重みを有していた。

0137

しかし、演算部に与えられたメモリの空き容量が少なくなった場合には、蓄積メッセージ数Qにより重みを付けて、暫時蓄積メッセージを減少させる方向に動作することが好ましい場合がある。

0138

実施形態6に係るパイプライン演算装置では、一例として、優先度変数算出部の実行する、優先度変数算出のための計算式を、PRI=T×Qr、(r≧1)とすることができる。ここで、変数rは、蓄積メッセージ数Qに重みを付けるためのパラメタであり、1より大きい場合、蓄積メッセージ数Qに、より重みが付いていることを表す。なお、重み付けを考慮した計算式は上記のものに限られず、他の計算式が用いられてもよい。

0139

実施形態6に係るパイプライン演算装置では、メモリの空き容量が少なくなった場合に、変数rの値を1より大きくして、蓄積メッセージ数Qを減少させる方向に動作させることができ、メモリ資源の不足が生じる事態の発生を抑制することができる。

0140

また、実施形態6に係るパイプライン演算装置では、一例として、優先度変数算出部の実行する、優先度変数算出のための計算式を、演算部に与えられたメモリの使用率mを直接考慮して、PRI=T×Q(Q/Qmax+m)とすることができる。ここで、Qmaxは、受信キューに蓄積できるメッセージ数の最大値である。本計算式によっても、メモリ資源の不足が生じる事態の発生を抑制することができる。

0141

〔実施形態7〕
実施形態7に係るパイプライン演算装置は、上記各実施形態と同様であるが、特定の状況で行う特別な処理を、更に備えている一例である。

0142

図7は、実施形態7に係るパイプライン演算装置510の構成を示す概略図である。

0143

パイプライン演算装置510は、演算部520と制御部560とを備える。

0144

演算部520は、上記実施形態のパイプライン演算装置と同様であり、各種のパイプラインを内部に設定し得る。設定されるパイプラインの例については後述する。煩雑さを避けるため、図7には一つのパイプラインのみが示されている。

0145

制御部560は、パイプライン演算装置110の制御部160の構成に加えて、更にメモリ監視部567と、補正係数算出部566とを備える。

0146

メモリ監視部567は、各ノードの蓄積メッセージ数をキュー監視部562から受け取り、それらを合計する。そうして、パイプライン演算装置510の受信キューのために確保されているメモリ資源の割り当てと比較して、空き容量が所定値よりも小さくなったか否かを判断する。空き容量が所定値よりも小さくなった場合、メモリ監視部567は、その旨を補正係数算出部566に通知する。

0147

補正係数算出部566は、メモリ監視部567から、当該通知を受け取った場合、特定のパイプラインに属するノードについての補正係数Kを設定する。補正係数Kは、規定値(例えばK=2)であってもよいし、メモリの使用の割合に応じた値でもよい。

0148

時間割当部564は、補正係数算出部566が算出した補正係数Kと、パイプライン演算装置110の優先度変数算出部163と同様にして優先度変数算出部563が算出した優先度変数PRIに応じて、各ノードにCPU時間を割り当てる。より具体的には、補正係数が設定されたノードについては、優先度変数PRIに補正係数Kを乗じた値に応じたCPU時間を割り当てる。

0149

図8は、実施形態7に係るパイプライン演算装置510の演算部におけるパイプライン(A)521とパイプライン(B)522を示す図である。

0150

ノード処理時間T、受信キューの蓄積メッセージ数Q、及び、優先度変数PRIについての添え字ia、na、oaは、それぞれ入力ノード(A)530、ロジックノード(A)540あるいはその受信キュー(A)541、出力ノード(A)550あるいはその受信キュー(A)551を表す。

0151

同様に添え字ib、nb、obは、それぞれ入力ノード(B)532、ロジックノード(B)542あるいはその受信キュー(B)543、出力ノード(B)552あるいはその受信キュー(B)553を表す。

0152

パイプライン(A)521には、入力ノード(A)530、受信キュー(A)541、ロジックノード(A)540、受信キュー(A)551、出力ノード(A)550が順次接続されている。入力ノード(A)530、ロジックノード(A)540、出力ノード(A)550のノード処理時間は、それぞれTia=10ms、Tna=50ms、Toa=100msである。

0153

パイプライン(B)522には、入力ノード(B)532、受信キュー(B)543、ロジックノード(B)542、受信キュー(B)553、出力ノード(B)552が順次接続されている。入力ノード(B)532、ロジックノード(B)542、出力ノード(B)552のノード処理時間は、それぞれTib=10ms、Tnb=200ms、Toa=50msである。

0154

上記構成において、与えられたメモリの空き容量が少なくなり、メモリ監視部567からの通知がされた場合に、補正係数算出部566は、パイプライン521に属する各ノードに、補正係数K(例えばK=2)を与える。

0155

補正係数を与えるパイプラインは、パイプラインが完了するまでの時間が短いものから選択される。図8の例では、パイプライン521の当該時間は、Tia+Tna+Toaであり、160msである。パイプライン522の当該時間は、Tib+Tnb+Tobであり、260msである。よって、図8の例では、パイプライン521が選択される。

0156

なお、補正係数算出部566が選択するパイプラインは、パイプライン演算装置510を構築するプログラムにより、各パイプラインの処理時間の概算値に基づいてあらかじめ決定していてもよい。あるいは、ノード監視部561が取得した、各ノードのノード処理時間Tに基づいて、逐次算出されるものであってもよい。

0157

このようにして、パイプラインが完了するまでの時間が短い所定のパイプライン521に優先的にCPU時間が配分されると、当該パイプライン521中のメッセージの処理が急速に進み、メモリの空き容量が増加する。

0158

なお、図8においては、Qna=3、Qoa=3、PRIna=3×50、PRIoa=3×100、Qnb=3、Qob=3、PRInb=3×200、PRIob=3×50である。

0159

このように実施形態7に係るパイプライン演算装置510では、演算部に与えられたメモリの空き容量が少なくなった場合に、時間割当部564が、パイプラインが完了するまでの時間が短いパイプラインに属するノードの稼働時間の配分を大きくし、速やかに演算部520中のメッセージを減少させる。

0160

実施形態7に係るパイプライン演算装置510では、メモリの空き容量が少なくなった場合に、制御部560が上記特別な処理を行って、演算部520に滞留しているメッセージを減少させることができ、メモリ資源の不足が生じる事態の発生を抑制することができる。

0161

なお、実施形態7では、分岐の無いパイプラインを複数備える場合の例について説明した。一方、例えば図4に示されたような分岐のあるパイプラインは、分岐によってパイプライン中のメッセージ急激に増大する。したがって、上記と同様の動作により、メモリの空き容量が少なくなった場合に、このような分岐のあるパイプラインの稼働時間の配分を相対的に小さくし、メモリの空き容量の回復を図ることも、有効である。

0162

〔実施形態8〕
実施形態8に係るパイプライン演算装置710は、上記各実施形態と同様であるが、ノード監視部が取得したノードの過去からの複数のノード処理時間Tの統計値に基づいて、当該ノードの優先度変数PRIを算出するためのノード処理時間を生成する一例である。

0163

図9は、実施形態8に係るパイプライン演算装置710の構成を示す概略図である。

0164

パイプライン演算装置710は、演算部720、制御部760と、記録部770とを備える。

0165

演算部720は、上記実施形態のパイプライン演算装置と同様であり、各種のパイプラインを内部に設定し得る。

0166

制御部760は、パイプライン演算装置110の制御部160の構成に加えて、更に統計値算出部768を備える。

0167

ノード監視部761は、演算部720の各ノードから取得したノード処理時間Tを記録部770に記録する。

0168

統計値算出部768は、記録部770に記録された過去の各ノードのノード処理時間T及び、ノード監視部761が取得した最新のノード処理時間Tとに基づいて、ノード処理時間の統計値を算出する。統計値としては、平均値中央値、若しくは最頻値が用いられ得る。あるいは、スミルノフグラブス検定等の手法を用いて、異常値を採用しないようにした最新のノード処理時間Tとしてもよい、
優先度変数算出部763は、ノード処理時間については、統計値算出部768が算出した前記統計値を用いる他は、パイプライン演算装置110の優先度変数算出部163と同様にして、優先度変数PRIを算出する。

0169

時間割当部764の動作は、パイプライン演算装置110の時間割当部164と同様である。

0170

実施形態8に係るパイプライン演算装置710によれば、優先度変数PRIを算出のためのノード処理時間として統計値を採用するから、突発的な事由による各ノードにおける極端な稼働時間の割り当ての発生が防止され得る。

0171

付記事項
上記実施形態において、受信キューの蓄積メッセージ量として、蓄積されたメッセージの数である、蓄積メッセージ数Qが用いられた。

0172

しかしながら、本発明の適用はこれに限られるもので無く、蓄積メッセージ量として、受信キューに蓄積されたメッセージの総サイズ(メモリの使用量)が用いられてもよい。この場合、優先度変数PRIは、蓄積されたメッセージの総サイズとノード処理時間Tとの積で算出され得る。

0173

また、上記実施形態において、優先度変数PRIとして、上述の特定の例について説明された。しかしながら、本発明の適用はこれに限られるもので無く、優先度変数PRIとして、メッセージごとに、その重要度など、メッセージの処理優先度を算出する上で有用と思われる指標に応じた係数を乗じて、その総和を用いて算出してもよい。

0174

更に、本発明のパイプライン演算装置は、演算部における全てのノードが、本発明の制御部160で制御されるものに限られるものではなく、一部のノードは他の方法によって制御されるものであってもよい。

0175

ソフトウェアによる実現例〕
パイプライン演算装置110、210、510、610、710の機能ブロック(特に、入力ノード、ロジックノード、出力ノード、受信キュー、ノード監視部、キュー監視部、優先度変数算出部、時間割当部、合流監視部、補正係数算出部、メモリ監視部、統計値算出部)は、集積回路ICチップ)等に形成された論理回路ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。

0176

後者の場合、パイプライン演算装置110、210、510、610、710は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。

0177

上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形媒体」、例えば、ROM(Read Only Memory)等の他、テープディスクカード半導体メモリプログラマブルな論理回路などを用いることができる。

0178

また、上記プログラムを展開するRAM(Random Access Memory)などを更に備えていてもよい。

0179

また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体通信ネットワーク放送波等)を介して上記コンピュータに供給されてもよい。

0180

なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。

0181

本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。

0182

110、210、510、610、710パイプライン演算装置
120、220、520、620、720演算部
121、321、421、521、522パイプライン
130、330、430、432、530、532、Input入力ノード
140、340、440、442、444、540、542、Logicロジックノード
150、350、352、450、550、552、Output出力ノード
141、151、341、351、353、441、443、445、451、541、543、551、553受信キュー
160、260、560、660、760 制御部
161、561、661、761 ノード監視部
162、562、662、762キュー監視部
163、563、663、763優先度変数算出部
164、564、664、764時間割当部
665合流監視部
566、666補正係数算出部
567メモリ監視部
768統計値算出部
770 記録部
200プログラマブルロジックコントローラ
201、202データファイル
203、204アプリケーション
11データサーバ
12データベース
13クラウドサーバ
14、15工作機械
T、Ti、Tia、Tib、Tn、Tna、Tnb、Tn2、To、Toa、Tobノード処理時間
Q、Qi、Qia、Qib、Qn、Qna、Qnb、Qn2,Qo、Qoa、Qob蓄積メッセージ数
PRI、PRIi、PRIia、PRIib、PRIn、PRIna、PRInb、PRIn2、PRIo、PRIoa、PRIob 優先度変数

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

該当するデータがありません

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ