JP7370467B2 - プログラム作成支援装置 - Google Patents
プログラム作成支援装置 Download PDFInfo
- Publication number
- JP7370467B2 JP7370467B2 JP2022534530A JP2022534530A JP7370467B2 JP 7370467 B2 JP7370467 B2 JP 7370467B2 JP 2022534530 A JP2022534530 A JP 2022534530A JP 2022534530 A JP2022534530 A JP 2022534530A JP 7370467 B2 JP7370467 B2 JP 7370467B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- communication
- time
- processing
- estimated
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
本開示は、並列リアルタイム処理装置で実行されるプログラムの開発を支援するプログラム作成支援装置に関するものである。
従来、並列リアルタイム処理装置で実行されるプログラムを開発するためのプログラム作成支援装置として、例えば、特許文献1に開示されたプログラム開発装置がある。
このプログラム開発装置は、ダイアグラムを作成するためのアイコンの選択等を行う入力装置と、作成途中または作成されたダイアグラムを表示させるための表示装置と、ダイアグラムを作成するダイアグラム作成部と、ダイアグラムの作成に用いられるアイコンに対応したプログラム実体を記憶するアイコン記憶部とを備えている。さらに、プログラム開発装置は、作成されたダイアグラムを記憶するダイアグラム記憶部と、作成されたダイアグラムを解釈し実行するインタプリタと、複数のオブジェクトにより構成されるオブジェクトライブラリとを備えている。
特許文献1で開示されたプログラム開発装置に代表される従来のプログラム作成支援装置は、並列リアルタイム処理装置を実行するシステムのHW(hardware)やSW(software)の構成を記述できない。このため、複数のCPU(Central Processing Unit)、OS(Operating System)から構成される計算機で処理を実行する場合には、各処理を実行するCPU、OSを考慮した設計が別途必要であり、手間が発生していた。
また、ユーザは、プログラム作成支援装置を使用しているプログラム作成段階で、指定されたCPU,OSの環境下における処理の実行に要する時間を容易に確認できないことから、作成したプログラムがユーザ所望の時間内に終了するか否かを認識することが比較的困難であった。
したがって、従来のプログラム作成支援装置を用いた場合、並列リアルタイム処理装置に要求される仕様を確実に満たすようにプログラムを作成することが難しいという問題点があった。
本開示では、上記のような問題点を解決し、ユーザが所望する時間内で実行するプログラムの作成を的確に支援するプログラム作成支援装置を提供することを目的とする。
本開示に係るプログラム作成支援装置は、並列リアルタイム処理装置用のプログラム作成支援装置であって、前記並列リアルタイム処理装置が使用するCPU及びOSの構成を含むプログラム環境情報を付与する入力装置と、前記プログラム環境情報により規定されるCPU及びOSを使用してプログラムを作成し、前記プログラムの内容を示すプログラム情報を出力するプログラム作成部と、前記プログラム情報を受け、前記プログラムに関する推定プログラム実行時間を得る実行時間推定処理を実行する実行時間推定部とを備え、前記プログラム作成部は、前記プログラムを構成する複数の処理を複数のアイコンに対応づけ、前記複数のアイコンそれぞれに対しCPU及びOSを指定し、前記複数のアイコン間の実行順序関係を記述する処理構成記述処理を実行する処理構成記述部と、前記複数のアイコン間における必要数の通信経路それぞれの通信内容を記述する通信内容記述処理を実行する通信内容記述部とを含み、前記実行時間推定部は、前記複数のアイコンそれぞれに対し、指定されたCPU及びOSに基づき、対応づけられた処理の処理時間を推定して推定処理時間を得る処理時間推定処理を実行する処理時間推定部と、前記必要数の通信経路それぞれに対し、指定されたCPU及びOSに基づき、通信時間を推定して推定通信時間を得る通信時間推定処理を実行する通信時間推定部とを含み、前記処理構成記述処理及び前記通信内容記述処理は、前記入力装置を用いたユーザ操作に連動して実行され、前記処理時間推定処理及び前記通信時間推定処理の実行開始の指示は前記入力装置を用いたユーザ操作によって行われ、前記実行時間推定処理は前記処理時間推定処理及び前記通信時間推定処理を含み、前記推定プログラム実行時間は前記複数のアイコンそれぞれの前記推定処理時間及び前記必要数の通信経路それぞれの前記推定通信時間を含み、前記プログラム作成支援装置は、前記複数のアイコンそれぞれに前記推定処理時間を対応づけ、かつ、前記必要数の通信経路それぞれに前記推定通信時間を対応づけた推定時間付プログラム情報を画面上に表示する表示装置をさらに備える。
本開示のプログラム作成支援装置は、処理時間推定部及び通信時間推定部に処理時間推定処理及び通信時間推定処理を実行させることより、指定されたCPU及びOSに基づき、複数のアイコンそれぞれの推定処理時間と、必要数の通信経路それぞれの推定通信時間とを推定プログラム実行時間として得ることができる。
したがって、ユーザは複数のアイコンへのCPU及びOSの対応づけを適宜変更して、表示装置の画面上に表示された推定時間付プログラム情報を参照することにより、プログラムの全体実行時間に悪影響を与える要因を比較的容易に認識することができる。
その結果、本開示のプログラム作成支援装置は、ユーザが所望する時間内で実行するプログラムの作成を効果的に支援することができる。
本開示の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
<実施の形態1>
図1は本開示の実施の形態1であるプログラム作成支援装置71の構成を示すブロック図である。
図1は本開示の実施の形態1であるプログラム作成支援装置71の構成を示すブロック図である。
同図に示すように、プログラム作成支援装置71は、プログラム作成部1、実行時間推定部2、プログラム変換部3、入力装置4及び表示装置5を主要構成要素として含んでいる。
入力装置4は、並列リアルタイム処理装置が使用するCPU及びOSの構成を含むプログラム環境情報D4を外部より受け、プログラム環境情報D4をプログラム作成部1に付与している。プログラム環境情報D4は通常、複数のCPU及び複数のOSを指示する。ただし、プログラム環境情報D4の指示内容のうちCPU及びOSのうち一方は一つであっても良い。
プログラム作成部1は、プログラム環境情報D4により規定されるCPU及びOSを使用してプログラムを作成する。そして、プログラム作成部1は、作成したプログラムの内容を示すプログラム情報D6を実行時間推定部2、プログラム変換部3及び表示装置5に出力する。以降、プログラム作成部1で作成したプログラムを実際に実行する並列リアルタイム処理装置を「開発対象HW」と呼ぶ場合がある。
実行時間推定部2は、プログラム情報D6を受け、プログラムに関する推定プログラム実行時間を得る実行時間推定処理を実行する。
プログラム作成部1はチャート作成部11及び処理内容作成部12を主要構成要素として含んでいる。チャート作成部11は作成するプログラムの構造をアイコンとアイコン同士の接続により記述する。すなわち、チャート作成部11は、プログラムを構成する複数の処理を複数のアイコンに対応づけている。さらに、チャート作成部11は処理構成記述部111及び通信内容記述部112を主要構成要素として含んでいる。
処理構成記述部111は、プログラム環境情報D4から開発対象HWが使用するCPUとOSの情報を認識する。
そして、処理構成記述部111は、プログラムを構成する複数の処理を複数のアイコンに対応づけ、複数のアイコンそれぞれにおいてCPU及びOSを指定し、複数のアイコン間の実行順序関係を記述する処理構成記述処理を実行する。以下、本明細書において用いる「アイコン」は「処理」に対応するプログラム構成要素を意味する。また、プログラム構成要素としては、プログラムモジュール、プログラムを構成する関数、関数のまとまり等が考えられる。
通信内容記述部112は、複数のアイコン間における必要数の通信経路それぞれの通信内容を記述する通信内容記述処理を実行する。なお、通信内容には、使用する通信方式及び通信するデータの内容が含まれる。
処理内容作成部12は、複数のアイコンそれぞれの処理内容を作成する処理内容作成処理を実行する。
上記処理構成記述処理、上記通信内容記述処理及び上記処理内容作成処理は、入力装置4を用いた操作者によるユーザ操作に連動して実行される。
プログラム作成部1は、上記処理構成記述処理、上記通信内容記述処理及び上記処理内容作成処理を実行することによりプログラムを作成し、作成されたプログラムの内容を示すプログラム情報D6を得る。プログラム情報D6は、実行順序が指定された複数のアイコン、複数のアイコンそれぞれに指定されたCPU及びOS、必要数の通信経路及び複数のアイコンの処理内容を指示する情報である。
実行時間推定部2は処理時間推定部21及び通信時間推定部22を主要構成要素として含んでいる。
処理時間推定部21は、プログラム情報D6を参照して、プログラム情報D6で指示される複数のアイコンそれぞれに対し、指定されたCPU及びOSに基づき、対応づけられた処理の処理時間を推定して推定処理時間を得る処理時間推定処理を実行する。したがって、処理時間推定部21による処理時間推定処理の実行により、複数のアイコンに対応する複数の推定処理時間を得ることができる。
通信時間推定部22は、必要数の通信経路それぞれに対し、指定されたCPU及びOSに基づき、通信時間を推定して推定通信時間を得る通信時間推定処理を実行する。したがって、通信時間推定部22による通信時間推定処理の実行により、必要数の通信経路に対応する必要数の推定通信時間を得ることができる。
したがって、実行時間推定部2が得る推定プログラム実行時間は、複数のアイコンそれぞれの推定処理時間及び必要数の通信経路それぞれの推定通信時間を含んでいる。
このように、実行時間推定部2は、処理時間推定処理及び通信時間推定処理を含む実行時間推定処理を実行して、プログラム情報D6に上述した推定プログラム実行時間を加味した推定時間付プログラム情報D6tを得ることができる。
本明細書中において、上述した推定プログラム実行時間を加味したプログラム情報D6を、「推定時間付プログラム情報D6t」と呼ぶ場合がある。推定時間付プログラム情報D6tは、複数のアイコンそれぞれに推定処理時間を対応づけ、かつ、必要数の通信経路それぞれに推定通信時間を対応づけた情報となる。
さらに、実行時間推定部2は、複数の推定処理時間及び必要数の推定通信時間から、プログラム全体の推定全体実行時間ATを求め、推定プログラム実行時間に推定全体実行時間ATを含めている。
また、実行時間推定処理に含まれる処理時間推定処理及び通信時間推定処理それぞれの実行開始の指示は入力装置4を用いたユーザ操作によって行われる。
一方、プログラム作成部1によるCPU及びOSの対応づけが確定したプログラムが確定プログラムとして規定され、プログラム情報D6のうち、確定プログラムの内容を示す情報を特に「確定プログラム情報D6f」と呼ぶ場合がある。確定プログラム情報D6fには、複数のアイコンと必要数の通信経路と複数のアイコンへの指定が確定したCPU及びOSと、複数のアイコンの処理内容とが含まれる。
プログラム変換部3は、確定プログラム情報D6fを受け、開発対象HWが実行する専用プログラムに変換し、専用プログラムの内容を示す専用プログラム情報D3を作成する。
プログラム変換部3は、処理コード生成部31、通信コード生成部32及び設定コード生成部33を主要構成要素として含んでいる。
処理コード生成部31は、確定プログラム情報D6fで指示された複数のアイコンの処理を、開発対象HW用の複数の処理コードに変換する。
通信コード生成部32は、確定プログラム情報D6fで指示された必要数の通信経路を開発対象HW用の必要数の通信コードに変換する。
設定コード生成部33は、確定プログラム情報D6fの指示内容に基づき、複数のアイコンに割り当てたCPU及びOSを、開発対象HW用の複数のOS・CPUコードとして生成する。
したがって、専用プログラム情報D3には、開発対象HW用の複数の処理コード、必要数の通信コード、複数のOS・CPUコードが含まれる。
入力装置4は、操作者による操作であるユーザ操作を受け付け、少なくとも、開発対象HWのCPUの個数、OSの種類、それぞれのCPUの性能値に関するプログラム環境情報D4をプログラム作成部1に付与する。なお、プログラム環境情報D4の全部または一部を外部から入力装置4を介して取り込むようにしても良い。
さらに、入力装置4を用いたユーザ操作によって、プログラム作成部1、実行時間推定部2、プログラム変換部3を動作させることができる。
表示装置5は、プログラム情報D6あるいは推定時間付プログラム情報D6tの内容を操作者が視覚認識できる態様で画面上に表示する。
図18はプログラム作成支援装置71のハードウェア構成を模式的に示すブロック図である。同図に示すように、データの送受信を行うバス105にキーボード101、計算機102、メモリ103及びディスプレイ104が接続されている。
計算機102は、メモリ103または内部に格納されるアプリケーションプログラムを実行するCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSPともいう)を有している。
メモリ103として、例えば、RAM、ROM、フラッシュメモリー、EPROM、EEPROM等の、不揮発性または揮発性の半導体メモリが考えられる。さらに、メモリ103は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等、または、今後使用されるあらゆる記憶媒体であってもよい。
プログラム作成部1、実行時間推定部2、プログラム変換部3はすべて、計算機102がアプリケーションプログラムを実行することにより実現される。入力装置4は、計算機102に接続されるキーボード101が該当し、他に図18では図示しないマウスも含まれる。また、プログラム環境情報D4の少なくとも一部を外部から取り込む場合は、入力装置4として入力ポートが含まれる。
表示装置5は、計算機102にバス105を介して接続されるディスプレイ104が該当する。プログラム情報D6はメモリ103や計算機102内の記録装置に記録される。
図2はチャート作成部11で作成されるチャート(初期状態)の概念を示す説明図である。図2に示すように、チャート作成部11には、入力装置4からプログラム環境情報D4として付与された開発対象HW用のCPU及びOSの情報と、各CPUとOSに処理を割り当てるための領域と、処理時間や通信時間を直観的に理解可能とするための時間軸を含むチャートを表示装置5の画面上に表示する。
チャート作成部11の主要構成要素である処理構成記述部111では、各CPUとOSに対応する領域にアイコンを配置することにより、アイコンに対応する処理を実行するCPUとOSを選択することができる。
なお、図2で示す例では、OS-A用にCPU1及びCPU2が割り当てられ、OS-B用にCPU3が割り当てられている。この場合、プログラム環境情報D4は、CPU1~CPU3とOS-A及びOS-BをCPU及びOSの構成として指示している。
また、アイコン同士を接続することにより、アイコンの実行順序を決定している。さらに、アイコンにピンを追加することにより、アイコンから出力される、もしくは、アイコンに入力されるデータがあることを示すことができる。
図3はアイコン単体のイメージを示す説明図であり、図4はアイコン間の通信経路のイメージを示す説明図である。
図3に示すように、アイコン50は処理aに対応して設定される。図4に示すように、アイコン51及び52は処理A及び処理Bに対応して設定される。さらに、アイコン51の出力側のピン61とアイコン52の入力側のピン62とが通信経路CP1により接続される。通信経路CP1は、アイコン51からアイコン52に向けて通信処理がなされることを示している。
このように、一対のアイコンに関し、一方のアイコンの出力側のピンと他方のアイコンの入力側のピンとを接続することにより、一方のアイコンから他方アイコンに向かう方向に通信経路が存在することを示している。
チャート作成部11の主要構成要素である通信内容記述部112は、処理構成記述部111で作成されたアイコン間の通信経路CPについて、その通信内容を記述する。通信内容は、チャート上でピン同士を接続した通信経路CPについて、チャートとは異なる別ウィンドウで記述する。
図5は別ウィンドウに表示される通信経路のイメージを示す説明図である。図5に示すように、アイコン51が指示された「処理A」からアイコン52で指示された「処理B」への通信経路CPが記述されている。
図5に示すように、アイコン51の出力側のピン61a~61cから出力データとなる変数a~変数cを出力する。一方、アイコン52の入力側ピン62d~62fは変数d~変数fを入力データとして受ける。この際、アイコン51から出力される変数aがアイコン52の変数eとしてピン62eに入力され、アイコン51から出力される変数bがアイコン52の変数dとしてピン62dに入力され、アイコン51から出力される変数cがアイコン52の変数fとしてピン62fに入力される。
このように、図5は、アイコン51及び52間で変数a~変数cと変数d~変数fとのデータ通信を行う通信経路CPが設けられることを示している。
なお、通信経路CPごとに採用する通信方式を決定することができる。通信方式は通信経路CPを示す線の近傍に通信方式の名称を表示することなどにより、操作者が通信方式を直観的に認識できるようにしている。また、通信方式ごとに通信経路CPを指示する線種を異なる内容に表示するようにしても良い。
通信方式として、例えば、ソケット、共有メモリ、パイプなどの通信方式がある。ソケットは、双方向に通信でき、共有メモリによる通信よりも信頼性の高い通信方式である。パイプは、通信が一方向にしかできないが、ソケットより単純な通信方式である。共有メモリによる通信は、送信側と受信側がともにアクセス可能なメモリ上にデータを格納し、送信側と受信側でデータの受け渡しを行う方式である。
通信速度の観点から、共有メモリを使う通信方式が最も早いが、アクセスするアドレスを誤ると致命的なエラーが生じるなど、実装を誤ると信頼性が低くなるデメリットを有している。
一方、ソケット、パイプは、信頼性は高い反面、通信速度は遅くなる。このため、ソケット、共有メモリ、パイプを含む複数の通信方式のうち、どの通信方式を採用するかはケースバイケースとなる。
複数の通信方式から選択するに際し、プログラム環境情報D4に選択対象となる複数の通信方式が含まれている。
図6はチャート作成部11で作成されたチャート(作成段階)の例を模式的に示す説明図である。図6で示す例では、処理A~処理Dに対応して4つのアイコン51~54が設定されている。
そして、アイコン51はCPU1に、アイコン52はCPU2に、アイコン53及び54はCPU3に割り当てられる。
アイコン51からアイコン52及び53に向けて実行順序を示す矢印が示され、アイコン52及び53からアイコン54に向けて実行順序を示す矢印が示されている。したがって、図6では、アイコン51~54間において、アイコン51、アイコン52及び53、アイコン54の順に実行されることを示している。なお、アイコン52及び53はCPU2及びCPU3が実行する並列処理となる。
さらに、アイコン52の出力側のピン62とアイコン54の入力側のピン64とが通信経路CP2により接続される。したがって、図6では、アイコン52とアイコン54との間に通信経路CP2を介した通信処理が行われることを示している。
各アイコンに対応する処理内容は、処理内容作成部12により作成される。処理内容作成部12は、チャート作成部11と同様のアイコンを使用したチャート形式であっても、外部ツールにより作成する形式であってもよい。作成された処理内容は、アイコンと対応付けて管理される。
プログラム作成支援装置71によって作成するプログラム情報D6には、複数のアイコン、必要数の通信経路、複数のアイコンの処理内容、複数のアイコンに対応するOS及びCPU、複数のアイコンの実行手順を指示する情報が含まれる。
図6の例では、アイコン51~54が複数のアイコンに対応し、通信経路CP1が必要数の通信経路に対応する。アイコン51~54間の矢印によって複数のアイコンの実行手順が示され、アイコン51~54が配置される位置によって、アイコン51~54それぞれを実行するOS及びCPUが指定されている。
実行時間推定部2は、プログラム作成部1で作成されたプログラム情報D6を受け、プログラム情報D6が指示するプログラムに関する推定プログラム実行時間を得る実行時間推定処理を実行する。
推定プログラム実行時間は、複数のアイコンそれぞれに対する推定処理時間、必要数の通信経路それぞれに対する推定通信時間及び推定全体実行時間ATが含まれる。以下、複数のアイコンそれぞれに対する推定処理時間の総称を「複数の推定処理時間」、必要数の通信経路それぞれに対する推定通信時間の総称を「必要数の推定処理時間」と呼ぶ場合がある。
上述した推定全体実行時間ATは、複数の推定処理時間及び必要数の推定処理時間に基づく加算を含む演算処理によって得ることができる。
したがって、実行時間推定部2は、プログラム情報D6に基づき、推定全体実行時間AT、複数の推定処理時間及び必要数の推定処理時間を含む推定プログラム実行時間を指示する情報をプログラム情報D6に加味した推定時間付プログラム情報D6tを得ることができる。推定時間付プログラム情報D6tは適宜、プログラム作成部1やプログラム変換部3に送信される。
実行時間推定部2によって推定時間付プログラム情報D6tが得られた場合、プログラム作成部1を経由して推定時間付プログラム情報D6tを表示装置5に付与することができる。
したがって、図6に示すように、時間軸に沿って、アイコン51~54に対応する推定処理時間T1~T4、通信経路CP2に対応する推定通信時間TC2、及び推定全体実行時間ATを表示装置5の画面上に表示することができる。
処理時間推定部21による処理時間推定処理は、各アイコンの処理内容を参照し、処理に必要なステップ数と、アイコンを実行するCPUの性能とに基づき、ハードウェアシミュレータを用いたシミュレーションや、前もって評価したステップ数と実行速度の関係に基づく演算処理として実行される。なお、各アイコンの処理内容は処理内容作成部12によって作成される。
通信時間推定部22による通信時間推定処理は、各通信経路上で通信する変数と、その通信方式に基づいて実行される。例えば、選択された通信方式に関し、前もって評価した、通信するデータ量及び通信方式と通信時間の関係を利用することにより、通信時間推定処理が実行できる。なお、各通信経路の通信方式や通信内容は通信内容記述部112によって作成される。
推定全体実行時間ATは、チャートの左端にある始点アイコンを起点として、接続されたアイコンを順に辿り、右端の終点アイコンまで辿った際の、各アイコンの推定処理時間と各通信経路CPにおける通信時間の総和となる。ただし、始点アイコンから終点アイコンまで複数のルートで辿ることができる場合には、複数ルートの推定実行時間のうち最悪値を推定全体実行時間ATとする。
プログラム作成部1で作成され、OS及びCPUの割り当てが完了した確定プログラムの内容を示す確定プログラム情報D6fはプログラム変換部3に付与される。プログラム変換部3は、確定プログラム情報D6fが示す確定プログラムを開発対象HWが実行する専用プログラムに変換し、専用プログラムを指示する専用プログラム情報D3を出力する。
専用プログラム情報D3には、上述したように、開発対象HWで実行される複数の処理コード、必要数の通信コードと、複数のOS・CPUコードが含まれる。
図7は実施の形態1のプログラム作成支援装置71を用いたプログラム作成処理の処理手順を示すフローチャートである。
以下、図7を参照して、実施の形態1のプログラム作成支援装置71を用いたプログラム開発の流れについて説明する。
プログラム作成処理は、実施の形態1のプログラム作成支援装置が起動されることによって開始される。
まず、ステップS11において、操作者は開発対象HWに関するプログラム環境情報D4を入力装置4からプログラム作成部1に付与する。プログラム環境情報D4には、開発対象HWが使用するCPUの個数、CPUの性能、OSの種類などが含まれる。プログラム環境情報D4は通常、複数のCPU及び複数のOSを指示する。
次に、ステップS12において、処理構成記述部111による処理構成記述処理によって、開発対象HWでの実行を所望する処理をアイコンで記述する。
その後、ステップS13において、処理内容作成部12による処理内容作成処理によって、ステップS12で記述したアイコンについて、その処理内容を作成する。なお、処理内容作成部12を用いることなく、外部の他のツールを使用して処理内容を作成するようにしても良い。
そして、ステップS14において、通信内容記述部112による通信内容記述処理によって、各通信経路における通信内容を記述する。
上述したステップS11~S14によって、プログラム情報D6として必要な情報が得られる。なお、ステップS11~S14の処理は、入力装置4を用いたユーザである操作者のユーザ操作に連動して行われる。
その後、ステップS15において、操作者が要求する実行時間内に、プログラム情報D6が指示するプログラムの実行が終了するかを確認する。ステップS15は操作者による確認処理である。以下、ステップS15について詳述する。
具体的には、実行時間推定部2に実行時間推定処理を実行させ、プログラム情報D6に基づき、推定時間付プログラム情報D6tを生成させる。同時に、プログラム作成部1を経由して推定時間付プログラム情報D6tを表示装置5に出力することにより、表示装置5の画面上に推定時間付プログラム情報D6tを視覚認識可能な形態で表示させる。
操作者は、表示装置5の画面上に表示される推定時間付プログラム情報D6tを参照して、推定全体実行時間ATを認識することにより、ステップS15のYES/NOを判断することができる。
すなわち、操作者が要求する要求全体実行時間RTと推定全体実行時間ATとの間で「RT≧AT」を満足すれば、ステップS15の判定結果はYESとなり、満足しなければステップS15の判定結果はNOとなる。
ステップS15がYESの場合、ステップS18において、現在のプログラム情報D6を確定プログラム情報D6fとしてプログラム変換部3に出力する。その結果、プログラム変換部3によるプログラム変換処理により、開発対象HW用の専用プログラム情報D3を得ることができる。ステップS18の実行後は処理を終了する。
ステップS15がNOの場合、操作者は、ステップS16及びS17のプログラム改善処理を行う。
まず、ステップS16において、推定時間付プログラム情報D6tの内容を検証する。推定時間付プログラム情報D6tには、推定全体実行時間ATに加え、複数の推定処理時間、必要数の推定通信時間が含まれている。
例えば、図6に示すように、アイコン51~54の推定処理時間T1~T4や通信経路CP2を参照することにより、操作者は、推定全体実行時間ATに悪影響を与えているアイコンあるいは通信経路を認識することができる。
次に、ステップS17において、操作者は、ステップS16の検証結果に基づき、個別改善処理を実行する。例えば。悪影響を与えているアイコンに関し、OS及びCPUの割り当てを変更したり、処理内容を変更したりする。同様に、悪影響を与えている通信経路に関し、OS及びCPUの割り当てを変更したり、通信内容を変更したりする。
上述した個別改善処理において、アイコンへのOS及びCPUの割り当て変更は比較的簡単に行え、各アイコンの処理時間及び各通信経路の通信時間を改善するための有効な対応策となる。なぜなら、アイコンの処理時間及び通信経路の通信時間は、割り当てたOS及びCPUに依存して変化するからである。
その後、再び、ステップS15に戻り、ステップS15でYESの場合はステップS18を経て処理を終了する。一方、ステップS15でNOの場合は再びステップS16及びS17の処理を行う。
図7に示すように実施の形態1のプログラム作成支援装置71を使用することができる。操作者は、プログラム作成支援装置71を使用して、プログラムを構成する各処理を実行するOSやCPUを設定しつつ、推定全体実行時間AT、各アイコンの推定処理時間、及び各通信経路の推定通信時間を考慮したプログラム作成を行うことができる。
したがって、実施の形態1のプログラム作成支援装置71を使用することにより、操作者が所望する要求全体実行時間RT内に実行可能なプログラムの開発を比較的容易に行うことができる。
上述したように、実施の形態1のプログラム作成支援装置71は、処理時間推定部21に処理時間推定処理を実行させ、通信時間推定部22に通信時間推定処理を実行させることより、指定されたCPU及びOSに基づき、複数のアイコンそれぞれの推定処理時間と、必要数の通信経路それぞれの推定通信時間を得ることができる。
したがって、ユーザとなる操作者は複数のアイコンへのCPU及びOSの対応づけを適宜変更して、表示装置5の画面上に表示された推定時間付プログラム情報D6tを参照することにより、プログラムの推定全体実行時間ATに悪影響を与えている要因を比較的容易に認識することができる。
そして、操作者は、プログラムの推定全体実行時間ATに悪影響を与えているアイコンまたは通信経路に対し、ステップS17の個別改善処理を実行することができる。
その結果、実施の形態1のプログラム作成支援装置71は、操作者が所望する要求全体実行時間RT内で実行するプログラムの作成を効果的に支援することができる。
加えて、実施の形態1のプログラム作成支援装置71は、処理内容作成部12による処理内容作成処理により、複数のアイコンそれぞれの処理内容を作成することができる。
したがって、操作者は複数のアイコンへのCPU及びOSの対応づけに加え、複数のアイコンの処理内容を適宜変更して、表示装置5の画面上に表示された推定時間付プログラム情報D6tを参照することができる。
その結果、実施の形態1のプログラム作成支援装置71は、操作者が所望する要求全体実行時間RT内で実行するプログラムの作成をより広範囲に支援することができる。
さらに、実施の形態1のプログラム作成支援装置71はプログラム変換部3を有している。したがって、操作者が所望する要求全体実行時間RT内で動作する開発対象HW用の専用プログラムを指示する専用プログラム情報D3を自動的に得ることができる。
<実施の形態2>
図8は本開示の実施の形態2であるプログラム作成支援装置72の構成を示すブロック図である。図8に示すように、実施の形態2のプログラム作成支援装置72は、実施の形態1のプログラム作成支援装置71に、プログラム作成補助部7を追加したことを特徴としている。
図8は本開示の実施の形態2であるプログラム作成支援装置72の構成を示すブロック図である。図8に示すように、実施の形態2のプログラム作成支援装置72は、実施の形態1のプログラム作成支援装置71に、プログラム作成補助部7を追加したことを特徴としている。
図8で示す各構成要素について、図1で示す実施の形態1と同一の構成要素には適宜、同一符号を付して説明を省略し、実施の形態2の特徴箇所を中心に説明する。
入力装置4は、プログラム作成補助部7による割当補助処理の起動を指示する指示情報を新たに受け付ける。
さらに、実施の形態2では、入力装置4から付与されるプログラム環境情報D4を要求時間付プログラム環境情報D4tに拡張している。要求時間付プログラム環境情報D4tは、プログラム環境情報D4に加え、プログラムの要求全体実行時間RT、複数の処理に対応する複数の要求処理時間、及び必要数の通信経路に対応する必要数の要求通信時間を指示する要求実行時間情報が含まれている。
なお、実施の形態2のハードウェア構成も実施の形態1と同様に図18で示す通りである。ただし、新たに追加されたプログラム作成補助部7は、計算機102がアプリケーションプログラムを実行することにより実現される。
図9はチャート作成部11で作成されたチャートの例を模式的に示す説明図である。図9で示す例では、処理A~処理Eに対応して5つのアイコン51~55が設定されている。また、OS-A用にCPU1及びCPU2が割り当てられ、OS-B用にCPU3が割り当てられている。
そして、アイコン51はCPU1に、アイコン52はCPU2に、アイコン53及び54はCPU3に割り当てられる。一方、アイコン55に対しOS及びCPUの割り当てが行われておらず、未定義状態となっている。すなわち、アイコン55は未指定アイコンとなる。
アイコン51からアイコン52及び53に向けて実行順序を示す矢印が示され、アイコン52及び53からアイコン54に向けて実行順序を示す矢印が示され、アイコン55からアイコン54に向けて実行順序を示す矢印が示されている。
したがって、図9では、アイコン51~55間において、アイコン51、アイコン52、53及び55、アイコン54の順に実行されることを示している。なお、アイコン52、53及び55は並列処理となる。
さらに、アイコン52の出力側のピン62とアイコン54の入力側のピン64とが通信経路CP2により接続される。したがって、図9では、アイコン52とアイコン54との間に通信経路CP2を介した通信処理が行われることを示している。
前述したように、図9では、アイコン55はCPUまたはOSが指定されていない未指定アイコンとなる。また、アイコン55が図9では図示しない通信経路を有している場合、アイコン55用の通信経路は未指定通信経路となる。通信経路を介して通信を行う複数のアイコンのうち、少なくとも一つのアイコンのCPUまたはOSが指定されていない場合、当該通信経路は未指定通信経路となる。
一方、アイコン51~54の推定処理時間T1~T4のうち、アイコン51~54の要求処理時間RT1~RT4を満足しないアイコンが存在する場合、当該アイコンが後述する未満足アイコンとなる。
さらに、通信経路CP2の推定通信時間TC2が要求通信時間RTC2を満足しない場合、通信経路CP2が後述する未満足通信経路となる。
プログラム作成補助部7は、プログラム作成部1からプログラム情報D6と直接受け、プログラム作成部1を経由して入力装置4から要求時間付プログラム環境情報D4tを受ける。プログラム作成補助部7は、さらに、実行時間推定部2から推定時間付プログラム情報D6tを適宜受ける。
プログラム作成補助部7は、要求時間付プログラム環境情報D4t及びプログラム情報D6を受け、推定時間付プログラム情報D6tに含まれる推定プログラム実行時間を参照して、後述するプログラム作成補助処理を実行する。
また、プログラム作成補助部7は、プログラム情報D6が指示する複数のアイコンのうち、CPUまたはOSが指定されていない未指定アイコンが存在する場合、当該アイコンを少なくとも一つの未指定アイコンとして認識する。
さらに、プログラム作成補助部7は、複数のアイコンそれぞれの推定処理時間が、複数の要求処理時間のうち対応する要求処理時間を満足しない場合、当該アイコンが少なくとも一つの不満足アイコンとして認識する。
加えて、プログラム作成補助部7は、必要数の通信経路それぞれの推定通信時間が、必要数の要求推定時間のうち対応する要求処理時間を満足しない場合、当該通信経路を少なくとも一つの不満足通信経路として認識する。
プログラム作成補助部7は、少なくとも一つの未指定アイコンが存在する場合、プログラム作成補助処理として第1の割当補助処理を実行する。
第1の割当補助処理は、少なくとも一つの未指定アイコンそれぞれに対し、要求全体実行時間RT、複数の要求処理時間及び必要数の要求通信時間を含む要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる処理である。
プログラム作成補助部7は、第1の割当補助処理の実行中に、実行時間推定部2に実行時間推定処理を適宜実行させることができる。したがって、プログラム作成補助部7は、実行時間推定部2によって作成された推定時間付プログラム情報D6tを適宜参照することにより、CPU及びOSの割り当てを追加したアイコンあるいは通信経路に関し、要求実行時間情報を満足するか否かを検証することができる。
プログラム作成補助部7は、少なくとも一つの不満足アイコンあるいは少なくとも一つの不満足通信経路が存在する場合、プログラム作成補助処理として第2の割当補助処理を実行する。
第2の割当補助処理は、少なくとも一つの不満足アイコン及び少なくとも一つの不満足通信経路それぞれに対し、要求全体実行時間RT、複数の要求処理時間及び必要数の要求通信時間を含む要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる処理である。
第2の割当補助処理において、少なくとも一つの不満足通信経路対するCPU及びOSの割当は、不満足通信経路が形成される一対のアイコンのうち、少なくとも一つのアイコンのCPU及びOSの割当内容を変更することを意味する。
プログラム作成補助部7は、前述したように、第2の割当補助処理の実行中に実行時間推定部2に実行時間推定処理を適宜実行させることができる。したがって、プログラム作成補助部7は、実行時間推定部2によって作成された推定時間付プログラム情報D6tを適宜参照することにより、CPU及びOSの割り当てを変更したアイコンあるいは通信経路に関し、要求実行時間情報を満足するか否かを検証することができる。
プログラム情報D6が示すプログラムにおいて、始点アイコンから終点アイコンに至る入力から出力への導出は、制約充足問題として定式化することができ、その解は、SAT(Boolean satisfiability testing)ソルバーにより導出することや、事前に機械学習などにより学習させた学習器により導出することができる。
したがって、プログラム作成補助部7は、制約充足問題をSATソルバーや学習器によって解法する技術を適用することにより、上述した第1及び第2の割当補助処理を自動的に実行することができる。
図10はプログラム作成補助部7によるプログラム生成補助処理の実行手順を示すフローチャートである。以下、図10を参照して、プログラム作成補助部7の動作内容を説明する。
入力装置4からプログラム作成補助部7の動作開始を指示する情報が付与されることにより、プログラム作成補助部7の動作が開始される。
ステップS21において、プログラム作成補助部7は、プログラム情報D6、要求時間付プログラム環境情報D4t及び推定時間付プログラム情報D6tを受ける。プログラム情報D6はプログラム作成部1から受け、要求時間付プログラム環境情報D4tはプログラム作成部1を経由して入力装置4から受け、推定時間付プログラム情報D6tは実行時間推定部2から受ける。
ステップS22において、プログラム作成補助部7は、プログラム情報D6に基づき、OSあるいはCPUが定義されていない、未指定アイコンの存在の有無を確認する。ステップS22において、未指定アイコンが存在する場合(YES)はステップS25に移行し、未指定アイコンが存在しない場合(NO)はステップS23に移行する。
ステップS22でNOの場合に実行されるステップS23において、要求時間付プログラム環境情報D4tと推定時間付プログラム情報D6tとを比較する。
要求時間付プログラム環境情報D4t内の要求実行時間情報には複数の要求処理時間と必要数の要求通信時間とが含まれ、推定時間付プログラム情報D6t内には複数の推定処理時間と必要数の推定通信時間とが含まれる。
そして、ステップS24において、プログラム作成補助部7は、不満足アイコン及び不満足通信経路の存在の有無を確認し、不満足アイコンあるいは不満足通信経路が存在する場合(YES)、ステップS25に移行し、不満足アイコン及び不満足通信経路が存在しない場合(NO)、処理を終了する。
プログラム作成補助部7は、複数の要求処理時間と複数の推定処理時間との比較結果に基づき不満足アイコンの有無を判定することができ、必要数の要求通信時間と必要数の推定通信時間との比較結果に基づき不満足通信経路の有無を判定することができる。
ステップS25において、プログラム作成補助部7は、第1の割当補助処理または第2の割当補助処理を実行する。ステップS22でYES後は第1の割当補助処理が実行され、ステップS24でYES後は第2の割当補助処理が実行される。
第1及び第2の割当補助処理は、前述したように、要求全体実行時間RT、複数の要求処理時間及び必要数の要求通信時間を含む要求実行時間情報の指示内容を満足するように、アイコンのCPU、OSへの割り当てを、前述したSATソルバーや学習器を用いて実行する処理である。
そして、ステップS26において、ステップS25で実行した第1または第2の割当補助処理の成功の有無を確認し、成功を確認した場合(YES)には処理を終了する。すなわち、ステップS25の第1または第2の割当補助処理によって、要求実行時間情報の指示内容を満足してCPU及びOSの複数のアイコンへの割り当てが行われた場合、ステップS26はYESとなり、そうでない場合、ステップS26がNOとなる。
一方、ステップS26において成功が確認できない場合(NO)は、ステップS27で割当補助処理が不成功であったことを通知する不成功通知処理を実行する。不成功通知処理は、例えば、プログラム作成補助部7からプログラム作成部1を経由して表示装置5上に不成功を示す情報を表示させることにより実行できる。
なお、図10で示すプログラム作成補助処理のフローチャートでは、第1及び第2の割当補助処理のうち、一方の割当補助処理が選択的に実行される処理手順となっている。すなわち、第2の割当補助処理は、ステップS22でYES、かつ、ステップS24でYESの場合にのみ実行されている。
図11で示す処理手順を変更して、第1及び第2の割当補助処理を共に行うようにしても良い。すなわち、ステップS22でNOの場合でも、ステップS24でYESの場合は第2の割当補助処理が実行されるようにフローを変更しても良い。
図11は実施の形態2のプログラム作成支援装置72を用いたプログラム作成処理の処理手順を示すフローチャートである。
以下、図11を参照して、実施の形態2のプログラム作成支援装置72を用いたプログラム開発の流れについて説明する。
まず、ステップS31において、操作者は開発対象HWに関する要求時間付プログラム環境情報D4tを、入力装置4を用いてプログラム作成部1に付与する。
なお、ステップS32~S34及びS37の処理は、図7で示す実施の形態1のステップS12~14及びS18の処理と同様に行われる。
ステップS34後に実行されるステップS35において、プログラム作成補助部7を起動状態にする。すなわち、入力装置4からプログラム作成補助部7の動作開始を指示する情報が付与される。
そして、ステップS36において、プログラム作成補助部7によってプログラム作成補助処理を実行させる。プログラム作成補助処理は図10で示した第1及び第2の割当補助処理を含んでいる。
最後に、ステップS37において、現在のプログラム情報D6を確定プログラム情報D6fとしてプログラム変換部3に出力する。その結果、プログラム変換部3によるプログラム変換処理により、開発対象HW用の専用プログラム情報D3を得ることができる。ステップS18の実行後は処理を終了する。
なお、ステップS37は、図10で示すプログラム作成補助処理のうち、ステップS26でYESになった場合に実行され、ステップS26でNOとなった場合は実行されることはない。
実施の形態2のプログラム作成支援装置72により、ユーザである操作者がプログラムを構成する各処理を実行するOSやCPUが指定されていない未指定アイコンが存在しても、操作者が所望する要求実行時間情報の指示内容を満足するプログラムの開発を容易に行うことが可能となる。
上述したように、実施の形態2のプログラム作成支援装置72は、プログラム作成補助処理を実行するプログラム作成補助部7を有していることを特徴としている。プログラム作成補助処理には第1及び第2の割当補助処理が含まれる。
実施の形態2のプログラム作成支援装置72において、プログラム作成補助部7は、少なくとも一つの未指定アイコンそれぞれに対し、要求全体実行時間RT、複数の要求処理時間及び必要数の要求通信時間を含む要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる第1の割当補助処理を実行する。
このため、実施の形態2のプログラム作成支援装置72は、未指定アイコンが存在しても、ユーザである操作者に負担を掛けることなく、要求実行時間情報の指示内容を満足するプログラムを自動的に作成することができる。
したがって、実施の形態2のプログラム作成支援装置72は、複数のアイコンがすべて未指定アイコンであっても、要求実行時間情報の指示内容を満足するプログラムを自動的に作成することができる。
プログラム作成補助部7は、少なくとも一つの不満足アイコン及び少なくとも一つの不満足通信経路それぞれに対し、要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる第2の割当補助処理をさらに実行する。
このため、実施の形態2のプログラム作成支援装置72は、不満足アイコンや不満足通信経路が存在しても、ユーザである操作者に負担を掛けることなく、要求実行時間情報の指示内容を満足するプログラムを自動的に作成することができる。
<実施の形態3>
産業用PC(Personal Computer)などを使用し、装置の制御処理と装置からのデータ収集やデータ分析処理を1つのコントローラ内で実行する場合、制御処理はリアルタイムOSで実行し、データ分析処理は汎用OSで実行することが多い。そのような場合、汎用OSで実行される処理の実行時間は変動幅が大きく、実行時間の変動を考慮した推定、および、プログラム開発が必要となる。汎用OSで実行される処理を想定したのが以下で述べる実施の形態3である。
産業用PC(Personal Computer)などを使用し、装置の制御処理と装置からのデータ収集やデータ分析処理を1つのコントローラ内で実行する場合、制御処理はリアルタイムOSで実行し、データ分析処理は汎用OSで実行することが多い。そのような場合、汎用OSで実行される処理の実行時間は変動幅が大きく、実行時間の変動を考慮した推定、および、プログラム開発が必要となる。汎用OSで実行される処理を想定したのが以下で述べる実施の形態3である。
図12は本開示の実施の形態3であるプログラム作成支援装置73の構成を示すブロック図である。図12に示すように、実施の形態3のプログラム作成支援装置73は、実施の形態2のプログラム作成支援装置72の実行時間推定部2及びプログラム作成補助部7を実行時間推定部2X及びプログラム作成補助部8に置き換えたことを特徴としている。
図12で示す各構成要素について、図1で示した実施の形態1や図8で示した実施の形態2と同一の構成要素には適宜、同一符号を付して説明を省略し、実施の形態3の特徴箇所を中心に説明する。
実行時間推定部2Xは、要求時間付プログラム環境情報D4t及びプログラム情報D6を受け、プログラムに関し、確率分布を加味した推定プログラム実行時間を得る実行時間推定処理を実行する。
実行時間推定部2Xは、確率分布付処理時間推定部21X及び確率分布付通信時間推定部22Xを主要構成要素として含んでいる。
確率分布付処理時間推定部21Xは、要求時間付プログラム環境情報D4t及びプログラム情報D6を参照して、プログラム情報D6で指示される複数のアイコンそれぞれに対し、指定されたCPU及びOSに基づき、対応づけられた処理の処理時間を推定して確率分布付推定処理時間を得る処理時間推定処理を実行する。
したがって、理時間推定部21Xによる処理時間推定処理の実行により、複数のアイコンに対応する複数の確率分布付推定処理時間を得ることができる。複数の確率分布付推定処理時間から、複数のアイコンに対応する複数の推定処理時間の確率分布を認識することができる。複数の確率分布付推定処理時間には対応する複数の要求処理時間を満足する確率が含まれる。
確率分布付通信時間推定部22Xは、要求時間付プログラム環境情報D4t及びプログラム情報D6を参照して、プログラム情報D6で指示される必要数の通信経路それぞれに対し、指定されたCPU及びOSに基づき、通信時間を推定して確率分布付推定通信時間を得る通信時間推定処理を実行する。
したがって、確率分布付通信時間推定部22Xによる通信時間推定処理の実行により、必要数の通信経路に対応する複数の確率分布付推定通信時間を得ることができる。複数の確率分布付推定通信時間から、必要数の通信経路に対応する必要数の推定通信時間の確率分布を認識することができる。複数の確率分布付推定通信時間には対応する複数の要求通信時間を満足する確率が含まれる。
このように、実行時間推定部2Xにより得られる推定プログラム実行時間には、複数のアイコンに対応する複数の確率分布付推定処理時間、及び、必要数の通信経路に対応する必要数の確率分布付推定通信時間が含まれる。
実行時間推定部2Xは、プログラム情報D6に上述した推定プログラム実行時間を加味した推定時間付プログラム情報D6tを出力する。
推定時間付プログラム情報D6tには、複数の推定処理時間それぞれに関し、対応する要求処理時間を満足する確率、及び、必要数の推定通信時間それぞれに関し、対応する要求通信時間を満足する確率を指示する情報が含まれる。
加えて、確率分布付プログラム情報D6xには、推定全体実行時間ATの確率分布、推定全体実行時間ATが要求全体実行時間RTを満足する確率を指示する情報が含まれる。
確率分布付処理時間推定部21Xによる処理時間推定処理、及び、確率分布付通信時間推定部22Xによる通信時間推定処理は、例えば、指定されたOS及びCPUを考慮したシミュレーションを繰り返し、何度も推定処理時間及び推定通信時間を推定し、推定結果に基づく統計処理を施す等により行うことができる。
図13及び図14は確率分布付推定処理時間の推定結果25の一例を示す説明図である。ここで、推定結果25は処理Aに対応するアイコン51の推定結果であったとする。図13は確率分布付推定処理時間をグラフ形式で示しており、推定処理時間(ms)に対応する形式で確率分布PD1が示されている。図14は確率分布付推定処理時間を表形式で示しており、推定処理時間(ms)に対応づけてその確率が示されている。
図15は図13で示した確率分布付推定処理時間と要求処理時間との関係をグラフ形式で示す説明図である。同図に示すように、アイコン51の処理Aに要求された要求処理時間が5.1(ms)であった場合を示しており、5.1msから垂直に延びる線が基準確率線PS1となる。
この場合、確率分布PD1の0以上の全領域のうち、基準確率線PS1より左側の領域RP1の面積の全領域に対する割合が要求処理時間を満足する確率を示し、基準確率線PS1より右側の領域RP2の面積の全領域に対する割合が要求処理時間を満足しない確率を示す。なお、領域RP1及びRP2の面積は、確率分布PD1に対し積分演算を行うことにより求めることができる。
図13~図15に示すように、実行時間推定部2Xの確率分布付処理時間推定部21Xは、各アイコンについて図15に示すような推定結果25を算出することにより、各アイコンに対応する処理について、確率分布付推定処理時間を得る処理時間推定処理を実行している。
同様に、実行時間推定部2Xの確率分布付通信時間推定部22Xは、図13~図15で示した推定結果25と同様な推定結果を各通信経路について算出することにより、各通信経路に対応する通信について、確率分布付推定通信時間を得る通信時間推定処理を実行している。
図16は確率分布付推定全体実行時間の推定結果26の一例をグラフ形式で示す説明図である。同図に示すように、推定全体実行時間(ms)に対応する形式で確率分布PD0が示されている。
同図に示すように、要求全体実行時間RTが20.5(ms)であった場合を示しており、20.5msから垂直に延びる線が基準確率線PS0となる。
この場合、確率分布PD0の0以上の全領域のうち、基準確率線PS0より左側の領域RA1の面積の全領域に対する割合が要求処理時間を満足する確率を示し、基準確率線PS0より右側の領域RA2の面積の全領域に対する割合が要求処理時間を満足しない確率を示している。なお、領域RA1及びRA2の面積は、確率分布PD0に対し積分演算を行うことにより求めることができる。
図16に示すように、実行時間推定部2Xは、推定全体実行時間ATに関する推定結果26を算出することにより、確率分布付推定全体実行時間を得る実行時間推定処理を実行している。
図16で示す推定結果26は例えば以下の第1及び第2の推定方法で得ることができる。第1の推定方法は、推定全体実行時間ATの確率分布を、シミュレーションを繰り返すことにより求める方法である。上述したシミュレーションは、複数のアイコン及び必要数の通信経路を含むプログラムを実行するシミュレーションとなる。
第2の推定方法は、複数の確率分布付推定処理時間及び必要数の確率分布付推定通信時間を用いて算出する方法である。すなわち、複数のアイコン及び必要数の通信経路に対し、各アイコンの確率分布付推定処理時間と各通信経路の確率分布付推定通信時間との同時確率分布を求めることで導出する方法が第2の推定方法となる。なお、各確率分布付推定処理時間は対応する要求処理時間を満足する確率を含んでおり、各確率分布付推定通信時間には対応する要求通信時間を満足する確率を含んでいる。
プログラム作成補助部8は、プログラム作成部1によって作成されたプログラム情報D6と、プログラム作成部1を経由して要求時間付プログラム環境情報D4tを受ける。
そして、プログラム作成補助部8では、確率分布付プログラム情報D6x及び要求時間付プログラム環境情報D4tに基づき、実行時間推定部2Xから推定時間付プログラム情報D6tを参照してプログラム作成補助処理を実行する。
プログラム作成補助部8が実行するプログラム作成補助処理は、複数のアイコンそれぞれに対し、要求全体実行時間RTを満足する確率が最大となるように、CPU及びOSを自動的に割り当てる確率基準割当補助処理である。
プログラム作成補助部8は、確率基準割当補助処理の実行中に、実行時間推定部2Xからの推定時間付プログラム情報D6tを適宜参照することにより、CPU及びOSの割り当てを追加または変更したアイコンあるいは通信経路に関し、要求全体実行時間RTを満足する確率が最大になったか否かを確認することができる。
実施の形態3では、プログラム作成補助部8の処理対象は複数のアイコンすべてとしている。
確率基準割当補助処理としては、複数のアイコンへのCPU及びOSの割当を変更しつつ、上記第1の推定方法を用いて、実行時間推定部2Xから推定全体実行時間の推定結果26を繰り返し得る全体優先推定方法が考えられる。
確率基準割当補助処理の他の方法として、複数のアイコンに対応する要求処理時間を満足する確率が最も高くなり、かつ、必要数の通信経路に対応する要求通信時間を満足する確率が最も高くなるように、複数のアイコンへのCPU及びOSの割当を設定する個別優先推定方法が考えられる。
すなわち、個別優先推定方法は、上記第2の推定方法を用いて、複数の確率分布付推定処理時間と必要数の確率分布付推定通信時間とを実行時間推定部2Xから繰り返し得る処理を前提とした推定方法となる。
したがって、個別優先推定方法では、上述した推定結果25から、プログラム全体の同時確率分布を求めることにより、確率分布付推定全体実行時間を導出することになる。
なお、実施の形態3のハードウェア構成も、実施の形態1及び実施の形態2と同様、図18で示す通りである。ただし、プログラム作成補助部8及び実行時間推定部2Xは、計算機102がアプリケーションプログラムを実行することにより実現される。
このように、プログラム作成補助部8が実行するプログラム作成補助処理は、処理対象となる複数のアイコンそれぞれに対し、要求全体実行時間RTを満足する確率が最も高くなるように、CPU及びOSを自動的に割り当てる確率基準割当補助処理となる。
図17は実施の形態3のプログラム作成支援装置73を用いたプログラム作成処理の処理手順を示すフローチャートである。
以下、図17を参照して、実施の形態3のプログラム作成支援装置73を用いたプログラム開発の流れについて説明する。
なお、ステップS41~S44及びS47の処理は、図11で示す実施の形態2のステップS31~34及びS37の処理と同様に行われる。
ステップS44後に実行されるステップS45において、プログラム作成補助部8を起動状態にする。すなわち、入力装置4からプログラム作成補助部8の動作開始を指示する情報が付与される。
そして、ステップS46において、プログラム作成補助部8によって、複数のアイコン全てを処理対象として上述した確率基準割当補助処理を実行させる。
実施の形態3のプログラム作成支援装置73により、実行時間の変動幅が大きい処理が存在する場合でも、ユーザとなる操作者が所望する要求全体実行時間RTを満足する確率が最も高いプログラムの開発を行うことができる。
なお、実施の形態3では、ステップS46で実行される確率基準割当補助処理の処理対象を複数のアイコン全てとしたが、実施の形態2にように処理対象を限定しても良い。
すなわち、実施の形態2と同様、未指定アイコン、不満足アイコン及び不満足通信経路が確率基準割当補助処理の処理対象となるように限定しても良い。
なお、不満足アイコンの判定内容として、要求処理時間を満足しない確率が基準より低い場合、不満足通信経路としては要求通信時間を満足しない確率が基準より低い場合等にすることが考えられる。
実施の形態3のプログラム作成支援装置73におけるプログラム作成補助部8は、処理対象となる複数のアイコンそれぞれに対し、要求全体実行時間RTを満足する確率が最も高くなるように、CPU及びOSを自動的に割り当てる確率基準割当補助処理を実行している。
このため、実施の形態3のプログラム作成支援装置73は、ユーザである操作者に負担を掛けることなく、要求全体実行時間RTを満足する確率が最も高いプログラムを自動的に作成することができる。
また、実施の形態3のプログラム作成支援装置73は、確率分布付プログラム情報D6xを利用することにより、要求全体実行時間RTを満足する確率が比較的低い場合でも、現状で最善なプログラムをユーザである操作者に示すことができる。
<その他>
上述した実施の形態1~実施の形態3において、通信内容記述部112による通信内容記述処理は、複数種の通信方式のうち、必要数の通信経路それぞれに適用する通信方式を選択通信方式として選択する通信方式選択処理を含んでいる。
上述した実施の形態1~実施の形態3において、通信内容記述部112による通信内容記述処理は、複数種の通信方式のうち、必要数の通信経路それぞれに適用する通信方式を選択通信方式として選択する通信方式選択処理を含んでいる。
上記通信方式選択処理はユーザである操作者が入力装置4を用いて行うのが通常であるが、通信内容記述部112が通信方式選択処理を自動的に行う変形例も考えられる。
変形例を実現すべく、実行時間推定部2(2X)の通信時間推定部22(確率分布付通信時間推定部22X)の通信時間推定処理に、必要数の通信経路それぞれに対し、複数種の通信方式それぞれの推定通信時間を通信方式別推定結果として得る通信方式別推定処理を含ませる。
したがって、変形例では、通信内容記述部112は、実行時間推定部2に上記通信方式別推定処理を実行させて通信方式別推定結果を得ることにより、複数種の通信方式のうち推定通信時間が最短となる通信方式を選択通信方式として自動的に選択することができる。
このように、本実施の形態のプログラム作成支援装置の変形例における通信内容記述部112は、通信時間推定部22からの通信方式別推定結果に基づき、複数種の通信方式のうち推定通信時間が最短となる通信方式を選択通信方式として選択する通信方式選択処理を自動的に実行している。
このため、必要数の通信経路に適用する通信方式を選択する手間をユーザから解放することができる効果を奏する。
なお、本開示の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
1 プログラム作成部、2,2X 実行時間推定部、3 プログラム変換部、4 入力装置、5 表示装置、7,8 プログラム作成補助部、11 チャート作成部、12 処理内容作成部、21 処理時間推定部、21X 確率分布付処理時間推定部、22 通信時間推定部、22X 確率分布付通信時間推定部、31 処理コード生成部、32 通信コード生成部、33 設定コード生成部、71~73 プログラム作成支援装置。
Claims (7)
- 並列リアルタイム処理装置用のプログラム作成支援装置であって、
前記並列リアルタイム処理装置が使用するCPU及びOSの構成を含むプログラム環境情報を付与する入力装置と、
前記プログラム環境情報により規定されるCPU及びOSを使用してプログラムを作成し、前記プログラムの内容を示すプログラム情報を出力するプログラム作成部と、
前記プログラム情報を受け、前記プログラムに関する推定プログラム実行時間を得る実行時間推定処理を実行する実行時間推定部とを備え、
前記プログラム作成部は、
前記プログラムを構成する複数の処理を複数のアイコンに対応づけ、前記複数のアイコンそれぞれに対しCPU及びOSを指定し、前記複数のアイコン間の実行順序関係を記述する処理構成記述処理を実行する処理構成記述部と、
前記複数のアイコン間における必要数の通信経路それぞれの通信内容を記述する通信内容記述処理を実行する通信内容記述部とを含み、
前記実行時間推定部は、
前記複数のアイコンそれぞれに対し、指定されたCPU及びOSに基づき、対応づけられた処理の処理時間を推定して推定処理時間を得る処理時間推定処理を実行する処理時間推定部と、
前記必要数の通信経路それぞれに対し、指定されたCPU及びOSに基づき、通信時間を推定して推定通信時間を得る通信時間推定処理を実行する通信時間推定部とを含み、
前記処理構成記述処理及び前記通信内容記述処理は、前記入力装置を用いたユーザ操作に連動して実行され、前記処理時間推定処理及び前記通信時間推定処理の実行開始の指示は前記入力装置を用いたユーザ操作によって行われ、
前記実行時間推定処理は前記処理時間推定処理及び前記通信時間推定処理を含み、前記推定プログラム実行時間は前記複数のアイコンそれぞれの前記推定処理時間及び前記必要数の通信経路それぞれの前記推定通信時間を含み、
前記プログラム作成支援装置は、
前記複数のアイコンそれぞれに前記推定処理時間を対応づけ、かつ、前記必要数の通信経路それぞれに前記推定通信時間を対応づけた推定時間付プログラム情報を画面上に表示する表示装置をさらに備える、
プログラム作成支援装置。 - 請求項1記載のプログラム作成支援装置であって、
前記プログラム作成部は、
前記複数のアイコンそれぞれの処理内容を作成する処理内容作成処理を実行する処理内容作成部をさらに含み、
前記処理内容作成処理は、前記入力装置を用いたユーザ操作に連動して実行される、
プログラム作成支援装置。 - 請求項1または請求項2記載のプログラム作成支援装置であって、
CPU及びOSの対応づけが完了した前記複数のアイコンと前記必要数の通信経路とを含む前記プログラムが確定プログラムとして規定され、前記プログラム情報は、前記確定プログラムの内容を示す確定プログラム情報を含み、
前記プログラム作成支援装置は、
前記確定プログラム情報を受け、前記確定プログラムを前記並列リアルタイム処理装置が実行する専用プログラムに変換するプログラム変換部をさらに備え、
前記プログラム変換部は、
前記確定プログラムにおける前記複数のアイコンの処理を、前記並列リアルタイム処理装置用の複数の処理コードに変換する処理コード生成部と、
前記確定プログラムにおける前記必要数の通信経路を前記並列リアルタイム処理装置用の必要数の通信コードに変換する通信コード生成部とを含み、
前記専用プログラムは前記複数の処理コード及び前記必要数の通信コードを含む、
プログラム作成支援装置。 - 請求項1から請求項3のうち、いずれか1項に記載のプログラム作成支援装置であって、
前記プログラム環境情報は、前記プログラムの要求全体実行時間、前記複数の処理に対応する複数の要求処理時間、及び前記必要数の通信経路に対応する必要数の要求通信時間を指示する要求実行時間情報を含み、
前記複数のアイコンのうち、CPUまたはOSが指定されていないアイコンが存在する場合、当該アイコンが少なくとも一つの未指定アイコンとして規定され、
前記プログラム作成支援装置は、
前記プログラム環境情報及び前記プログラム情報を受け、前記実行時間推定部から得られる前記推定プログラム実行時間を参照して、プログラム作成補助処理を実行するプログラム作成補助部をさらに備え、
前記プログラム作成補助処理は、
前記少なくとも一つの未指定アイコンそれぞれに対し、前記要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる第1の割当補助処理を含む、
プログラム作成支援装置。 - 請求項4記載のプログラム作成支援装置であって、
前記複数のアイコンそれぞれの前記推定処理時間が、前記複数の要求処理時間のうち対応する要求処理時間を満足しない場合、当該アイコンが少なくとも一つの不満足アイコンとして規定され、
前記必要数の通信経路それぞれの前記推定通信時間が、前記必要数の要求推定時間のうち対応する要求処理時間を満足しない場合、当該通信経路が少なくとも一つの不満足通信経路として規定され、
前記プログラム作成補助処理は、
前記少なくとも一つの不満足アイコン及び前記少なくとも一つの不満足通信経路それぞれに対し、前記要求実行時間情報の指示内容を満足するように、CPU及びOSを自動的に割り当てる第2の割当補助処理をさらに含む、
プログラム作成支援装置。 - 請求項1から請求項3のうち、いずれか1項に記載のプログラム作成支援装置であって、
前記処理時間推定部は、前記複数のアイコンそれぞれに対し、指定されたCPU及びOSに基づき、対応づけられた処理の処理時間を推定して確率分布付推定処理時間を得る前記処理時間推定処理を実行する確率分布付処理時間推定部を含み、
前記通信時間推定部は、前記必要数の通信経路それぞれに対し、指定されたCPU及びOSに基づき、通信時間を推定して確率分布付推定通信時間を得る前記通信時間推定処理を実行する確率分布付通信時間推定部を含み、
前記推定処理時間は前記確率分布付推定処理時間を含み、前記推定通信時間は前記確率分布付推定通信時間を含み、
前記推定プログラム実行時間は、前記複数のアイコンそれぞれの前記確率分布付推定処理時間、及び前記必要数の通信経路それぞれの前記確率分布付推定通信時間を含み、
前記プログラム環境情報は、前記プログラムの要求全体実行時間、前記複数の処理に対応する複数の要求処理時間、及び前記必要数の通信経路に対応する必要数の要求通信時間を指示する要求実行時間情報を含み、
前記プログラム作成支援装置は、
前記プログラム環境情報及び前記プログラム情報を受け、前記実行時間推定部から得られる前記推定プログラム実行時間を参照して、プログラム作成補助処理を実行するプログラム作成補助部をさらに備え、
前記プログラム作成補助処理は、
前記複数のアイコンの少なくとも一部を処理対象とし、前記複数のアイコンのうち前記処理対象となるアイコンに対し、前記要求全体実行時間を満足する確率が最も高くなるように、CPU及びOSを自動的に割り当てる確率基準割当補助処理を含む、
プログラム作成支援装置。 - 請求項1から請求項6のうち、いずれか1項に記載のプログラム作成支援装置であって、
前記通信内容記述部による前記通信内容記述処理は、複数種の通信方式のうち、前記必要数の通信経路それぞれに適用する通信方式を選択通信方式として選択する通信方式選択処理を含み、
前記通信時間推定部による前記通信時間推定処理は、前記必要数の通信経路それぞれに対し、前記複数種の通信方式それぞれの前記推定通信時間を通信方式別推定結果として得る処理を含み、
前記通信内容記述部による前記通信方式選択処理は、前記通信方式別推定結果に基づき、前記複数種の通信方式のうち前記推定通信時間が最短となる通信方式を前記選択通信方式として選択する処理である、
プログラム作成支援装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2020/026549 WO2022009304A1 (ja) | 2020-07-07 | 2020-07-07 | プログラム作成支援装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2022009304A1 JPWO2022009304A1 (ja) | 2022-01-13 |
| JP7370467B2 true JP7370467B2 (ja) | 2023-10-27 |
Family
ID=79552310
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022534530A Active JP7370467B2 (ja) | 2020-07-07 | 2020-07-07 | プログラム作成支援装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US12112149B2 (ja) |
| JP (1) | JP7370467B2 (ja) |
| CN (1) | CN115769187A (ja) |
| WO (1) | WO2022009304A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7696528B1 (ja) * | 2024-08-01 | 2025-06-20 | 三菱電機株式会社 | 実行時間見積装置、実行時間見積方法及び実行時間見積プログラム |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005148901A (ja) | 2003-11-12 | 2005-06-09 | Hitachi Ltd | ジョブスケジューリングシステム |
| JP2008146426A (ja) | 2006-12-12 | 2008-06-26 | Fujitsu Ltd | 模擬ソースプログラム生成プログラム及び装置、並びに情報処理方法 |
| US7752559B1 (en) | 2003-12-05 | 2010-07-06 | The Mathworks, Inc. | Graphical model preparation for embedded deployment |
| US9152390B1 (en) | 2007-09-07 | 2015-10-06 | Cadence Design Systems, Inc. | Generating modular and hierarchical execution code from untimed and timed block diagrams |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3658061B2 (ja) | 1995-12-20 | 2005-06-08 | 株式会社日立製作所 | Faシステムの制御装置と方法、制御プログラム生成方法 |
| JPH1069469A (ja) | 1996-08-28 | 1998-03-10 | Hitachi Ltd | 並列プログラム自動生成方法 |
| JP3489962B2 (ja) | 1997-04-23 | 2004-01-26 | 沖電気工業株式会社 | プログラム開発装置および並列リアルタイム処理装置 |
| JP2010079622A (ja) * | 2008-09-26 | 2010-04-08 | Hitachi Ltd | マルチコアプロセッサシステム、および、そのタスク制御方法 |
| JP5338346B2 (ja) * | 2009-02-02 | 2013-11-13 | 富士通株式会社 | 処理時間定義生成プログラム、処理時間定義生成方法及び情報処理装置 |
| WO2010137077A1 (ja) * | 2009-05-28 | 2010-12-02 | 株式会社島津製作所 | 分析装置制御プログラム作成支援システム及び該システム用プログラム |
| JP5353566B2 (ja) * | 2009-08-31 | 2013-11-27 | オムロン株式会社 | 画像処理装置および画像処理プログラム |
| CN101694628B (zh) * | 2009-10-21 | 2012-07-04 | 中国人民解放军国防科学技术大学 | 一种串行与并行模拟相结合的并行计算机系统性能模拟方法 |
| US9348560B2 (en) * | 2013-06-04 | 2016-05-24 | Qualcomm Incorporated | Efficient execution of graph-based programs |
| JP6258159B2 (ja) * | 2014-08-26 | 2018-01-10 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
| JP6378128B2 (ja) | 2015-04-28 | 2018-08-22 | ルネサスエレクトロニクス株式会社 | 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム |
| JP6576884B2 (ja) | 2016-07-12 | 2019-09-18 | 株式会社日立製作所 | 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法 |
| JP2018041271A (ja) * | 2016-09-07 | 2018-03-15 | キヤノン株式会社 | シミュレーションシステムの構成決定装置及びプログラム |
-
2020
- 2020-07-07 JP JP2022534530A patent/JP7370467B2/ja active Active
- 2020-07-07 WO PCT/JP2020/026549 patent/WO2022009304A1/ja not_active Ceased
- 2020-07-07 CN CN202080102666.1A patent/CN115769187A/zh not_active Withdrawn
- 2020-07-07 US US17/922,374 patent/US12112149B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005148901A (ja) | 2003-11-12 | 2005-06-09 | Hitachi Ltd | ジョブスケジューリングシステム |
| US7752559B1 (en) | 2003-12-05 | 2010-07-06 | The Mathworks, Inc. | Graphical model preparation for embedded deployment |
| JP2008146426A (ja) | 2006-12-12 | 2008-06-26 | Fujitsu Ltd | 模擬ソースプログラム生成プログラム及び装置、並びに情報処理方法 |
| US9152390B1 (en) | 2007-09-07 | 2015-10-06 | Cadence Design Systems, Inc. | Generating modular and hierarchical execution code from untimed and timed block diagrams |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7696528B1 (ja) * | 2024-08-01 | 2025-06-20 | 三菱電機株式会社 | 実行時間見積装置、実行時間見積方法及び実行時間見積プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2022009304A1 (ja) | 2022-01-13 |
| US12112149B2 (en) | 2024-10-08 |
| JPWO2022009304A1 (ja) | 2022-01-13 |
| US20230176832A1 (en) | 2023-06-08 |
| CN115769187A (zh) | 2023-03-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2010134614A (ja) | 並列化処理方法、システム、及びプログラム | |
| CN102411503A (zh) | 空运行设计时环境 | |
| CN112463296B (zh) | 一种创建虚拟机的方法及装置 | |
| Jain et al. | Exploring the impact of systems architecture and systems requirements on systems integration complexity | |
| US9058438B2 (en) | Application-requirement based configuration designer for distributed computing systems | |
| CN107402745A (zh) | 数据流图的映射方法及装置 | |
| CN113791794A (zh) | 面向超算应用的算例自动部署方法及系统 | |
| CN113760332A (zh) | 软件升级方法和电子设备 | |
| JP7370467B2 (ja) | プログラム作成支援装置 | |
| WO2025256261A1 (zh) | 任务处理方法、装置和设备及计算机存储介质 | |
| JP2014021847A (ja) | リソース管理装置及びリソース管理方法及びプログラム | |
| CN115495090A (zh) | 一种区块链联盟链智能合约迭代方法、系统及设备 | |
| CN1976353B (zh) | 恢复和调试失败的网络可访问服务构建的方法和系统 | |
| Spichkova et al. | Managing usability and reliability aspects in cloud computing | |
| CN118550538A (zh) | 前端模块化开发方法、装置、电子设备、存储介质和计算机程序 | |
| JP7018356B2 (ja) | ビジュアルプログラミングツールを用いてプログラムを作成することを支援する装置および方法 | |
| JP7478037B2 (ja) | 継続的インテグレーションシステム及び継続的インテグレーション方法 | |
| CN111797990A (zh) | 机器学习模型的训练方法、训练装置和训练系统 | |
| CN116561471A (zh) | 界面元素定位的修正方法、装置、设备及存储介质 | |
| KR20110111014A (ko) | 네트워크 기반 로봇의 소프트웨어 개발 시스템 및 방법 | |
| KR20140121583A (ko) | 애플리케이션 자동검증 시스템 및 방법 | |
| US12190162B2 (en) | Optimized allocation of resources to nodes of an automation system based on monte carlo simulation | |
| CN114493360A (zh) | 基于rpa和ai的流程创意评估方法、装置、设备及介质 | |
| CN114626699B (zh) | 以服务为中心的云原生工作流引擎系统及工作方法 | |
| TWI911044B (zh) | 資料運算裝置、運算加速器及資料運算方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220729 |
|
| 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: 20230919 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231017 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7370467 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |