(57)【要約】【課題】マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを軽減する。【解決手段】プロセッサコア識別部１２は、ソフトウェアを開発する際のソフトウェア開発用情報（プロジェクト情報、プログラム開発支援情報、デバッグ情報など）１１が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、表示処理部１３は、識別結果に応じて、ソフトウェア開発用情報１１が、いずれのプロセッサコアに属するかを視覚的に判別可能なように表示する。【選択図】図１
2008015940.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置において、
前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれの前記プロセッサコアに属するかを識別するプロセッサコア識別部と、
識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示する表示処理部と、
を有することを特徴とするソフトウェア開発装置。
【請求項２】
前記プロセッサコアごとに異なる色を対応付けるコア色設定部を有し、
前記表示処理部は、前記プロセッサコアに属する前記ソフトウェア開発用情報を、対応付けられた前記色を用いて表示することを特徴とする請求項１記載のソフトウェア開発装置。
【請求項３】
前記ソフトウェア開発用情報は、プロジェクト情報であることを特徴とする請求項１または２記載のソフトウェア開発装置。
【請求項４】
前記ソフトウェア開発用情報は、プログラム開発支援情報であることを特徴とする請求項１または２記載のソフトウェア開発装置。
【請求項５】
前記ソフトウェア開発用情報は、デバッグ情報であることを特徴とする請求項１または２記載のソフトウェア開発装置。
【請求項６】
前記プログラム開発支援情報は、性能情報であることを特徴とする請求項４記載のソフトウェア開発装置。
【請求項７】
前記プログラム開発支援情報は、タスク情報であることを特徴とする請求項４記載のソフトウェア開発装置。
【請求項８】
マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発方法において、
プロセッサコア識別部が、前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれの前記プロセッサコアに属するかを識別し、
表示処理部が、識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示することを特徴とするソフトウェア開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発装置及びソフトウェア開発方法に関し、特に、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置及びソフトウェア開発方法に関する。
【背景技術】
【０００２】
ソフトウェア開発において、ソースプログラムやプログラム中の関数などの依存関係をプロジェクト管理する方法（例えば、特許文献１、２参照。）が知られている。
マルチコアプロセッサ向けのソフトウェア開発においてもプロジェクト管理が用いられており、ソフトウェア開発者は、コンピュータのディスプレイ上に、プロジェクト情報、各プロセッサコアで実行される特定の処理が含まれるソースプログラム、その処理に関するプログラム開発支援情報、デバッグ情報などのソフトウェア開発用情報を表示して、ソフトウェア開発を行っていた。
【０００３】
なお、特許文献３には、マルチプロセスプログラムを構成する複数のプログラムの動作情報に関連付けたデバッグ情報をプログラムの動作と連動しながら特徴表示する技術が開示されている。
【特許文献１】特開平０９−２１２３５２号公報
【特許文献２】特許第３６０３７１８号公報
【特許文献３】特開２００１−３３１４６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の技術では、あるソフトウェア開発用情報が、どのプロセッサコアに属するかが、ソフトウェア開発者にとって判別しづらいという問題があった。
このため、特定のプロセッサコアに属するソフトウェア開発用情報を、他のプロセッサコアに属する情報として参照してしまうような危険性が大きく、誤ったソースプログラムの改変を行ってしまうなどの問題があった。
【０００５】
本発明はこのような点に鑑みてなされたものであり、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを軽減可能なソフトウェア開発装置を提供することを目的とする。
【０００６】
また、本発明の他の目的は、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを軽減可能なソフトウェア開発方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明では上記問題を解決するために、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置において、図１に示すように、ソフトウェアを開発する際のソフトウェア開発用情報１１が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別するプロセッサコア識別部１２と、識別結果に応じて、ソフトウェア開発用情報１１がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する表示処理部１３と、を有することを特徴とするソフトウェア開発装置１０が提供される。
【０００８】
上記の構成によれば、プロセッサコア識別部１２は、ソフトウェアを開発する際のソフトウェア開発用情報１１が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、表示処理部１３は、識別結果に応じて、ソフトウェア開発用情報１１がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する。
【０００９】
また、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発方法において、プロセッサコア識別部が、前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれの前記プロセッサコアに属するかを識別し、表示処理部が、識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示することを特徴とするソフトウェア開発方法が提供される。
【００１０】
上記の方法によれば、プロセッサコア識別部はソフトウェアを開発する際のソフトウェア開発用情報が複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、表示処理部は識別結果に応じて、ソフトウェア開発用情報がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する。
【発明の効果】
【００１１】
本発明では、ソフトウェア開発用情報が、どのプロセッサコアに属するものか識別して、識別結果に応じて、ソフトウェア開発用情報がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示することで、ユーザは、現在扱っているソフトウェア開発用情報が、どのプロセッサコアに属するものかを容易に判別できる。これにより、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを大幅に軽減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、本実施の形態のソフトウェア開発装置の概略を示す図である。
ソフトウェア開発装置１０は、ソフトウェア開発用情報１１が複数のプロセッサコア（以下単にコアと略す場合もある。）のうちいずれのプロセッサコアに属するかを識別するプロセッサコア識別部１２と、表示処理部１３とを有している。
【００１３】
ソフトウェア開発用情報１１には、プロジェクト情報、ソースプログラム、ソースプログラムによる処理に関するプログラム開発支援情報やデバッグ情報などがある。
また、プログラム開発支援情報には、デバッグ時のブレークポイント情報またはウォッチポイント情報などの実行制御情報、ビルドオプション情報、性能情報、オブジェクト（タスク）情報などがある。デバッグ情報には、メモリウィンドウ情報、レジスタウィンドウ情報、シンボルウィンドウ情報やスタックフレームウィンドウ情報などがある。
【００１４】
プロセッサコア識別部１２は、上記のようなソフトウェア開発用情報１１がどのコアに属するかを識別する。詳細は、後述する。
表示処理部１３は、識別結果に応じて、ソフトウェア開発用情報１１がいずれのコアに属するかを、ユーザ（ソフトウェア開発者）が視覚的に判別可能なように表示する。
【００１５】
例えば、図１では、ソフトウェア開発用情報１１としてプロジェクト情報を示している。プロジェクト情報は、図１のように、例えば、コンピュータのディスプレイ上にＧＵＩ（Graphical User Interface）表示されるプロジェクトウィンドウ２０内に表される。例えば、コア０、コア１の２つのコアがある場合、プロセッサコア識別部１２で識別された結果、プロジェクト情報として、コア０用プロジェクトフォルダとコア１用プロジェクトフォルダとを視覚的に簡単に判別可能なように表示する。具体的には、コアごとに、自動的にフォルダを分けて表示するとともに、例えば、コア０用プロジェクトフォルダを赤で表示し、コア１用プロジェクトフォルダを緑で表示する。また、ソースプログラムやデバッグ情報などがコア０、１ごとにプロジェクト管理されているが、これらのファイルも、各コア０、１に対応付けられた色で表示する。
【００１６】
このように、ソフトウェア開発用情報が、どのプロセッサコアに属するものか識別して、識別結果に応じて、ソフトウェア開発用情報１１がいずれのコアに属するかを視覚的に判別可能なように表示することで、ユーザは、現在扱っているソフトウェア開発用情報が、どのコアに属するものかを容易に判別できる。これにより、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを大幅に軽減することができる。
【００１７】
以下、本実施の形態の詳細を説明する。
図２は、本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。
ソフトウェア開発装置１００は、例えば、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、ＨＤＤ（Hard Disk Drive）１０４、グラフィック処理部１０５、入力Ｉ／Ｆ（Interface）１０６などによって構成され、これらはバス１０７を介して相互に接続されている。
【００１８】
ここで、ＣＰＵ１０１は、ＲＯＭ１０２やＨＤＤ１０４に格納されているプログラムや各種データに応じて、グラフィック処理部１０５など、各部を制御し、図１に示したプロセッサコア識別部１２、表示処理部１３の機能などを実現する。
【００１９】
ＲＯＭ１０２は、ＣＰＵ１０１が実行する基本的なプログラムやデータを格納する。
ＲＡＭ１０３は、ＣＰＵ１０１が実行途中のプログラムや演算途中のデータを格納している。
【００２０】
ＨＤＤ１０４は、ＣＰＵ１０１が実行するＯＳ（Operation System）、ソフトウェアを開発するプログラム、各種アプリケーションプログラムや各種データを格納する。
グラフィック処理部１０５には、表示装置として、例えば、ディスプレイ１０５ａが接続されており、ＣＰＵ１０１からの描画命令に従って、ディスプレイ１０５ａ上に、ＧＵＩで、図１に示したようなプロジェクトウィンドウ２０など、ソフトウェア開発用の画面などを表示する。
【００２１】
入力Ｉ／Ｆ１０６には、マウス１０６ａやキーボード１０６ｂなどの入力装置が接続されており、ソフトウェア開発者などのユーザにより入力された情報を受信し、バス１０７を介してＣＰＵ１０１に伝送する。
【００２２】
上記のようなハードウェア構成で実現されるソフトウェア開発時に必要な各機能ブロックの例を以下に示す。
図３は、ソフトウェア開発時に必要な機能を示す機能ブロック図である。
【００２３】
ソフトウェア開発環境は、例えば、マネージャ部２１０、デバッガ制御部２２０、エディタ部２３０、エミュレータ部２４０、シミュレータ部２５０、モニタ部２６０、及び測定情報表示部２７０を有している。これらは、例えば、ＤＬＬ（Dynamic Link Library）などで表現され、ソフトウェア開発プログラム本体が必要に応じてライブラリとして呼び出すことによって各機能ブロックの処理が実行される。また、全ての機能ブロックを１つのプログラムで実現するようにしてもよい。
【００２４】
マネージャ部２１０は、プロジェクト管理部２１１、ビルド制御部２１２、及びウィンドウ管理部２１３を有している。
プロジェクト管理部２１１は、プロジェクト情報とソースプログラムとの対応付けを行う。
【００２５】
ビルド制御部２１２は、ビルド時にオプションやコンパイラなどの翻訳ツールを制御する。
ウィンドウ管理部２１３は、プロジェクトウィンドウの設定などを行う。また、コア識別部２１３ａ、コア色設定部２１３ｂ、及び色対応付け部２１３ｃを有している。
【００２６】
コア識別部２１３ａは、特定のプロジェクト情報やソースプログラムがどのコアに属するかを識別する。
コア色設定部２１３ｂは、コアごとに特定の色（以下コア色という。）を設定する。例えば、２つのコアを有するマルチコアプロセッサのソフトウェアを開発する際には、コア０のコア色は赤、コア１のコア色は緑などのように決める。
【００２７】
色対応付け部２１３ｃは、プロジェクト情報（フォルダなど）が属するコアが識別されると、コア色設定部２１３ｂで設定されたコア色をプロジェクト情報に対応付ける。そして、図２で示したグラフィック処理部１０５により、特定のコアに対応したプロジェクト情報を、そのコア色を用いてディスプレイ１０５ａに表示させる。
【００２８】
コア識別部２１３ａで識別されたコアの情報や、マネージャ部２１０のコア色設定部２１３ｂで設定された色の情報は、プログラム実行時に他の機能ブロックと共有される。
デバッガ制御部２２０は、デバッガ管理部２２１、実行／ブレーク管理部２２２、デバッグデータ管理部２２３、及びウィンドウ管理部２２４を有している。
【００２９】
デバッガ管理部２２１は、エミュレータ部２４０、シミュレータ部２５０またはモニタ部２６０などのデバッガを管理する。
実行／ブレーク管理部２２２は、デバッガの実行やブレーク（停止）を制御する。
【００３０】
デバッグデータ管理部２２３は、デバッグに必要な情報（メモリ、レジスタ、スタックやトレースなど）をコアごとに管理する。
ウィンドウ管理部２２４は、デバッグ情報の表示ウィンドウの設定などを行う。また、コア識別部２２４ａと、色対応付け部２２４ｂとを有している。
【００３１】
コア識別部２２４ａは、特定のデバッグ情報やブレークポイント情報などが、どのコアに属するのかを識別する。
色対応付け部２２４ｂは、特定のデバッグデータやブレークポイント情報などが属するコアが識別されると、マネージャ部２１０のコア色設定部２１３ｂで設定されたコア色をデバッグデータに対応付ける。そして、図２で示したグラフィック処理部１０５により、特定のコアに属するデバッグデータを、そのコア色を用いてディスプレイ１０５ａに表示させる。例えば、デバッグデータの表示ウィンドウのフレームを対応付けられたコア色で表示させる。
【００３２】
エディタ部２３０は、図２で示したマウス１０６ａやキーボード１０６ｂからの入力信号に応じて、ソースプログラムなどの編集を行う。また、エディタ部２３０は、編集ウィンドウの設定などを行うウィンドウ管理部２３１を有している。ウィンドウ管理部２３１は、コア識別部２３１ａ、色対応付け部２３１ｂを有している。
【００３３】
コア識別部２３１ａは、編集データ（例えばソースプログラム）がどのコアに属するのかを識別する。
色対応付け部２３１ｂは、編集データが属するコアが識別されると、マネージャ部２１０のコア色設定部２１３ｂで設定されたコア色を編集データに対応付ける。そして、図２で示したグラフィック処理部１０５により、特定のコアに属する編集データを、そのコア色を用いてディスプレイ１０５ａ上に表示させる。例えば、ソースプログラムの編集ウィンドウのフレームを、コア色で表示させる。
【００３４】
デバッガであるエミュレータ部２４０、シミュレータ部２５０、及びモニタ部２６０は、デバッガ制御部２２０の制御のもといずれかが選択され、ビルドされたターゲットプログラムを取り込んでデバッグ処理を行う。なお、エミュレータ部２４０を使用する際には、図２で示したソフトウェア開発装置１００に、例えば、ＩＣＥ（In Circuit Emulator）を接続してＩＣＥでデバッグを実行させる。
【００３５】
また、エミュレータ部２４０、シミュレータ部２５０、及びモニタ部２６０は、それぞれコア識別部２４１、２５１、２６１を有しており、どのコアに属するターゲットプログラムなのかを判別する。
【００３６】
測定情報表示部２７０は、測定種別管理部２７１、測定制御部２７２、測定データ管理部２７３、及びウィンドウ管理部２７４を有している。
測定種別管理部２７１は、プロファイラ、サンプラ、カバレージ、ＰＡ（Performance Analyzer）やＯＳアナライザなど、プログラム開発支援情報である性能情報やタスク情報を測定する測定手段を選択する。これらは、エミュレータ部２４０やシミュレータ部２５０などを用いて測定される。
【００３７】
測定制御部２７２は、測定の開始位置や終了位置などの測定区間情報を管理する。
測定データ管理部２７３は、エミュレータ部２４０やシミュレータ部２５０によりプロファイラ、サンプラ、カバレージ、及びＰＡで測定したときの測定データを管理する。
【００３８】
ウィンドウ管理部２７４は、測定データをもとに、性能情報やタスク情報をコアごとにソフトウェア開発者が視覚的に判別可能なように表示する。そのために、ウィンドウ管理部２７４は、コア識別部２７４ａ、及び色対応付け部２７４ｂを有している。
【００３９】
コア識別部２７４ａは、測定の結果得られた性能情報やタスク情報がどのコアに属するのかを識別する。
色対応付け部２７４ｂは、性能情報やタスク情報が属するコアが識別されると、マネージャ部２１０のコア色設定部２１３ｂで設定されたコア色をその性能情報やタスク情報に対応付ける。そして、図２で示したグラフィック処理部１０５により、特定のコアに属する性能情報やタスク情報を、そのコア色を用いてディスプレイ１０５ａ上に表示させる。例えば、ウィンドウのフレームをコア色で表示させたり、性能情報やタスク情報をコアごとに色分けして表示させる。
【００４０】
なお、図３では、コア色設定部２１３ｂはマネージャ部２１０に搭載するようにしているが、デバッガ制御部２２０、測定情報表示部２７０、または各デバッガに搭載するようにしてもよい。但し、コアごとに、それぞれ１つの色を対応付けることが望ましい。
【００４１】
また、コア識別部２１３ａ、２２４ａ、２３１ａ、２４１、２５１、２６１、２７４ａを各機能ブロックに設けているが、１つであってもよい。その場合、識別したコアの情報を各機能ブロックで共有すればよい。
【００４２】
以下、本実施の形態のソフトウェア開発装置１００の動作を説明する。
なお、以下では、コアが２つの場合のマルチコアプロセッサ用のソフトウェアを開発する例を示すが、これに限定されない。
【００４３】
図４は、ソフトウェア開発の概略の流れを示すフローチャートである。
ソフトウェア開発において、まずプロジェクトや、そのプロジェクトのソースプログラムを作成する（ステップＳ１）。次に、ビルドしてそれぞれのコアのターゲットファイルを作成する（ステップＳ２）。さらに、ターゲットファイルをデバッガに取り込んでデバッグ処理する（ステップＳ３）。最後に、性能情報の測定またはタスク解析などを行う（ステップＳ４）。
【００４４】
以下に、各ステップＳ１〜Ｓ４の詳細を説明する。
図５は、プロジェクト及びソースプログラムの作成処理の流れを示すフローチャートである。
【００４５】
まず、プロジェクトを新規に作成する（ステップＳ１０）。
図６は、プロジェクト作成画面を示す図である。
ＣＰＵ１０１の制御のもとグラフィック処理部１０５は、ディスプレイ１０５ａにＧＵＩでプロジェクト作成画面を表示する。ユーザによりプロジェクトを新規に作成する旨の選択がなされると、ＣＰＵ１０１の制御のもとでグラフィック処理部１０５は、図のように、コア０のプロジェクトを作成するのか、コア１のプロジェクトを作成するのかを選択するコア選択ウィンドウ３０１を表示する。ユーザは、このいずれかを選択する。
【００４６】
プロジェクトが作成されると、マネージャ部２１０のコア識別部２１３ａは、ユーザによって選択されたコアを識別する（ステップＳ１１）。
プロジェクトが属するコアが識別されると、色対応付け部２１３ｃでは、コア色設定部２１３ｂで設定されたコア色と、そのプロジェクト情報を対応付ける（ステップＳ１２）。以下では、コア０のコア色が赤、コア１のコア色が緑と設定されている場合を例にして説明する。
【００４７】
プロジェクト情報とコア色が対応付けられると、対応付けられたコア色で、コア別のプロジェクトフォルダを作成し、ディスプレイ１０５ａ上のプロジェクトウィンドウ（図１参照。）に表示する（ステップＳ１３）。
【００４８】
その後プロジェクトファイルを作成し（ステップＳ１４）、プロジェクトに追加するソースプログラムの編集を行う（ステップＳ１５）。
ソースプログラムの編集が終わると、ソースプログラムをプロジェクトに登録する（ステップＳ１６）。その際、例えば、エディタ部２３０のウィンドウ管理部２３１は、以下のようなコア選択ウィンドウを編集ウィンドウ上に表示する。
【００４９】
図７は、ソースプログラムの編集ウィンドウを示す図である。
編集ウィンドウ３０２上でソースプログラムの編集が終わると、例えば、ユーザは、編集ウィンドウ３０２上にマウスカーソルを合わせてマウス１０６ａを右クリックするなどして、ソースプログラムをプロジェクトに追加するための選択ウィンドウ３０３を表示する。ユーザによって、例えば、プロジェクトへ追加する旨の選択がなされると、ウィンドウ管理部２３１は、コア選択ウィンドウ３０４を表示する。ユーザは、ソースプログラムをコア０に対応付けるのか、コア１に対応付けるのかを選択する。
【００５０】
なお、ソースプログラムのコアへの対応付けは、自動的に行うようにしてもよい。例えば、コア０、コア１が異なるＯＳを搭載する場合、そのソースプログラムが対応するＯＳを搭載したコアに、自動的にソースプログラムを対応付ける。
【００５１】
ソースプログラムがコアへ対応付けられると、エディタ部２３０のコア識別部２３１ａは、選択されたコアを識別し、色対応付け部２３１ｂでは、そのコアのコア色と、ソースプログラムとを対応付ける。また、マネージャ部２１０のコア識別部２１３ａも、選択されたコアを識別する（ステップＳ１７）。
【００５２】
そして、例えば、編集ウィンドウ３０２のフレーム３０５をコア色で表示する（ステップＳ１８）。
また、マネージャ部２１０のコア識別部２１３ａは、選択されたコアを識別すると、そのコアに対応付けられたプロジェクトフォルダを更新する。そしてウィンドウ管理部２３１は、更新したプロジェクトフォルダをディスプレイ１０５ａ上に表示させる（ステップＳ１９）。
【００５３】
図８は、ソースプログラムが登録されたプロジェクトウィンドウを示す図である。
ソースプログラム“ｓａｍｐｌｅ．ｃ"がコア０に対応付けられた場合、図のように、プロジェクトウィンドウ３０６において、コア０用プロジェクトフォルダの“Ｓｏｕｒｃｅ  Ｆｉｌｅｓ”フォルダに登録される。
【００５４】
ソースプログラムがプロジェクトに登録されると、プロジェクトファイルの更新が行われる（ステップＳ２０）。プロジェクトやソースプログラムの作成や登録を再度行う場合には、ステップＳ１０からの処理を繰返し、作成や登録を行わない場合にはプロジェクト及びソースプログラムの作成処理を終了する（ステップＳ２１）。
【００５５】
上記のような処理によれば、プロジェクト情報やソースプログラムが、どのコアに属するソフトウェア開発用情報なのか、ユーザはディスプレイ１０５ａ上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
【００５６】
次に、図４のデバッグ処理（ステップＳ３）の詳細を説明する。
図９は、デバッグ処理の流れを示すフローチャートである。
図４のステップＳ２の処理でターゲットファイルがコアごとに生成されると、デバッガ制御部２２０のコア識別部２２４ａは、そのターゲットファイルが属するコアを識別する（ステップＳ３０）。その後、デバッガ管理部２２１は、エミュレータ部２４０、シミュレータ部２５０、またはモニタ部２６０のいずれかのデバッガを選択する（ステップＳ３１）。
【００５７】
次に、選択されたデバッガはターゲットファイルを取り込み（ステップＳ３２）、ターゲットファイルから各種デバッグ情報を抽出し（ステップＳ３３）、シンボル情報を抽出する（ステップＳ３４）。
【００５８】
ここで、例えば、デバッグ情報としてメモリウィンドウ情報がユーザによって選択された場合（ステップＳ３５）、デバッガ制御部２２０の色対応付け部２２４ｂは、メモリウィンドウ情報と、識別されたコアのコア色とを対応付ける（ステップＳ３６）。その後、デバッグデータ管理部２２３は、メモリウィンドウ情報をもとにコア別アドレステーブルを作成する（ステップＳ３７）。
【００５９】
図１０は、コア１のアドレステーブルの例を示す図である。
図のように、アドレステーブルには、コアの番号、アドレス及びデータが管理されている。同様なアドレステーブルが、コア０に対しても作成される。
【００６０】
次に、図１０のように作成されたアドレステーブルをもとに、ウィンドウ管理部２２４は、ディスプレイ１０５ａ上にアドレステーブルをメモリウィンドウとして表示する（ステップＳ３８）。
【００６１】
図１１は、ディスプレイ上に表示されるメモリウィンドウの例である。
前述のコア色設定部２１３ｂにおいてコア０のコア色が赤、コア１のコア色が緑と設定されているので、図１０のアドレステーブルをもとに表示されるメモリウィンドウ３１０では、フレーム３１１が緑に表示される。
【００６２】
次にデバッガ制御部２２０の実行／ブレーク管理部２２２により、デバッガを実行させ、コアのメモリアクセスを検出する（ステップＳ３９）。
続いてコア識別部２２４ａは、メモリアクセスをしたコアを識別する（ステップＳ４０）。そして、前述のアドレステーブルを参照し（ステップＳ４１）、ウィンドウ管理部２２４は、例えば、アクセスしたコアがコア０の場合には、そのコア色である赤で、アドレス内容（図１１の領域３１２）を強調する（ステップＳ４２）。これによって、どちらのコアがメモリにアクセスしたのかを容易に判別することができる。
【００６３】
デバッグの結果、プログラムに修正する点などがあれば修正し、再度デバッグする。再度デバッグをする必要が無ければ処理を終了する（ステップＳ４３）。
次に、デバッグ時にブレークポイントを設定する場合のデバッグ処理を説明する。
【００６４】
図１２は、ブレークポイントを設定するデバッグ処理を示すフローチャートである。
まず、デバッガを起動する（ステップＳ５０）。ここでは、図９のステップＳ３０〜Ｓ３４の処理を行う。次に、ユーザの入力により、ブレークポイントの設定を行う（ステップＳ５１）。
【００６５】
ブレークポイントの設定が行われると、デバッグデータ管理部２２３は、コア別のブレークポイントの登録を行う（ステップＳ５２）。
図１３は、登録されたブレークポイントの例である。
【００６６】
図のように、ブレークポイントが設定された、コアの番号、アドレス、ソースプログラムの名前、及びそのソースプログラムの行が登録される。
その後、実行／ブレーク管理部２２２により、デバッガを実行する（ステップＳ５３）。このとき、コアごとに、プログラムカウンタ（ＰＣ）をカウントし始める。
【００６７】
そして、実行／ブレーク管理部２２２では、ＰＣ値がブレークポイントに達したか否かを判定し（ステップＳ５４）、達していない場合には、ステップＳ５３に戻りデバッガの実行を継続し、ブレークポイントに達した場合には、デバッガの実行を停止する（ステップＳ５５）。
【００６８】
デバッガの実行が停止されると、ウィンドウ管理部２２４は、コア識別部２２４ａによりデバッグ情報がいずれのコアに属するかを識別し（ステップＳ５６ａ）、ディスプレイ１０５ａに、コアごとのデバッグウィンドウ（逆アセンブルウィンドウともいう。）を表示させる（ステップＳ５６）。
【００６９】
図１４は、コアごとのデバッグウィンドウの例である。
コア０のデバッグウィンドウ３２０のフレーム３２１は、色対応付け部２２４ｂにより、コア０のコア色である赤で表示される（ステップＳ５６ｂ）。そして、コア０に属するブレークポイント３２２によって、停止した行３２３も赤で表示する（ステップＳ５６ｃ）。
【００７０】
一方、コア１のデバッグウィンドウ３３０のフレーム３３１は、色対応付け部２２４ｂにより、コア１のコア色である緑で表示される（ステップＳ５６ｂ）。さらに、コア０で設定されたブレークポイント３２２に連動して、コア１のプログラム実行が停止した行３３２が、コア０のコア色である赤で表示される（ステップＳ５６ｃ）。これにより、コア１の実行命令が、コア０のブレークポイント３２２に連動して停止したことが、ディスプレイ１０５ａ上で視覚的に容易に判別可能となる。
【００７１】
上記のような図９、図１２の処理によれば、デバッグ情報やブレークポイントなどが、どのコアに属するのか、ユーザはディスプレイ１０５ａ上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
【００７２】
次に、図４の性能情報測定（ステップＳ４）の詳細を説明する。
図１５は、性能情報の測定処理を示すフローチャートである。
まず、図５で示したような処理で、プロジェクトの作成及びソースプログラムの編集を行う（ステップＳ６０）。その後、測定種別管理部２７１は、プロファイラ、サンプラ、カバレージやＰＡなどから性能情報を測定する測定手段を選択し、測定制御部２７２は、測定の開始位置や終了位置などの測定範囲を設定する（ステップＳ６１）。例えば、サンプラ測定を選択した場合、測定制御部２７２は、サンプラ測定用の関数をソースプログラム中に埋め込む。
【００７３】
次にデバッガを起動する（ステップＳ６２）。ここでは、図９のステップＳ３０〜Ｓ３４の処理を行い、測定するコアの識別（またはユーザによる選択）などを行う。
次に、選択されたコアに対して、ステップＳ６１の処理で選択された測定手段による性能測定を実行する（ステップＳ６３）。
【００７４】
測定データ管理部２７３は、性能測定結果を取得する（ステップＳ６４）。
図１６は、サンプラ測定結果の例である。
測定データ管理部２７３は、コアの番号、そこで実行された関数の名前、その関数の呼び出し数、及び占有率を取得する。
【００７５】
次に、ウィンドウ管理部２７４では、取得した性能情報の表示を行う（ステップＳ６５）。このとき、ウィンドウ管理部２７４のコア識別部２７４ａは、選択されたコアを識別し（ステップＳ６５ａ）、色対応付け部２７４ｂにより、コア０の性能情報は、コア０のコア色である赤で表示し、コア１の性能情報は、コア１のコア色である緑で表示する（ステップＳ６５ｂ）。
【００７６】
図１７は、サンプラ測定結果の表示例である。
コア０の性能情報ウィンドウ３４０において、フレーム３４１及び性能情報（サンプラ測定結果）３４２が赤で表示される。一方、コア１の性能情報ウィンドウ３５０において、フレーム３５１及び性能情報３５２が緑で表示される。
【００７７】
次に、得られた性能情報が十分な性能か否かを判定する（ステップＳ６６）。ここで、十分な性能ではない場合には、プログラムの調整（チューニング）などを行った後（ステップＳ６７）、再測定するか否かが判定される（ステップＳ６８）。十分な性能である場合には、再測定するか否かが判定され、再測定する場合には、ステップＳ６０からの処理を繰返し、再測定しない場合には処理を終了する。
【００７８】
このような処理により、測定した性能情報が、どのコアに属するのか、ユーザはディスプレイ１０５ａ上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
【００７９】
次に、タスク解析を行う場合について説明する。
図１８は、タスク解析の処理を示すフローチャートである。
まず、図５で示したような処理で、プロジェクトの作成及びソースプログラムの編集を行う（ステップＳ７０）。その後、コンフィギュレータの設定を行い、タスクの優先順位、ＯＳやハンドラの各種設定を行う（ステップＳ７１）。
【００８０】
続いてコンフィギュレーションを行い、ＯＳ、カーネルやアプリケーションをビルドする（ステップＳ７２）。
その後、測定種別管理部２７１は、ＯＳアナライザを選択し、測定制御部２７２は、測定の開始位置や終了位置などの測定範囲を設定し（ステップＳ７３）、デバッガを起動する（ステップＳ７４）。ここでは、図９のステップＳ３０〜Ｓ３４の処理を行い、測定するコアの識別（またはユーザによるコアの選択）などを行う。
【００８１】
次に、選択されたコアに対して、ＯＳアナライザにより、ＯＳ内フックルーチンにより、ＯＳ配下で動作するアプリケーションのタスク遷移状態を解析・測定する（ステップＳ７５）。
【００８２】
測定データ管理部２７３は、測定データを取得し、タスク一覧のリストなどを生成する（ステップＳ７６）。
次に、ウィンドウ管理部２７４では、取得したタスク解析結果の表示を行う（ステップＳ７７）。このとき、ウィンドウ管理部２７４のコア識別部２７４ａは、選択されたコアを識別し（ステップＳ７７ａ）、色対応付け部２７４ｂにより、コア０のタスクは、コア０のコア色である赤で表示し、コア１のタスクは、コア１のコア色である緑で表示する（ステップＳ７７ｂ）。
【００８３】
図１９は、タスク解析結果の表示例である。
タスク解析結果の表示ウィンドウ３６０には、タスクのＩＤと優先度などのタスク情報が表示されるが、色対応付け部２７４ｂにより対応付けられたコア色を用いて表示される。
【００８４】
すなわち、コア０のタスク情報３６１は、赤で強調表示され、コア１のタスク情報３６２は緑で強調表示される。
最後に、再測定するか否かが判定され（ステップＳ７８）、再測定する場合には、ステップＳ７０からの処理を繰返し、再測定しない場合には、処理を終了する。
【００８５】
このような処理により、各コアに割り当てられるタスクのバランスが視覚的に容易に判別でき、コアごとの負荷を調整する際にユーザの労力を軽減することができる。
以上のように、図４で示したソフトウェア開発の各工程において、本実施の形態で説明した技術を用いることにより、マルチコアプロセッサ向けのソフトウェアを開発する際の煩雑さが大幅に軽減される。例えば、同じ処理のソースプログラムでも、どのコアで動作する場合を想定したコーディング作業・デバッグ作業・検証作業・チューニング作業であるか、が明確になる。また、現作業がどのコアに関する作業なのかをいつも気にしながらソフトウェアを開発する必要がなくなるので、ソフトウェア開発者の精神的疲労も軽減できる。
【００８６】
なお、以上の実施の形態では、コアが２つの場合について説明してきたが、コアは２以上であってもよい。その場合、赤、緑の他に、黄色、青など、コアごとに特定の色を割り当てればよい。
【００８７】
また、上記の説明では、コアごとに特定のプロジェクトを作成する場合について説明したが、複数のコアで動作する共通プロジェクトを作成するようにしてもよい。その場合、共通プロジェクト用の色を定義するようにしてもよい。
【図面の簡単な説明】
【００８８】
【図１】本実施の形態のソフトウェア開発装置の概略を示す図である。
【図２】本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。
【図３】ソフトウェア開発時に必要な機能を示す機能ブロック図である。
【図４】ソフトウェア開発の概略の流れを示すフローチャートである。
【図５】プロジェクト及びソースプログラムの作成処理の流れを示すフローチャートである。
【図６】プロジェクト作成画面を示す図である。
【図７】ソースプログラムの編集ウィンドウを示す図である。
【図８】ソースプログラムが登録されたプロジェクトウィンドウを示す図である。
【図９】デバッグ処理の流れを示すフローチャートである。
【図１０】コア１のアドレステーブルの例を示す図である。
【図１１】ディスプレイ上に表示されるメモリウィンドウの例である。
【図１２】ブレークポイントを設定するデバッグ処理を示すフローチャートである。
【図１３】登録されたブレークポイントの例である。
【図１４】コアごとのデバッグウィンドウの例である。
【図１５】性能情報の測定処理を示すフローチャートである。
【図１６】サンプラ測定結果の例である。
【図１７】サンプラ測定結果の表示例である。
【図１８】タスク解析の処理を示すフローチャートである。
【図１９】タスク解析結果の表示例である。
【符号の説明】
【００８９】
１０  ソフトウェア開発装置
１１  ソフトウェア開発用情報
１２  プロセッサコア識別部
１３  表示処理部
２０  プロジェクトウィンドウ
【図１】
2008015940.tif 000003
【図２】
2008015940.tif 000004
【図３】
2008015940.tif 000005
【図４】
2008015940.tif 000006
【図５】
2008015940.tif 000007
【図６】
2008015940.tif 000008
【図７】
2008015940.tif 000009
【図８】
2008015940.tif 000010
【図９】
2008015940.tif 000011
【図１０】
2008015940.tif 000012
【図１１】
2008015940.tif 000013
【図１２】
2008015940.tif 000014
【図１３】
2008015940.tif 000015
【図１４】
2008015940.tif 000016
【図１５】
2008015940.tif 000017
【図１６】
2008015940.tif 000018
【図１７】
2008015940.tif 000019
【図１８】
2008015940.tif 000020
【図１９】
2008015940.tif 000021