JP5153724B2 - Processing time estimation device and processing time estimation program - Google Patents

Processing time estimation device and processing time estimation program Download PDF

Info

Publication number
JP5153724B2
JP5153724B2 JP2009138271A JP2009138271A JP5153724B2 JP 5153724 B2 JP5153724 B2 JP 5153724B2 JP 2009138271 A JP2009138271 A JP 2009138271A JP 2009138271 A JP2009138271 A JP 2009138271A JP 5153724 B2 JP5153724 B2 JP 5153724B2
Authority
JP
Japan
Prior art keywords
program
time
execution
processing time
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009138271A
Other languages
Japanese (ja)
Other versions
JP2010286892A (en
Inventor
堅太 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2009138271A priority Critical patent/JP5153724B2/en
Publication of JP2010286892A publication Critical patent/JP2010286892A/en
Application granted granted Critical
Publication of JP5153724B2 publication Critical patent/JP5153724B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、プログラムを実行装置上で動作させたときの処理時間を見積もる処理時間見積り装置およびそのプログラムに関するものである。   The present invention relates to a processing time estimation device that estimates a processing time when a program is operated on an execution device, and the program.

近年、制御用コントローラに代表される定周期のシーケンス動作によりリアルタイム性を実現するシステムにおいて、複数のプログラム実行装置を利用したシステム構築がなされている。このようなシステム上でソフトウェアを評価する際には、実機またはシミュレータを利用して処理性能を見積もる必要があり、性能評価のための工数を要していた。   2. Description of the Related Art In recent years, a system that uses a plurality of program execution devices has been constructed in a system that realizes real-time performance by a sequence operation of a fixed cycle represented by a control controller. When evaluating software on such a system, it is necessary to estimate the processing performance using an actual machine or a simulator, which requires man-hours for performance evaluation.

シミュレータを利用して処理性能を見積もる場合、例えば特許文献1のソフトウェアの移植評価装置では、プログラム全体を第一処理装置から第二処理装置へ移植したときの処理時間評価をするために、所定のプログラムの第一処理装置と第二処理装置とにおける処理性能から求められる処理性能評価係数を、プログラム内各モジュール種別の比率により重み付けして得られる処理性能換算係数に基づいて処理性能を算出していた。   When estimating the processing performance using a simulator, for example, in the software porting evaluation apparatus of Patent Document 1, in order to evaluate the processing time when the entire program is transferred from the first processing apparatus to the second processing apparatus, a predetermined value is used. The processing performance is calculated based on the processing performance conversion coefficient obtained by weighting the processing performance evaluation coefficient obtained from the processing performance of the first processing apparatus and the second processing apparatus of the program by the ratio of each module type in the program. It was.

特許文献2のプログラムシミュレーション装置では、プログラムの動作を1命令ずつクロック単位で正確にシミュレーションすることで、処理性能を見積もっていた。また、レジスタ、メモリ、キャッシュへのアクセス時間の統計量として、命令の実行回数、キャッシュヒット率、メモリの読み書き回数を考慮して算出していた。   In the program simulation apparatus of Patent Document 2, processing performance is estimated by accurately simulating the operation of a program in units of clocks one instruction at a time. Further, the statistics for the access time to the register, the memory, and the cache are calculated in consideration of the instruction execution count, the cache hit rate, and the memory read / write count.

特許文献3のプログラム開発支援装置では、プログラムを実行したときに、マイクロコンピュータ内でロードしたデータをすぐに演算に使えず一定サイクル間マイクロコンピュータがストールすることがあり、そのストールペナルティを考慮して処理時間を算出していた。   In the program development support apparatus of Patent Document 3, when the program is executed, the data loaded in the microcomputer may not be immediately used for calculation, and the microcomputer may stall for a certain cycle, and the stall penalty is taken into consideration. Processing time was calculated.

特開2007−299212号公報JP 2007-299212 A 特開平9−6646号公報Japanese Patent Laid-Open No. 9-6646 特開2000−242529号公報JP 2000-242529 A

従来の処理時間見積り装置は以上のように構成されているので、特許文献1の装置ではプログラム全体を別の処理装置へ移植したときの処理時間評価はできるが、処理装置内の一部プログラムのみを別の処理装置へ移植したときの処理時間評価ができなかった。また、第一処理装置から第二処理装置へプログラム全体を移植したときの処理性能を算出した換算係数を用いて第二処理装置の処理性能を見積もるため、演算時間および多種多様なI/Oアドレスへのアクセス時間が考慮されていなかった。
さらに、特許文献2,3の装置では、複数の実行装置で同時にプログラムを実行する場合のアクセス競合は考慮されておらず、複数の実行装置からのアクセス競合率を反映したプログラム処理時間を評価することはできなかった。
Since the conventional processing time estimation apparatus is configured as described above, the apparatus of Patent Document 1 can evaluate the processing time when the entire program is ported to another processing apparatus, but only a part of the programs in the processing apparatus. The processing time could not be evaluated when transplanted to another processing equipment. In addition, since the processing performance of the second processing device is estimated using a conversion coefficient that calculates the processing performance when the entire program is transferred from the first processing device to the second processing device, the computation time and various I / O addresses Access time to was not considered.
Further, in the devices of Patent Documents 2 and 3, access contention when a program is executed simultaneously by a plurality of execution devices is not considered, and the program processing time reflecting the access contention rate from the plurality of execution devices is evaluated. I couldn't.

また、従来の処理時間見積り装置では、複数の実行装置からのアクセス競合を考慮して処理性能を見積もる際、高精度に見積もるためにはサイクルレベルのシミュレーションを行う必要があることから結果導出までに時間を要したり、全てのアクセス競合を最悪ケースで見積もることで非現実的な処理時間を算出したりする課題もあった。   Also, with the conventional processing time estimation device, when processing performance is estimated in consideration of access competition from multiple execution devices, it is necessary to perform cycle level simulation to estimate with high accuracy. There are also problems such as taking time and calculating unrealistic processing time by estimating all access conflicts in the worst case.

この発明は、上記のような課題を解決するためになされたもので、シミュレータを用いることなく高速に複数のプログラム実行装置上で動作するプログラムの処理時間を算出することを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to calculate the processing time of a program that operates on a plurality of program execution devices at high speed without using a simulator.

この発明に係る処理時間見積り装置は、プログラムを構成する複数の一部プログラム毎に、各デバイスへのアクセスについての入力アドレスと出力アドレス、その入力回数と出力回数、および発行命令数を抽出するプログラム解析部と、プログラム解析部が抽出した発行命令数と、各一部プログラムを実行する各プログラム実行装置から各デバイスへのアクセス時間の情報と、各デバイスへのアクセス時の競合率の情報とから、各一部プログラムの実行時間を算出する処理時間算出部と、各一部プログラムと各一部プログラムを実行するプログラム実行装置との対応付けおよび実行順序を示すプログラム動作パラメータと、処理時間算出部が算出した各一部プログラムの実行時間とから、各一部プログラムの実行時刻を算出するプログラム動作タイミング作成部と、プログラム動作タイミング作成部が算出したプログラム実行装置毎の各一部プログラムの実行時刻と、プログラム解析部が抽出した各一部プログラムの各デバイスへのアクセスの情報とから、時刻毎の各デバイスのアクセス競合数を算出するアクセス先毎情報作成部と、アクセス先毎情報作成部が算出した時刻毎の各デバイスのアクセス競合数から、各デバイスの競合率を算出して処理時間算出部へ出力するアクセス競合率算出部とを備えるようにしたものである。   The processing time estimating apparatus according to the present invention extracts, for each of a plurality of partial programs constituting a program, an input address and an output address for accessing each device, an input count and an output count, and an issued instruction count From the analysis unit, the number of issued instructions extracted by the program analysis unit, information on the access time from each program execution device that executes each partial program to each device, and information on the contention rate when accessing each device A processing time calculation unit that calculates an execution time of each partial program, a program operation parameter that indicates an association and execution order between each partial program and a program execution device that executes each partial program, and a processing time calculation unit The program operation that calculates the execution time of each partial program from the execution time of each partial program calculated by From the timing creation unit, the execution time of each partial program for each program execution device calculated by the program operation timing creation unit, and the information of access to each device of each partial program extracted by the program analysis unit, for each time Calculates the processing time by calculating the contention rate of each device from the access contention number of each device calculated by the access destination information creation unit that calculates the number of access contention of each device and the access destination information creation unit And an access contention rate calculation unit for outputting to the unit.

この発明に係る処理時間見積りプログラムは、コンピュータを、プログラムを構成する複数の一部プログラム毎に、各デバイスへのアクセスについての入力アドレスと出力アドレス、その入力回数と出力回数、および発行命令数を抽出するプログラム解析手段と、プログラム解析手段が抽出した発行命令数と、各一部プログラムを実行する各プログラム実行装置から各デバイスへのアクセス時間の情報と、各デバイスへのアクセス時の前回競合率の情報とから、各一部プログラムの実行時間を算出する処理時間算出手段と、各一部プログラムと各一部プログラムを実行するプログラム実行装置との対応付けおよび実行順序を示すプログラム動作パラメータと、処理時間算出手段が算出した各一部プログラムの実行時間とから、各一部プログラムの実行時刻を算出するプログラム動作タイミング作成手段と、プログラム動作タイミング作成手段が算出したプログラム実行装置毎の各一部プログラムの実行時刻と、プログラム解析手段が抽出した各一部プログラムの各デバイスへのアクセスの情報とから、時刻毎の各デバイスのアクセス競合数を算出するアクセス先毎情報作成手段と、アクセス先毎情報作成手段が算出した時刻毎の各デバイスのアクセス競合数から、各デバイスの今回競合率を算出し、当該今回競合率を前回競合率として処理時間算出手段へ出力するアクセス競合率算出手段と、処理時間算出手段が実行時間の算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、一致していなければ当該今回競合率を前回競合率として利用して新たな今回競合率を算出させ、一致していれば当該今回競合率算出の過程で算出された実行時間をプログラムの処理時間として出力する処理時間繰返し算出手段として機能させるようにしたものである。   The processing time estimation program according to the present invention provides a computer with an input address and an output address for accessing each device, an input count and an output count, and an issued instruction count for each of a plurality of partial programs constituting the program. The program analysis means to be extracted, the number of issued instructions extracted by the program analysis means, the information on the access time to each device from each program execution device that executes each partial program, and the previous contention rate at the time of accessing each device A processing time calculation means for calculating the execution time of each partial program from the information, a program operation parameter indicating an association and execution order of each partial program and a program execution device for executing each partial program, Each partial program is calculated from the execution time of each partial program calculated by the processing time calculation means. Program operation timing creation means for calculating the execution time of the program, the execution time of each partial program for each program execution device calculated by the program operation timing creation means, and each partial program extracted by the program analysis means to each device From the access information, the access destination information creation means for calculating the number of access conflicts for each device for each time, and the current time of each device from the number of access conflicts for each device for each time calculated by the access destination information creation means The contention rate is calculated and the current contention rate is output to the processing time calculation means as the previous contention rate, the previous contention rate used by the processing time calculation device to calculate the execution time, and the previous contention rate Compared to the current competition rate calculated using, if this does not match, use the current competition rate as the previous competition rate. Shelf This contention is calculated, in which if the match was to function as a processing time repeating calculation means for outputting the execution time calculated in the course of this competition factor calculated as the processing time of the program.

この発明によれば、プログラムから各デバイスへのアクセス仕様を解析した情報に基づくアクセス競合率を用いて各一部プログラムの実行時間を算出するようにしたので、複数のプログラム実行装置上で動作するプログラムについて、シミュレータを用いることなく高速に各一部プログラムの処理時間を算出することができる。   According to the present invention, since the execution time of each partial program is calculated using the access contention rate based on information obtained by analyzing the access specifications from the program to each device, it operates on a plurality of program execution devices. The processing time of each partial program can be calculated at high speed without using a simulator.

この発明の実施の形態1に係る処理時間見積り装置の構成を示すブロック図である。It is a block diagram which shows the structure of the processing time estimation apparatus which concerns on Embodiment 1 of this invention. 図1に示すプログラム解析部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the program analysis part shown in FIG. 図1に示すプログラム毎処理性能DBの構成を示す説明図である。It is explanatory drawing which shows the structure of process performance DB for every program shown in FIG. 図1に示すアドレス範囲情報の構成を示す説明図である。It is explanatory drawing which shows the structure of the address range information shown in FIG. 図1に示す命令サイクルテーブルの構成を示す説明図である。It is explanatory drawing which shows the structure of the instruction cycle table shown in FIG. 図1に示すプログラム動作タイミング作成部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the program operation timing preparation part shown in FIG. 図1に示すプログラム実行装置毎時刻情報の構成を示す説明図である。It is explanatory drawing which shows the structure of the program execution apparatus time information shown in FIG. 図1に示すプログラム動作パラメータの構成を示す説明図である。It is explanatory drawing which shows the structure of the program operation parameter shown in FIG. 図1に示すアクセス先毎情報作成部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the information preparation part for every access destination shown in FIG. 図1に示すアクセス先毎情報の構成を示す説明図である。It is explanatory drawing which shows the structure of every access destination information shown in FIG. 図1に示すアクセス競合率算出部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the access competition rate calculation part shown in FIG. 図1に示すアクセス競合情報の構成を示す説明図である。It is explanatory drawing which shows the structure of the access conflict information shown in FIG. 図1に示す処理時間算出部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the processing time calculation part shown in FIG. 図1に示すハードウェア仕様パラメータの構成を示す説明図である。It is explanatory drawing which shows the structure of the hardware specification parameter shown in FIG. 図1に示す繰返しプログラム実行時間導出部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the repetition program execution time derivation | leading-out part shown in FIG. この発明の実施の形態2に係る処理時間見積り装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the processing time estimation apparatus which concerns on Embodiment 2 of this invention. この発明の実施の形態3に係る処理時間見積り装置の動作周期算出部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the operation period calculation part of the processing time estimation apparatus which concerns on Embodiment 3 of this invention.

実施の形態1.
図1は、この発明の実施の形態1に係る処理時間見積り装置の構成を示すブロック図である。この処理時間見積り装置は、複数のプログラム実行装置(以下、単に実行装置とも称す)を持つ制御システムにおいて、一部プログラムを別のプログラム実行装置上で動作させたときの処理性能を、シミュレータを用いることなくプログラム解析の情報を用いて高速に見積もるものである。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a configuration of a processing time estimation apparatus according to Embodiment 1 of the present invention. This processing time estimation device uses a simulator for processing performance when a part of a program is operated on another program execution device in a control system having a plurality of program execution devices (hereinafter also simply referred to as execution devices). Without using the program analysis information, it can be estimated at high speed.

この処理時間見積り装置は、複数のプログラム101を解析してロード(LD)/ストア(ST)アクセスするアドレス範囲(即ちデバイス)、アクセス回数および発行命令数を抽出してプログラム毎処理性能データベース(以下、DB)105を作成するプログラム解析部103と、これらの情報を用いてプログラム101の各実行装置での実行時間を導出する繰返しプログラム実行時間導出部104からなる。   This processing time estimation apparatus analyzes a plurality of programs 101, extracts an address range (that is, a device) for load (LD) / store (ST) access, the number of accesses and the number of issued instructions, and obtains a per-program processing performance database (hereinafter referred to as a program performance database). DB) 105, and a program execution time deriving unit 104 that derives the execution time of each program in the execution unit of the program 101 using these pieces of information.

繰返しプログラム実行時間導出部104は、アクセス競合情報114と予めパラメータ化してあるハードウェア仕様パラメータ113を用いて各プログラム101の実行時間を算出する処理時間算出部106、予めパラメータ化してあるプログラム動作パラメータ115を用いてプログラム実行装置毎時刻情報108を作成するプログラム動作タイミング作成部107、アクセス競合の可能性がある実行装置を示すアクセス先毎情報110を作成するアクセス先毎情報作成部109、アクセス先毎情報110からアクセス競合率を算出するアクセス競合率算出部111、繰返しプログラム実行時間導出部104各部による一連のプログラム実行時間導出処理をアクセス競合率が収束するまで繰返し実行させる処理時間繰返し算出部112を備える。   The repetitive program execution time deriving unit 104 uses the access contention information 114 and the hardware specification parameters 113 that have been parameterized in advance, the processing time calculation unit 106 that calculates the execution time of each program 101, and the program operation parameters that have been parameterized in advance. 115, a program operation timing creation unit 107 that creates time information 108 for each program execution device using 115, an information creation unit 109 for each access destination that creates information 110 for each access destination indicating an execution device that may have access conflict, and an access destination An access contention rate calculation unit 111 that calculates an access contention rate from each information 110, and a processing time repetition calculation unit 112 that repeatedly executes a series of program execution time derivation processes by each unit until the access contention rate converges. Be equipped That.

先ず、プログラム解析部103の詳細を説明する。図2は、前記プログラム解析部103の動作を示すフローチャートである。プログラム解析部103はステップSTP1〜STP9からなる一連のループ処理を、処理時間見積り対象のプログラム101の全個数分(N回)繰返して、各該当プログラム(一部プログラム)について解析を行う。先ずステップSTP2のプログラム読取処理にて、プログラム解析部103がプログラム101からプログラムファイルを取得する。プログラム解析部103は、ステップSTP2で読み取ったプログラムファイル順にプログラムIDを設定してプログラム毎処理性能DB105へ登録する。   First, details of the program analysis unit 103 will be described. FIG. 2 is a flowchart showing the operation of the program analysis unit 103. The program analysis unit 103 repeats a series of loop processes including steps STP1 to STP9 for the total number (N times) of the processing time estimation target programs 101, and analyzes each corresponding program (partial program). First, in the program reading process of step STP2, the program analysis unit 103 acquires a program file from the program 101. The program analysis unit 103 sets the program IDs in the order of the program files read in step STP2 and registers them in the per-program processing performance DB 105.

図3は、図1に示すプログラム毎処理性能DB105の構成を示す説明図である。プログラム毎処理性能DB105には、N個分のプログラムがプログラムID105aを「1」〜「N」まで順に設定されて格納されている。また、プログラムID105a毎に、各アドレス範囲105bのLD回数105cおよびST回数105d、プログラム列数である命令数105e、ならびに実行時間105fの情報が格納されている。なお、図3では、1命令を1サイクルですると仮定しているため、命令数105eと実行時間105fが「1270」の同一値となっている。また、図3ではアクセス対象となるデバイスを4種としている為、アドレスIDの種類を1、2、3、4の4種、つまりアドレス範囲数を4(A、B、C、D)として例示している。   FIG. 3 is an explanatory diagram showing the configuration of the per-program processing performance DB 105 shown in FIG. In the per-program processing performance DB 105, N programs are stored with the program ID 105a set in order from “1” to “N”. For each program ID 105a, information on the LD number 105c and ST number 105d of each address range 105b, the number of instructions 105e as the number of program sequences, and the execution time 105f are stored. In FIG. 3, since it is assumed that one instruction is one cycle, the number of instructions 105e and the execution time 105f are the same value of “1270”. In FIG. 3, since there are four types of devices to be accessed, the types of address IDs are four types of 1, 2, 3, and 4, that is, the number of address ranges is 4 (A, B, C, D). doing.

ステップSTP3では、プログラム毎の合計実行時間の初期化処理を行う。ステップSTP4〜STP10のプログラム列数分ループ処理では、ステップSTP2で読み取った該当するプログラムにおいて、1行ずつファイルの最終行であるM行目まで解析する。ここでの1行は1列の実行命令として扱う。先ずステップSTP5のLD/STチェック処理にて、プログラム解析部103は、プログラムの解析対象列がLD/ST命令であれば、続くステップSTP6のアクセスアドレス取得へ進む。LD/ST命令以外であればステップSTP9,STP10を経由してステップSTP4へ戻り次行の解析を行う。   In step STP3, the total execution time for each program is initialized. In the loop processing for the number of program columns in steps STP4 to STP10, the corresponding program read in step STP2 is analyzed line by line up to the Mth line which is the last line of the file. One row here is treated as an execution instruction of one column. First, in the LD / ST check process in step STP5, if the program analysis target column is an LD / ST instruction, the program analysis unit 103 proceeds to access address acquisition in the subsequent step STP6. If the instruction is not an LD / ST instruction, the process returns to step STP4 via steps STP9 and STP10 to analyze the next line.

