JP5458208B2 - Processor system optimization support apparatus and support method - Google Patents
Processor system optimization support apparatus and support method Download PDFInfo
- Publication number
- JP5458208B2 JP5458208B2 JP2013156698A JP2013156698A JP5458208B2 JP 5458208 B2 JP5458208 B2 JP 5458208B2 JP 2013156698 A JP2013156698 A JP 2013156698A JP 2013156698 A JP2013156698 A JP 2013156698A JP 5458208 B2 JP5458208 B2 JP 5458208B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- optimization
- time
- information
- optimization method
- 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
- 238000000034 method Methods 0.000 title claims description 161
- 238000005457 optimization Methods 0.000 title claims description 152
- 238000004458 analytical method Methods 0.000 claims description 33
- 238000002620 method output Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 62
- 230000008569 process Effects 0.000 description 52
- 238000004891 communication Methods 0.000 description 50
- 238000010586 diagram Methods 0.000 description 28
- 230000010354 integration Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004040 coloring Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012806 monitoring device Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、例えばマルチタスク・オペレーティング・システム(OS)上で動作するアプリケーション・ソフトウェアに対応して、タスクの実行状況を示すトレース情報や、システムの性能情報を分析し、その分析結果に基づいてシステムの最適化方法を出力し、システム設計者によるシステム最適化を支援するシステム最適化支援装置、および支援方法に関する。 The present invention analyzes, for example, trace information indicating task execution status and system performance information corresponding to application software running on a multitasking operating system (OS), and based on the analysis result. The present invention relates to a system optimization support apparatus that outputs a system optimization method and supports system optimization by a system designer, and a support method.
マルチタスク・オペレーティング・システム(OS)上で動くアプリケーション・ソフトウェアや、マルチタスク・OSを利用した組み込みシステムの評価においては、タスク遷移図などの評価ツールを用いて、複数のデータをつき合わせてシステムの性能を評価し、システム設計者などのノウハウを使ってシステムの最適化を行う必要があった。このため、例えばタスクが稼動していないアイドル時間や、タスクの実行時間と関連させてシステムの最適化作業を行うためには、システム設計者などのノウハウや人手に頼る必要があるという問題点があった。 When evaluating application software that runs on a multitasking operating system (OS) or an embedded system that uses a multitasking OS, an evaluation tool such as a task transition diagram is used to combine multiple data. It was necessary to evaluate the performance of the system and optimize the system using the know-how of system designers. For this reason, for example, in order to perform system optimization work in relation to idle time when the task is not operating or task execution time, it is necessary to rely on the know-how and manpower of system designers and the like. there were.
このようなマルチタスクの性能向上などに関する従来技術としての特許文献1では、所定の条件が満たされる場合に所定のタスクの優先順位を変更するとともに、優先順位の変更のための条件を学習機能により使用環境に応じて最適化する実時間処理装置が開示されている。
In
次に特許文献2では、POSサーバなどのデータ処理装置において、マルチタスクなどの多数のデータ処理手段の稼働率をリアルタイムで確認可能とするデータ処理装置が開示されている。
Next,
特許文献3では、タスクの停止時間をタスク自身が認識し、タスクの停止状況を視覚的に把握し、タスクの実行遅れに対して自動的な回復処理を行うためのタスク監視装置及びタスク監視方法が開示されている。
In
特許文献4では、マルチタスク・オブジェクト指向プログラムの動作内容をユーザにわかりやすくし、ユーザによるデバッグ、またはテストの作業効率を向上させることができる技術が開示されている。
特許文献5では、タスクの所要時間だけでなく、リソースの効率、仕事率などの能力、およびリソースの負荷を含むリソース処理状態を表示可能とする技術が開示されている。
さらに特許文献6では、タスクの所要時間、リソースの効率、仕事率、およびリソースの処理状態を表示し、かつ複数のタスクの処理量、処理率などを一元管理することができる技術が開示されている。
Further,
しかしながらこのような特許文献1から特許文献6までの従来技術を用いても、例えばマルチタスク・OSを利用した組み込みシステムの最適化作業において、ノウハウや人手に頼る必要があるという問題点を解決することはできなかった。例えば、タスク内の関数レベル、あるいはループレベルでのミクロの最適化を行うことも考えられるが、システム全体の最適化作業においては、ノウハウや人手に頼らざるをえないという問題点を解決することはできない。
However, even when such conventional techniques from
本発明の目的は、上述の問題点に鑑み、例えばマルチタスク・オペレーティング・システムを用いた組み込みシステムのトレース情報や性能情報を分析し、その分析結果に対応してシステムの最適化方法を表示、出力することによって、ノウハウや、システム設計者の人手に頼ることなく、プロセッサ・システムの最適化を可能とする最適化支援装置、および支援方法を提供することである。 The object of the present invention is to analyze the trace information and performance information of an embedded system using, for example, a multitasking operating system in view of the above problems, and display a system optimization method corresponding to the analysis result. It is an object to provide an optimization support apparatus and a support method that enable optimization of a processor system without relying on know-how or a system designer's manpower by outputting.
本発明のプロセッサ・システム最適化支援装置は、情報取得手段、情報分析手段、および最適化方法出力手段を備える。情報取得手段は、プロセッサ・システムに対するトレース情報と、そのトレース情報に対応する性能情報とをメモリから読み出すものである。 The processor system optimization support apparatus of the present invention includes information acquisition means, information analysis means, and optimization method output means. The information acquisition means reads the trace information for the processor system and the performance information corresponding to the trace information from the memory.
情報分析手段は、メモリから読み出されたトレース情報と性能情報とを分析し、その分析の結果として、例えばシステムの性能指標を求めるものである。システムの性能指標としては各種の指標を求めることができるが、その1つはマルチタスクを構成するタスクの実行率の平均値と、同一の優先度を有する各タスクの実行率とを比較して得られた値である同一優先度タスクの負荷比である。 The information analysis means analyzes the trace information and performance information read from the memory, and obtains, for example, a system performance index as a result of the analysis. Various indexes can be obtained as system performance indicators. One of them is the comparison of the average execution rate of tasks that make up multitasking and the execution rate of each task having the same priority. It is the load ratio of the same priority task which is the obtained value.
最適化方法出力手段は、情報分析手段による分析の結果に対応して、システム最適化の方法を表示、出力するものである。この最適化方法出力手段は、メモリからさらにシステムの最適化に用いるべき方法のデータを取得し、そのデータと、情報分析手段による分析結果とに対応させて、システムの最適化方法を表示、出力することもできる。 The optimization method output means displays and outputs a system optimization method corresponding to the result of the analysis by the information analysis means. This optimization method output means obtains data of a method to be used for further system optimization from the memory, and displays and outputs the system optimization method corresponding to the data and the analysis result by the information analysis means. You can also
本発明のプロセッサ・システム最適化支援方法は、このシステム最適化支援装置の動作に相当する方法を実行するものである。 The processor system optimization support method of the present invention executes a method corresponding to the operation of the system optimization support apparatus.
このように本発明によれば、プロセッサ・システムに対するトレース情報と性能情報との分析結果に対応して、システム最適化の方法が表示、出力されることよって、プロセッサ・システムの最適化支援が行われる。 As described above, according to the present invention, the optimization of the processor system is performed by displaying and outputting the system optimization method corresponding to the analysis result of the trace information and the performance information for the processor system. Is called.
本発明によれば、例えばマルチ・プロセッサ用、あるいはシングル・プロセッサ用の組み込みシステムの最適化の方法が、プロセッサ・システム最適化支援装置によって表示、出力されることにより、最適化のために効果の無い作業を繰り返す必要がなくなり、また例えばシステム設計者の技術レベルに依存することなく、プロセッサ・システムの最適化が可能となり、マルチタスク・オペレーティング・システムを用いた組み込みシステムの設計効率の向上に寄与するところが大きい。 According to the present invention, for example, a method for optimizing an embedded system for a multi-processor or a single processor is displayed and output by a processor system optimization support device, so that an effect for optimization can be obtained. It is no longer necessary to repeat unnecessary tasks, and it is possible to optimize the processor system without depending on the technical level of the system designer, for example, contributing to the improvement of the design efficiency of the embedded system using the multitask operating system There is a lot to do.
図1は、本発明のプロセッサ・システム最適化支援装置の原理構成ブロック図である。同図において、最適化支援装置1は情報取得手段2、情報分析手段3、および最適化方法出力手段4を備える。情報取得手段2は、プロセッサ・システムに対するトレース情報と、そのトレース情報に対応する性能情報とをメモリから読み出すものである。
FIG. 1 is a block diagram showing the principle configuration of a processor system optimization support apparatus according to the present invention. In FIG. 1, the
情報分析手段3は、読み出されたトレース情報と性能情報とを分析するものであり、分析の結果として、例えばシステムの性能指標を求めるものである。この性能指標は、例えば後述するアイドル時間、マルチタスク・システムにおけるタスク毎の最大レディ時間、最大処理完了時間、プロセッサ間通信回数、プロセッサ間通信待ち時間などである。
The
最適化方法出力手段4は、情報分析手段3の分析の結果に対応して、システム最適化の方法を出力するものであり、その出力結果は、例えばモニタに表示される。その表示結果に対応して、例えば組み込みシステムの設計者が最適化作業を行うことによって、システムの最適化が実現される。
The optimization
最適化方法出力手段4は、メモリからさらにシステムの最適化に用いるべき方法のデータを読み出し、そのデータと情報分析手段3の分析結果とに対応させて、システムの最適化方法を出力することもできる。 The optimization method output means 4 further reads out data of a method to be used for system optimization from the memory, and outputs a system optimization method in correspondence with the data and the analysis result of the information analysis means 3. it can.
以下本発明の実施形態について第1から第5の実施例に分けて説明する。図2は、第1の実施例におけるシステム最適化方法の基本的な機能ブロック図である。同図において、ステップS1でシステムのトレース情報と性能情報がメモリから取得され、ステップS2でそのトレース情報と性能情報とを分析した結果として、システムの性能を示す指標が出力される。この指標としては、システム全体のアイドル時間、例えばマルチタスクを構成するタスクの何れも処理を実行せず、アプリケーション・ソフトウェアも動作していない時間としてのアイドル時間や、タスク毎のプロセッサ間通信回数や、プロセッサ間通信時間などを示す指標であるが、その性能指標についてはさらに後述する。 Hereinafter, embodiments of the present invention will be described by dividing them into first to fifth examples. FIG. 2 is a basic functional block diagram of the system optimization method in the first embodiment. In the figure, system trace information and performance information are acquired from the memory in step S1, and an index indicating the system performance is output as a result of analyzing the trace information and performance information in step S2. This index includes the idle time of the entire system, for example, the idle time as the time when none of the tasks constituting the multitask executes processing and the application software does not operate, the number of communication between processors for each task, The index indicating the inter-processor communication time is described later.
図2のステップS3で、トレース情報と性能情報との分析結果としてのシステムの性能指標に基づいて、システムの最適化方法が出力され、ステップS4で、出力された最適化方法を用いてシステムの最適化が実施される。本実施形態においては、ステップS4における最適化の実施は、ステップS3で出力され、モニタなどに表示された最適化方法に基づき、さらにモニタに表示された性能指標などを用いて、システムの設計者などによって実施されるものとする。なお本発明の特許請求の範囲の請求項1における情報取得手段は図2のステップS1の処理、情報分析手段はステップS2の処理、最適化方法出力手段はステップS3の処理に対応する。
In step S3 of FIG. 2, a system optimization method is output based on the performance index of the system as the analysis result of the trace information and the performance information. In step S4, the system optimization method is output using the output optimization method. Optimization is performed. In the present embodiment, the optimization in step S4 is performed based on the optimization method output in step S3 and displayed on the monitor or the like, and further using the performance index or the like displayed on the monitor. Etc. The information acquisition means in
図3、図4は、第1の実施例におけるマルチ・プロセッサ・システムの構成例のブロック図である。図3は第1の構成例を示し、システムは2つのプロセッサ10、11、これらのプロセッサ間の通信を実行するためのプロセッサ間通信部12、入力部13、モニタ14、メモリ15、およびシステムの最適化方法を出力し、例えばシステム設計者によるシステム最適化を支援する最適化支援装置16、およびこれらのブロックが接続されたバス17によって構成されている。
3 and 4 are block diagrams of a configuration example of the multi-processor system in the first embodiment. FIG. 3 shows a first configuration example. The system includes two
図4の第2の構成例では、図3でメモリ15が2つのプロセッサ10、11によって共用されるのに対して、プロセッサ10対する専用メモリとしてメモリ15が、プロセッサ11に対する専用メモリとしてメモリ19が備えられている点が図3の構成例と異なっている。
In the second configuration example of FIG. 4, the
図5は、第1の実施例における最適化支援装置の構成ブロック図である。同図においてユーザアプリケーション20、デバッグモジュール21、リアル・タイム・オペレーティング・システム(RTOS)が言語ツール23に与えられ、データ処理プログラムとしてのロードモジュールファイル24が作成される。ここで、リアルタイム・オペレーティング・システム(TROS)22を用いる理由は、組み込みシステムではユーザが、例えばボタンを押した時点でオペレーティング・システムが動き出すことが必要であり、そのためリアル・タイム・オペレーティング・システムが用いられる。
FIG. 5 is a block diagram showing the configuration of the optimization support apparatus in the first embodiment. In the figure, a
ロードモジュールファイル24は、開発処理を進めるための統合開発機構(IDE)25に与えられる。この環境の内部にはアナライザ26とデバッガ28が備えられ、その中間にはRTOSインターフェース・モジュール(RIM)27が備えられる。アナライザ26とRIM27とはRTOSアクセス・インターフェース(RIF)によって接続され、またRIM27とデバッガ28とはターゲット・アクセス・インターフェース(TIF)によって接続されている。
The
デバッガ28は、メモリアクセス部29を介して、ターゲット30の内部のトレースメモリ31にアクセスすることができる。ターゲット30は、例えばプロセッサであり、その内部にはRTOS22、デバッグモジュール21、ユーザアプリケーション20が備えられている。
The
図6は、図5の最適化支援装置におけるトレース情報と性能情報取得手順の説明図である。ここでは、まずトレースメモリ31に格納されているトレース情報の取得手順について説明する。アナライザ26においてトレースメモリ31に格納されているデータの取得要求が発生すると、(1)でユーザメモリ領域にあるトレースメモリ31の内容を読み出すためにアナライザ26からRIM27にトレースログの取得が要求され、(2)でRIM27によってトレースメモリ31の内容を読み出す指示がデバッガ28に与えられ、デバッガ28から(3)でメモリアクセス部29を介して、トレースメモリ31に対するデータ・リードアクセスがなされる。
FIG. 6 is an explanatory diagram of the trace information and performance information acquisition procedure in the optimization support apparatus of FIG. Here, the acquisition procedure of the trace information stored in the
読み出されたトレースメモリ31の内容、すなわちトレース情報は、メモリアクセス部29を介して(4)でデバッガ28に通知され、デバッガ28から(5)でRIM27に通知される。そしてRIM27によって、アナライザ26が必要とするデータが(6)でアナライザ26に通知されて、トレースメモリのデータ取得が完了する。
The read contents of the
あるプロセッサによって実行されるタスクと、他のプロセッサとの間の通信回数や、その通信時間などの性能情報のデータはターゲット30、すなわちプロセッサの内部で図示しないメモリに格納され、例えばハードウェア・カウンタのカウント値に対応して、トレース情報と同様にアナライザ26に通知されるものとする。
Data of performance information such as the number of times of communication between a task executed by a processor and another processor and the communication time thereof is stored in a
図7は、図5のトレースメモリ31に格納されているトレース情報の例である。同図においてログタイプはログデータを取る形式を示し、このタイプによってトレースメモリに保存されるデータの内容が決定される。タイプイベントのLOG_LEAVEはログの開始を、LOG_ENTERはログの終了を意味する。タスクIDは、タイプイベントとしてのLOG_LEAVEとLOG_ENTERに対して同一でも良いが、基本的には異なるものである。そして右側の下位時刻はそのタスクの開始時刻、上位時刻は終了時刻を意味する。
FIG. 7 is an example of trace information stored in the
図8は性能情報の例である。同図において、例えば実行時間、プロセッサ間通信回数、プロセッサ間通信時間(積算)などの性能データは、それぞれのタスク、すなわちタスクIDに対応させてメモリに格納されているものとする。ここでタスクID=0に対する実行時間は、例えばタスクID=1から5のタスクの処理を実行するプロセッサにおいて、すべてのタスクの実行が行われていない時間を示し、タスク間のディスパッチなどOSの処理のための時間に相当する。 FIG. 8 shows an example of performance information. In the figure, for example, performance data such as execution time, number of communication between processors, and communication time (integration) between processors are assumed to be stored in the memory in correspondence with each task, that is, task ID. Here, the execution time for task ID = 0 indicates, for example, the time during which all tasks are not executed in the processor that executes the processing of tasks with task ID = 1 to 5, and OS processing such as dispatching between tasks. Equivalent to the time for
トレース情報や性能情報の分析によって得られるシステムの性能指標について図9から図13を用いて説明する。図9において、システム内で実行されるタスクがタスクAとタスクBの2つであるとすると、これらの2つのタスクの実行が行われていないアイドル時間Tiを積算した値がトレース情報取得開始時刻Tsから終了時刻Teの間で求められ、性能指標の1つとしてのアイドル時間の値とされる。このアイドル時間の(Te−Ts)に対する割合からシステム全体の最適化可能割合や実行率を知ることができる。なおここでタスクAはタスクBより優先度が高いが、アイドル時間の積算においてはこの優先度は無関係である。 A system performance index obtained by analyzing trace information and performance information will be described with reference to FIGS. In FIG. 9, assuming that there are two tasks A and B that are executed in the system, the value obtained by integrating the idle time Ti when these two tasks are not executed is the trace information acquisition start time. It is obtained between Ts and end time Te, and is set as a value of idle time as one of performance indexes. From the ratio of the idle time to (Te−Ts), the optimization possible ratio and execution rate of the entire system can be known. Here, task A has a higher priority than task B, but this priority is irrelevant in accumulating idle time.
図10は、最大レディ状態時間の説明図である。同図においては、3つのタスク、すなわちタスクC、タスクD、およびタスクEが生成されているが、優先度が高いタスクCとタスクDとの間でディスパッチが繰り返され、処理が実行されている。このため、優先度の低いタスクEは実行可能状態を維持しているが、実行権を獲得できない状態が続いている。このようなタスク毎の実行可能状態(レディ状態)の時間をタスク毎に積算し、そのタスクが起動されて1回の処理が開始されてから終了するまでの生存時間内におけるレディ状態時間の積算値を求め、またそのような積算値の中でTsからTeまでの間の最大値を最大レディ状態時間として求める。ここでタスクEの最大レディ状態時間はTeとTsとの差となる。 FIG. 10 is an explanatory diagram of the maximum ready state time. In the figure, three tasks, namely task C, task D, and task E, are generated, but dispatching is repeated between task C and task D with high priority, and processing is executed. . For this reason, the task E with a low priority maintains an executable state, but continues to be unable to acquire an execution right. Accumulating the ready state time for each task for each task, and adding the ready state time within the lifetime from the start of the task to the end of the process. A value is obtained, and a maximum value between Ts and Te among such integrated values is obtained as a maximum ready state time. Here, the maximum ready state time of task E is the difference between Te and Ts.
これに対して、例えばタスクCの1回の処理が時刻Tsの以前から行われ、Td2で終了したとすると、レディ状態時間はTc1とTd1との差となる。1回の処理がTd3までかかったとすれば、レディ状態時間はTc1とTd1の差とTc2とTd2との差を合計したものとなる。トレース情報取得開始時刻Tsから終了時刻Teの間で、タスクの1回の処理の起動時から処理完了時までの生存時間内におけるレディ状態時間の積算値のうちで最大の値が、タスク毎の最大レディ状態時間として求められる。この最大レディ時間から、そのタスクが実行可能でありながら待ち状態となっていた最大時間を知ることができ、最適化の可否とその効果を知ることができる。 On the other hand, for example, if one process of task C is performed before time Ts and ends at time Td2, the ready state time is the difference between Tc1 and Td1. Assuming that one process takes up to Td3, the ready state time is the sum of the difference between Tc1 and Td1 and the difference between Tc2 and Td2. Between the trace information acquisition start time Ts and the end time Te, the maximum value among the integrated values of the ready state time within the survival time from the start of the process of one task to the completion of the process is It is calculated as the maximum ready state time. From this maximum ready time, it is possible to know the maximum time during which the task can be executed while being in a waiting state, and to know whether optimization is possible and its effect.
図11は、タスク毎の最大処理完了時間の説明図である。ここで処理完了時間はタスクの1回の処理、すなわちタスクの起動時から処理完了時までの生存時間であり、前述のレディ状態時間を含むものである。そして時刻TsからTeの間でタスクの起動から処理終了までの動作が複数回繰り返されている場合に、それらの動作に対応する処理完了時間の最大値がそのタスクに対する最大処理完了時間として求められる。図11においてタスクFが起動されてから他のタスクG、およびOSの処理が行われるアイドル時間を含めて、1回の処理が終了するまでの時間のうちで、TsからTeの間での最大値、ここではTcが最大処理完了時間として求められる。この最大処理完了時間を知ることで、ディスパッチや割込み回数などと関連させて最適化方法を特定することができる。 FIG. 11 is an explanatory diagram of the maximum processing completion time for each task. Here, the process completion time is a single process of the task, that is, a survival time from the start of the task to the completion of the process, and includes the aforementioned ready state time. If the operation from the start of the task to the end of the process is repeated a plurality of times between times Ts and Te, the maximum value of the process completion time corresponding to these operations is obtained as the maximum process completion time for the task. . In FIG. 11, the maximum time between Ts and Te in the time from the start of task F to the end of one process, including the idle time during which other tasks G and OS processes are performed. A value, here Tc, is determined as the maximum processing completion time. By knowing the maximum processing completion time, an optimization method can be specified in relation to dispatch, the number of interrupts, and the like.
図12は、プロセッサ間通信回数の説明図である。例えばタスクHは、起動されてから1回の処理を完了するまでの間に、他のプロセッサによって実行されているタスクとの通信を行うためにプロセッサ間通信を行うが、この回数を例えば時刻TsからTeの間でカウントし、例えばTeとTsとの差で割ることによって、システム時間単位のプロセッサ間通信回数が性能指標として求められる。プロセッサ間の通信回数の増大につれてシステムの実行時間が大きくなるために、プロセッサ間通信回数を知ることによって、システム最適化の可否、およびその効果を知ることができる。 FIG. 12 is an explanatory diagram of the number of communication between processors. For example, the task H performs inter-processor communication in order to communicate with a task being executed by another processor from when it is activated until one process is completed. To Te, for example, by dividing by the difference between Te and Ts, the number of inter-processor communications in system time units is obtained as a performance index. Since the execution time of the system increases as the number of communications between processors increases, knowing the number of communications between processors makes it possible to know whether system optimization is possible and its effect.
図13は、プロセッサ間通信待ち時間の説明図である。同図においてまずタスクJからタスクKへのディスパッチ時に、タスクJと他のプロセッサとの間での通信が開始され、次にタスクKからタスクLへのディスパッチ時に、タスクKから他のプロセッサへの通信要求が生ずるが、この時点ではタスクJからのプロセッサ間通信がまだ終了していないものとすると、その通信は待ち状態となる。タスクJからの通信が終了し、優先度の最も高いタスクJへのディスパッチが行われる時点で、タスクKから他のプロセッサへの通信が可能となり、通信待ち時間は図で示されるTwとなる。このプロセッサ間通信待ち時間をどれだけ小さくできるかによって、最適化の可否、およびその効果を知ることができる。 FIG. 13 is an explanatory diagram of the inter-processor communication waiting time. In the figure, communication between task J and another processor is started at the time of dispatch from task J to task K, and then from task K to another processor at the time of dispatch from task K to task L. Although a communication request is generated, at this time, if the inter-processor communication from the task J has not yet been completed, the communication enters a waiting state. When communication from the task J is completed and dispatch to the task J having the highest priority is performed, communication from the task K to another processor becomes possible, and the communication waiting time becomes Tw shown in the figure. Whether or not optimization is possible and the effect can be known by how much the communication waiting time between processors can be reduced.
図14、図15は、第1の実施例におけるシステム最適化支援処理の詳細フローチャートである。図14において処理が開始されると、まずステップS10で、例えば組み込みシステムがマルチ・プロセッサ・システムであるか、シングル・プロセッサ・システムであるかが判定される。ここではまずマルチ・プロセッサ・システムの場合について説明するものとして、ステップS11でシステム全体のアイドル時間の割合が大きいか小さいかが判定され、小さい場合にはステップS12でプロセッサ間通信回数が多いか否かが判定され、多い場合にはステップS13でシステム最適化の方法として、プロセッサ間通信回数を削減するために、あるプロセッサに属するタスクを他のプロセッサに移動、もしくは統合するか、通信粒度、すなわち1回の通信量を拡大すべきことが出力されて、図15で処理を終了する。 14 and 15 are detailed flowcharts of the system optimization support process in the first embodiment. When the processing is started in FIG. 14, first, in step S10, for example, it is determined whether the embedded system is a multi-processor system or a single processor system. Here, the case of a multi-processor system will be described first. In step S11, it is determined whether the ratio of the idle time of the entire system is large or small. If it is small, whether the number of interprocessor communications is large in step S12. In step S13, as a system optimization method, in order to reduce the number of communication between processors, a task belonging to a certain processor is moved or integrated to another processor, or communication granularity, that is, The fact that the amount of communication for one time should be increased is output, and the process ends in FIG.
ステップS12でプロセッサ間通信回数が少ない場合には、ステップS14でプロセッサ間通信待ち時間が多いか少ないかが判定され、多い場合にはシステム最適化の方法として、プロセッサ間通信回数を削減するためにタスクを別のプロセッサに移動、もしくは統合するか、プロセッサ間通信間隔を拡大する方法が出力されて、処理を完了する。ここでプロセッサ間通信間隔の拡大の具体例として、タスク1が通信中でタスク2が待ち状態となる時には、タスク2と無関係のタクス3の処理を先行させることによって、タスク2の通信待ち時間を結果的に減少させることができる。
If the number of interprocessor communications is small in step S12, it is determined in step S14 whether the interprocessor communications waiting time is large or small. If so, the system optimization method is to reduce the number of interprocessor communications. A method for moving or integrating a task to another processor or expanding a communication interval between processors is output to complete the processing. Here, as a specific example of the expansion of the inter-processor communication interval, when
ステップS11でシステム全体のアイドル時間が大きいと判定されると、ステップS16で最大レディ状態時間が大きいか小さいかが判定される。このステップS16以降の処理は基本的にタスク単位で行われるものである。この最大レディ状態時間の判定もタスク毎に実行される。 If it is determined in step S11 that the idle time of the entire system is long, it is determined in step S16 whether the maximum ready state time is large or small. The processes after step S16 are basically performed in units of tasks. The determination of the maximum ready state time is also executed for each task.
最大レディ状態時間が小さい場合には、ステップS17でそのタスクの最大処理時間が大きいか小さいかが判定され、大きい場合にはステップS18でここで対象としているタスクが、他のタスクとの間で依存関係があるか否かが判定され、ある場合にはステップS19で対象タスクと他のタスクの間でのディスパッチ回数が多いか否かが判定され、多い場合にはステップS20で対象タスクの処理中に複雑な割り込みがあるか否かが判定され、ある場合にはステップS21で最適化方法として割り込み処理の見直しが出力され、処理を完了する。 If the maximum ready state time is small, it is determined in step S17 whether the maximum processing time of the task is large or small. If it is large, the task in question here is another task in step S18. It is determined whether or not there is a dependency relationship. If so, it is determined in step S19 whether or not the number of dispatches between the target task and other tasks is large. If so, the processing of the target task is performed in step S20. It is determined whether or not there is a complicated interrupt. If there is, a review of the interrupt process is output as an optimization method in step S21, and the process is completed.
ステップS17で対象タスクの最大処理完了時間が小さいか、ステップS19で対象タスクのディスパッチ回数が少ないか、ステップS20で対象タスクの処理中に複雑な割り込みがない場合には、ステップS28でタスクの分割や統合などのタスク再設計が最適化処理方法として出力されて、処理を終了する。例えば最大処理完了時間が小さい場合にはタスクが小さいことになり、タスクの統合が有効となる。 If the maximum processing completion time of the target task is small in step S17, if the number of dispatches of the target task is small in step S19, or if there is no complicated interrupt during processing of the target task in step S20, task division is performed in step S28. And task redesign such as integration are output as the optimization processing method, and the process is terminated. For example, when the maximum processing completion time is small, the task is small, and task integration is effective.
ステップS16で最大レディ状態時間が大きいと判定されると、ステップS25で対象タスクと他のタスクとの間に依存関係がないか否かが判定され、ある場合にはステップS28の処理が行われて処理を終了する。ここで依存関係がなければタスクの分割が可能となる。 If it is determined in step S16 that the maximum ready state time is large, it is determined in step S25 whether or not there is a dependency between the target task and another task. If there is, the process of step S28 is performed. To finish the process. If there is no dependency, the task can be divided.
ステップS25で他のタスクとの依存関係がないと判定されると、ステップS26で対象タスクが属していないプロセッサにおいてアイドル時間の割合が大きいか否かが判定され、小さい場合にはステップS28の処理が行われて、処理を終了する。 If it is determined in step S25 that there is no dependency relationship with other tasks, it is determined in step S26 whether or not the idle time ratio is high in the processor to which the target task does not belong. And the process is terminated.
アイドル時間の割合が大きい場合には、ステップS27で最適化方法として他のプロセッサへのタスクの移動、もしくは統合が出力されて処理を終了する。ここで他のプロセッサ側でアイドル時間の割合が大きい場合には、当然そのプロセッサ側へのタスクの移動が可能となるが、小さい場合にはそのような移動は不可能であり、ステップS28の方法が出力されることになる。 If the percentage of idle time is large, the task transfer or integration to another processor is output as an optimization method in step S27, and the process ends. Here, when the percentage of idle time is large on the other processor side, it is naturally possible to move the task to that processor side, but when it is small, such movement is impossible, and the method of step S28. Will be output.
ステップS10でシングル・プロセッサ・システムと判定された場合、またステップS14でプロセッサ間通信待ち時間が少ないと判定された場合には、図15のステップS30以降の処理が行われる。以降の処理においてはマルチ・プロセッサ・システムにおいてもプロセッサ単位の処理が行われる。 If it is determined in step S10 that the system is a single processor system, or if it is determined in step S14 that the inter-processor communication waiting time is small, the processes in and after step S30 in FIG. 15 are performed. In subsequent processing, processing in units of processors is also performed in the multiprocessor system.
まずステップS30でアイドル時間の割合が大きいか小さいかが判定され、小さい場合にはそのプロセッサに対応する最適化作業が不必要であることがステップS36で出力され、処理を終了する。アイドル時間の割合が大きい場合には、ステップS31からS35で、図14のステップS17、ステップS19からS21、およびステップS28と同様の処理が実行され、ステップS34で割込み処理の見直しが、またステップS35ではタスクの分割、統合などの再設計が必要であることがシステム最適化方法として出力されて、処理を終了する。 First, in step S30, it is determined whether the ratio of idle time is large or small. If it is small, it is output in step S36 that the optimization work corresponding to the processor is unnecessary, and the process ends. If the ratio of idle time is large, the same processing as in steps S17, S19 to S21, and S28 in FIG. 14 is executed in steps S31 to S35, the interrupt processing is reviewed in step S34, and step S35 is also executed. Then, it is output as a system optimization method that it is necessary to redesign tasks such as division and integration, and the processing is terminated.
図16は、第1の実施例における性能指標の例の詳細説明図である。同図の性能指標の一部は図8と同様であるが、タスクID=0としてのシステム全体に対しては、すべてのタスク、すなわちタスクID=1から5のタスクのすべてが動作していないことを示すアイドル・ルーチンの実行時間が示され、オペレーティング・システムの処理時間としての実行時間との差はオペレーティング・システムが動作していない時間を示す。最大レディ状態時間、最大処理完了時間、プロセッサ間通信回数、プロセッサ間通信待ち時間、および最も下のプロセッサ間通信時間(積算)については前述と同様であり、ディスパッチ回数は時刻TsからTeまでの間のタスク間のディスパッチ回数を示し、また割込み回数は同じ時間の間の回数を示している。 FIG. 16 is a detailed explanatory diagram of an example of the performance index in the first embodiment. A part of the performance index in the figure is the same as that in FIG. 8, but not all tasks, that is, all tasks with task IDs = 1 to 5 are operating for the entire system with task ID = 0. The execution time of the idle routine is shown, and the difference from the execution time as the processing time of the operating system indicates the time when the operating system is not operating. The maximum ready state time, maximum processing completion time, inter-processor communication count, inter-processor communication wait time, and the lowest inter-processor communication time (accumulation) are the same as described above, and the dispatch count is from time Ts to Te. The number of dispatches between tasks is shown, and the number of interrupts is the number of times during the same time.
レディ状態時間から未生成時間までの5つの性能指標については、図14、図15の処理フローチャートにおいても使用されていないため、それらの性能指標について図17のタスクの状態遷移図を用いて簡単に説明する。同図においてタスクは基本的には実行状態(ランニング)と実行可能状態(レディ状態)との間でディスパッチとプリエンプトを繰り返すことになる。 Since the five performance indexes from the ready state time to the non-generated time are not used in the processing flowcharts of FIGS. 14 and 15, the performance indexes can be easily determined using the task state transition diagram of FIG. 17. explain. In the figure, a task basically repeats dispatch and preemption between an execution state (running) and an executable state (ready state).
実行を中断している状態として、待ち状態と、強制待ち状態(サスペンド)、および二重待ち状態(待ち−サスペンド)の3つの待ち状態がある。待ち状態は、例えばオペレーティング・システムによって待ちを指示され、実行を中断している状態であり、強制待ち状態は、例えば他のタスクから強制的に実行中断を指示されている状態であり、二重待ち状態、すなわち待ち−サスペンド状態は待ち状態と強制待ち状態(サスペンド状態)が重なった状態である。 There are three wait states, a wait state, a forced wait state (suspend), and a double wait state (wait-suspend) as a state in which execution is suspended. The wait state is a state in which waiting is instructed by the operating system, for example, and execution is suspended. The forced wait state is a state in which, for example, another task is forcibly instructed to suspend execution. The wait state, that is, the wait-suspend state is a state where the wait state and the forced wait state (suspend state) overlap.
タスクの状態としてはさらに、タスクが起動されていないか、または処理が終了した状態としての休止状態と、タスクが生成されていないか、削除された状態を示す未登録状態がある。 The task state further includes a dormant state where the task has not been activated or the processing has been completed, and an unregistered state indicating that the task has not been generated or has been deleted.
続いて第2の実施例について説明する。図18は第2の実施例におけるシステム最適化支援方法の基本的な機能ブロック図である。同図を第1の実施例に対する図2と比較すると、ステップS41、S45、およびS46の処理は図2のステップS1、S3、およびS4と同様であるが、第2の実施例においては図2のステップS2に対応する処理として、ステップS42、S43、またはS44の処理が行われる点が異なっている。 Next, a second embodiment will be described. FIG. 18 is a basic functional block diagram of the system optimization support method in the second embodiment. Comparing FIG. 2 to FIG. 2 for the first embodiment, the processing of steps S41, S45, and S46 is the same as steps S1, S3, and S4 of FIG. 2, but in the second embodiment, FIG. As a process corresponding to step S2, the process of step S42, S43, or S44 is different.
ステップS42ではトレース情報と性能情報の分析結果として、性能指標の値がステップS2と同様に求められる。ステップS43では分析の結果として性能指標のグラフが作成され、ステップS44では分析結果として性能指標のチャートが作成される。そしてステップS45では性能指標の値、または作成されたグラフ、あるいはチャートに対応させて最適化方法の出力が行われる。なお、第2の実施例においては、トレース情報と性能情報とを統計的に分析し、その結果のグラフを作成し、作成されたグラフに基づいて最適化の方法を出力することも可能である。 In step S42, the performance index value is obtained in the same manner as in step S2 as the analysis result of the trace information and the performance information. In step S43, a performance index graph is created as a result of the analysis, and in step S44, a performance index chart is created as the analysis result. In step S45, the optimization method is output in correspondence with the value of the performance index or the created graph or chart. In the second embodiment, it is also possible to statistically analyze the trace information and the performance information, create a graph of the result, and output an optimization method based on the created graph. .
図19、および図20は、第2の実施例におけるマルチ・プロセッサ・システムの構成例である。これらの図を第1の実施例における図3、図4と比較すると、指標表示装置35、グラフ表示装置36、およびチャート情報表示装置37が最適化支援装置16に対応するものとして示されている。
19 and 20 are configuration examples of the multi-processor system in the second embodiment. 3 and 4 in the first embodiment, the
図21は、第2の実施例における性能指標と最適化方法の表示例である。タスク1からタスク5の何れの実行も行われていない期間を示すアイドルルーチンの実行時間が120msであることが表示され、その性能指標に対応してタスクの分割、統合などのタスクの再設計が最適化方法として表示されている。またタスク3に対するプロセッサ間通信待ち時間が100msであることを示す性能指標の表示に対応して、プロセッサ通信の間隔をあけるか、通信先のプロセッサに対象タスクを移動させる最適化方法が表示されている。さらにタスク5の実行時間が“0”であることを示す性能指標の表示に対応して、タスク設計の確認、あるいはタスク優先度を上げることが最適化方法として表示されている。
FIG. 21 is a display example of the performance index and optimization method in the second embodiment. It is displayed that the execution time of the idle routine indicating a period during which none of the
図22は、図21の表示例に対応する性能指標と最適化方法の表示処理の詳細フローチャートである。同図において処理が開始されると、ステップS51で、例えばメモリ15からトレース情報、および性能情報が取得され、ステップS52で取得された情報が分析され、性能指標が求められ、その指標データがメモリ15に格納される。そしてステップS53で性能指標の値がメモリ15に格納されている閾値データと比較される。この閾値データは、例えばユーザによって予めメモリ15に格納されているものであり、例えばアイドルルーチンの実行時間として閾値50msを示すデータが格納されているとすれば、図21の表示状態に対応してアイドルルーチンの実行時間が閾値よりも大きいことが判明する。なお、閾値データとしては、例えばユーザの設定値が不適切な場合に使用されるデフォルト値も格納されている。
FIG. 22 is a detailed flowchart of the performance index and optimization method display processing corresponding to the display example of FIG. When the processing is started in the figure, in step S51, for example, trace information and performance information are acquired from the
この比較はステップS54で行われ、性能指標が閾値よりも小さい場合には、それ以上の処理を行うことなく、直ちに処理を終了する。閾値よりも大きい場合には、ステップS55でメモリ15に格納されている色データを用いて、閾値表示部、例えばアイドルルーチンの実行時間の表示部分に色をつける処理が行われ、ステップS56でアイドルルーチンの実行時間が閾値よりも大きいことに対応する最適化方法の分析が行われ、ステップS57で性能指標のデータと最適化方法のデータを用いて、性能指標と対応する最適化方法が表示されて、処理を終了する。なお請求項16におけるシステムの最適化方法に関するデータは、例えばメモリ15に格納されている閾値データに相当する。
This comparison is performed in step S54. If the performance index is smaller than the threshold value, the processing is immediately terminated without performing any further processing. If it is larger than the threshold value, the color data stored in the
図23は、第2の実施例におけるグラフと最適化方法の表示例である。同図においては、グラフとしてプロセッサ0に属するタスクとしてのタスクAからタスクGのそれぞれが、他のプロセッサ、図19ではプロセッサ1との間で行ったプロセッサ間通信の回数がグラフとして表示されている。
FIG. 23 is a display example of a graph and an optimization method in the second embodiment. In the figure, the number of inter-processor communications performed between each of the tasks A to G as tasks belonging to the
そして最適化方法として、タスクDとプロセッサ1との間の通信回数が多く、このタスクを通信先プロセッサに移動させることによって、性能向上が期待できるとする最適化方法が表示されている。
As an optimization method, an optimization method is displayed in which the number of communication between the task D and the
図24は、図23の表示例に対応するグラフと最適化方法の表示処理の詳細フローチャートである。同図の処理は図22とほぼ同様であり、図22のステップS55で指標表示部に色をつける処理が行われる代わりに、ステップS58でグラフ表示部に色をつける処理が行われ、ステップS57で最適化方法と性能指標が表示される代わりに、ステップS59で最適化方法とグラフが表示される点だけが異なっている。 FIG. 24 is a detailed flowchart of the graph and optimization method display processing corresponding to the display example of FIG. The process of FIG. 22 is almost the same as that of FIG. 22. Instead of performing the process of coloring the index display part in step S55 of FIG. 22, the process of coloring the graph display part is performed in step S58. Instead of displaying the optimization method and the performance index, only the optimization method and the graph are displayed in step S59.
図25は、第2の実施例におけるタイムチャートと最適化方法の表示例である。同図においてプロセッサ0側、およびプロセッサ1側でのタスク間のディスパッチ、すなわちタスク遷移状態を示すタスク遷移図と対応させて、100ms付近の時刻でタスクAからタスクBへのディスパッチ、タスクBからタスクCへのディスパッチ、タスクCからアイドル状態へのディスパッチの時点でプロセッサ間通信が行われていることが表示されている。
FIG. 25 is a display example of the time chart and optimization method in the second embodiment. In the same figure, dispatch between tasks on the
また最適化方法としては、100ms付近にプロセッサ間通信が集中していることに対応して、通信間隔をあけるか、あるいは他のタスクと依存関係がない場合には通信先プロセッサにタスクを移動させる最適化方法が表示されている。 Also, as an optimization method, in response to the concentration of communication between processors in the vicinity of 100 ms, a communication interval is set or the task is moved to the communication destination processor when there is no dependency with other tasks. The optimization method is displayed.
図26は、図25の表示例に対応する第2の実施例におけるチャートと最適化方法表示処理の詳細フローチャートである。同図も例えば図22における処理と同様であるが、ステップS61でチャート表示部に色をつける処理が行われ、ステップS62で最適化方法とチャートが表示される点だけが異なっている。 FIG. 26 is a detailed flowchart of the chart and optimization method display processing in the second embodiment corresponding to the display example of FIG. For example, FIG. 22 is the same as the process in FIG. 22 except that the chart display unit is colored in step S61 and the optimization method and the chart are displayed in step S62.
第2の実施例における表示装置、例えば図19における指標表示装置35、グラフ表示装置36、およびチャート情報表示装置37の構成は第1の実施例における最適化支援装置16の構成を示す図5と同様であり、またトレース情報と性能情報の取得手順についても図6と同様であり、その説明を省略する。
The configuration of the display device in the second embodiment, for example, the
またトレース情報と性能情報の例は図7、図8と同様であり、用いられる各種の性能指標についても図9から図13で説明したものと同じであり、さらに各種の性能指標データの例も図16と同じであり、その説明を省略する。 Examples of trace information and performance information are the same as those shown in FIGS. 7 and 8, and various performance indexes used are the same as those described in FIGS. 9 to 13. Further, examples of various performance index data are also included. This is the same as FIG. 16, and a description thereof is omitted.
図27は、最適化支援方法の第3の実施例における基本的な機能ブロック図である。同図を第1の実施例に対する図2と比較すると、ステップS61、およびS66の処理は図2のステップS1、S4と同様であるが、図27においてはステップS61の処理の後にステップS62、S63、またはS64の処理が行われる。ステップS62では取得されたトレース情報と性能情報からシステム全体のタスク実行率のグラフが作成される。そしてこのグラフとともにステップS65で最適化方法が出力され、ステップS66で最適化が実施される。 FIG. 27 is a basic functional block diagram in the third embodiment of the optimization support method. 2 is compared with FIG. 2 for the first embodiment, the processing in steps S61 and S66 is the same as that in steps S1 and S4 in FIG. 2, but in FIG. 27, the processing in steps S62 and S63 is performed after the processing in step S61. Alternatively, the process of S64 is performed. In step S62, a graph of the task execution rate of the entire system is created from the acquired trace information and performance information. An optimization method is output in step S65 together with this graph, and optimization is performed in step S66.
あるいはステップS61の処理の後に、ステップS63で取得されたトレース情報と性能情報からタスク毎のタスク実行率のグラフが作成され、ステップS65でそのグラフとともに最適化の方法が出力され、ステップS66で最適化が実施される。 Alternatively, after the process of step S61, a graph of the task execution rate for each task is created from the trace information and performance information acquired in step S63, and an optimization method is output together with the graph in step S65, and optimized in step S66. Is implemented.
あるいはステップS61の処理の後に、ステップS64で取得されたトレース情報と性能情報から同一優先度タスクの負荷比グラフが作成され、ステップS65でそのグラフとともに最適化方法が出力され、ステップS66で最適化が実施される。 Alternatively, after the processing in step S61, a load ratio graph of the same priority task is created from the trace information and performance information acquired in step S64, and an optimization method is output together with the graph in step S65, and the optimization is performed in step S66. Is implemented.
図28は、第3の実施例におけるシステム全体のタスク実行率グラフ、およびそのグラフとともに表示される最適化方法の表示例である。ここでシステム全体のタスク実行率とはシングル・プロセッサ・システムではシステム時間(例えばTe−Tsの値とOSの処理時間との差)に対する各タスクの実行状態時間の割合を示すものであり、マルチ・プロセッサ・システムにおいては、複数のプロセッサによって構成されるシステム全体のタスク実行可能時間に対する割合を示すものである。図28では各タスクの実行状態時間の割合の合計が90%となり、最適化方法として余裕のある10%の範囲での最適化が可能であることが表示されている。 FIG. 28 is a display example of a task execution rate graph of the entire system in the third embodiment and an optimization method displayed together with the graph. Here, the task execution rate of the entire system indicates the ratio of the execution state time of each task to the system time (for example, the difference between the Te-Ts value and the OS processing time) in a single processor system. In the processor system, the ratio of the entire system constituted by a plurality of processors to the task executable time is shown. In FIG. 28, the total of the execution state time ratios of the tasks is 90%, and it is displayed that the optimization can be performed within a range of 10% with a margin.
図29は、図27のステップS63で作成されるタスク毎のタスク実行率のグラフと最適化方法の表示例である。ここでタスク毎のタスク実行率は、そのタスクの実行時間の合計と処理完了時間(生存時間)の和との比であり、各タスクの実行率の平均を取ることによって、どの程度の最適化が可能であるかが判定され、その結果の表示が行われる。ここではタスクA、B、およびCの実行率がそれぞれ100%、60%、50%であり、その平均値は70%となる。このため最大30%の最適化が可能であることが最適化方法として表示されている。 FIG. 29 is a display example of the task execution rate graph and optimization method for each task created in step S63 of FIG. Here, the task execution rate for each task is the ratio of the total execution time of the task and the sum of the processing completion time (survival time), and how much optimization is achieved by taking the average of the execution rate of each task It is determined whether or not it is possible, and the result is displayed. Here, the execution rates of tasks A, B, and C are 100%, 60%, and 50%, respectively, and the average value is 70%. For this reason, it is displayed as an optimization method that optimization of 30% at the maximum is possible.
図30は、図27のステップS64で作成される同一優先度タスクの負荷比グラフと最適化方法の表示例である。同図において3つのタスクA、B、およびCが同一優先度であるものとすると、システム全体の各タスクの実行率の平均値を“1”として、各タスクの実行率がそれぞれ何%大きいか小さいかが負荷比として表示され、その負荷比に応じて、例えば負荷を均等にするか、あるいはタスクの優先度を変更することが最適化の方法として表示されている。 FIG. 30 is a display example of the load ratio graph and optimization method for the same priority task created in step S64 of FIG. Assuming that the three tasks A, B, and C have the same priority in the figure, the average value of the execution rate of each task in the entire system is “1”, and the percentage of execution rate of each task is higher. Whether the load is small is displayed as a load ratio, and according to the load ratio, for example, equalizing the load or changing the priority of the task is displayed as an optimization method.
図31は、第3の実施例におけるグラフと最適化方法表示処理の詳細フローチャートである。同図において処理が開始されると、まずステップS71でメモリ15からトレース情報と性能情報が取得され、ステップS72で取得した情報が分析され、性能指標として、例えばタスク毎のタスク実行率が求められ、ステップS73でその性能指標のデータが分析され、ステップS74で最適化が可能であるか不可能であるかが判定され、不可能な場合には直ちに処理を終了する。
FIG. 31 is a detailed flowchart of the graph and optimization method display processing in the third embodiment. When processing is started in the figure, first, trace information and performance information are acquired from the
例えば図29においてタスク毎のタスク実行率がすべて100%であれば、最適化は不可能であり、処理を終了するが、図29で説明したように平均値が70%であれば最適化は可能であり、ステップS75でメモリ15から最適化方法のデータが取得されて最適化方法の分析が行われ、ステップS76で最適化方法とグラフが表示されて処理を終了する。
For example, in FIG. 29, if all task execution rates for each task are 100%, the optimization is impossible and the process is terminated. However, as described with reference to FIG. 29, the optimization is not performed if the average value is 70%. In step S75, the optimization method data is acquired from the
図32は、第3の実施例における性能指標データの例である。ここでシステム全体の実行時間は、タスク1からタスク3までの実行時間に加えて、オペレーティング・システムの処理時間などを含むものである。優先度[1]の負荷比はタスクID=1と2のタスク実行率(システム)の値から求められている。また優先度[3]の負荷比はこの優先度を持つタスクがタスク3だけであることから、タスク3の負荷比が“1”となっている。
FIG. 32 is an example of performance index data in the third embodiment. Here, the execution time of the entire system includes the processing time of the operating system in addition to the execution time from
第3の実施例においても、プロセッサ・システムの構成、トレース情報や性能情報の取得方法などは前述と同様であり、その説明を省略する。 Also in the third embodiment, the configuration of the processor system, the acquisition method of trace information and performance information, and the like are the same as described above, and the description thereof is omitted.
図33は、最適化支援方法の第4の実施例における基本的な機能ブロック図である。この機能ブロック図は第3の実施例に対する図27と類似しており、第3の実施例ではステップS62、S63またはS64の何れかにおいて、システム全体のタスク実行率グラフ、タスク毎のタスク実行率グラフ、同一優先度タスクの負荷比グラフが作成されるのに対して、図33ではステップS82でタスクの実行可能状態のグラフが作成される点が異なっている。 FIG. 33 is a basic functional block diagram in the fourth embodiment of the optimization support method. This functional block diagram is similar to FIG. 27 for the third embodiment. In the third embodiment, the task execution rate graph of the entire system and the task execution rate for each task in any of steps S62, S63 or S64. While the graph and the load ratio graph of the same priority task are created, FIG. 33 is different in that a task executable graph is created in step S82.
図34は、図33のステップS82で作成されるタスクの実行可能状態のグラフの例である。同図においては、システム全体で見た実行可能状態(レディ状態)のタスクの数が、ある時間間隔毎に時系列的に表示されている。 FIG. 34 is an example of a graph of the task executable state created in step S82 of FIG. In the figure, the number of tasks in an executable state (ready state) as seen in the entire system is displayed in time series at certain time intervals.
図35は、実行可能状態のグラフの表示と最適化方法の表示例である。同図においては、タスクAからタスクDのそれぞれについて実行可能状態保持時間、または保持回数が表示され、実行可能状態が長い間続いているタスクの実行可能状態を短くするために、タスクの分割、統合のようなタスクの再設計を行うべきことが最適化方法として表示されている。なお、このタスクの再設計では、処理の重いタスク1の優先度が高く、処理の軽いタスク2の優先度が低いために、タスク2が動けなくなっているような場合に、タスク2を他のプロセッサ側のタスク3と統合するような方法が用いられる。
FIG. 35 is a display example of a graph of an executable state and an optimization method. In the same figure, the executable state holding time or the holding count is displayed for each of the tasks A to D, and in order to shorten the executable state of the task that has been running for a long time, The optimization method indicates that the task should be redesigned such as integration. In this task redesign, when
第4の実施例においてもプロセッサ・システムの構成、最適化装置の構成、トレース情報、および性能情報の取得方法、トレース情報その他のデータの例、および最適化支援方法の処理フローチャートなどは、例えば第1の実施例におけると同様であり、その説明を省略する。 Also in the fourth embodiment, the processor system configuration, the optimization device configuration, the trace information and performance information acquisition method, the trace information and other data examples, the optimization support method processing flowchart, etc. This is the same as in the first embodiment, and a description thereof is omitted.
最後に第5の実施例について説明する。図36は、最適化支援方法の第5の実施例の基本的な機能ブロック図である。この第5の実施例においては、第4の実施例までと異なって、例えばタスクの再設計などによってシステムの最適化を行う代わりに、例えばタスクによって使用されるシステムコールについて検討し、システムの最適化を支援するところに特徴があり、基本的な機能ブロック図においても、例えばシステムコールの中で類似したシステムコールを示すデータテーブルを用いて、ステップS93で最適化方法が出力される点が基本的に異なっている。 Finally, a fifth embodiment will be described. FIG. 36 is a basic functional block diagram of the fifth embodiment of the optimization support method. In the fifth embodiment, unlike the fourth embodiment, instead of optimizing the system by, for example, redesigning the task, the system call used by the task is examined, and the system is optimized. In the basic functional block diagram, for example, the optimization method is output in step S93 using a data table indicating similar system calls in the system calls. Is different.
図37、図38は、第5の実施例におけるシステム構成例のブロック図である。これらを第1の実施例に対する図3、図4と比較すると、システムコールの類似性を判定するためのデータが格納されたデータテーブル40が追加されている点が異なっている。 37 and 38 are block diagrams of system configuration examples according to the fifth embodiment. 3 and 4 with respect to the first embodiment, the difference is that a data table 40 storing data for determining similarity of system calls is added.
図39は、データテーブルの格納内容を用いた最適化方法表示例の説明図である。図37、図38のデータテーブル40には、あるシステムコール、すなわち関数の名称に対応して、類似するシステムコールの名称が格納されている。例えばシステムコールA2はシステムコールA1と類似していることが示されている。 FIG. 39 is an explanatory diagram of an optimization method display example using the stored contents of the data table. In the data table 40 of FIGS. 37 and 38, the names of similar system calls are stored corresponding to the names of certain system calls, that is, functions. For example, system call A2 is shown to be similar to system call A1.
一方トレース情報、性能情報からの分析データとして、各システムコールの発行回数が最適化支援装置16に与えられる。システムコールB2はシステムコールB1に類似するものであるが、システムコールB1の方が処理時間が短いシステムコールであるものとして、比較的多数回発行されているシステムコールB2を、類似したシステムコールB1に置換える最適化方法が出力されている。
On the other hand, the number of times each system call is issued is given to the
図40は、第5の実施例における最適化支援処理の詳細フローチャートである。同図において処理が開始されると、ステップS101でトレース情報、および性能情報がメモリ15から取得され、ステップS102でこれらの情報が分析され、ステップS103で取得した情報がデータテーブル内のデータと比較され、ステップS104で適切な類似システムコールがあるか否かが判定され、無い場合には直ちに処理を終了する。
FIG. 40 is a detailed flowchart of the optimization support process in the fifth embodiment. When processing is started in the figure, trace information and performance information are acquired from the
適切な類似システムコールがある場合、例えば類似したシステムコールであって、処理時間の短いシステムコールがある場合には、例えばそのシステムコールの呼び出し回数を表示するデータ表示部に色を付ける処理がステップS105で行われ、ステップS106でメモリ15から読み出される最適化方法データを用いて最適化方法が分析され、ステップS107で例えばシステムコールの置換をその内容とする最適化方法が表示されて、処理を終了する。
When there is an appropriate similar system call, for example, when there is a similar system call and the processing time is short, for example, a process of coloring the data display section that displays the number of times the system call has been called is performed. In step S105, the optimization method is analyzed using the optimization method data read from the
この第5の実施例においても、最適化支援装置の構成、トレース情報、性能情報の取得方法、トレース情報の例などは第1の実施例におけると同様であり、その説明を省略する。 Also in the fifth embodiment, the configuration of the optimization support apparatus, the trace information, the performance information acquisition method, the example of the trace information, and the like are the same as those in the first embodiment, and the description thereof is omitted.
Claims (2)
前記プロセッサ・システムに対するトレース情報と、該トレース情報に対応する性能情報とをメモリから読み出す情報取得手段と、
該読み出したトレース情報と性能情報とを分析する情報分析手段と、
該分析の結果に対応してシステム最適化の方法を出力する最適化方法出力手段とを備え、
前記プロセッサ・システムはマルチタスク・システムであり、
前記情報分析手段が、前記分析の結果としてのシステムの性能指標として、マルチタスクを構成するタスクの実行率の平均値と、同一の優先度を有する各タスクの実行率とを比較して得られた値である同一優先度タスクの負荷比を用い、
前記最適化方法出力手段が、前記情報分析手段の分析結果としてのシステムの性能指標を示すグラフを出力することを特徴とするプロセッサ・システム最適化支援装置。 An apparatus for supporting optimization of a processor system,
Information acquisition means for reading out trace information for the processor system and performance information corresponding to the trace information from a memory;
Information analysis means for analyzing the read trace information and performance information;
An optimization method output means for outputting a system optimization method corresponding to the result of the analysis,
The processor system is a multitasking system;
The information analysis means is obtained by comparing the average value of the execution rates of the tasks constituting the multitask and the execution rate of each task having the same priority as the system performance index as a result of the analysis. Using the same priority task load ratio,
The processor system optimization support apparatus, wherein the optimization method output means outputs a graph indicating a system performance index as an analysis result of the information analysis means.
前記プロセッサ・システムに対するトレース情報と、該トレース情報に対応する性能情報とをメモリから読み出すステップと、
該読み出したトレース情報と性能情報とを分析するステップと、
該分析の結果に対応して最適化の方法を出力するステップとを実行し、
前記プロセッサ・システムはマルチタスク・システムであり、
前記分析のステップにおいて、前記分析の結果としてのシステムの性能指標として、マルチタスクを構成するタスクの実行率の平均値と、同一の優先度を有する各タスクの実行率とを比較して得られた値である同一優先度タスクの負荷比を用い、
前記出力のステップにおいて、前記分析の結果としてのシステムの性能指標を示すグラフを出力することを特徴とするプロセッサ・システム最適化支援方法。 A method for a computer to support optimization of a processor system,
Reading trace information for the processor system and performance information corresponding to the trace information from a memory;
Analyzing the read trace information and performance information;
Outputting an optimization method corresponding to the result of the analysis,
The processor system is a multitasking system;
In the step of analysis, the system performance index obtained as a result of the analysis is obtained by comparing the average value of the execution rates of the tasks constituting the multitask and the execution rate of each task having the same priority. Using the same priority task load ratio,
In the output step, a graph indicating a system performance index as a result of the analysis is output, and a processor system optimization support method,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013156698A JP5458208B2 (en) | 2013-07-29 | 2013-07-29 | Processor system optimization support apparatus and support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013156698A JP5458208B2 (en) | 2013-07-29 | 2013-07-29 | Processor system optimization support apparatus and support method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009504916A Division JP5413969B2 (en) | 2007-03-20 | 2007-03-20 | Processor system optimization support apparatus and support method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013231438A Division JP5595577B2 (en) | 2013-11-07 | 2013-11-07 | Processor system optimization support apparatus and support method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013257892A JP2013257892A (en) | 2013-12-26 |
JP5458208B2 true JP5458208B2 (en) | 2014-04-02 |
Family
ID=49954223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013156698A Active JP5458208B2 (en) | 2013-07-29 | 2013-07-29 | Processor system optimization support apparatus and support method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5458208B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126927B2 (en) | 2017-11-24 | 2021-09-21 | Amazon Technologies, Inc. | Auto-scaling hosted machine learning models for production inference |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3626374B2 (en) * | 1999-08-31 | 2005-03-09 | 富士通株式会社 | System diagnostic device, system diagnostic method, and computer-readable recording medium recording system diagnostic program |
JP4654707B2 (en) * | 2005-02-18 | 2011-03-23 | 日本電気株式会社 | Bottleneck detection system, measurement target server, bottleneck detection method and program |
-
2013
- 2013-07-29 JP JP2013156698A patent/JP5458208B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013257892A (en) | 2013-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5413969B2 (en) | Processor system optimization support apparatus and support method | |
US8392930B2 (en) | Resource contention log navigation with thread view and resource view pivoting via user selections | |
Urunuela et al. | Storm a simulation tool for real-time multiprocessor scheduling evaluation | |
Liu et al. | PERTS: A prototyping environment for real-time systems | |
EP2992431B1 (en) | Activity based sampling of diagnostics data | |
US20100318852A1 (en) | Visualization tool for system tracing infrastructure events | |
Zhang et al. | Panappticon: Event-based tracing to measure mobile application and platform performance | |
US20030041316A1 (en) | Dynamic CPU usage profiling and function call tracing | |
US20100180245A1 (en) | Methods and products for determining and visualizin ic behavior | |
US8332850B2 (en) | Thread starvation profiler by utilizing a set of counters | |
JP4944518B2 (en) | Task transition diagram display method and display device | |
Drebes et al. | Aftermath: A graphical tool for performance analysis and debugging of fine-grained task-parallel programs and run-time systems | |
Schmidl et al. | Performance analysis techniques for task-based OpenMP applications | |
Winzinger et al. | Model-based analysis of serverless applications | |
CN111176869B (en) | Timeout detection method, device, equipment and storage medium | |
Nesi et al. | Visual performance analysis of memory behavior in a task-based runtime on hybrid platforms | |
Pinto et al. | Analyzing dynamic task-based applications on hybrid platforms: An agile scripting approach | |
GB2476548A (en) | Relational modeling for performance analysis of multi-core processors using virtual tasks | |
JP5458208B2 (en) | Processor system optimization support apparatus and support method | |
JP5595577B2 (en) | Processor system optimization support apparatus and support method | |
Johnsen et al. | A formal model of object mobility in resource-restricted deployment scenarios | |
JP2009048358A (en) | Information processor and scheduling method | |
Espinoza et al. | Towards a uml-based modelling standard for schedulability analysis of real-time systems | |
Tallent et al. | Identifying performance bottlenecks in work-stealing computations | |
JP4997144B2 (en) | Multitask processing apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20131212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5458208 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |