(57)【要約】【課題】マルチプロセッサシステムにおけるタスク遷移とキャッシュミスなどの性能情報とを関連させた分析を可能にし、またシステム処理の並列度とタクス遷移との関連を明確にする。【解決手段】トレース情報と、トレース情報に対応する性能情報とをメモリから取得し、トレース情報に基づくタスク遷移状態と性能情報とを遷移図上に重畳させて表示する。またトレース情報に基づいて複数のプロセッサの動作状態に対応する並列度を求め、その並列度をタスク遷移図と時間的に同期させて表示する。【選択図】図３
2008004054.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサのタスク遷移図を表示する方法であって、
該マルチコアプロセッサ内の複数のコアプロセッサの内部トレース情報と、該トレース情報に対応する性能情報とをメモリから取得し、
該トレース情報に基づき各々の該コアプロセッサのタスク遷移状態を同時に表示すると共に該タスク遷移図上に性能情報を重畳させて表示することを特徴とするタスク遷移図表示方法。
【請求項２】
前記性能情報として、キャッシュミス回数、メモリアクセス競合、割込み回数、実行サイクル数、メモリ読み込み回数、メモリ書き込み回数、メモリ読み込みミス回数、直接メモリアクセス（ＤＭＡ）実行時間、レジスタ干渉回数を表示させることを特徴とする請求項１記載のタスク遷移図表示方法。
【請求項３】
前記性能情報として、キャッシュミス、メモリアクセス競合、メモリ読み込みミス、レジスタ干渉が発生した箇所を強調して前記タスク遷移図上に表示させることを特徴とする請求項１又は２記載タスク遷移図表示方法。
【請求項４】
マルチタスク・オペレーティング・システム上で動作するアプリケーションプログラムに対するタスク遷移図を表示する装置であって、
該タスク遷移を示すトレース情報と、該トレース情報に対応する性能情報とをメモリから取得するデータ取得部と、
該トレース情報に基づくタスク遷移図上に性能情報を重畳させて表示するモニタと
を備えることを特徴とするタスク遷移図表示装置。
【請求項５】
マルチコアプロセッサシステム内で実行されるタスクの遷移状態を示すタスク遷移図の表示方法であって、
該マルチコアプロセッサシステムを構成する複数のコアプロセッサの動作状態を示すトレース情報をメモリから取得し、
該トレース情報に基づいて、該複数のコアプロセッサの動作状態に対応する並列度を求め、
該求められた並列度を、前記タスク遷移の状態を示すタスク遷移図と時間的に同期させて表示することを特徴とするタスク遷移図表示方法。
【請求項６】
前記並列度を示すデータとして、該並列度の値に対応する色、または模様を表示することを特徴とする請求項５記載のタスク遷移図表示方法。
【請求項７】
前記並列度を、予め定められた時間間隔毎に、前記複数のコアプロセッサの動作状態に対応して求めることを特徴とする請求項５又は６記載のタスク遷移図表示方法。
【請求項８】
マルチコアプロセッサシステム内で実行されるタスクの遷移状態を示すタスク遷移図の表示装置であって、
該マルチコアプロセッサシステムを構成する複数のコアプロセッサの動作状態を示すトレース情報をメモリから取得するデータ取得部と、
該トレース情報に基づいて、該複数のコアプロセッサの動作状態に対応する並列度を求める並列度計算部と、
該求められた並列度を、前記タスク遷移の状態を示すタスク遷移図と時間的に同期させて表示するモニタと
を備えることを特徴とするタスク遷移図表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタスク・オペレーティング・システム（ＯＳ）上で実行されるアプリケーションプログラムに対応して、複数のタスクの間の遷移を示すタイムチャートとしてのタスク遷移図の表示装置、および表示方法に関する。
【背景技術】
【０００２】
マルチタスク・オペレーティング・システム（ＯＳ）上で動くアプリケーションソフトウェアや、マルチタスクＯＳを使った組み込みシステムの評価においては、複数のタスクの間で繰り返されるタスク遷移を示すタスク遷移図が用いられる。タスク遷移図を用いることによって、予期しない不適切なタスク遷移の箇所を検出することが可能となり、システム内で問題の発生した箇所を推定することができる。しかしながらタスク遷移図を見るだけでは、同じような不適切なタスク遷移が発生してもその原因が同じであると限らず、その他のデータをつき合わせたり、オペレータのノウハウを用いて原因を推定する必要があった。このため、例えばキャッシュミスやメモリアクセス競合のような性能低下原因をタスク遷移と関連させて分析を行うためには、ノウハウや人手に頼る必要があるという問題点があった。
【０００３】
このようなタスク遷移を検討するためのトレース情報検索に関する従来技術としての特許文献１では、複数種類の辞書やそれらの辞書に関する情報について検証する必要がある場合であっても、トレース情報に基づいて効率よくデバックを行うことが可能なトレース情報検索装置が開示されている。しかしながらこのような従来技術においても、トレース情報に基づいて表示されるタスク遷移図を、自動的に性能情報と関連させて表示させることはできないという問題点を解決することはできなかった。すなわち組み込みシステムの大規模化やマルチプロセッサ化のため、従来のように人手によってタスク遷移図と性能情報とを関連させて問題点を発見する方法では、限界がきているという問題点を解決することはできなかった。
【特許文献１】特開２００３−２０８３３３号公報「トレース情報検索装置およびその方法」
【０００４】
次にマルチプロセッサシステムの動作の１つの評価基準としての並列度の表示について、その従来技術を説明する。この並列度は、マルチプロセッサシステムを構成する複数個のプロセッサが、例えばある時刻において何個稼動したかを示すものであり、マルチプロセッサシステムの処理性能向上のためには、この並列度を評価し、プログラムを最適化することが極めて重要になってくる。
【０００５】
このような並列度の表示に関する従来技術としての特許文献２では、並列度を応用プログラムを構成するモジュール毎に表わすことによって、並列度のチューニングを容易にする技術が開示されている。しかしながらこの技術は、１つのモジュールを複数個のプロセッサで並列的に処理を行う場合には適用可能であるが、複数のモジュールを複数個のプロセッサで並列に処理を行うアシンクロナス・マルチ・プロセッサ（ＡＳＭＰ）方式のシステムには適用できないという問題点があった。また並列度の低い場所の詳細な特定は困難であり、最適化が実際に可能か否かの判断は、タスク遷移図などを別のツールで測定して総合的に判断するか、あるいはユーザのノウハウに頼らざるを得ないという問題点があった。
【０００６】
同様に並列度を表示する従来技術としての特許文献３には、ＡＳＭＰ型のシステムにも適用可能な並列プログラム稼動状態の表示方法が開示されているが、プロセッサのグループ単位に稼働状況の表示が行われるために、特許文献２と同様に並列度の低い場所の特定が困難であり、また最適化が実際に可能か否かの判断も困難であるという問題点もあった。
【特許文献２】特開平４−２１５１９２号公報「並列計算機の並列度表現方法」
【特許文献３】特開平９−７３４０５号公報「並列プログラム稼動状態表示方法」
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の第１の課題は、タスク遷移図上に性能情報を重畳させて表示することによって、タスク遷移と性能情報とを関連させた分析を可能とし、性能劣化箇所やチューニング箇所を容易に検出可能とすることである。
【０００８】
第２の課題は、マルチプロセッサシステムを構成する各コアプロセッサの動作の並列度をタスク遷移図と時間的に同期させて表示することによって、並列度とタスク遷移との関係を明確にし、プログラムの最適化可能箇所を容易に検出可能とすることである。
【課題を解決するための手段】
【０００９】
図１は、本発明のタスク遷移図表示方法の原理的な機能ブロック図である。同図（ａ）は後述の第１の実施例に対応する原理図であり、前述の第１の課題を解決するためのものである。図１（ｂ）は後述の第２の実施例に対応し、第２の課題を解決するものである。
【００１０】
図１（ａ）において、１でマルチコアプロセッサシステムの内部の複数のコアプロセッサに対するトレース情報と、そのトレース情報に対応する性能情報とがメモリから取得され、２でそのトレース情報に基づき、複数のコアプロセッサの間のタスク遷移状態を示すタスク遷移図上に性能情報が重畳されて表示される。
【００１１】
図１（ｂ）では、まず５でマルチプロセッサシステムを構成する複数のコアプロセッサに対するトレース情報がメモリから取得され、６でそのトレース情報に基づいて複数のコアプロセッサの動作の並列度が求められ、７でタスク遷移図と複数のコアプロセッサの動作の並列度を示すデータとが、時間的に同期した形式で表示される。
【００１２】
このように本発明によれば、タスク遷移図上に性能情報を重畳させて表示することができる。またタスク遷移図と並列度を示すデータとを時間的に同期させて表示することができる。
【発明の効果】
【００１３】
本発明によれば、例えばマルチプロセッサ用組込システムにおいて、タスク遷移の状況と性能情報とが重畳されて表示され、タスク遷移と性能情報とを関連させて分析することが可能となる。
【００１４】
また本発明によれば、マルチプロセッサシステムを構成する各コアプロセッサによる処理の並列度が、タスク遷移の状況と時間的に同期する形式で表示され、並列度の低い箇所の検出やプログラムの最適化可能箇所の検出が容易となる。
【発明を実施するための最良の形態】
【００１５】
以下本発明の実施形態を２つの実施例に分けて説明するものとする。第１の実施例は図１（ａ）の原理的な機能ブロック図に対応するものであり、この実施例ではタスク遷移図上に性能情報を重畳させる形式でタスク遷移図の表示が行われる。この実施例について次の図２から図１１を用いて説明する。
【００１６】
図２は、本発明の第１の実施例におけるマルチプロセッサシステムの構成例のブロック図である。同図において複数のプロセッサ、ここではプロセッサ１０（コア０）とプロセッサ１１（コア１）、入力部１２、モニタ１３、メモリ１４に加えて、タスク遷移図表示装置１５が、いずれも共通バス１６に接続されている。なお、ここでモニタ１３がタスク遷移図表示装置１５と別に備えられているため、モニタ１３をタスク遷移図の表示に使用することも当然可能である。
【００１７】
図３は、第１の実施例において表示されるタスク遷移図の具体例である。同図においては、図２の２つのプロセッサ１０、１１に相当するコア０とコア１において、それぞれ３つのタスクが実行されている場合のタスク遷移図が示されている。
【００１８】
そしてこのタスク遷移図上で性能情報、ここではキャッシュミスの発生の程度と、メモリアクセス競合の発生の程度が、そのような性能劣化が生じたタスクに対応させてタイムチャート上で示されている。
【００１９】
すなわちシステムクロック・スケールで２２．３ｍｓ付近で、コア１側のタスク３の実行中にキャッシュミスが発生したことが、また４７．３ｍｓ付近でコア１側のタスク１、コア０側のタスク１においてメモリアクセス競合が発生したことが示されている。例えば、キャッシュミスに対する線の表示色を青、メモリアクセス競合に対する表示色を赤とし、性能劣化の程度としての重大度が中の場合には線幅、すなわち線の太さを他の部分の線の太さの２倍とし、重大度が大である場合には３倍とすることによって、性能劣化の原因、およびその程度がタスク遷移図上で重畳されて表示されることになり、性能劣化原因を除いて、性能向上を図ること、すなわちチューニングも可能となる。
【００２０】
なお、図３では性能情報としてキャッシュミスの回数や、メモリアクセス競合をタスク遷移図上に重畳させて表示する例を示しているが、性能情報としてはこれ以外に割込み回数、実行サイクル数、メモリ読み込み回数、メモリ書き込み回数、メモリ読み込みミス回数、直接メモリアクセス（ＤＭＡ）実行時間、レジスタ干渉回数など、様々な性能情報を、その性能劣化の程度とともに、タスク遷移図上に重畳させて表示することが可能なものとする。
【００２１】
図４は、第１の実施例におけるタスク遷移図表示装置の構成例である。同図においてユーザアプリケーション２０、リアル・タイム・オペレーティング・システム（ＲＴＯＳ）２１、およびデバッグモジュール２２が言語ツール２３に与えられ、データ処理プログラムとしてのロードモジュールファイル２４が作成される。ここでリアル・タイム・オペレーティング・システム（ＲＴＯＳ）２１を用いる理由は、組み込みシステムではユーザが、例えばボタンを押した時点でオペレーティング・システムが動き出すことが必要であり、そのためリアル・タイム・オペレーティング・システムが用いられる。
【００２２】
ロードモジュールファイル２４は、開発処理をすすめるための統合開発環境（ＩＤＥ）２５に与えられる。この環境の内部にはアナライザ２６とデバッガ２８が備えられ、その中間にはＲＴＯＳインターフェース・モジュール（ＲＩＭ）２７が備えられ、アナライザ２６とＲＩＭ２７とはＲＴＯＳアクセス・インターフェース（ＲＩＦ）によって接続され、またＲＩＭ２７とデバッガ２８はターゲットアクセス・インターフェース（ＴＩＦ）によって接続されている。
【００２３】
デバッガ２８は、メモリアクセス部２９によってターゲット３０の内部のトレースメモリ３１にアクセスすることができる。ターゲット３０は、例えばプロセッサであり、その内部にはＲＴＯＳ２１、デバッグモジュール２２、ユーザアプリケーション２０が備えられている。なお、本発明の特許請求の範囲の請求項５のデータ取得部は、図４のメモリアクセス部２９を基本として、ＲＩＭ２７、デバッガ２８を含むものと考えることができる。
【００２４】
図５は、図４のタスク遷移図表示装置におけるトレース情報と性能情報取得手順の説明図である。ここではまず、トレースメモリ３１に格納されているトレース情報の取得手順について説明する。アナライザ２６においてトレースメモリのデータ取得要求が発生すると、（１）でユーザメモリ領域にあるトレースメモリ３１の内容を読み出すために、ＲＩＭ２７にトレースログの所得が要求され、（２）でＲＩＭ２７によってトレースメモリ３１の内容を読み出す指示がデバッガ２８に与えられ、デバッガ２８から（３）でメモリアクセス部２９を介してトレースメモリ３１に対するデータリードアクセスがなされる。
【００２５】
読み出されたトレースメモリ３１の内容、すなわちトレース情報は、メモリアクセス部２９を介して（４）でデバッガ２８に通知され、デバッガ２８から（５）でＲＩＭ２７に通知される。そしてＲＩＭ２７によってアナライザ２６が必要とするデータが（６）でアナライザ２６に通知されて、トレースメモリのデータ取得が完了する。
【００２６】
前述のキャッシュミス回数や、メモリアクセス競合などの性能情報のデータは、ターゲット３０、すなわちプロセッサの内部で図示しないメモリの領域に格納され、例えばハードウェアカウンタのカウント値に対応して、トレース情報と同様にアナライザ２６に通知されるものとする。
【００２７】
図６は第１の実施例におけるタスク遷移図表示用データ処理のフローチャートである。同図において処理が開始されると、まずステップＳ１でマルチプロセッサシステムを構成する各コアプロセッサの現在のシステム時間の記録として、各プロセッサの現在のシステム時間の情報が、例えば図２のメモリ１４に格納される。ここでマルチプロセッサシステムを構成する各コアプロセッサは、それぞれその内部にシステム時間を示すタイマを備えており、各コアプロセッサの備えるタイマの間でシステム時刻に差が生じる可能性があるものとする。図６の処理開始時のシステム時刻がコア０では１ｍｓ、プロセッサ１では１０ｍｓであるとすると、これらのシステム時刻がシステム時間情報としてメモリ１４に格納される。
【００２８】
次にステップＳ２でマルチプロセッサシステムの内部で各種の測定が行われ、トレース情報や性能情報がメモリ１４に格納される。
続いてステップＳ３からＳ５でタスク遷移図表示用トレース情報に対する時間的な同期処理が行われる。まずステップＳ３でメモリ１４に格納されたデータのうちで、タスク遷移図表示用トレース情報が取得され、ステップＳ４でタスク遷移図の同期処理が行われる。
【００２９】
このタスク遷移図の同期処理では、ステップＳ１でメモリ１４に格納された各コアプロセッサに対するシステム時間情報が取得され、同期処理が行われる。すなわち前述のように、図６の処理の開始時のシステム時刻がコア０では１ｍｓ、コア１では１０ｍｓであった場合には、これらのコアの間でシステム時間に９ｍｓの差があることになり、例えばコア１側のシステム時間を９ｍｓだけずらすことによって、タスク遷移図の時間的な同期が取られる。
【００３０】
最後にステップＳ５でシステム時間の同期、すなわち変更の処理が行われた後のトレース情報が、最終処理結果としてメモリ１４に格納されて処理を終了する。
図７は、アナライザ２６によって取得された性能情報、すなわち測定データに対応する、タスク遷移図表示線の属性決定処理の詳細フローチャートである。同図において測定が開始され、ステップＳ１１で測定データが取得されると、その測定データ、すなわち性能情報が線の色を変えるべき種類の性能情報であるか否かがステップＳ１２で判定される。例えば図３で説明したようにキャッシュミス発生を示す測定結果であれば、その表示は例えば青色で行われるが、その場合にはタスク遷移図表示線の一般的なデフォルトの表示色、例えば黒以外の表示色を用いることが必要であり、ステップＳ１３で測定結果の表示色を測定結果の種類に応じて格納しているファイルから使用すべき表示色が取得され、ステップＳ１５で決められた色、すなわち使用すべき表示色でタスク遷移図内の該当する位置のタスクに対する線が表示される。ステップＳ１２で線の色を変える必要がない場合には、ステップＳ１４で表示する色がデフォルト色、例えば黒とされ、ステップＳ１５でその色で線の表示が行われる。
【００３１】
続いてステップＳ１６で性能情報の種類が線の太さを変えるべき種類の測定結果であるか否かが判定され、図３で説明したように、例えば２倍、あるいは３倍の太さで表示するべき場合には、まずステップＳ１７で３倍、すなわち太線を用いるべき閾値より測定結果が大きいか否かが判定され、大きい場合にはステップＳ１８で表示する線の太さが３倍とされた後に、ステップＳ１９で決められた太さで線の表示が行われる。
【００３２】
ステップＳ１７で測定結果が太線閾値より大きくない場合には、ステップＳ２０で測定結果が中線、すなわち２倍の太さの線を用いるべき閾値より大きいか否かが判定され、大きい場合にはステップＳ２１で表示する線の太さが２倍とされて、ステップＳ１９で決められた太さで線の表示が行われる。ステップＳ２０で測定結果が中線で表示すべき閾値より大きくない場合、あるいはステップＳ１６で性能情報としての測定結果が線の太さを変える種類のものではない場合には、ステップＳ２２で表示する線の太さがデフォルト値、すなわち他の部分の線の太さと同じとされ、ステップＳ１９で線の表示が行われ、例えば次の測定区間に対する測定に移行する。
【００３３】
例えば図３でシステムクロック・スケールの左端から右端までの区間が１つの測定区間であり、１つの測定区間に対応してタスク遷移図の表示が行われるものとし、その１つの区間において測定すべきすべての性能情報が測定されて、その測定結果に対応して性能情報が重畳されたタスク遷移図の表示が行われるものとする。
【００３４】
なお、図７では表示線の属性として、線色と線の太さを変えるものとして実施例を説明したが、その他の属性として、例えば線種（実線、一点鎖線、破線など）を変えることも当然可能である。
【００３５】
図８は、ファイルに格納されている線の太さ、線の色、および性能劣化状況の判定閾値など、図７で線の属性を決定するためのデータ格納内容の例である。同図において、第１行には線の太さの種類が３種類あることが示され、第２行から第４行にはそれぞれの線の太さがピクセル数によって示されている。第５行には線色の種類が６種類であることが示され、第６行から第１１行には、６種類の線色に対するＲＧＢの値がデータ１からデータ３の値として格納されている。
【００３６】
測定すべき性能情報としてのパラメータの数が“２”であることが第１２行に示され、第１３行と第１４行には２つのパラメータとしてのキャッシュミス回数とメモリアクセス競合のそれぞれに対応して、重大度の閾値と、その閾値を超えた場合の線の太さと線色のデータが格納されている。
【００３７】
例えば図７のステップＳ１７の判定で用いられる太線閾値が、キャッシュミス回数のパラメータに対してはデータ９の“５０”であり、キャッシュミス回数が５０回を超えると表示する線の太さはライン３に対応する３０ピクセル分となり、表示色はカラー３で指定される色となる。
【００３８】
次にステップＳ２０の判定で用いられる中線閾値は２０回であり、この閾値を超え、５０回未満であれば線の太さは２倍（２０ピクセル分）となり、その線色はカラー２で指定される色となる。またキャッシュミス回数が５回以上２０回未満の時には、線の太さは１０ピクセル分となり、線色はカラー１で指定される色となる。さらにキャッシュミス回数が５回未満の場合にはこれに対応する線の太さや線色の変化は行われず、例えばともにデフォルトの太さ（例えば５ピクセル分）と線色（図示しないＲＧＢの色）でタスク遷移図表示が行われることになる。なお、ここでは１つの性能情報に対する線の太さと線色はともに４種類とする。
【００３９】
図９は、図４のトレースメモリ３１に格納されているトレース情報の例である。同図においてログタイプはログデータを取る形式を示し、このタイプによってトレースメモリに保存されるデータの内容が決定される。タイプイベントのＬＯＧ＿ＬＥＡＶＥはログの開始を、ＬＯＧ＿ＥＮＴＥＲはログの終了を意味する。タスクＩＤは、タイプイベントとしてのＬＯＧ＿ＬＥＡＶＥとＬＯＧ＿ＥＮＴＥＲに対して同一でもよいが、基本的には異なるものである。
【００４０】
右側の下位時刻はそのタスクの開始時刻、上位時刻はそのタスクの終了時刻を意味する。例えば図３においてコア０側のタスク３に対しては、その実行中にタスク２とタスク１に処理が移った時間を含めて、下位時刻はアイドル状態からタスク３の処理に移った時刻、上位時刻はタスク３から再びアイドル状態に移った時刻を表わす。
【００４１】
パラメータ、すなわち性能情報としてのキャッシュミス回数や、レジスタ干渉回数のデータについては、上位時刻、すなわちそのタスクの終了時刻の各パラメータの値が、タスクＩＤに対応して格納されるものとする。
【００４２】
図１０は、図４のターゲット３０の内部で図示しないメモリに格納される性能情報データの例である。この性能情報は、例えばリアル・タイム・オペレーティング・システムが起動された時点を基準とするサイクル数に対応して、例えばキャッシュミス回数や割込み回数などが積算されて格納されるものとし、例えばサイクル数が“４２１３５１０００”から“４４１３５１０００”まで増加する間に、キャッシュミス回数は１００回から１１０回と、１０回増加したことがメモリの格納内容から判定される。
【００４３】
そこで図９の下位時刻、上位時刻と、図１０のサイクル数とを対応させることによって、どの時刻にどのタスクの処理中にキャッシュミスが何回発生したかを判定することが可能となり、図７で説明したフローチャートと、図８で説明したタスク遷移図の表示線の属性データとを用いて、図３で説明したような性能情報が重畳されたタスク遷移図を表示することが可能となる。
【００４４】
図１１は、トレース情報と性能情報とをともにトレースメモリに格納する場合のデータ格納例である。図９で説明したトレース情報に加えて、最も右側に性能情報が追加されている。この性能情報は、例えばキャッシュミス回数のような単一の性能情報であるが、複数種類の性能情報をトレースメモリに格納することも当然可能である。
【００４５】
続いて本発明の第２の実施例について図１２から図１５を用いて説明する。前述のように第２の実施例は図１（ｂ）の原理図に対応するものであり、マルチプロセッサシステムを構成する複数のコアプロセッサの処理の並列度の表示が、タスク遷移図と時間的に同期が取られた形式で行われる。
【００４６】
図１２は、第２の実施例におけるマルチプロセッサシステムの構成を示す。第１の実施例に対応する図２と比較すると、並列度グラフ表示装置５１が追加されている点だけが異なっている。
【００４７】
図１３は、第２の実施例における並列度グラフ表示装置の構成を示す。この並列度グラフ表示装置は、第１の実施例における図４に対応するものであるが、ここでは処理の流れを中心として装置の構成を説明する。
【００４８】
図１３において、ユーザアプリ・プログラムソース２０に対してコンパイル処理５５が行われ、その結果と図４で説明したＲＴＯＳライブラリ２１、デバッグモジュール２２とがリンク処理５６に与えられ、実行可能オブジェクトコード５７が生成される。この実行可能オブジェクトコード５７は図４のロードモジュールファイル２４に相当する。実行可能オブジェクトコード５７は、デバッグ処理５８、メモリアクセス処理５９を介してターゲット３０に与えられる。
【００４９】
タスク遷移図や並列度の表示に必要なデータは、ターゲット３０からメモリアクセス処理５９、デバッグ処理５８を介してメモリ６１に格納され、タスク遷移図処理部６２、並列度計算部６３に与えられて、表示部６４によって並列度とタスク遷移図が時間的に同期した形式で表示される。なお、ここでは図１２のタスク遷移図表示装置１５を使用することなく、並列度グラフ表示装置５１でもタスク遷移図の表示が可能なものとする。
【００５０】
図１４は、第２の実施例におけるタスク遷移図表示の基本処理フローチャートである。同図において処理が開始されると、まずステップＳ２５でタスク遷移図表示用データ処理が行われる。この処理は第１の実施例に対して図６で説明した処理と同じである。
【００５１】
続いてステップＳ２６で並列度データ処理が行われる。この処理では、マルチプロセッサシステムを構成する各コアプロセッサの処理の並列度がある時間間隔、例えば１ｍｓ毎に求められ、その結果に対応する表示用データがメモリに格納されるが、その処理の詳細については図１５において説明する。これらの処理が終了すると、ステップＳ２７でタスク遷移図が表示され、ステップＳ２８で並列度が、例えばある時間間隔ごとに色の変化として表示されて、処理を終了する。
【００５２】
図１５は、図１４のステップＳ２６における並列度データ処理の詳細フローチャートである。この処理は、マルチプロセッサシステムにおける複数のコアプロセッサの処理の並列度をある時間間隔、例えば１ｍｓ毎に求めるために、その時間間隔毎に繰り返して実行されるものとする。
【００５３】
図１５において処理が開始されると、まずステップＳ３１で変更処理後のトレース情報がメモリ１４から取得される。このトレース情報は図６で説明したように、各コアプロセッサのシステム時間の間の差に対応する変更処理が行われ、図６のステップＳ５でメモリ１４に格納されたデータである。
【００５４】
続いてステップＳ３２で、すべてのコアプロセッサがその時刻において稼動しているか否かが判定され、すべてのコアが稼動している場合には、ステップＳ３３でグラフ表示用のデータ処理として、すべてのコアが稼動している状態に対応する表示用データ、例えば表示用の色のデータが求められ、ステップＳ３４でその処理結果が並列度グラフ表示データとしてメモリ１４に格納された後に、次の時刻（１ｍｓ後）におけるデータ処理に移行する。
【００５５】
ステップＳ３２ですべてのコアが必ずしも稼動状態ではないと判定されると、ステップＳ３５で片方のコアが稼動しているか否かが判定される。ここでは簡単のためにマルチプロセッサシステムを構成するコアプロセッサが２個の場合の処理を説明しており、片方、すなわち１個のコアだけが稼動している場合にはステップＳ３６でグラフ表示用データ処理としてその並列度、すなわち“０．５”に対応する表示用の色のデータが求められ、ステップＳ３４でその処理結果がメモリ１４に格納された後に、次のデータ処理に移行する。
【００５６】
ステップＳ３５で２個のコアがいずれも稼動していないと判定されたときには、ステップＳ３４で並列度として“０”を示すデフォルトの色のデータがメモリ１４に格納されて、次のデータ処理に移行する。
【００５７】
図１６は、第２の実施例におけるタスク遷移図の表示例である。同図においては、第１の実施例に対する図３と同様に、コア０とコア１に対するタスク遷移図が示されているが、ここでは図３と異なってコア０とコア１とで実行されるタスクは同一ではないものとする。
【００５８】
図１６においてシステムクロック・スケールで１２．３ｍｓ付近までは、コア０とコア１のいずれのコアも動作していない状態、あるいは何れか１つのコアが動作する状態が続いている。従ってこの時刻までの並列度は、どちらかのコアだけが動作している状態に対応する並列度としての“０．５”を示す薄い灰色、またはいずれのコアも動作していないことを示す白によって示されている。
【００５９】
これに対してシステムクロック・スケールで１２．３ｍｓ付近から１７．３ｍｓ付近の間では、コア０とコア１の両方が動作する状態となっており、対応する並列度は並列度としての“１”を示す濃い灰色（黒色）となっている。このように第２の実施例では、コア（プロセッサ）の動作の有無によってマルチプロセッサシステムにおける並列度が求められ、その並列度が、例えば色の区別によって表示される。
【００６０】
図１６のタスク遷移図表示結果を用いた最適化処理の例として、例えばコア１側をできるだけ省電力動作にする方法について説明する。すなわちコア１が動作中にコア０がアイドル状態にある場合には、コア１側での処理をコア０側で実行させることが可能であり、システムクロック・スケールで２．３ｍｓを中心とするコア１側でのタスク１１の処理、および３８．３ｍｓを中心とするコア１側でのタスク１２の処理をコア０側で実行させることによって、コア１側の消費電力を低減させることが可能となる。
【００６１】
またボトルネックに関連する処理の最適化を行うことも可能である。図１６において、コア１側でのタスク１１の処理結果がその後のコア０側でのタスク３の処理に必要なものであり、また同様にタスク１１の処理結果がコア１側のタスク１２の処理に必要なものであるとしても、コア０側でのタスク３からタスク１の処理結果がコア１側でのタスク１２の処理には必要ない場合には、コア１側でのタスク１２の処理を時間的に前にずらし、タスク１１の処理の直後に実行させることも可能であり、タスク１２が実行されていた時刻に、コア１に他の処理を実行させることも可能となる。
【００６２】
このように第２の実施例では、マルチプロセッサシステムにおけるコアプロセッサの間の処理の並列度がタスク遷移図と時間的に同期した形式で表示されることによって実行すべき処理をコアの間で移動させたり、同一のコア上でも時刻を変更させて実行させることが容易となり、プログラムの最適化を効率的に実行することが可能となる。
【００６３】
以上において本発明の実施形態について詳細に説明したが、本発明の範囲は以上の記述に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【図面の簡単な説明】
【００６４】
【図１】本発明のタスク遷移図表示方法の原理的な機能ブロック図である。
【図２】第１の実施例におけるマルチプロセッサシステムの構成図である。
【図３】性能情報付タスク遷移図の表示例である。
【図４】第１の実施例におけるタスク遷移図表示装置の構成ブロック図である。
【図５】第１の実施例におけるトレース情報と性能情報との取得手順の説明図である。
【図６】第１の実施例におけるタスク遷移図表示用データ処理のフローチャートである。
【図７】第１の実施例におけるタスク遷移図表示線属性決定処理の詳細フローチャートである。
【図８】図７の処理に用いられるデータの例である。
【図９】第１の実施例におけるトレースメモリ格納データの例である。
【図１０】第１の実施例における性能情報格納例である。
【図１１】第１の実施例における性能情報を含むトレースメモリ格納データの例である。
【図１２】第２の実施例におけるマルチプロセッサシステムの構成図である。
【図１３】第２の実施例における並列度グラフ表示装置の構成図である。
【図１４】第２の実施例におけるタスク遷移図表示の基本処理フローチャートである。
【図１５】図１４における並列度データ処理の詳細フローチャートである。
【図１６】第２の実施例におけるタスク遷移図の表示例である。
【符号の説明】
【００６５】
１０、１１  プロセッサ
１２  入力部
１３  モニタ
１４  メモリ
１５  タスク遷移図表示装置
１６  バス
２０  ユーザアプリケーション
２１  リアル・タイム・オペレーティング・システム（ＲＴＯＳ）
２２  デバッグモジュール
２３  言語ツール
２４  ロードモジュールファイル
２５  統合開発環境（ＩＤＥ）
２６  アナライザ
２７  ＲＴＯＳインターフェース・モジュール（ＲＩＭ）
２８  デバッガ
２９  メモリアクセス部
３０  ターゲット
３１  トレースメモリ
５１  並列度グラフ表示装置
５５  コンパイル処理
５６  リンク処理
５７  実行可能オブジェクトコード
５８  デバッグ処理
５９  メモリアクセス処理
６１  メモリ
６２  タスク遷移図処理部
６３  並列度計算部
６４  表示部
【図１】
2008004054.tif 000003
【図２】
2008004054.tif 000004
【図３】
2008004054.tif 000005
【図５】
2008004054.tif 000006
【図６】
2008004054.tif 000007
【図７】
2008004054.tif 000008
【図８】
2008004054.tif 000009
【図９】
2008004054.tif 000010
【図１０】
2008004054.tif 000011
【図１１】
2008004054.tif 000012
【図１２】
2008004054.tif 000013
【図１３】
2008004054.tif 000014
【図１４】
2008004054.tif 000015
【図１５】
2008004054.tif 000016
【図４】
2008004054.tif 000017
【図１６】
2008004054.tif 000018