ステップSTP5のアドレス取得処理では、プログラム解析部103が、LD/ST命令のアクセスアドレスを取得する。続くステップSTP6のアドレス範囲比較処理では、先ず、ステップSTP5で取得したアクセスアドレスをキーに用いて、後述するアドレス範囲情報102に含まれるアドレス範囲と照合して、合致するアドレス範囲のアドレスIDを取得する。   In the address acquisition process at step STP5, the program analysis unit 103 acquires the access address of the LD / ST instruction. In the subsequent address range comparison process in step STP6, first, using the access address acquired in step STP5 as a key, the address range included in the address range information 102 described later is collated to obtain the address ID of the matching address range. To do.

図4は、図1に示すアドレス範囲情報102の構成を示す説明図である。アドレス範囲情報102は、処理時間見積り対象のデバイスの開始アドレスおよび終了アドレスからなるアドレス範囲102aと、そのアドレス範囲102aをプログラム毎処理性能DB105のアドレス範囲105bにリンクするためのアドレスID102bとを格納するテーブルである。なお、図3のアドレス範囲105bが図4のアドレスID102bと対応しており、アドレス範囲105bからアドレス範囲102aを取得することができる。   FIG. 4 is an explanatory diagram showing the configuration of the address range information 102 shown in FIG. The address range information 102 stores an address range 102a composed of the start address and end address of the device whose processing time is to be estimated, and an address ID 102b for linking the address range 102a to the address range 105b of the per-program processing performance DB 105. It is a table. Note that the address range 105b in FIG. 3 corresponds to the address ID 102b in FIG. 4, and the address range 102a can be acquired from the address range 105b.

ステップSTP7で、プログラム解析部103が、アドレス範囲102aとLD/ST命令のアクセスアドレスを比較して、アクセスアドレスがアドレス範囲102a内であれば(ステップSTP7“有”)、続くステップSTP8のアクセス回数インクリメント処理へ進む。アドレス範囲102a外であれば(ステップSTP7“無”)、処理はステップSTP9,STP10を経由してステップSTP4へ戻り、次の行の解析を開始する。ステップSTP8のアクセス回数インクリメント処理では、プログラム解析部103がプログラム毎処理性能DB105にアクセスして、該当するプログラムID105aのうちの、アドレスID102bに相当するアドレス範囲105bのLD回数105cまたはST回数105dをインクリメントする。   In step STP7, the program analysis unit 103 compares the address range 102a with the access address of the LD / ST instruction, and if the access address is within the address range 102a (step STP7 “present”), the number of accesses in the subsequent step STP8 Proceed to increment processing. If it is outside the address range 102a (step STP7 “No”), the process returns to step STP4 via steps STP9 and STP10, and analysis of the next line is started. In the access count increment process in step STP8, the program analysis unit 103 accesses the per-program processing performance DB 105 to increment the LD count 105c or the ST count 105d in the address range 105b corresponding to the address ID 102b in the corresponding program ID 105a. To do.

ステップSTP9では、プログラムの解析対象列の命令をキーに、命令サイクルテーブル116から当該命令の実行サイクル数を取得する。プログラム解析部103は、取得した実行サイクル数と実行時間の和を実行時間へ格納する。図5に、命令サイクルテーブル116の一例を示す。プログラム解析部103は、命令116aと当該命令実行に必要なサイクル数116bからなる命令サイクルテーブル116を利用することにより、正確な実行時間を計算する。ステップSTP9では命令116aの種別をキーに取得したサイクル数116bを実行時間へ加算する。   In step STP9, the number of execution cycles of the instruction is acquired from the instruction cycle table 116 using the instruction in the analysis target column of the program as a key. The program analysis unit 103 stores the acquired sum of the number of execution cycles and the execution time in the execution time. FIG. 5 shows an example of the instruction cycle table 116. The program analysis unit 103 calculates an accurate execution time by using the instruction cycle table 116 including the instruction 116a and the number of cycles 116b necessary for executing the instruction. In step STP9, the number of cycles 116b acquired using the type of the instruction 116a as a key is added to the execution time.

次に、繰返しプログラム実行時間導出部104のプログラム動作タイミング作成部107の詳細を説明する。図6は、図1に示すプログラム動作タイミング作成部107の動作を示すフローチャートであり、プログラムの実行時間および実行順序から実行装置毎のプログラム動作時刻情報を作成する動作を示す。先ず、ステップSTP11の現在時刻配列クリア処理では、プログラム実行装置毎時刻情報108に含まれる、実行装置毎のプログラム開始時刻をクリアする。図7は、図1に示すプログラム実行装置毎時刻情報108の構成を示す説明図である。プログラム実行装置毎時刻情報108は、実行装置のIDを示す実行装置ID108aと、各実行装置が実行するプログラムIDと当該プログラムの実行時間108bとを、プログラム実行順に格納するテーブルであり、実行装置ID108a毎にプログラムとプログラムの実行時刻を管理する。   Next, details of the program operation timing creation unit 107 of the repetitive program execution time deriving unit 104 will be described. FIG. 6 is a flowchart showing the operation of the program operation timing creation unit 107 shown in FIG. 1, and shows the operation of creating program operation time information for each execution device from the execution time and execution order of the program. First, in the current time array clear process in step STP11, the program start time for each execution device included in the time information 108 for each program execution device is cleared. FIG. 7 is an explanatory diagram showing a configuration of the program execution device time information 108 shown in FIG. The program execution device time information 108 is a table that stores the execution device ID 108a indicating the ID of the execution device, the program ID executed by each execution device, and the execution time 108b of the program in the order of execution of the program. Each time the program and the execution time of the program are managed.

続いて、プログラム動作タイミング作成部107は、ステップSTP12〜STP16からなる一連のループ処理をN回行う。先ず、ステップSTP13のプログラム実行装置ID取得処理では、プログラム動作タイミング作成部107が上述のプログラムIDをキーに用いて、プログラム動作パラメータ115から当該プログラムIDに対応する実行装置のIDを取得する。図8は、図1に示すプログラム動作パラメータ115の構成を示す説明図である。図8に示すプログラム動作パラメータ115は、プログラムを実行する実行装置ID115aと、各実行装置が実行するプログラムを示すプログラムID115bとを格納するテーブルである。なお、プログラムID115bは、上述のプログラムID105aに相当し、プログラムID115bの順序が実行装置でのプログラム実行順を表す。   Subsequently, the program operation timing creation unit 107 performs a series of loop processes including steps STP12 to STP16 N times. First, in the program execution device ID acquisition process in step STP13, the program operation timing creation unit 107 acquires the ID of the execution device corresponding to the program ID from the program operation parameter 115 using the program ID described above as a key. FIG. 8 is an explanatory diagram showing the configuration of the program operation parameter 115 shown in FIG. The program operation parameter 115 illustrated in FIG. 8 is a table that stores an execution device ID 115a that executes a program and a program ID 115b that indicates a program executed by each execution device. The program ID 115b corresponds to the above-described program ID 105a, and the order of the program ID 115b represents the order of program execution in the execution device.

ステップSTP14のプログラム実行時間取得処理では、プログラム動作タイミング作成部107がプログラム毎処理性能DB105を参照して、プログラムID115bに相当するプログラムID105aの実行時間105fを取得する。例えば図3のプログラムID105a「1」が図8のプログラムID115b「1」に相当する。
ステップSTP15のプログラムIDとプログラム実行時間を格納する処理では、プログラム動作タイミング作成部107が、プログラムID105aと実行時間105fをプログラム実行装置毎時刻情報108へ格納する。ステップSTP15では、各実行装置ID108aのもっともインデックス値が小さい、かつ、空き状態となっているレコードへプログラムIDとプログラムの実行時間を格納する。
In the program execution time acquisition process of step STP14, the program operation timing creation unit 107 refers to the per-program processing performance DB 105 and acquires the execution time 105f of the program ID 105a corresponding to the program ID 115b. For example, the program ID 105a “1” in FIG. 3 corresponds to the program ID 115b “1” in FIG.
In the process of storing the program ID and the program execution time in step STP15, the program operation timing creation unit 107 stores the program ID 105a and the execution time 105f in the program execution device time information. In step STP15, the program ID and the execution time of the program are stored in a record in which the index value of each execution device ID 108a is the smallest and is empty.

次に、繰返しプログラム実行時間導出部104のアクセス先毎情報作成部109の詳細を説明する。図9は、図1に示すアクセス先毎情報作成部109の動作を示すフローチャートであり、プログラム実行装置毎時刻情報108を基に時刻毎に各アドレス範囲のアクセス数(即ち競合数)を計算し、アクセス先毎情報110へ格納するための動作を示す。図10は、図1に示すアクセス先毎情報110の構成を示す説明図である。アクセス先毎情報110は、時刻110a毎にアドレスID110bへのアクセス可能性があるアクセス回数110cと、各アドレスID110bへの最終アクセス時刻110dとを格納するテーブルである。例えば、時刻110a「1」のアドレスID110b「1」に格納されたアクセス回数110c「4」は、4つの実行装置からアクセス可能性があることを示す。また、このアドレスID110bは、図4に示すアドレスID102bと対応している。   Next, details of the access destination information creation unit 109 of the repetitive program execution time deriving unit 104 will be described. FIG. 9 is a flowchart showing the operation of the access destination information creation unit 109 shown in FIG. 1, and calculates the number of accesses (that is, the number of competitions) in each address range for each time based on the time information 108 for each program execution device. The operation for storing in the access destination information 110 is shown. FIG. 10 is an explanatory diagram showing a configuration of the access destination information 110 shown in FIG. The per-access-destination information 110 is a table that stores the number of accesses 110c that may be accessed to the address ID 110b at each time 110a and the last access time 110d to each address ID 110b. For example, the access count 110c “4” stored in the address ID 110b “1” at the time 110a “1” indicates that there is a possibility of access from four execution devices. The address ID 110b corresponds to the address ID 102b shown in FIG.

