(57)【要約】【課題】開発環境で実測されたプログラムサイズやパフォーマンスに基づいて量産環境でのメモリ容量やパフォーマンスを精度良く換算して、適切なターゲットの選定及びターゲットに対するチューニング作業をより迅速に行なうことのできるソフトウェアリソースの移植評価装置、及び、評価方法を提供する。【解決手段】電子制御を行なう処理装置に組み込まれる評価対象プログラムの、第一処理装置３０での処理性能から、第二処理装置４０での処理性能を算出するソフトウェアの移植評価装置５０であって、所定のプログラムの前記第一処理装置３０と前記第二処理装置４０とにおける処理性能から求められる処理性能評価係数を前記評価対象プログラムのタスクを構成するモジュール特性により重み付けして得られる処理性能換算係数に基づいて、前記処理性能を算出する処理性能換算処理手段６２を備えてなる。【選択図】図２
2007299212.tif 000002
【特許請求の範囲】
【請求項１】
電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置における処理性能から、第二処理装置における処理性能を算出するソフトウェアの移植評価装置であって、
所定のプログラムの前記第一処理装置と前記第二処理装置とにおける処理性能から求められる処理性能評価係数を前記評価対象プログラムのタスクを構成するモジュール特性により重み付けして得られる処理性能換算係数に基づいて、前記処理性能を算出する処理性能換算処理手段を備えてなるソフトウェアの移植評価装置。
【請求項２】
前記処理性能換算処理手段は、所定のプログラムのタスクを構成するモジュール種別毎に求められた処理性能評価係数を、前記評価対象プログラムのタスクを構成する各モジュール種別の比率によって重み付けすることによって、前記処理性能換算係数を算出するものである請求項１記載のソフトウェアの移植評価装置。
【請求項３】
電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置における処理性能から、第二処理装置における処理性能を換算する処理性能換算係数を算出する処理性能換算係数算出手段を備えてなり、前記処理性能換算係数算出手段は、複数のタスクからなる所定のプログラムの前記第一処理装置と前記第二処理装置とにおけるタスクを構成するモジュール種別毎に求められた処理性能の比率である処理性能評価係数に、前記評価対象プログラムのタスクを構成する各モジュール種別の比率によって重み付けすることによって、前記処理性能換算係数を算出するソフトウェアの移植評価装置。
【請求項４】
電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置で使用されるメモリ容量から、第二処理装置で使用されるメモリ容量を算出するソフトウェアの移植評価装置であって、
所定のプログラムの前記第一処理装置と前記第二処理装置とで使用されるタスクまたはタスクを構成するモジュール種別毎のメモリ容量から前記第二処理装置で使用されるメモリ容量を換算する近似式を算出する近似式算出手段と、評価対象プログラムに対して、前記第一処理装置で使用されるメモリ容量から前記第二処理装置で使用されるメモリ容量を、前記近似式に基づいて算出するメモリ容量換算処理手段を備えてなるソフトウェアの移植評価装置。
【請求項５】
電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置における処理性能から、第二処理装置における処理性能を算出するソフトウェアの移植評価方法であって、
所定のプログラムの前記第一処理装置と前記第二処理装置とにおける処理性能から求められる処理性能評価係数を前記評価対象プログラムのタスクを構成するモジュール特性により重み付けして得られる処理性能換算係数に基づいて、前記処理性能を算出する処理性能換算処理ステップと、
算出された処理性能が許容処理性能を満たしているか否かを判断する性能評価ステップと、前記性能評価ステップで許容処理性能を満たしていないと評価されたときに前記処理性能換算係数を変更する評価内容変更ステップと、
変更された処理性能換算係数に基づいて前記処理性能換算処理ステップおよび前記評価ステップを実行するソフトウェアの移植評価方法。
【請求項６】
前記処理性能換算処理ステップは、所定のプログラムのタスクを構成するモジュール種別毎に求められた処理性能評価係数を、前記評価対象プログラムのタスクを構成する各モジュール種別の比率によって重み付けすることによって、前記処理性能換算係数を算出するものであり、前記重みが変更されることにより前記処理性能換算係数が変更されるものである請求項５記載のソフトウェアの移植評価方法。
【請求項７】
電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置で使用されるメモリ容量から、第二処理装置で使用されるメモリ容量を算出するソフトウェアの移植評価方法であって、
所定のプログラムの前記第一処理装置と前記第二処理装置とで使用されるタスクまたはタスクを構成するモジュール種別毎のメモリ容量から前記第二処理装置で使用されるメモリ容量を換算する近似式を算出する近似式算出ステップと、評価対象プログラムに対して、前記第一処理装置で使用されるメモリ容量から前記第二処理装置で使用されるメモリ容量を、前記近似式に基づいて算出するメモリ容量換算処理ステップと、算出されたメモリ容量が許容メモリ容量を満たしているか否かを判断する容量評価ステップと、前記容量評価ステップで許容メモリ容量を満たしていないと評価されたときに、前記評価対象プログラムを変更する評価内容変更ステップを備えてなるソフトウェアの移植評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両等に搭載される電子制御ユニットの処理装置に組み込まれる複数のタスクからなるソフトウェアの移植評価装置に関する。
【背景技術】
【０００２】
車両等に搭載される電子制御ユニットの処理装置であるマイクロコンピュータに組み込まれるソフトウェアリソースとしてのプログラムは、制御対象であるエンジン等の性能向上や高機能化、さらには排ガス規制等の法的規制に対応して先行開発される必要がある。
【０００３】
そのようなプログラムが組み込まれるマイクロコンピュータも日進月歩しており、性能向上が見込まれる次世代のマイクロコンピュータをターゲットとしてプログラムを先行開発できるように開発環境が構築されつつある。
【０００４】
例えば、特許文献１には、電子制御ユニットに組み込まれて使用される組込み用マイコンのロジックを開発する装置であって、ロジック処理を行う第１の中央処理装置と、ロジックのプログラムを含むデータを記憶する第１のメモリと、外部との通信を行う第１のインターフェースと、及びこれらを接続する第１の内部バスとを少なくとも備えた第１のブロックと、マイコンの周辺装置を擬似的にソフトウェアで実現する疑似マイコン周辺装置と、外部との通信を行う第２のインターフェースと、及びこれらを接続する第２の内部バスとを少なくとも備えた第２のブロックと、第１と第２のブロックを接続するインターフェースバスとを備え、これら第１と第２のブロック及びインターフェースバスによって、組込み用マイコンに置き換えてロジックを動作させるようにしたマイコンのロジック開発装置が提案されている。
【０００５】
このようなロジック開発装置は、電子制御ユニットに搭載されるマイクロコンピュータのパフォーマンスを凌駕するパーソナルコンピュータ等に用いられる高性能ＣＰＵが搭載され、相当の期間にわたり自由度の高いプログラムを先行開発することができるように構成されている。
【０００６】
しかし、このような開発環境で開発されたソフトウェアリソースであるプログラムを、量産環境として選定されたターゲットとなるマイクロコンピュータに移植する際に、予定されているＲＯＭやＲＡＭのメモリ容量に収まり、パフォーマンスが実現できるか否かは定かではないため、実際に移植して動作確認する必要があるが、このような作業は極めて煩雑で重大な開発ロスが生じるという問題があった。
【０００７】
そのため、従来、生成された評価対象プログラムの開発環境におけるＲＯＭやＲＡＭのメモリ容量から量産環境に移植した際に必要となるメモリ容量を推定して評価する方法として、予めモデルプログラム（ベンチマークプログラムともいう）に対する開発環境と量産環境におけるメモリ容量を、前記モデルプログラムを構成する個々のタスクより上位の機能単位で纏まりのあるファイル単位で求め、ファイル毎に求められた開発環境と量産環境におけるメモリ容量換算係数の平均値をメモリ容量換算係数として導出しておき、評価対象プログラムの量産環境において必要とされるメモリ容量を、当該メモリ容量換算係数に基づいて開発環境におけるメモリ容量から換算出力する方法が提案されていた。
【０００８】
尚、開発されたソースプログラムを量産環境におけるマイクロコンピュータに対応するコンパイラやアセンブラでオブジェクトプログラムに変換することによりプログラムサイズを求めることは可能であるが、そのためにソースプログラムを使用するコンパイラやアセンブラに対応するように修正する必要があり、この変換処理のための作業が煩雑となり、実用性に欠けるという問題もあった。
【０００９】
また、前記評価対象プログラムの開発環境におけるパフォーマンス実測値から量産環境に移植した際のパフォーマンスを推定して評価する方法として、予めモデルプログラムに対する開発環境と量産環境における処理速度を当該モデルプログラムを構成するタスク単位で実測し、タスク単位のパフォーマンスの比率を評価用の速度換算係数として導出しておき、評価対象プログラムの量産環境における各タスクのパフォーマンスを、当該速度換算係数に基づいて開発環境で実測される各タスクのパフォーマンスから換算出力する方法が提案されていた。
【００１０】
一方、特許文献２にあるように、汎用の計算機システムでは、計算機システムの構成、アプリケーションプログラムの変更等の計算機システムの稼働状況の変更に伴う処理性能の変化率を算出する性能予測装置として、計算機システム及び当該計算機システムで実行されるアプリケーションプログラムの処理性能情報をもとに前記アプリケーションプログラムを構成する複数のタスクを、当該タスク毎に前記計算機システムで稼働したときの前記タスク毎の処理実行時間である無負荷レスポンスを推定する無負荷レスポンス推定手段と、前記処理性能情報をもとに前記計算機システムで前記タスクを複数稼働したときの前記タスク毎の処理実行時間である稼働レスポンスを推定する稼働レスポンス推定手段と、前記無負荷レスポンス及び前記稼働レスポンスに基づき、負荷の変化に伴う前記計算機システムの処理性能の変化率である固有変化率を検出する固有変化率検出手段とを備える計算機システムの性能予測装置が提案されている。
【００１１】
【特許文献１】特開２００３−１６７７５６号公報
【特許文献２】特開平９−２１８８０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、上述した従来の換算係数に基づいてメモリ容量やパフォーマンスを換算する方法や性能予測装置によれば、何れもファイル単位やタスク単位という大きな括りで評価するものであるため、その精度が極めて低く実用に供し得ないという問題があった。
【００１３】
例えば、車両等に搭載される電子制御ユニットの処理装置で実行されるプログラムは極めて短い時間内に要求される処理を確実に実行する必要があり、タスク単位での評価に止まると、タスクを構成する複数のモジュールのどの部分をチューニングする必要があるのかといった細部の評価が十分に行えず、その結果、プログラムを実際に量産環境に移植して動作確認しながらチューニングせざるを得ず、従来の問題を解消することができないのである。そのため、最終的なターゲットの決定までに極めて長い期間を要し、新製品のタイムリーな市場投入が困難になるという問題があった。
【００１４】
本発明の目的は、上述の従来欠点に鑑み、開発環境で実測されたプログラムサイズやパフォーマンスに基づいて量産環境での、プログラムやデータ等を格納するのに必要なＲＯＭの容量や変数を格納したり作業領域として必要なＲＡＭの容量等としてのメモリ容量や、処理速度や応答時間等の処理性能としてのパフォーマンスを精度良く換算して、適切なターゲットの選定及びターゲットに対するチューニング作業をより迅速に行なうことのできるソフトウェアリソースの移植評価装置、及び、評価方法を提供する点にある。
【課題を解決するための手段】
【００１５】
上述の目的を達成するため、本発明によるソフトウェアの移植評価装置の第一の特徴構成は、電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置における処理性能から、第二処理装置における処理性能を算出するソフトウェアの移植評価装置であって、所定のプログラムの前記第一処理装置と前記第二処理装置とにおける処理性能から求められる処理性能評価係数を、前記評価対象プログラムのタスクを構成するモジュール特性により重み付けして得られる処理性能換算係数に基づいて算出する処理性能換算処理手段を備えてなる点にある。
【００１６】
上述の構成によれば、予め得られたモデルプログラム等の所定のプログラムに対する処理性能評価係数、つまり、開発環境で使用される第一処理装置と量産環境で使用される第二処理装置の夫々の特性を反映したパフォーマンス評価係数により、一般的なパフォーマンス換算を行なうのではなく、さらに評価対象プログラムのタスクを構成するモジュール特性により重み付けした処理性能換算係数を求めることにより、評価対象プログラムに特化したパフォーマンスを精度良く求めることができるようになるのである。
【００１７】
ここで、前記処理性能換算係数は、電子制御ユニットの処理装置に組み込まれる複数のタスクからなる所定のプログラムに対して、前記第一処理装置で実行される各タスクを構成するモジュール単位の処理性能と前記第二処理装置で実行される前記モジュール単位の処理性能との比率である処理性能評価係数に、前記評価対象プログラムの各モジュールの実行負荷比率による重み係数を掛けた値に基づいて得られるものであることが好ましい。
【００１８】
つまり、開発環境で使用される第一処理装置と量産環境で使用される第二処理装置において夫々実測される所定のプログラムの各タスクを構成する複数のモジュール単位、例えば、ロジック、入出力処理、整数演算処理、浮動小数点演算処理などのモジュール単位での処理性能評価係数が求められるので、例えば、各処理装置の中核部分を構成するマイクロコンピュータのアーキテクチャに依存する単位でのパフォーマンスの換算処理が行なえ、当該処理性能評価係数に、評価対象プログラムの各タスクを構成するモジュール単位の実行割合などで表される実行負荷比率による重み係数を掛けた値に基づいて、各タスクの処理性能換算係数が求められるので、そのような処理性能換算係数によれば、前記評価対象プログラムの特性を反映した前記第二処理装置におけるパフォーマンスを適正に算出することができるようになるのである。
【００１９】
同第二の特徴構成は、同請求項４に記載した通り、電子制御を行なう処理装置に組み込まれる複数のタスクからなる評価対象プログラムの、第一処理装置で使用されるメモリ容量から、第二処理装置で使用されるメモリ容量を算出するソフトウェアの移植評価装置であって、所定のプログラムの前記第一処理装置と前記第二処理装置とで使用されるタスクまたはタスクを構成するモジュール種別毎のメモリ容量から前記第二処理装置で使用されるメモリ容量を換算する近似式を算出する近似式算出手段と、評価対象プログラムに対して、前記第一処理装置で使用されるメモリ容量から前記第二処理装置で使用されるメモリ容量を、前記近似式に基づいて算出するメモリ容量換算処理手段を備えてなる点にある。
【００２０】
上述の構成によれば、所定のプログラムに対する第一処理装置と第二処理装置におけるメモリ容量の相関関係つまり近似式が、タスクまたはタスクを構成するモジュール単位で使用されるメモリ容量に基づいて求められるので、そのような近似式によれば、第一処理装置に対して求められた評価対象プログラムのメモリ容量から第二処理装置で必要とされるメモリ容量を極めて高精度に換算処理することができるようになるのである。
【発明の効果】
【００２１】
以上説明した通り、本発明によれば、開発環境で実測されたプログラムサイズやパフォーマンスに基づいて量産環境での、プログラムやデータ等を格納するのに必要なＲＯＭの容量や変数を格納したり作業領域として必要なＲＡＭの容量等としてのメモリ容量や、処理速度や応答時間等の処理性能としてのパフォーマンスを精度良く換算して、適切なターゲットの選定及びターゲットに対するチューニング作業をより迅速に行なうことのできるソフトウェアの移植評価装置、及び、評価方法を提供することができるようになった。
【発明を実施するための最良の形態】
【００２２】
以下、本発明によるソフトウェアの移植評価装置を、車両に搭載されて電子制御を行なう電子制御ユニットの処理装置に組み込まれる評価対象プログラムの開発環境から量産環境への移植評価に適用した実施形態について説明する。
【００２３】
図１に示すように、車両には、ＣＡＮ（コントローラエリアネットワーク）バス２０を介してネットワーク接続された複数の電子制御ユニット（ＥＣＵ）１０が搭載されており、それら複数の電子制御ユニット１０が協動して所期の制御を行なるように構成されている。前記複数の電子制御ユニット１０は、例えば、エンジン制御用ＥＣＵ１１、自動変速機（ＡＴ）制御用ＥＣＵ１２、アンチロック・ブレーキ・システム（ＡＢＳ）制御用ＥＣＵ１３等で構成されている。
【００２４】
前記複数の電子制御ユニット１０は、各々に処理装置としてのマイクロコンピュータが設けられ、前記マイクロコンピュータは、プログラム格納用のＲＯＭと、データ処理のために使用するワーキングエリアとしてのＲＡＭと、前記プログラムを実行するＣＰＵ等を備えて構成されており、前記プログラムに基づいて所定の機能が実現されるように構成されている。
【００２５】
例えば、エンジン制御用ＥＣＵ１１であれば、吸気温センサ１１０、水温センサ１１１、可変バルブタイミング機構において目標バルブタイミングを検知するためのセンサ１１２、アクセルペダルの操作量センサ１１３、バッテリー電圧センサ１１４等の各センサからの入力信号や関連する他の電子制御ユニット、例えば自動変速機制御用ＥＣＵ１２等からの通信データに基づいて、所定のエンジン機能を実現するようにエンジンを制御したり、自らの制御状態を他の電子制御ユニットにデータ送信したりする。
【００２６】
また、他の電子制御ユニット、例えば、前記自動変速機制御用ＥＣＵ１２やＡＢＳ制御用ＥＣＵ１３等では、前記エンジン制御用ＥＣＵ１１へも入力されていた前記アクセルペダルの操作量センサ１１３やバッテリー電圧センサ１１４、その他各々独自に使用されるセンサ１２０、１２１、１３０、１３１等からの入力信号を制御することで、前記複数の電子制御ユニット１０は協働してシステムとしての制御等が実現可能な構成となっている。
【００２７】
上述の各電子制御ユニットに内蔵されるソフトウェアの開発環境は、図２に示すように、前記電子制御ユニット１０、つまり後述する量産ＥＣＵの開発に用いられる先行開発ＥＣＵのマイクロコンピュータとしての第一処理装置３０と、実際に車両に搭載される予定の電子制御ユニット（量産ＥＣＵ）のマイクロコンピュータとしての第二処理装置４０と、前記第一処理装置３０の処理性能やメモリ容量を計測する第一計測装置３１と、前記第二処理装置４０の処理性能やメモリ容量を計測する第二計測装置４１と、前記第一処理装置３０におけるソフトウェアの処理性能やメモリ容量から前記第二処理装置４０におけるソフトウェアの処理性能やメモリ容量を算出する移植評価装置５０を備えて構成されている。
【００２８】
前記メモリ容量とは、プログラムやデータ等を格納するのに必要なＲＯＭの容量や変数を格納したり作業領域として必要なＲＡＭの容量等のことである。また、前記処理性能とは、処理速度や処理時間等の処理性能、つまりパフォーマンスのことであり、本実施形態の移植評価装置５０では、前記処理性能のうちの主に処理速度を算出する構成について説明する。
【００２９】
前記先行開発ＥＣＵは、前記複数の電子制御ユニット１０と同様の機能を擬似的に実現させており、例えば、特開２００３−１６７７５６号公報で提案されているようなロジック開発装置を備えて構成されている。前記ロジック開発装置は、電子制御ユニットに組み込まれて使用される組込み用マイコン（本発明におけるマイクロコンピュータ）のロジックを開発する装置であって、ロジック処理を行う第１の中央処理装置と、ロジックのプログラムを含むデータを記憶する第１のメモリと、外部との通信を行う第１のインターフェースと、及びこれらを接続する第１の内部バスとを少なくとも備えた第１のブロックと、マイコンの周辺装置を擬似的にソフトウェアで実現する疑似マイコン周辺装置と、外部との通信を行う第２のインターフェースと、及びこれらを接続する第２の内部バスとを少なくとも備えた第２のブロックと、第１と第２のブロックを接続するインターフェースバスとを備え、これら第１と第２のブロック及びインターフェースバスによって、組込み用マイコンに置き換えてロジックを動作させるようにした装置である。
【００３０】
尚、先行開発ＥＣＵは上述の構成に限るものではなく、現状使用されているＥＣＵをベースに構築されるものであってもよい。
【００３１】
前記第一計測装置３１は、前記第一処理装置３０の処理速度やメモリ容量を計測する計測プログラムを組み込んだＰＣやワークステーションより構成されており、前記第二計測装置４１は、前記第二処理装置４０の処理速度やメモリ容量を計測する計測プログラムを組み込んだＰＣやワークステーションより構成されている。尚、前記第一計測装置３１や第二計測装置４１は、図２に示すように、前記第一処理装置３０に対して使用する第一計測装置３１と、前記第二処理装置４０に対して使用する第二計測装置４１とを備えた構成の他、前記第一処理装置３０と前記第二処理装置４０の双方の処理速度やメモリ容量を計測する共通の計測装置を備えた構成であってもよい。
【００３２】
前記移植評価装置５０は、前記第一処理装置３０から前記第二処理装置４０にソフトウェアを移植する際に、前記第一処理装置３０におけるソフトウェアの処理速度やメモリ容量から前記第二処理装置４０におけるソフトウェアの処理速度やメモリ容量を算出する装置で、処理速度を算出する性能換算手段６０とメモリ容量を算出する容量換算手段７０を備えて構成されている。
【００３３】
前記性能換算手段６０は、電子制御ユニットの処理装置に組み込まれる複数のタスクからなる評価対象プログラムの第一処理装置３０における処理速度から、前記評価対象プログラムの第二処理装置４０における処理速度を換算する処理性能換算係数を算出する処理性能換算係数算出手段６１と、算出された処理性能換算係数に基づいて前記評価対象プログラムの第二処理装置４０における処理速度を算出する処理性能換算処理手段６２と、前記処理性能換算処理手段６２で算出された処理速度が許容処理速度を満たしているか否かを判断する性能評価手段６３と、前記性能評価手段６３で許容処理速度を満たしていないと評価されたときに前記処理性能換算係数を変更する評価内容変更手段６４とを備えて構成されている。
【００３４】
前記プログラムは、複数のタスクを備えて構成されており、前記タスクは、複数の関数やクラスを備えて構成されている。前記タスクの各々は、主タスクとして燃料噴射量演算や燃料点火時期演算等の所定の演算処理を繰り返し実行するベース処理ルーチンや、エンジン回転数演算実行信号や車速演算実行信号等といった前記タスクの外部からの割込み信号に基づいて特定タスクとしての演算処理を行う割込処理ルーチンや、前記ベース処理ルーチンや前記割込処理ルーチンにおける処理に用いるために、温度や吸気量等のアナログデータをディジタルデータに変換するＡ／Ｄ変換処理ルーチン等の処理を表している。
【００３５】
前記評価対象プログラムは、実際に車両に搭載される予定の電子制御ユニット（量産ＥＣＵ）のマイクロコンピュータに搭載して動作させることを目的として開発されている開発ソフトウェアであり、電子制御ユニットの機種毎に特化した構成となっている。
【００３６】
前記処理性能換算係数算出手段６１は、前記評価対象プログラムの前記第一処理装置３０における処理速度から、前記評価対象プログラムの前記第二処理装置４０における処理速度を換算する処理性能換算係数を算出するように構成されており、処理性能評価係数算出手段６１０と、重み係数算出手段６１１と、重み付け演算手段６１２とを備えて構成されている。
【００３７】
前記処理性能評価係数算出手段６１０は、電子制御ユニットの処理装置に組み込まれる複数のタスクからなる所定のプログラムとしてのモデルプログラムに対して、前記第一処理装置３０で実行される各タスクを構成するモジュール単位の処理速度と前記第二処理装置４０で実行される前記モジュール単位の処理速度との比率である処理性能評価係数を算出するように構成されている。
【００３８】
前記モデルプログラムは、前記第一処理装置３０と前記第二処理装置４０の処理速度を計測するためのベンチマーク用のソフトウェアであって、前記評価対象プログラムが、電子制御ユニットの機種毎に特化した構成となっているのに対して、前記モデルプログラムは、電子制御ユニットの本質的な処理より構成されており、各電子制御ユニットで実行されるほぼ共通のタスクの集合体で構成されている。
【００３９】
前記処理性能評価係数算出手段６１０について詳述すると、図３に示すように、前記第一処理装置３０と前記第二処理装置４０の各々において、同一のモデルプログラム内のタスクＴ１を実行させて、前記タスクＴ１を構成するモジュール（Ｔ２１からＴ２ｎ）単位で処理速度を算出する。
【００４０】
前記モジュール（Ｔ２１からＴ２ｎ）は、図３に示すように、処理Ａからアルファベット順で示されている各処理であって、前記タスクＴ１における各処理内容（つまり、図３ではｎ種類の処理内容）を表しており、前記各処理内容は、変数への値の代入・分岐・繰り返し等のロジック処理や、外部との入出力処理（Ｉ／Ｏ）や、整数演算や浮動小数点演算等の演算処理その他の処理を表している。
【００４１】
算出されたモジュール単位の処理速度として表される前記第一処理装置３０における第一処理結果（Ｔ３１からＴ３ｎ）と前記第二処理装置４０における第二処理結果（Ｔ４１からＴ４ｎ）は、図３において、処理Ａ結果からアルファベット順で示されている各処理で表されており、前記第一処理結果を前記第一処理結果と同一のモジュールについての前記第二処理結果で除した値、例えば、前記第一処理結果Ｔ３１を前記第二処理結果Ｔ４１で除した値が前記処理性能評価係数として算出される。
【００４２】
前記重み係数算出手段６１１は、前記評価対象プログラムの各モジュール種別の比率による重み付けとして、前記評価対象プログラムの各モジュールの実行負荷比率による重み係数を算出するように構成されている。詳述すると、図４に示すように、評価対象プログラム内のタスクＴ５を前記モジュールの種類毎、例えば、入出力処理Ｔ２１と、演算処理Ｔ２２と、前記入出力処理Ｔ２１と演算処理Ｔ２２以外の処理としてのロジック処理Ｔ２３とに分類して、前記タスクＴ１の処理全体の実行回数に対する各モジュールの処理実行回数の割合を重み係数ｒ１、ｒ２、ｒ３として算出する。例えば、前記タスクＴ５全体の実行回数が１０００回で、前記入出力処理Ｔ２１の実行回数が３００回である場合、前記重み係数ｒ１は０．３となる。尚、重み係数の単位はパーセント等であってもよい。
【００４３】
別の例として、Ｃ言語で示されたタスクの重み係数算出について示すと、図５（ａ）に示すように、タスクＴ５の各プロセスのうち、処理が実行されない部分を対象外とした上で（処理Ｐ）、図５（ｂ）に示すように、前記各プロセスをモジュールの種類毎に分類する。図５（ｂ）では、プロセスＰ１が入出力処理に、プロセスＰ２が整数演算処理に、プロセス４がロジック処理に、プロセス５が浮動小数点演算処理に、プロセス６がロジック処理に各々分類されており、プロセスＰ３が前記処理Ｐにて削除されている。そして、図５（ｃ）に示すように、前記タスクＴ５の処理全体の実行回数に対する各モジュールの処理実行回数の割合を重み係数ｒ１からｒｎとして算出する。
【００４４】
前記重み付け演算手段６１２は、前記重み係数算出手段６１１において算出された前記重み係数を前記処理性能評価係数に掛けた値に基づいて、前記処理性能換算係数を算出する。つまり、処理性能換算係数は、予め求められたモデルプログラムに対する処理性能評価係数を前記評価対象プログラムのタスクを構成するモジュール特性、つまりモジュールの実行負荷比率により重み付けして得られる係数である。
【００４５】
詳述すると、図３に示すように、相互に同一のモジュール（例えば処理Ａ）についての前記処理性能評価係数（例えば第一処理結果Ｔ３１を第二処理結果Ｔ４１で除した値）と重み係数（例えばｒ１）を乗算した値を、タスクに含まれる全てのモジュールについて加算した値が、前記処理性能換算係数として算出される。
【００４６】
前記処理性能換算処理手段６２は、算出された前記処理性能換算係数に基づいて前記第二処理装置４０における処理速度を算出するように構成されており、具体的には、前記第一処理装置３０に前記評価対象プログラムを組み込んだ場合の処理速度に前記処理性能換算係数を乗算した値を、前記第二処理装置４０の処理速度として算出する。
【００４７】
前記性能評価手段６３は、算出された処理速度が実際に車両に搭載された際に必要な処理速度である許容処理速度を満たしているか否かを判断するように構成されている。詳述すると、前記第二処理装置４０が動作可能な最大速度を許容処理速度として前記性能評価手段６３に登録しておき、前記処理性能換算処理手段６２において算出された処理速度を登録した前記許容処理速度と比較して、前記算出された処理速度が前記許容処理速度より低速である場合に、前記第二処理装置４０では、許容処理速度を満たす速度で評価対象プログラムを動作させることが不可能であるとの結果を出力するように構成されている。
【００４８】
前記評価内容変更手段６４は、算出された処理速度が前記性能評価手段６３で許容処理速度を満たしていないと評価されたときに前記処理性能換算係数を変更するように構成されている。詳述すると、予め設定された規定、例えば、許容処理速度を満たすために各重み係数を一定値ずつ増減させるような規定に基づいて変更された重み係数により新たな処理性能換算係数を導出するのである。
【００４９】
さらには、前記評価内容変更手段６４が、前記第一処理装置に前記評価対象プログラムを組み込んだ場合の処理速度や、前記評価対象プログラムの一部を自動変更することにより個別の重み係数を変更するように構成するものであってもよい。
【００５０】
一例としては、前記評価内容変更手段６４が、評価対象プログラムに含まれる浮動小数点演算処理の精度を落とす（バイト数を減らす等）ように変更し、この変更に伴う前記評価対象プログラムを第一処理装置に組み込んだ場合の処理速度の変更を行うことにより、前記評価対象プログラム内の各モジュールの重み係数の変更を行うケースが考えられる。
【００５１】
その後、オペレータ（プログラム評価者）は、変更が行われた結果、許容処理速度を満たすと判断された評価対象プログラムに対して、評価された処理性能換算係数や重み係数等の条件が満たされるように留意しながら、具体的な修正や量産ＥＣＵの性能（仕様）見直し等の作業を行なう。
【００５２】
尚、前記評価内容変更手段６４における前記処理性能換算係数等の変更は、上述した自動的に変更される構成の他にオペレータ（プログラム評価者）による手入力で変更される構成であってもよい。詳述すると、前記評価内容変更手段６４は、オペレータによって、前記重み係数や前記処理性能換算係数等の変更が可能なキーボードやマウスで構成された入力部と、前記入力部で入力された前記重み係数や、前記評価対象プログラムや、前記処理性能換算係数等が表示される表示部とを備えた構成であってもよい。
【００５３】
この場合、オペレータ（プログラム評価者）は、評価対象プログラムをどのように修正することが可能かを検討し、その修正内容に応じて処理性能換算係数や重み係数等の変更を行ったり、実際に評価対象プログラムを修正した後に、再度性能評価手段６３で評価することによって、許容速度を満たす評価対象プログラムを作成することができる。
【００５４】
前記移植評価装置５０は、前記評価内容変更手段６４によって変更された処理性能換算係数に基づいて、前記処理性能換算処理手段６２および前記評価手段６３を実行するように構成されており、前記処理性能換算係数が最適値であると前記評価手段６３またはオペレータが判断するまで上記動作を繰り返す。
【００５５】
以上の説明においては、前記移植評価装置５０は、処理性能として処理速度のみを算出する構成について説明したが、前記処理性能は、前記処理速度の代わりにまたは前記処理速度に加えて処理速度以外の要素を算出する構成であってもよい。前記要素としては、例えば、モジュールやプログラム等の実行時間である処理時間を算出する構成であってもよい。
【００５６】
また、以上の説明においては、前記移植評価装置５０は、所定のプログラムとして、モデルプログラムを用いて処理性能評価係数を算出する構成について説明したが、前記所定のプログラムとして前記モデルプログラム以外のプログラムを用いる構成であってもよい。例えば、前記モデルプログラムのようなベンチマーク用に特別に用意したプログラム以外のプログラムであって、過去に使用された評価対象プログラムであってもよい。但し、第一処理装置３０と第二処理装置４０で動作させるプログラムは、コンパイラ等の関係で若干異なったとしても、基本的には同じプログラムを用いるように構成されている。
【００５７】
さらに、以上の説明においては、前記評価対象プログラムの各モジュール種別の比率による重み付けとして、前記評価対象プログラムの各モジュールの実行負荷比率による重み係数を算出する構成について説明したが、前記各モジュール種別の重み付けとして、前記実行負荷比率以外の比率を用いる構成であってもよい。例えば、前記評価対象プログラム内に存在する前記各モジュールの数による比率によって前記重み係数を算出する構成や、前記各モジュールのプログラム内における行数や文字数の合計による比率によって前記重み係数を算出する構成であってもよい。
【００５８】
以上のように、前記性能評価手段６３や前記評価内容変更手段６４を備えた構成とすることによって、前記パラメータやプログラムを試行錯誤しつつ変更することで、前記処理性能換算係数を最適な値に近づけることが可能となるのである。
【００５９】
前記容量換算手段７０は、前記第一処理装置３０から前記第二処理装置４０にソフトウェアを移行する際に、前記第一処理装置３０におけるメモリ容量から前記第二処理装置４０におけるメモリ容量を算出するように構成されており、電子制御ユニットの処理装置に組み込まれる複数のタスクからなるモデルプログラムに対して、第一処理装置で実行されるタスクまたはタスクを構成するモジュール単位のメモリ容量と、第二処理装置で実行されるタスクまたはタスクを構成するモジュール単位のメモリ容量とに基づいて、前記モデルプログラムの前記第一処理装置３０で実行されるメモリ容量から前記第二処理装置４０で実行されるメモリ容量を換算する近似式を算出する近似式算出手段７１と、電子制御ユニットの処理装置に組み込まれる評価対象プログラムに対して、前記第一処理装置３０で実行されるメモリ容量から前記第二処理装置４０で実行されるメモリ容量を、前記近似式に基づいて算出するメモリ容量換算処理手段７２と、算出されたメモリ容量が許容メモリ容量を満たしているか否かを判断する容量評価手段７３とを備えて構成されている。
【００６０】
前記近似式算出手段７１は、前記モデルプログラムの前記第一処理装置３０で実行される前記メモリ容量から前記第二処理装置４０で実行される前記メモリ容量を換算する近似式を算出するように構成されている。前記近似式は、以下に示すように３ステップにて算出されるように構成されている。
【００６１】
第一ステップとして、前記第一処理装置３０にモデルプログラムを組み込んだ場合のメモリ容量と、前記第二処理装置４０に前記モデルプログラムを組み込んだ場合のメモリ容量を、タスクまたはモジュール単位で実測する。この場合の前記メモリ容量は、ＲＯＭに記憶されている前記モデルプログラムの容量と、前記モデルプログラムの実行時にＲＡＭに展開されることによって発生するＲＡＭに記憶されている前記モデルプログラムによるデータ等の容量の両方を含んでいる。
【００６２】
第二ステップとして、実測した各タスクまたはモジュールのメモリ容量のマップを作成する。前記マップは、前記第一処理装置３０に前記モデルプログラムを組み込んだ場合のメモリ容量と、前記モデルプログラムを前記第二処理装置４０に組み込んだ場合のメモリ容量を各々座標軸とした、図６に示すような２次元座標平面上に作成される。そして、前記２次元座標平面上に、前記第一処理装置３０におけるタスクまたはモジュールのメモリ容量に対する、前記第二処理装置４０における前記タスクまたは前記モジュールのメモリ容量をプロットすることでマップを作成する。前記マップは、図６に示すように、黒点（そのうちの一点をＢで示す）で示された各々の点が、各タスクまたは各モジュールのメモリ容量に相当するように作成される。
【００６３】
第三ステップとして、前記マップ上の前記黒点の分布から近似式ｆを導出する。詳述すると、ｉ種類のタスクまたはモジュールより構成される前記モデルプログラムにおいて、前記第一処理装置３０におけるタスクまたはモジュールのメモリ容量をｘｎ（ｎ：１からｉの整数）、前記第二処理装置４０におけるタスクまたはモジュールのメモリ容量をｙｎ（ｎ：１からｉの整数）とした複数のデータ（ｘｎ，ｙｎ）を、最小２乗法によってｙ＝ａ＋ｂｘの一次式やｙ＝ａｘ＋ｂｘ２の二次式等に近似させるための係数ａとｂを導出する方法等の公知の方法を使用するように構成されている。
【００６４】
前記メモリ容量換算処理手段７２は、算出された前記近似式に基づいて、電子制御ユニットの処理装置に組み込まれる評価対象プログラムに対して、前記第一処理装置３０で実行されるメモリ容量から前記第二処理装置４０で実行されるメモリ容量を算出するように構成されており、詳述すると、前記第一処理装置３０に前記評価対象プログラムを組み込んだ場合のメモリ容量を、前記近似式の変数（ｘまたはｙ）に代入することで、前記第二処理装置４０に前記評価対象プログラムを組み込んだ場合のメモリ容量（ｙまたはｘ）を算出する。つまり、図６の２次元座標平面上に描かれた近似式ｆにおいて、前記第一処理装置３０に前記評価対象プログラムを組み込んだ場合のメモリ容量を縦軸の値として適用した際に、前記縦軸の値に対応する横軸の値が、前記第二処理装置４０に前記評価対象プログラムを組み込んだ場合のメモリ容量として算出される。
【００６５】
前記容量評価手段７３は、算出されたメモリ容量が許容メモリ容量を満たしているか否かを判断するように構成されている。詳述すると、前記第二処理装置４０が搭載可能な最大メモリ容量を許容メモリ容量として前記容量評価手段７３に登録しておき、前記メモリ容量換算処理手段７２において算出されたメモリ容量を登録した前記許容メモリ容量と比較して、前記算出されたメモリ容量が前記許容メモリ容量より大きい場合に、前記算出されたメモリ容量で前記第二処理装置４０を動作させることが不可能であるとの結果を出力するように構成されている。
【００６６】
前記評価内容変更手段７４は、前記容量評価手段７３で許容メモリ容量を満たしていないと評価されたときに、前記評価対象プログラムを変更するように構成されている。詳述すると、前記評価対象プログラムに対して、予め設定された規定、例えば、許容メモリ容量を満足させるために特定のモジュールを削除したり、ＲＡＭをアクセスするアドレス範囲を制限する等により実質的にメモリサイズを縮小して、前記容量評価手段７３で許容メモリ容量を満たしていると判断されるメモリ容量が算出されるような内容に自動的に変更するように構成されている。オペレータ（プログラム評価者）は、変更された評価対象プログラムに基づいて、更なる評価対象プログラムの修正や量産ＥＣＵの性能（仕様）見直し等の作業を行う。
【００６７】
尚、前記評価内容変更手段７４における前記評価対象プログラムの変更は、上述した自動的に変更される構成の他にオペレータ（プログラム評価者）による手入力で変更される構成であってもよい。詳述すると、前記評価内容変更手段７４は、オペレータによって、前記評価対象プログラムの変更が可能なキーボードやマウスで構成された入力部と、前記入力部で入力された前記評価対象プログラムや、前記評価対象プログラムに基づいた算出されたメモリ容量等が表示される表示部とを備えた構成であってもよい。
【００６８】
この場合、オペレータ（プログラム評価者）は、評価対象プログラムをどのように修正することが可能かを検討し、その修正内容に応じてマイクロコンピュータの構成等の変更を行ったり、実際に評価対象プログラムを修正した後に、再度容量評価手段７３で評価することによって、許容メモリ容量を満たすプログラムを作成することができる。
【００６９】
以上のように、前記容量評価手段７３を備えた構成とすることによって、前記マイクロコンピュータの構成や評価対象プログラムを試行錯誤しつつ変更することで、的確にメモリ容量を許容範囲内とすることが可能となるのである。
【００７０】
以下、前記移植評価装置５０における処理速度とメモリ容量の評価について、図７と図８に示すフローチャートに基づいて説明する。
【００７１】
まず、目的とする評価対象プログラムの評価を行う前に、評価に用いる近似式や処理性能評価係数の算出を行う。
【００７２】
第一処理装置３０に組み込まれたベンチマーク用ソフトウェアとしてのモデルプログラムのモジュール単位のメモリ容量を第一計測装置３１によって計測し（ＳＡ１）、第二処理装置４０に組み込まれた前記モデルプログラムのモジュール単位のメモリ容量を、第二計測装置４１によって計測して（ＳＡ２）、近似式算出手段７１は、計測された両者のメモリ容量に基づいて近似式を算出する（ＳＡ３）。
【００７３】
前記第一処理装置３０に組み込まれた前記モデルプログラムのモジュール単位の処理速度を前記第一計測装置３１によって計測し（ＳＢ１）、前記第二処理装置４０に組み込まれた前記モデルプログラムのモジュール単位の処理速度を、前記第二計測装置４１によって計測して（ＳＢ２）、処理性能評価係数算出手段６１０は、計測された両者の処理速度に基づいて処理性能評価係数を算出する（ＳＢ３）。
【００７４】
これら図７（ａ）、（ｂ）の処理は、評価対象プログラムの評価を行う前に、予め用意しておいたベンチマーク用のプログラムを、第一処理装置と第二処理装置とで実際に動作させてみて、その際の処理速度やメモリ容量等から近似式や処理性能評価係数の算出を行うものである。尚、この際に用いるプログラムはベンチマーク用に特別に用意したプログラムでなくてもよく、過去に評価した評価対象プログラムであってもよい。但し、第一処理装置と第二処理装置で動作させるプログラムは、コンパイラ等の関係で若干異なったとしても、基本的に同じプログラムを用いるのがよい。
【００７５】
評価を行うための事前準備が整うと、次に評価対象プログラムの評価を行う。
【００７６】
前記第一処理装置３０に開発ソフトウェアとしての評価対象プログラムを組み込み、前記評価対象プログラムの前記第一処理装置３０における処理速度やメモリ容量を前記第一計測装置３１によって計測する（ＳＣ１）。
【００７７】
容量の換算について以下で説明する。メモリ容量換算処理手段７２は、ステップＳＣ１において計測された前記メモリ容量に前記近似式を適用することによって、前記第二処理装置４０に前記評価対象プログラムを組み込んで実行させた場合のメモリ容量を算出する（ＳＣ２）。
【００７８】
容量評価手段７３は、算出されたメモリ容量が予め登録しておいた許容メモリ容量の規定値を満たしているか否かを判断する（ＳＣ３）。前記許容メモリ容量の規定値を満たしている場合は、前記評価対象プログラムの前記第二処理装置４０への移植を実行する（ＳＣ１０）。一方、前記許容メモリ容量の規定値を満たしていない場合は、オペレータが、前記評価対象プログラムの内容を変更することによって、前記評価対象プログラムの調整を行う（ＳＣ４）。そして、調整した前記評価対象プログラムにて、再びメモリ容量の算出を行う。この処理は、前記容量評価手段７３が、算出されたメモリ容量が前記許容メモリ容量の規定値を満たしていると判断するまで繰り返される。
【００７９】
速度の換算について以下で説明する。重み係数算出手段６１１は、前記評価対象プログラムの各モジュールの実行負荷比率による重み係数を算出し（ＳＣ５）、重み付け演算手段６１２は、前記重み係数算出手段６１１において算出された前記重み係数を前記処理性能評価係数に掛けた値に基づいて、処理性能換算係数を算出する（ＳＣ６）。そして、処理性能換算処理手段６２は、ステップＳＣ１において計測された前記処理速度に前記処理性能換算係数を適用することによって、前記第二処理装置４０に前記評価対象プログラムを組み込んで実行させた場合の処理速度を算出する（ＳＣ７）。
【００８０】
性能評価手段６３は、算出された処理速度が予め登録しておいた許容処理速度の規定値を満たしているか否かを判断する（ＳＣ８）。前記許容処理速度の規定値を満たしている場合は、前記評価対象プログラムの前記第二処理装置４０への移植を実行する（ＳＣ１０）。一方、前記処理速度の規定値を満たしていない場合は、評価内容変更手段６４が自動で前記処理性能換算係数等を変更することで、またはオペレータが手動で前記処理性能換算係数等を変更することで、前記評価対象プログラムの調整を行う（ＳＣ９）。そして、調整した前記評価対象プログラムにて、再び処理速度の算出を行う。この処理は、前記性能評価手段６３が、算出された処理速度が前記許容処理速度の規定値を満たしていると判断するまで繰り返される。
【００８１】
以下、別実施形態について説明する。上述の実施形態では、処理性能換算係数算出手段６１において、評価対象プログラム内の各モジュールの実行負荷比率によって重み係数を算出して、算出した重み係数を各タスクに適用することで、処理性能換算係数を前記タスク毎に算出する構成について説明したが、前記処理性能換算係数は前記タスク以外、例えば、前記評価対象プログラム毎に算出する構成であってもよい。
【００８２】
詳述すると、前記処理性能換算係数算出手段６１において、モジュールの実行負荷比率による前記重み係数に加えて、前記評価対象プログラムを構成するタスクの実行負荷比率による第二重み係数を算出するように構成して、算出した第二重み係数を前記評価対象プログラムに適用することで、前記処理性能換算係数を前記評価対象プログラム毎に算出する構成であってもよい。
【００８３】
上述の実施形態では、処理性能評価係数算出手段６１０と近似式算出手段７１は、何れも移植評価装置５０に含まれている構成について説明したが、前記処理性能評価係数算出手段６１０や前記近似式算出手段７１は、前記移植評価装置５０に含まれていない構成であってもよい。
【００８４】
例えば、前記処理性能評価係数算出手段６１０や前記近似式算出手段７１が、第一計測装置３１や第二計測装置４１に含まれる構成であってもよい。
【００８５】
上述の実施形態では、重み係数算出手段６１１において、タスクの処理全体の実行回数に対する各モジュールの処理実行回数の割合を重み係数として算出する構成について説明したが、実行回数ではなく実行時間で重み付けする構成であってもよい。このような構成とすることによって、回数は少ないが実行時間が長いモジュールに重みを置いた重み係数を算出することが可能となる。
【００８６】
以上説明した本発明による移植評価装置５０は、処理性能換算係数算出手段６１を処理性能換算係数算出ステップとして、処理性能換算処理手段６２を処理性能換算処理ステップとして、性能評価手段６３を速度評価ステップとして、評価内容変更手段６４を評価内容変更ステップとして、近似式算出手段７１を近似式算出ステップとして、メモリ容量換算処理手段７２をメモリ容量換算処理ステップとして、そして、容量評価手段７３を容量評価ステップとする移植評価方法としても実現される。
【００８７】
上述した実施形態では、ソフトウェアリソースの移植評価装置を、電子制御ユニットの処理装置に組み込まれるソフトウェアに対して評価するものを説明したが、本発明による移植評価装置は車両に搭載される電子制御ユニットに対するソフトウェアに限るものではなく、例えば、プリンタ等のＯＡ機器の電子制御ユニットに対するソフトウェア等に広く適用することができる。
【００８８】
尚、上述した実施形態は、本発明の一例に過ぎず、本発明の作用効果を奏する範囲において各ブロックの具体的構成等を適宜変更設計できることは言うまでもない。
【図面の簡単な説明】
【００８９】
【図１】複数の電子制御ユニットのブロック構成図
【図２】移植評価装置のブロック構成図
【図３】処理性能換算係数算出の説明図
【図４】重み係数算出の説明図
【図５】（ａ）は、における未実行処理排除処理を示し、（ｂ）は、プロセスのモジュール種類毎の分類を示し、（ｃ）は、重み係数の算出を示す説明図
【図６】近似式算出のためのグラフの説明図
【図７】近似式と処理性能評価係数算出のフローチャート
【図８】移植評価装置の動作を説明するためのフローチャート
【符号の説明】
【００９０】
３０：第一処理装置
３１：第一計測装置
４０：第二処理装置
４１：第二計測装置
５０：移植評価装置
６１：処理性能換算係数算出手段
６２：処理性能換算処理手段
６３：性能評価手段
６４：評価内容変更手段
７２：メモリ容量換算処理手段
７３：容量評価手段
【図１】
2007299212.tif 000003
【図２】
2007299212.tif 000004
【図３】
2007299212.tif 000005
【図４】
2007299212.tif 000006
【図５】
2007299212.tif 000007
【図６】
2007299212.tif 000008
【図７】
2007299212.tif 000009
【図８】
2007299212.tif 000010