アクセス先毎情報作成部109は、図9に示すステップSTP21〜STP34からなる一連の時刻数分(K回)ループ処理で時刻110a毎に、ステップSTP22〜STP33のアドレスID数分(L回)ループ処理でアドレスID110b毎に格納するアクセス回数110cを作成する。
先ず、ステップSTP23のアクセス回数カウンタクリア処理では、アクセス先毎情報作成部109が、アクセス先毎情報110のアクセス回数110cをクリアする。
The access destination information creation unit 109 performs a loop corresponding to the number of address IDs of steps STP22 to STP33 (L times) at every time 110a in a series of times (K times) consisting of steps STP21 to STP34 shown in FIG. The number of accesses 110c to be stored for each address ID 110b is created by processing.
First, in the access count counter clear process in step STP23, the access destination information creation unit 109 clears the access count 110c of the access destination information 110.

ステップSTP24〜STP29のプログラム実行装置数個数分(I回)ループ処理では、アクセス先毎情報作成部109が、各プログラム実行装置からのアクセス有無を取得する。先ず、ステップSTP25のプログラムID取得処理では、アクセス先毎情報作成部109が、時刻数ループカウンタ値およびプログラム実行装置ループカウンタ値をキーとして、プログラム実行装置毎時刻情報108から当該時刻に実行している実行装置ID108aのプログラムID108bを取得する。   In the loop processing for the number of program execution devices in steps STP24 to STP29 (I times), the access destination information creation unit 109 acquires the presence / absence of access from each program execution device. First, in the program ID acquisition process at step STP25, the access destination information creation unit 109 executes the program from the program execution device time information 108 at that time using the time number loop counter value and the program execution device loop counter value as keys. The program ID 108b of the execution device ID 108a being acquired is acquired.

ステップSTP26のLD/ST回数取得処理では、アクセス先毎情報作成部109が、ステップSTP25で取得したプログラムID108bおよびアドレス範囲数ループカウンタ値をキーとして、プログラム毎処理性能DB105から該当するプログラムID105aのアドレス範囲105bのLD回数105cおよびST回数105dを取得する。   In the LD / ST number acquisition process in step STP26, the access destination information creation unit 109 uses the program ID 108b and the address range number loop counter value acquired in step STP25 as keys, and the address of the corresponding program ID 105a from the program performance DB 105. The LD number 105c and the ST number 105d in the range 105b are acquired.

ステップSTP27のLD+ST回数比較処理では、アクセス先毎情報作成部109が、ステップSTP26で取得したLD回数105cおよびST回数105dの合計回数が1以上か否か判断する。1以上であれば実行装置のアクセス可能性があるため(ステップSTP27“!=0”)、続くステップSTP28のアクセス回数カウンタインクリメント処理にてアクセス先毎情報作成部109がアクセス回数をインクリメントする。合計回数が0であればアクセスの可能性はないので(ステップSTP27“==0”)、アクセス先毎情報作成部109はプログラム実行装置数個数分(I回)ループ処理を終了する。   In the LD + ST number comparison process in step STP27, the access destination information creation unit 109 determines whether the total number of the LD number 105c and the ST number 105d acquired in step STP26 is 1 or more. If the number is 1 or more, there is a possibility of access by the execution device (step STP27 “! = 0”). Therefore, the access destination information creation unit 109 increments the number of accesses in the access number counter increment processing in step STP28. If the total number is 0, there is no possibility of access (step STP27 “== 0”), and the access destination information creation unit 109 ends the loop processing for the number of program execution devices (I times).

ステップSTP30のアクセス回数取得処理では、アクセス先毎情報作成部109が、時刻数ループカウンタ値およびアドレス範囲ループカウンタ値をキーとして、アクセス先毎情報110の該当する時刻数の当該アドレスIDへアクセス回数110cを格納する。   In the access count acquisition process at step STP30, the access destination information creation unit 109 accesses the address ID corresponding to the number of times corresponding to the access destination information 110 using the time count loop counter value and the address range loop counter value as keys. 110c is stored.

ステップSTP31のアクセス回数比較処理では、アクセス先毎情報作成部109が、ループ処理中のアドレスID110bのアクセス回数110cが「0」か「0以上(非0)」かを判定して、「0以上」であればアクセスがあると判断して、当該アドレスID110bの最終アクセス時刻110dへ時刻ループカウンタ値をセットする(ステップSTP32)。アクセス回数110cが「0」であればそのままアドレスID数分(L回)ループ処理を終了して、一連の処理を終了する。   In the access count comparison process at step STP31, the access destination information creation unit 109 determines whether the access count 110c of the address ID 110b during loop processing is “0” or “0 or more (non-zero)”. ", It is determined that there is an access, and the time loop counter value is set to the last access time 110d of the address ID 110b (step STP32). If the access count 110c is “0”, the loop processing is ended as many as the number of address IDs (L times), and a series of processing ends.

次に、繰返しプログラム実行時間導出部104のアクセス競合率算出部111の詳細を説明する。図11は、図1に示すアクセス競合率算出部111の動作を示すフローチャートであり、各プログラム実行装置に割り当てられたプログラムの実行時刻とアクセス数に基づいて、アドレス範囲毎のプログラム競合率を算出するための動作を示す。図12は、図1に示すアクセス競合情報114の構成を示す説明図である。アクセス競合情報114は、アドレスID114aおよび競合率114bを格納するテーブルである。   Next, details of the access contention rate calculation unit 111 of the repetitive program execution time deriving unit 104 will be described. FIG. 11 is a flowchart showing the operation of the access contention rate calculation unit 111 shown in FIG. 1, and calculates the program contention rate for each address range based on the program execution time and the number of accesses assigned to each program execution device. The operation to do is shown. FIG. 12 is an explanatory diagram showing the configuration of the access contention information 114 shown in FIG. The access conflict information 114 is a table that stores an address ID 114a and a conflict rate 114b.

先ず、ステップSTP41の内部使用配列クリア処理では、アクセス競合率算出部111が、アクセス競合情報114の競合率114bをクリアする。   First, in the internal use array clear process in step STP41, the access contention rate calculation unit 111 clears the contention rate 114b of the access contention information 114.

アクセス競合率算出部111は、ステップSTP42〜STP49からなる一連のアドレスID数分(L回)ループ処理では、競合率114bをアドレスID毎に算出するためにアドレスID数分のループ処理を行う。先ず、ステップSTP43のアクセス競合数クリア処理では、アクセス競合率算出部111が有するアドレスID毎のアクセス競合数をセットするための変数をクリアする。   In a series of address ID number (L times) loop processing including steps STP42 to STP49, the access contention rate calculation unit 111 performs loop processing for the number of address IDs in order to calculate the contention rate 114b for each address ID. First, in the access contention number clear process in step STP43, a variable for setting the access contention number for each address ID included in the access contention rate calculation unit 111 is cleared.

ステップSTP44〜STP47からなる時刻数分(K回)ループ処理では、アクセス競合率算出部111が、時刻毎のアクセス競合数を取得するためのループ処理を行う。先ずステップSTP45のアクセス回数取得処理では、アクセス競合率算出部111が、アドレス範囲ループカウンタ値および時刻ループカウンタ値をキーに用いて、アクセス先毎情報110から当該アドレスID110bおよび時刻110aのアクセス回数110cを取得する。ステップSTP46のアクセス競合数カウントアップ処理では、アクセス競合率算出部111が、ステップSTP45で取得したアクセス回数110cをアクセス競合数の変数へ加算する。   In the loop processing for the number of times (K times) consisting of steps STP44 to STP47, the access contention rate calculation unit 111 performs loop processing for acquiring the access contention number for each time. First, in the access count acquisition process of step STP45, the access contention rate calculation unit 111 uses the address range loop counter value and the time loop counter value as keys, and accesses the address ID 110b and the access count 110c of the time 110a from the access destination information 110. To get. In the access contention count counting process in step STP46, the access contention rate calculation unit 111 adds the access count 110c acquired in step STP45 to the variable of access contention.

時刻数分(K回)ループ処理終了後、ステップSTP48のアクセス競合率算出処理では、アクセス競合率算出部111がループ処理中のアドレス範囲の競合率を算出して、アクセス競合情報114の競合率114bへ格納する。この競合率は、変数としてカウントしてきた(アクセス競合数−1)/(最終アクセス時刻110d)とする。(アクセス競合数−1)とは、即ち当該アドレス範囲の全時刻のアクセス競合待ち回数であり、(最終アクセス時刻110d)とは、即ち当該アドレス範囲へ最後にアクセスがあった時刻である。   After the completion of the loop processing for several times (K times), in the access contention rate calculation process in step STP48, the access contention rate calculation unit 111 calculates the contention rate of the address range during the loop processing, and the contention rate of the access contention information 114 114b. The contention rate is (access contention number-1) / (last access time 110d) counted as a variable. (Number of access conflicts−1) is the number of access contention waiting times at all times in the address range, and (last access time 110d) is the time when the address range was last accessed.

次に、繰返しプログラム実行時間導出部104の処理時間算出部106の詳細を説明する。図13は、図1に示す処理時間算出部106の動作を示すフローチャートである。図14は、図1に示すハードウェア仕様パラメータ113の構成を示す説明図である。ハードウェア仕様パラメータ113は、プログラム実行装置毎に、実行装置から各アドレスID113aのLD時間113bおよびST時間113cと、そのアドレスIDへアクセスするときに発生する競合待ち時間113dとを格納するテーブルである。このテーブルには、LD時間113bおよびST時間113cとして、ハードウェア仕様情報から取得した規定値を設定し、競合待ち時間113dとして、2つのアクセスが同時に発生してアクセス待ちとなる規定時間を設定しておく。   Next, details of the processing time calculation unit 106 of the repetitive program execution time deriving unit 104 will be described. FIG. 13 is a flowchart showing the operation of the processing time calculation unit 106 shown in FIG. FIG. 14 is an explanatory diagram showing the configuration of the hardware specification parameters 113 shown in FIG. The hardware specification parameter 113 is a table that stores, for each program execution device, the LD time 113b and ST time 113c of each address ID 113a from the execution device, and the contention waiting time 113d that occurs when accessing the address ID. . In this table, a specified value acquired from the hardware specification information is set as the LD time 113b and the ST time 113c, and a specified time in which two accesses occur simultaneously and waiting for access is set as the contention waiting time 113d. Keep it.

処理時間算出部106の動作を、図3のプログラム毎処理性能DB105、図12のアクセス競合情報114および図14のハードウェア仕様パラメータ113を用いて説明する。処理時間算出部106は、ステップSTP51〜STP57からなる一連のプログラム個数分(N回)ループ処理を、処理時間見積り対象のプログラム101の全個数分(N個)繰返して、各プログラムについて処理時間を算出する。先ず、ステップSTP52のアクセス時間クリア処理では、ループ処理中のプログラムのデバイスアクセス時間をクリアする。   The operation of the processing time calculation unit 106 will be described using the per-program processing performance DB 105 in FIG. 3, the access contention information 114 in FIG. 12, and the hardware specification parameters 113 in FIG. The processing time calculation unit 106 repeats the loop processing for the number of programs (N times) consisting of steps STP51 to STP57 (N times) for all the programs 101 for processing time estimation, and sets the processing time for each program. calculate. First, in the access time clear process in step STP52, the device access time of the program being looped is cleared.

続いて、処理時間算出部106は、ステップSTP53〜STP55からなるアドレスID数分(L回)ループ処理をアドレス範囲105bの全個数分(L個)繰返して、アドレス範囲105b毎のアクセス時間を算出する。ステップSTP54のアクセス時間算出処理では、処理時間算出部106がアドレスIDをキーに用いて、ハードウェア仕様パラメータ113からLD時間113b、ST時間113cおよび競合待ち時間113dを取得し、アクセス競合情報114から競合率114bを取得し、プログラム毎処理性能DB105からLD回数105cとST回数105dを取得して、ループ処理中のアドレス範囲のアクセス時間を算出する。このアクセス時間は、{(LD回数105c×LD時間113b)+(ST回数105d×ST時間113c)+競合待ち時間113d}×競合率114bとする。   Subsequently, the processing time calculation unit 106 repeats the loop processing for the number of address IDs (L times) consisting of steps STP53 to STP55 (L times) for the total number (L) of the address range 105b to calculate the access time for each address range 105b. To do. In the access time calculation process of step STP54, the processing time calculation unit 106 acquires the LD time 113b, the ST time 113c, and the contention waiting time 113d from the hardware specification parameter 113 using the address ID as a key, and from the access contention information 114. The contention rate 114b is acquired, the LD number 105c and the ST number 105d are acquired from the per-program processing performance DB 105, and the access time of the address range during loop processing is calculated. This access time is {(LD number 105c × LD time 113b) + (ST number 105d × ST time 113c) + contention waiting time 113d} × contention rate 114b.

アドレスID数分(L回)ループ処理終了後、ステップSTP56のアクセス時間算出処理では、処理時間算出部106がアクセス時間と命令数の和をプログラムの実行時間として算出して、繰返しプログラム実行時間導出部104へ格納する。   After the loop processing for the number of address IDs (L times), in the access time calculation processing in step STP56, the processing time calculation unit 106 calculates the sum of the access time and the number of instructions as the execution time of the program and derives the repeated program execution time. Stored in the unit 104.

次に、処理時間見積り装置がプログラム処理時間を算出するための全体動作を、図1〜図15を用いて説明する。初めに、オフラインでプログラム解析部103がプログラム101を解析し、プログラム毎のLD/ST回数およびLD/STのアドレス範囲を抽出してプログラム毎処理性能DB105へ格納する。
処理時間繰返し算出部112は、図12に示すようなアドレス範囲毎の前回競合率と今回競合率を比較して、ステップSTP61〜STP66からなるループ処理を繰返すか否かの判定を行う。処理時間繰返し算出部112は前回競合率と今回競合率とに差があればこの差を誤差と判断して、再度プログラム実行時間を算出し直し、前回競合率と今回競合率とが一致すれば誤差なしと判断してその時の実行時間をプログラム処理時間に決定して、処理を終了する。なお、本処理では、実行開始時は前回競合率がないため、最小2回はループ内処理を実行する。
Next, the overall operation for the processing time estimation device to calculate the program processing time will be described with reference to FIGS. First, the program analysis unit 103 analyzes the program 101 offline, extracts the LD / ST count and LD / ST address range for each program, and stores them in the per-program processing performance DB 105.
The processing time repetition calculation unit 112 compares the previous competition rate and the current competition rate for each address range as shown in FIG. 12, and determines whether or not to repeat the loop process composed of steps STP61 to STP66. If there is a difference between the previous competition rate and the current competition rate, the processing time repetition calculation unit 112 determines this difference as an error, recalculates the program execution time, and if the previous competition rate and the current competition rate match. It is determined that there is no error, the execution time at that time is determined as the program processing time, and the process is terminated. In this process, since there is no previous competition rate at the start of execution, the in-loop process is executed at least twice.

ループ処理を行う場合、ステップSTP62において、処理時間算出部106が図13に示す処理時間算出処理を行う。具体的には、上述のように処理時間算出部106が、アドレスID毎に計算したアクセス時間を用いて各プログラムの実行時間を算出して、プログラム毎処理性能DB105へ格納する。
続いて、ステップSTP63において、プログラム動作タイミング作成部107が図6に示すプログラム動作タイミング作成処理を行う。具体的には、上述のようにプログラム動作タイミング作成部107が、処理時間算出部106が算出した各プログラムの実行時間と、プログラム動作パラメータ115から取得した各プログラムの実行順序とから、各実行装置上で各プログラムが実行される時刻を算出して、プログラム実行装置毎時刻情報108へ格納する。
続いて、ステップSTP64において、アクセス先毎情報作成部109が図9に示すアクセス先毎情報作成処理を行う。具体的には、上述のようにアクセス先毎情報作成部109が、プログラム実行装置毎時刻情報108から時刻毎に各実行装置で実行するプログラム群の情報を取得し、時刻毎およびアドレスID(デバイス)毎にプログラム群からのアクセス回数を算出し、この回数を時刻毎の各デバイスへのアクセス競合数とする。
続いて、ステップSTP65において、アクセス競合率算出部111が図11に示すアクセス競合率算出処理を行う。具体的には、上述のようにアクセス競合率算出部111が、アクセス先毎情報110からデバイス毎のアクセス回数110cと最終アクセス時刻110dとを用いて、デバイス毎のアクセス競合平均回数と実行装置毎のプログラム実行時間の商から競合率を算出して、アクセス競合情報114へ格納する。
続いて、ステップSTP66において、処理時間繰返し算出部112が、今回のループ処理で算出した今回競合率と前回のループ処理で算出した前回競合率とを比較する。その結果、今回と前回の競合率が全てのアドレスIDにおいて同じであれば、処理時間繰返し算出部112はループ処理を終了させ、今回のループ処理で算出・格納されたプログラム毎処理性能DB105の実行時間105fを各プログラムの処理時間とする。
一方、ステップSTP66において、今回と前回の競合率が全てのアドレスIDにおいて同じでなければ、処理時間繰返し算出部112がステップSTP62で今回のループ処理で算出した競合率を利用して、各プログラムの実行時間を算出する処理を開始して、一連のループ処理を実行する。このループ処理は、前回と今回のループ処理で算出した競合率が同じになるまで繰返す。
When performing the loop processing, in step STP62, the processing time calculation unit 106 performs the processing time calculation processing shown in FIG. Specifically, the processing time calculation unit 106 calculates the execution time of each program using the access time calculated for each address ID as described above, and stores it in the processing performance DB 105 for each program.
Subsequently, in step STP63, the program operation timing creation unit 107 performs a program operation timing creation process shown in FIG. Specifically, as described above, the program operation timing creation unit 107 determines each execution device from the execution time of each program calculated by the processing time calculation unit 106 and the execution order of each program acquired from the program operation parameter 115. The time at which each program is executed is calculated and stored in the time information 108 for each program execution device.
Subsequently, in step STP64, the access destination information creation unit 109 performs the access destination information creation process shown in FIG. Specifically, as described above, the access destination information creation unit 109 acquires information on a program group executed by each execution device at each time from the program execution device time information 108, and sets the time ID and device ID (device ID). ) The number of accesses from the program group is calculated every time, and this number of times is set as the number of access conflicts to each device at each time.
Subsequently, in step STP65, the access contention rate calculation unit 111 performs an access contention rate calculation process shown in FIG. Specifically, as described above, the access contention rate calculation unit 111 uses the access count 110c and the last access time 110d for each device from the access destination information 110, and the average access contention count for each device and each execution device. The contention rate is calculated from the quotient of the program execution time and stored in the access contention information 114.
Subsequently, in step STP66, the processing time repetition calculation unit 112 compares the current competition rate calculated in the current loop process with the previous competition rate calculated in the previous loop process. As a result, if the current and previous competition rates are the same for all address IDs, the processing time repetition calculation unit 112 ends the loop processing and executes the per-program processing performance DB 105 calculated and stored in the current loop processing. The time 105f is set as the processing time of each program.
On the other hand, in step STP66, if the current and previous competition rates are not the same for all address IDs, the processing time repetition calculation unit 112 uses the competition rate calculated in the current loop processing in step STP62, and uses the contention rate of each program. A process for calculating the execution time is started and a series of loop processes are executed. This loop processing is repeated until the competition rate calculated in the previous and current loop processing is the same.

例えば、初回のループ処理実行時は前回競合率がないため、繰返しプログラム実行時間導出部104の各部は前回競合率に「0」を用いて初回のステップSTP61〜STP66を行って、競合率「A」を算出する。2回目のループ処理実行時は、初回に算出した競合率「A」×アクセス時間をプログラム実行時間に加算するため、新たな競合ポイントが発生し、今回競合率が「B」となる。2回目のループ処理実行時に、初回の競合率「A」と2回目の競合率「B」を比較し、同一であれば収束したと判断して処理終了となるが、同一でなければ2回目の競合率「B」を利用して競合率「B」×アクセス時間をプログラム実行時間として競合率「C」を計算することとなる。   For example, since there is no previous competition rate when the loop processing is executed for the first time, each unit of the repetitive program execution time deriving unit 104 performs the first steps STP61 to STP66 using “0” as the previous competition rate, and the competition rate “A Is calculated. At the time of executing the second loop processing, the contention rate “A” calculated for the first time × access time is added to the program execution time, so a new contention point occurs and the current contention rate becomes “B”. When executing the second loop process, the first competition rate “A” and the second competition rate “B” are compared. If they are the same, it is determined that they have converged, and the process ends. The contention rate “C” is calculated by using the contention rate “B” as the contention rate “B” × access time as the program execution time.

以上のように、実施の形態1によれば、処理時間見積り装置を、プログラム101を構成するN個の一部プログラム毎に、各デバイスへのアクセスについてのアドレス範囲105b毎のLD回数105c、ST回数105d、および命令数105eを抽出してプログラム毎処理性能DB105とするプログラム解析部103と、プログラム解析部103が抽出した命令数105eと、各一部プログラムを実行する各プログラム実行装置から各デバイスへのLD/ST時間の情報であるハードウェア仕様パラメータ113と、各デバイスへのアクセス時の競合率の情報であるアクセス競合情報114とから、各一部プログラムの実行時間105fを算出する処理時間算出部106と、各一部プログラムと各一部プログラムを実行するプログラム実行装置との対応付けおよび実行順序を示すプログラム動作パラメータ115と、処理時間算出部106が算出した各一部プログラムの実行時間105fとから、各一部プログラムの実行時刻を算出してプログラム実行装置毎時刻情報108を作成するプログラム動作タイミング作成部107と、プログラム動作タイミング作成部107が算出したプログラム実行装置毎の各一部プログラムの実行時刻と、プログラム解析部103が抽出したプログラム毎処理性能DB105の情報とから、時刻毎の各デバイスのアクセス競合数を算出してアクセス先毎情報110を作成するアクセス先毎情報作成部109と、アクセス先毎情報作成部109が算出したアクセス先毎情報110から、各デバイスの競合率を算出してアクセス競合情報114として処理時間算出部106へ出力するアクセス競合率算出部111とを備えるように構成した。このため、オフラインで解析したプログラム固有の情報とハードウェアのパラメータからプログラムを実行またはシミュレーションすることなくアクセス競合の見積りを行って、高速にプログラムの処理時間(実行時間105f)を算出することができる。   As described above, according to the first embodiment, the processing time estimation apparatus performs the LD count 105c for each address range 105b for access to each device for each of N partial programs constituting the program 101, ST The program analysis unit 103 that extracts the number of times 105d and the number of instructions 105e to obtain the per-program processing performance DB 105, the number of instructions 105e extracted by the program analysis unit 103, and each device from each program execution device that executes each partial program Processing time for calculating the execution time 105f of each partial program from the hardware specification parameter 113 that is information on the LD / ST time to the device and the access contention information 114 that is information on the contention rate when accessing each device Calculation unit 106, each partial program, and program for executing each partial program The program execution device calculates the execution time of each partial program from the program operation parameter 115 indicating the association with the row device and the execution order and the execution time 105f of each partial program calculated by the processing time calculation unit 106 A program operation timing creation unit 107 that creates hourly information 108, an execution time of each partial program for each program execution device calculated by the program operation timing creation unit 107, and a per-program processing performance DB 105 extracted by the program analysis unit 103 Information for each access destination is generated by calculating the number of access conflicts of each device for each time and the information for each access destination 110 calculated by the information generation unit for each access destination 109. From the contention rate of each device, the access contention information 114 and Was configured with an access contention rate calculation unit 111 outputs to the processing time calculation unit 106 Te. For this reason, it is possible to estimate access conflict without executing or simulating the program from the program-specific information analyzed offline and the hardware parameters, and to calculate the program processing time (execution time 105f) at high speed. .

また、実施の形態1によれば、処理時間算出部106が実行時間105fの算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、一致していなければ当該今回競合率を前回競合率として利用して処理時間算出部106、プログラム動作タイミング作成部107、アクセス先毎情報作成部109およびアクセス競合率算出部111に繰返し処理を行わせて新たな今回競合率を算出させ、一致していれば当該今回競合率算出の過程で算出された実行時間105fをプログラム101の処理時間として出力する処理時間繰返し算出部112を備えるように構成した。このため、前回競合率と今回競合率が一致したときの実行時間105fをプログラム101の処理時間とすることで、高精度な処理時間の見積りを行うことができる。   Further, according to the first embodiment, the processing time calculation unit 106 compares the previous competition rate used for the calculation of the execution time 105f with the current competition rate calculated using the previous competition rate. If not, the processing time calculation unit 106, the program operation timing generation unit 107, the access destination information generation unit 109, and the access contention rate calculation unit 111 are repeatedly performed using the current competition rate as the previous competition rate. It is configured to include a processing time repetition calculation unit 112 that calculates a new current competition rate and outputs the execution time 105f calculated in the process of calculating the current competition rate as the processing time of the program 101 if they match. For this reason, the execution time 105f when the previous competition rate matches the current competition rate is set as the processing time of the program 101, so that the processing time can be estimated with high accuracy.

実施の形態2.
上記実施の形態1では、処理時間繰返し算出部112が算出した前回競合率と今回競合率とが一致した場合に、繰返しプログラム実行時間導出部104の一連の処理を終了するように構成したが、本実施の形態では、前回競合率と今回競合率の差が競合率計算終了パラメータより小さい場合に、許容範囲内の誤差と判断して一連の処理を終了するように構成する。なお、本実施の形態の処理時間見積り装置は、図1に示す上記実施の形態1の処理時間見積り装置と図面上では同様の構成であるため、以下では図1を援用して説明すると共に、同一の部分については説明を省略する。
Embodiment 2. FIG.
In the first embodiment, when the previous competition rate calculated by the processing time repetition calculation unit 112 matches the current competition rate, the series of processes of the repeated program execution time deriving unit 104 is ended. In the present embodiment, when the difference between the previous competition rate and the current competition rate is smaller than the competition rate calculation end parameter, it is determined that the error is within the allowable range, and the series of processes is ended. The processing time estimation device of the present embodiment has the same configuration on the drawing as the processing time estimation device of the first embodiment shown in FIG. 1 and will be described below with reference to FIG. The description of the same part is omitted.

図16は、この発明の実施の形態2に係る処理時間見積り装置の、繰返しプログラム実行時間導出部104の動作を示すフローチャートである。
処理時間繰返し算出部112は、前回競合率と今回競合率との差を競合率計算終了パラメータと比較して、ステップSTP61a〜STP66aからなるループ処理を繰返すか否かの判定を行う。なお、本処理では、上記実施の形態1と同様に、実行開始時は前回競合率がないため、最小2回はループ内処理を実行する。
処理時間繰返し算出部112は、アクセス競合率算出部111が算出したアドレスID毎の競合率と、前回ループ処理で算出した競合率との誤差が競合率計算終了パラメータ以上の場合に続くステップSTP62〜STP65の処理を行い、誤差が競合率計算終了パラメータより小さい場合に処理を終了する。ステップSTP62〜STP65については、図15と同様であるため説明を省略する。
FIG. 16 is a flowchart showing the operation of the repetitive program execution time deriving unit 104 of the processing time estimation apparatus according to Embodiment 2 of the present invention.
The processing time repetition calculation unit 112 compares the difference between the previous competition rate and the current competition rate with the competition rate calculation end parameter, and determines whether or not to repeat the loop process including steps STP61a to STP66a. In this process, as in the first embodiment, since there is no previous competition rate at the start of execution, the in-loop process is executed at least twice.
The processing time repetition calculation unit 112 performs steps STP62 to STP62 when the error between the contention rate for each address ID calculated by the access contention rate calculation unit 111 and the contention rate calculated in the previous loop processing is equal to or greater than the contention rate calculation end parameter. The processing of STP 65 is performed, and the processing is ended when the error is smaller than the competition rate calculation end parameter. Steps STP62 to STP65 are the same as in FIG.

以上より、実施の形態2によれば、処理時間繰返し算出部112を、処理時間算出部106が実行時間105fの算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、その差分が、競合率計算終了パラメータより大きければ当該今回競合率を前回競合率として利用して処理時間算出部106、プログラム動作タイミング作成部107、アクセス先毎情報作成部109およびアクセス競合率算出部111に繰返し処理を行わせて新たな今回競合率を算出させ、競合率計算終了パラメータ以下であれば当該今回競合率算出の過程で算出された実行時間105fをプログラム101の処理時間として出力するように構成した。このため、前回競合率と今回競合率の差分が競合率計算終了パラメータ以下になったときの実行時間105fをプログラム101の処理時間とすることで、上記実施の形態1より高速に処理時間の見積りを行うことができる。   As described above, according to the second embodiment, the processing time repetition calculation unit 112 is calculated using the previous competition rate used by the processing time calculation unit 106 to calculate the execution time 105f and the current competition rate calculated using the previous competition rate. Comparing with the competition rate, if the difference is larger than the competition rate calculation end parameter, the current competition rate is used as the previous competition rate, the processing time calculation unit 106, the program operation timing creation unit 107, and the creation of each access destination information The unit 109 and the access contention rate calculation unit 111 are repeatedly processed to calculate a new current contention rate, and if it is equal to or less than the contention rate calculation end parameter, the execution time 105f calculated in the current contention rate calculation process is programmed. A processing time of 101 is output. For this reason, the execution time 105f when the difference between the previous competition rate and the current competition rate is equal to or less than the competition rate calculation end parameter is set as the processing time of the program 101, so that the processing time can be estimated faster than in the first embodiment. It can be performed.

実施の形態3.
本実施の形態3では、上記実施の形態1,2により作成したプログラム毎処理性能DB105およびプログラム動作パラメータ115を用いて、実行装置毎のプログラム実行終了時刻を算出し、最も終了時刻が遅い実行装置のプログラム実行時間、即ち最悪実行時間を導出する動作周期算出部を備える。なお、本実施の形態の処理時間見積り装置は、動作周期算出部を追加する以外、図1に示す上記実施の形態1の処理時間見積り装置と図面上では同様の構成であるため、以下では図1を援用して説明すると共に、同一の部分については説明を省略する。
Embodiment 3 FIG.
In the third embodiment, the program execution end time for each execution device is calculated using the per-program processing performance DB 105 and the program operation parameter 115 created in the first and second embodiments, and the execution device with the latest end time is calculated. The operation period calculation unit for deriving the program execution time, that is, the worst execution time is provided. The processing time estimation apparatus according to the present embodiment has the same configuration as the processing time estimation apparatus according to the first embodiment shown in FIG. 1 except that an operation cycle calculation unit is added. 1 is used for explanation, and the explanation for the same part is omitted.

図17は、この発明の実施の形態3に係る処理時間見積り装置の、動作周期算出部の動作を示すフローチャートである。なお、動作周期算出部が図17に示す処理を開始する以前に、繰返しプログラム実行時間導出部104の各部による一連の処理が終了し、プログラム毎処理性能DB105に処理時間算出部106が算出した最終的な処理時間が実行時間105fに格納されているものとする。   FIG. 17 is a flowchart showing the operation of the operation cycle calculation unit of the processing time estimation apparatus according to Embodiment 3 of the present invention. Before the operation cycle calculation unit starts the processing shown in FIG. 17, a series of processing by each unit of the repetitive program execution time deriving unit 104 is finished, and the final processing time calculation unit 106 calculates in the per-program processing performance DB 105. It is assumed that a typical processing time is stored in the execution time 105f.

ステップSTP71〜STP80のプログラム実行装置数分(I回)ループ処理では、動作周期算出部が、プログラム実行装置毎にプログラム実行時間の合計を計算する。先ず、ステップSTP72の変数クリア処理では、動作周期算出部が、プログラム実行装置毎の処理時間の積算値を格納する変数である応答時間と、最も積算値が大きい応答時間を格納する変数である動作周期をクリアする。
続くステップSTP73のプログラムID取得処理では、動作周期算出部が、プログラム実行装置ループカウンタ値をキーに用いて、プログラム動作パラメータ115から当該実行装置ID115aで動作する全てのプログラムID115bを取得する。
In the loop processing for the number of program execution devices in steps STP71 to STP80 (I times), the operation cycle calculation unit calculates the total program execution time for each program execution device. First, in the variable clear process of step STP72, the operation cycle calculation unit is an operation that is a variable that stores a response time that is a variable that stores an integrated value of the processing time for each program execution device and a response time that has the largest integrated value Clear the cycle.
In the program ID acquisition process in the subsequent step STP73, the operation cycle calculation unit acquires all program IDs 115b operating with the execution device ID 115a from the program operation parameter 115 using the program execution device loop counter value as a key.

ステップSTP74〜STP77の取得プログラムID数分ループ処理では、ステップSTP73で取得したプログラムID115bの個数分、ループ処理を行い、各プログラムIDの応答時間を算出する。先ず、ステップSTP75の実行時間取得処理で、動作周期算出部が、プログラムIDをキーに用いて、プログラム毎処理性能DB105から実行時間105fを取得する。続くステップSTP76の応答時間積算処理で、動作周期算出部が、ステップSTP75で取得した実行時間105fを応答時間の変数に加算して、応答時間を更新する。   In the loop processing for the number of acquired program IDs in steps STP74 to STP77, the loop processing is performed for the number of program IDs 115b acquired in step STP73, and the response time of each program ID is calculated. First, in the execution time acquisition process of step STP75, the operation cycle calculation unit acquires the execution time 105f from the per-program processing performance DB 105 using the program ID as a key. In the subsequent response time integration process in step STP76, the operation cycle calculation unit adds the execution time 105f acquired in step STP75 to the response time variable to update the response time.

ステップSTP78の動作周期・応答時間比較処理では、動作周期算出部が、動作周期とステップSTP74〜STP77で実行時間105fを積算して得た応答時間とを比較する。動作周期算出部は、動作周期より応答時間が大きければ(ステップSTP78“<”)、動作周期の変数を応答時間に置き換えて(ステップSTP79)、動作周期より応答時間が小さいか同じであれば(ステップSTP78“>=”)、そのままプログラム実行装置数分(I回)ループ処理を終了して、一連の動作周期算出処理を終了する。   In the operation cycle / response time comparison process in step STP78, the operation cycle calculation unit compares the operation cycle with the response time obtained by integrating the execution time 105f in steps STP74 to STP77. If the response time is longer than the operation cycle (step STP78 “<”), the operation cycle calculation unit replaces the variable of the operation cycle with the response time (step STP79), and if the response time is less than or equal to the operation cycle (step STP79). In step STP78 “> =”), the loop processing is ended as many times as the number of program execution devices (I times), and a series of operation cycle calculation processing ends.

以上より、実施の形態3によれば、処理時間算出部106が算出した各一部プログラムの実行時間105fと、各一部プログラムを実行するプログラム実行装置の実行順序を示すプログラム動作パラメータ115とから、プログラム実行装置毎の応答時間を算出し、当該応答時間から制御システムの動作可能周期を算出する動作周期算出部を備えるように構成した。このため、上記実施の形態1,2において処理時間算出部106が算出したプログラム毎の処理時間から、実行装置の動作周期を自動的に算出することができる。   As described above, according to the third embodiment, from the execution time 105f of each partial program calculated by the processing time calculation unit 106 and the program operation parameter 115 indicating the execution order of the program execution device that executes each partial program. In addition, an operation period calculation unit is provided that calculates a response time for each program execution device and calculates an operable period of the control system from the response time. Therefore, the operation period of the execution device can be automatically calculated from the processing time for each program calculated by the processing time calculation unit 106 in the first and second embodiments.

また、上記実施の形態1〜3によれば、プログラム毎処理性能DB105、ハードウェア仕様パラメータ113、およびプログラム動作パラメータ115は、繰返し計算する必要がなく、最初に一度値を作成すればその後の繰返し処理時に流用することができ、演算量を軽減できる。   Further, according to the first to third embodiments, the per-program processing performance DB 105, the hardware specification parameter 113, and the program operation parameter 115 do not need to be repeatedly calculated. It can be used during processing, and the amount of calculation can be reduced.

なお、上記実施の形態1〜3の処理時間見積り装置をコンピュータで構成する場合、プログラム解析部103および繰返しプログラム実行時間導出部104各部の処理内容を記述している処理時間見積りプログラムをコンピュータのメモリに格納し、コンピュータのCPUがメモリに格納されているこのプログラムを実行するようにしてもよい。   When the processing time estimation devices of the first to third embodiments are configured by a computer, the processing time estimation program describing the processing contents of the program analysis unit 103 and the repeated program execution time deriving unit 104 is stored in the computer memory. The computer CPU may execute the program stored in the memory.

101 プログラム、102 アドレス範囲情報、102a アドレス範囲、102b アドレスID、103 プログラム解析部、104 繰返しプログラム実行時間導出部、105 プログラム毎処理性能DB、105a プログラムID、105b アドレス範囲、105c LD回数、105d ST回数、105e 命令数、105d 実行時間、106 処理時間算出部、107 プログラム動作タイミング作成部、108 プログラム実行装置毎時刻情報、108a 実行装置ID、108b プログラムIDとその実行時間、109 アクセス先毎情報作成部、110 アクセス先毎情報、110a 時刻、110b アドレスID、110c アクセス回数、110d 最終アクセス時刻、111 アクセス競合率算出部、112 処理時間繰返し算出部、113 ハードウェア仕様パラメータ、113a アドレスID、113b LD時間、113c ST時間、 113d 競合待ち時間、114 アクセス競合情報、114a アドレスID、114b 競合率、115 プログラム動作パラメータ、115a 実行装置ID、115b プログラムID、116 命令サイクルテーブル、116a 命令、 116b サイクル数。   101 program, 102 address range information, 102a address range, 102b address ID, 103 program analysis unit, 104 repetitive program execution time deriving unit, 105 program performance DB, 105a program ID, 105b address range, 105c LD count, 105d ST Number of times, 105e Number of instructions, 105d Execution time, 106 Processing time calculation unit, 107 Program operation timing creation unit, 108 Program execution device time information, 108a Execution device ID, 108b Program ID and its execution time, 109 Access destination information creation 110, access destination information, 110a time, 110b address ID, 110c access count, 110d last access time, 111 access contention rate calculation unit, 112 processing time Iterative calculation unit, 113 hardware specification parameter, 113a address ID, 113b LD time, 113c ST time, 113d contention waiting time, 114 access contention information, 114a address ID, 114b contention rate, 115 program operation parameter, 115a execution device ID, 115b Program ID, 116 instruction cycle table, 116a instruction, 116b number of cycles.

Claims (5)

複数のプログラム実行装置を有する制御システム上で動作するプログラムの処理時間を見積もる処理時間見積り装置であって、
前記プログラムを構成する複数の一部プログラム毎に、各デバイスへのアクセスについての入力アドレスと出力アドレス、その入力回数と出力回数、および発行命令数を抽出するプログラム解析部と、
前記プログラム解析部が抽出した発行命令数と、前記各一部プログラムを実行する各プログラム実行装置から前記各デバイスへのアクセス時間の情報と、前記各デバイスへのアクセス時の前回競合率の情報とから、前記各一部プログラムの実行時間を算出する処理時間算出部と、
前記各一部プログラムと各一部プログラムを実行するプログラム実行装置との対応付けおよび実行順序を示すプログラム動作パラメータと、前記処理時間算出部が算出した前記各一部プログラムの実行時間とから、前記各一部プログラムの実行時刻を算出するプログラム動作タイミング作成部と、
前記プログラム動作タイミング作成部が算出したプログラム実行装置毎の前記各一部プログラムの実行時刻と、前記プログラム解析部が抽出した前記各一部プログラムの前記各デバイスへのアクセスの情報とから、時刻毎の前記各デバイスのアクセス競合数を算出するアクセス先毎情報作成部と、
前記アクセス先毎情報作成部が算出した時刻毎の前記各デバイスのアクセス競合数から、前記各デバイスの今回競合率を算出し、当該今回競合率を前回競合率として前記処理時間算出部へ出力するアクセス競合率算出部とを備えることを特徴とする処理時間見積り装置。
A processing time estimation device for estimating the processing time of a program operating on a control system having a plurality of program execution devices,
For each of a plurality of partial programs constituting the program, a program analysis unit that extracts an input address and an output address for accessing each device, an input count and an output count, and an issued instruction count;
The number of issued instructions extracted by the program analysis unit, information on the access time to each device from each program execution device that executes each partial program, and information on the previous contention rate when accessing each device, From the processing time calculation unit for calculating the execution time of each partial program,
Correspondence between each partial program and a program execution device that executes each partial program and a program operation parameter indicating an execution order, and an execution time of each partial program calculated by the processing time calculation unit, A program operation timing creation unit for calculating the execution time of each partial program;
From the execution time of each partial program for each program execution device calculated by the program operation timing creation unit and the access information to each device of each partial program extracted by the program analysis unit, for each time An access destination information creation unit that calculates the number of access conflicts of each of the devices,
The current competition rate of each device is calculated from the number of access competitions of each device for each time calculated by the access destination information creation unit, and the current competition rate is output to the processing time calculation unit as the previous competition rate. A processing time estimation device comprising: an access contention rate calculation unit.
処理時間算出部が実行時間の算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、一致していなければ当該今回競合率を前回競合率として利用して新たな今回競合率を算出させ、一致していれば当該今回競合率算出の過程で算出された実行時間をプログラムの処理時間として出力する処理時間繰返し算出部を備えることを特徴とする請求項1記載の処理時間見積り装置。   The previous competition rate used by the processing time calculator to calculate the execution time is compared with the current competition rate calculated using this previous competition rate. It is characterized by comprising a processing time repetition calculation unit that calculates a new current competition rate and outputs the execution time calculated in the process of calculating the current competition rate as the processing time of the program if they match. The processing time estimation device according to claim 1. 処理時間算出部が実行時間の算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、その差分が、所定値より大きければ当該今回競合率を前回競合率として利用して新たな今回競合率を算出させ、所定値以下であれば当該今回競合率算出の過程で算出された実行時間をプログラムの処理時間として出力する処理時間繰返し算出部を備えることを特徴とする請求項1記載の処理時間見積り装置。   The previous competition rate used by the processing time calculation unit to calculate the execution time is compared with the current competition rate calculated using the previous competition rate, and if the difference is greater than a predetermined value, the current competition rate Is used as a previous competition rate to calculate a new current competition rate, and if it is less than a predetermined value, a processing time repetition calculation unit that outputs the execution time calculated in the current competition rate calculation process as the processing time of the program The processing time estimation apparatus according to claim 1, further comprising: 処理時間算出部が算出した各一部プログラムの実行時間と、前記各一部プログラムを実行するプログラム実行装置の実行順序を示すプログラム動作パラメータとから、プログラム実行装置毎の応答時間を算出し、当該応答時間から制御システムの動作可能周期を算出する動作周期算出部を備えることを特徴とする請求項1から請求項3のうちのいずれか1項記載の処理時間見積り装置。   The response time for each program execution device is calculated from the execution time of each partial program calculated by the processing time calculation unit and the program operation parameter indicating the execution order of the program execution device that executes each partial program, The processing time estimation device according to any one of claims 1 to 3, further comprising an operation cycle calculation unit that calculates an operable cycle of the control system from the response time. 複数のプログラム実行装置を有する制御システム上で動作するプログラムの処理時間を見積もる処理時間見積りプログラムであって、
コンピュータを、前記プログラムを構成する複数の一部プログラム毎に、各デバイスへのアクセスについての入力アドレスと出力アドレス、その入力回数と出力回数、および発行命令数を抽出するプログラム解析手段と、
前記プログラム解析手段が抽出した発行命令数と、前記各一部プログラムを実行する各プログラム実行装置から前記各デバイスへのアクセス時間の情報と、前記各デバイスへのアクセス時の前回競合率の情報とから、前記各一部プログラムの実行時間を算出する処理時間算出手段と、
前記各一部プログラムと各一部プログラムを実行するプログラム実行装置との対応付けおよび実行順序を示すプログラム動作パラメータと、前記処理時間算出手段が算出した前記各一部プログラムの実行時間とから、前記各一部プログラムの実行時刻を算出するプログラム動作タイミング作成手段と、
前記プログラム動作タイミング作成手段が算出したプログラム実行装置毎の前記各一部プログラムの実行時刻と、前記プログラム解析手段が抽出した前記各一部プログラムの前記各デバイスへのアクセスの情報とから、時刻毎の前記各デバイスのアクセス競合数を算出するアクセス先毎情報作成手段と、
前記アクセス先毎情報作成手段が算出した時刻毎の前記各デバイスのアクセス競合数から、前記各デバイスの今回競合率を算出し、当該今回競合率を前回競合率として前記処理時間算出手段へ出力するアクセス競合率算出手段と、
前記処理時間算出手段が実行時間の算出に用いた前回競合率と、この前回競合率を利用して算出された今回競合率とを比較して、一致していなければ当該今回競合率を前回競合率として利用して新たな今回競合率を算出させ、一致していれば当該今回競合率算出の過程で算出された実行時間を前記プログラムの処理時間として出力する処理時間繰返し算出手段として機能させるための処理時間見積りプログラム。
A processing time estimation program for estimating the processing time of a program operating on a control system having a plurality of program execution devices,
A program analyzing means for extracting, for each of a plurality of partial programs constituting the program, an input address and an output address for accessing each device, an input count and an output count, and an issued instruction count;
The number of issued instructions extracted by the program analysis means, information on the access time to each device from each program execution device that executes each partial program, and information on the previous contention rate when accessing each device, From the processing time calculation means for calculating the execution time of each partial program,
Correspondence between each partial program and a program execution device that executes each partial program and a program operation parameter indicating an execution order, and an execution time of each partial program calculated by the processing time calculation unit, Program operation timing creation means for calculating the execution time of each partial program;
From the execution time of each partial program for each program execution device calculated by the program operation timing creation means and the access information to each device of each partial program extracted by the program analysis means, for each time Access destination information creation means for calculating the number of access conflicts of each of the devices,
The current competition rate of each device is calculated from the number of access competitions of each device for each time calculated by the access destination information creation unit, and the current competition rate is output to the processing time calculation unit as the previous competition rate. Access competition rate calculation means,
The previous competition rate used for calculating the execution time by the processing time calculation means is compared with the current competition rate calculated by using the previous competition rate. In order to function as a processing time iterative calculation means for outputting the execution time calculated in the process of calculating the current competition rate as the processing time of the program if a new current competition rate is calculated using the rate Processing time estimation program.
JP2009138271A 2009-06-09 2009-06-09 Processing time estimation device and processing time estimation program Active JP5153724B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009138271A JP5153724B2 (en) 2009-06-09 2009-06-09 Processing time estimation device and processing time estimation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009138271A JP5153724B2 (en) 2009-06-09 2009-06-09 Processing time estimation device and processing time estimation program

Publications (2)

Publication Number Publication Date
JP2010286892A JP2010286892A (en) 2010-12-24
JP5153724B2 true JP5153724B2 (en) 2013-02-27

Family

ID=43542571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009138271A Active JP5153724B2 (en) 2009-06-09 2009-06-09 Processing time estimation device and processing time estimation program

Country Status (1)

Country Link
JP (1) JP5153724B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5153904B2 (en) 2010-09-22 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Program operation estimation method and program
JP5589748B2 (en) * 2010-10-15 2014-09-17 新日鐵住金株式会社 Program diagnostic apparatus and program diagnostic method
JP6045986B2 (en) * 2013-06-27 2016-12-14 富士電機株式会社 Software development support apparatus, software development support method, and software development support program
CN116882335B (en) * 2023-09-06 2023-12-22 上海芯存天下电子科技有限公司 Operation time simulation acquisition method and device, electronic equipment and storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108369A (en) * 1991-10-18 1993-04-30 Nec Software Kansai Ltd System for managing program area resident priority
JPH06259245A (en) * 1993-03-05 1994-09-16 Hitachi Ltd Instrument and method for measuring performance of program
JPH096646A (en) * 1995-06-14 1997-01-10 Oki Electric Ind Co Ltd Program simulation device
JPH09167003A (en) * 1995-12-14 1997-06-24 Nissan Motor Co Ltd Operation device for operation confirmation
JPH11163899A (en) * 1997-11-25 1999-06-18 Hitachi Ltd Communication control method
JP2000242529A (en) * 1999-02-23 2000-09-08 Matsushita Electric Ind Co Ltd Device and system for assisting program development and recording medium
JP2007299212A (en) * 2006-04-28 2007-11-15 Fujitsu Ten Ltd Apparatus and method for evaluating porting of software

Also Published As

Publication number Publication date
JP2010286892A (en) 2010-12-24

Similar Documents

Publication Publication Date Title
US20170228645A1 (en) Accelerating deep neural network training with inconsistent stochastic gradient descent
David et al. On time with minimal expected cost!
EP1835426A1 (en) Estimating software power consumption
Ballarini et al. COSMOS: a statistical model checker for the hybrid automata stochastic logic
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
JP5153724B2 (en) Processing time estimation device and processing time estimation program
Aspnes et al. Approximate shared-memory counting despite a strong adversary
CN116362168B (en) Modeling method and device for GPGPU offline clock and storage medium
US10564992B2 (en) Simulation apparatus and storage medium
CN114428748B (en) Simulation test method and system for real service scene
CN108875810B (en) Method and device for sampling negative examples from word frequency table aiming at training corpus
CN102520984B (en) Computing method for worst time of object software in specified hardware environment
CN108845927B (en) Test case screening method and device
US20080244583A1 (en) Conflicting sub-process identification method, apparatus and computer program
CN107769987B (en) Message forwarding performance evaluation method and device
CN116204396A (en) Test method and device for performance of analytical database
CN108008999B (en) Index evaluation method and device
Wolf et al. Execution cost interval refinement in static software analysis
CN113254084B (en) Time and time sequence calibration method and device based on processor pipeline analysis
Paulin et al. Method for Constructing the Model of Computing Processbased on Petri net
CN114239445A (en) Signal acquisition method and chip verification platform
RU2679225C2 (en) Method and device for ascertaining gradient of data-based function model
US20070010982A1 (en) Automatic time warp for electronic system simulation
CN108664368B (en) Processor performance index evaluation method and device
Nozdrzykowski et al. Testing the significance of parameters of models estimating execution time of parallel program loops according to the Open MPI Standard

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121204

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5153724

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

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