(57)【要約】【課題】組込みマイコン上で動作する浮動小数点演算を行うプログラムを、パソコン用検証プログラムを用いてパソコン上で精度良く検証可能とする。【解決手段】本発明による組込みマイコン用の浮動小数点演算プログラムの検証方法は、組込みマイコンに用いる浮動小数点演算プログラムを、その検証に用いるパソコンのオブジェクト内にセットする工程Ｓ３３と、前記組込みマイコンの型番を前記パソコンに入力する工程Ｓ３１と、検証プログラムを用いて、前記パソコンに、前記組込みマイコンに最適なＣＰＵ制御関数を前記型番に基づき選択する手順Ｓ３２と、選択されたＣＰＵ制御関数を前記オブジェクト内にセットする手順Ｓ３３と、前記オブジェクトにセットされた浮動小数点プログラムを選択されたＣＰＵ制御関数を用いてＣＰＵにより実行する手順Ｓ３４と、を実現させる工程とを有する。【選択図】図４
2009193434.tif 000002
【特許請求の範囲】
【請求項１】
コントロールユニットに組込まれるマイクロプロセッサ（以下「組込みマイコン」と称する）に用いる浮動小数点演算プログラムを、その検証に用いるパーソナルコンピュータ（以下、「パソコン」と称する）のオブジェクト内にセットする工程と、
前記組込みマイコンの型番を前記パソコンに入力する工程と、
検証プログラムを用いて、
前記パソコンに、前記組込みマイコンに最適なＣＰＵ制御関数を前記パソコン或いはソフトウェアに格納されているＣＰＵ制御関数の中から前記型番に基づき選択する手順と、選択されたＣＰＵ制御関数を前記オブジェクト内にセットする手順と、前記オブジェクトにセットされた浮動小数点プログラムを選択されたＣＰＵ制御関数を用いてＣＰＵにより実行する手順と、を実現させる工程と、
を有することを特徴とする浮動小数点演算プログラム用の検証方法。
【請求項２】
請求項１記載の浮動小数点演算プログラム用の検証方法において、
前記パソコンは、前記浮動小数点演算プログラムの作成に用いたものであり、作成された浮動小数点演算プログラムが前記組込みマイコンの型式と関連づけて格納されている浮動小数点演算プログラム用の検証方法。
【請求項３】
請求項１又は２記載の浮動小数点演算プログラム用の検証方法において、
前記組込みマイコンの型番を前記パソコンに入力する工程は、予め前記パソコンに格納された種々の組込みマイコンの型式をディスプレイに表示させて、この表示を介してオペレータが選択して入力するように設定してある浮動小数点演算プログラム用の検証方法。
【請求項４】
請求項１ないし３のいずれか１項記載の浮動小数点演算プログラム用の検証方法において、
前記ＣＰＵ制御関数は、前記ＣＰＵの浮動小数点演算の丸め方向と演算精度を制御する関数である浮動小数点演算プログラムの検証方法。
【請求項５】
コントロールユニットに組込まれるマイクロプロセッサ（以下「組込みマイコン」と称する）に用いる浮動小数点演算プログラムが検証のためにオブジェクト内にセットされ、且つ前記組込みマイコンの型番が入力されるパーソナルコンピュータ（以下「パソコン」と称する）に、
前記組込みマイコンの型番を読み込む機能と、
前記組込みマイコンに最適なＣＰＵ制御関数を前記パソコン或いはソフトウェアに格納されているＣＰＵ制御関数の中から前記型番に基づき選択し、選択されたＣＰＵ制御関数を前記オブジェクト内にセットする機能と、
前記オブジェクトにセットされた浮動小数点プログラムを、選択されたＣＰＵ制御関数を用いて前記パソコンのＣＰＵにより実行する機能と、
を実現させるための浮動小数点演算プログラム用の検証プログラム。
【請求項６】
請求項５記載の浮動小数点演算プログラム用の検証プログラムにおいて、
前記組込みマイコンの型番を読み込む機能は、予め前記パソコンに格納された種々の組込みマイコンの型式をディスプレイに表示する浮動小数点演算プログラム用の検証プログラム。
【請求項７】
請求項５又は６記載の浮動小数点演算プログラム用の検証プログラムにおいて、
前記ＣＰＵ制御関数は、前記ＣＰＵの浮動小数点演算の丸め方向と演算精度を制御する関数である浮動小数点演算プログラム用の検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込みマイコン上で動作する浮動小数点演算プログラムを、パソコン上で検証する方法及び検証プログラムに関する。
【背景技術】
【０００２】
自動車の車両には、コントロールユニットとして多種多様の組込みマイコンが搭載され、電子制御が行われている。近年では電子制御の精密化に伴い、浮動小数点演算を用いて処理する必要のある高度で複雑な制御が組込みマイコンにより行われている。
【０００３】
浮動小数点演算を実行するプログラム（以下、「浮動小数点演算プログラム」と称する）は、演算結果に基づき様々な制御を実行するが、実行環境である組込みマイコンにより演算精度が異なる。各種マイコンにおいて演算精度を保証するためには、それぞれのマイコンで前記プログラムの精度や動作を検証する必要がある。このため、各種マイコンの動作をエミュレーションするエミュレータ技術が用いられ、エミュレータ上で前記プログラムを実行させて検証してきた。特許文献１に開示の技術においても、浮動小数点演算装置のソフトエミュレータ技術が開示されている。
【０００４】
前記プログラムは、別途パソコン（以後ＰＣと記す）上で作成されるので、演算精度や動作を検証したりデバッグやテストをしたりする際には、そのたびにエミュレータなどマイコンの環境下に転送しなくてはならない。また、複数の種類のマイコンに対して検証する場合には、マイコンの種類だけエミュレータを用意する必要がある。
【０００５】
このような手間を省き前記プログラムの検証効率を高めるためには、プログラム作成マシンであるＰＣ上で前記プログラムの演算精度や動作の検証、テストやデバッグができるのが望ましい。このためには、ＰＣ上で浮動小数点演算プログラムの検証を行い得るＰＣ用検証プログラムが必要である。
【０００６】
【特許文献１】特開平６−８３６３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、ＰＣ用検証プログラムは、エミュレータ上で実行できないため、実際の組込みマイコンとは異なる環境下、すなわちＰＣによって浮動小数点演算プログラムを実行し、検証することになる。このため、組込みマイコン上で浮動小数点演算プログラムを実行した場合とは異なる演算結果が得られ、ＰＣ上では作成した浮動小数点演算プログラムを正しく検証することができない可能性がある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明による組込みマイコン用の浮動小数点演算を行うプログラムの検証方法は、基本的には次のような特徴を有する。
【０００９】
すなわち、組込みマイコンに用いる浮動小数点演算プログラムを、その検証に用いるパソコンのオブジェクト内にセットする工程と、前記組込みマイコンの型番を前記パソコンに入力する工程と、検証プログラムを用いて、前記パソコンに、前記組込みマイコンに最適なＣＰＵ制御関数を前記パソコン或いはソフトウェアに格納されているＣＰＵ制御関数の中から前記型番に基づき選択する手順と、選択されたＣＰＵ制御関数を前記オブジェクト内にセットする手順と、前記オブジェクトにセットされた浮動小数点プログラムを選択されたＣＰＵ制御関数を用いてＣＰＵにより実行する手順と、を実現させる工程とを有することを特徴とする。
【００１０】
前記パソコンは、前記浮動小数点演算プログラムの作成に用いたものであり、作成された浮動小数点演算プログラムが前記組込みマイコンの型式と関連づけて格納されている。
【００１１】
さらに、前記組込みマイコンの型番を前記パソコンに入力する工程は、予め前記パソコンに格納された種々の組込みマイコンの型式をディスプレイに表示させて、この表示を介してオペレータが選択して入力するように設定してある。
【００１２】
前記ＣＰＵ制御関数は、前記ＣＰＵの浮動小数点演算の丸め方向と演算精度を制御する関数である。
【００１３】
また、上記課題を解決するために、本発明による組込みマイコン用の浮動小数点演算を行うプログラムを検証するパソコン用のプログラムは、基本的には次のような特徴を有する。
【００１４】
すなわち、組込みマイコンに用いる浮動小数点演算プログラムが検証のためにオブジェクト内にセットされ、且つ前記組込みマイコンの型番が入力されるパソコンに、前記組込みマイコンの型番を読み込む機能と、前記組込みマイコンに最適なＣＰＵ制御関数を前記パソコン或いはソフトウェアに格納されているＣＰＵ制御関数の中から前記型番に基づき選択し、選択されたＣＰＵ制御関数を前記オブジェクト内にセットする機能と、前記オブジェクトにセットされた浮動小数点プログラムを、選択されたＣＰＵ制御関数を用いて前記パソコンのＣＰＵにより実行する機能とを実現させるためのプログラムである。
【００１５】
前記組込みマイコンの型番を読み込む機能は、予め前記パソコンに格納された種々の組込みマイコンの型式をディスプレイに表示する。
【００１６】
また、前記ＣＰＵ制御関数は、前記ＣＰＵの浮動小数点演算の丸め方向と演算精度を制御する関数である。
【発明の効果】
【００１７】
組込みマイコン上で動作する浮動小数点演算プログラムが、ＰＣ用検証プログラムを用いてＰＣ上で精度良く検証可能となる。
【発明を実施するための最良の形態】
【００１８】
本発明は、ソフトウェアでマイコン動作をエミュレーションするのではなく、浮動小数点演算プログラムを実行する前に、ＰＣのＣＰＵを制御する関数によりＣＰＵ設定を組込みマイコンの設定に合わせるものである。以下、本発明による、浮動小数点演算プログラムをＰＣ上で検証する方法及びＰＣ用検証プログラムの実施例について、図面を用いて説明する。
【００１９】
図１は、本ＰＣ用検証プログラムを実行するＰＣ１を示す図である。ＰＣ１は、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、及びＨＤＤ５を備える。ＰＣ１には、図示していないモニターを接続することができ、ユーザはこのモニターの画面を見て本ＰＣ用検証プログラムを操作することができる。
【００２０】
図２は、マイコン１１を備えるコントロールユニット１０を示す図である。マイコン１１は、ＭＰＵ（Micro Processing Unit、マイクロプロセッサ）１２、ＦＰＵ（Floating Point number processing Unit、浮動小数点演算装置）１３、ＲＡＭ１４、及びＲＯＭ１５を有する。本実施例でのマイコン１１は、図５に示す型番のものを用いた。コントロールユニット１０を制御するのに、浮動小数点演算プログラムがマイコン１１で実行される。
【００２１】
図３は、浮動小数点演算プログラム４０の一例を示したものである。浮動小数点演算プログラム４０は、コントロールユニット１０に組込まれてマイコン１１で実行されるべきプログラム、すなわち、マイコン１１の環境で実行されるべきプログラムである。演算精度や動作の検証は、ＰＣ１において本ＰＣ用検証プログラム（浮動小数点演算プログラム用の検証プログラム）を用いて行われる。なお、プログラム中の数値の後についているＦは、その数値が浮動小数点数（float型の数値）であることを表す。
【００２２】
ここで、本ＰＣ用検証プログラムの処理の流れを、図４のフローチャートに示す。
【００２３】
最初にＳ３０において、演算精度や動作を検証する浮動小数点演算プログラム４０のファイル名やパス名を入力して、浮動小数点演算プログラム４０を選択する。前記ファイル名やパス名は、ダイアログボックスなどを前記モニターの画面に表示してそこからユーザが選択したり入力したりしてもよいし、あらかじめ本ＰＣ用検証プログラム中で指定しておいてもよい。
【００２４】
次にＳ３１において、マイコンの型番などを読み込んでマイコンを選択する。ユーザは、図５に示すようなコアや型番により、どのマイコンの環境で浮動小数点演算プログラム４０を検証するかを指定する。以後、マイコンを指定するのに用いるコアや型番を総称して「型番」と呼ぶ。マイコンを指定するには、マイコンのリストを前記画面に表示してその中から型番を選択するようにしてもよいし、前記画面に表示したダイアログボックスなどに型番を入力するようにしてもよい。本実施例では、図５に示したＳＨ−２ＥコアのＳＨ７０５９マイコンを指定する。
【００２５】
Ｓ３２では、Ｓ３１で読み込んだマイコンの動作に適合するＣＰＵ制御関数とそのパラメータが選択される。本発明でのＣＰＵ制御関数とは、ＣＰＵの演算を制御する関数のことであり、例えば、ＣＰＵの浮動小数点演算の丸め方向や演算精度などを設定する関数である。本実施例では、前記ＣＰＵ制御関数として、ＰＣ１にインストールされているＯＳ（Operating System）やソフトウェアのライブラリとして提供されている関数を利用する。前記パラメータは、このＣＰＵ制御関数で使用される。
【００２６】
前記ＣＰＵ制御関数と前記パラメータは、マイコンの型番に従い決定されるので、例えば、あらかじめマイコンの型番との対応表を作成してＨＤＤ５やＲＯＭ４に保存しておき、それに基づき自動的に選択するようにすることができる。このようにすると、前記ＣＰＵ制御関数と前記パラメータを選択するのに、ユーザは、マイコンを選択するだけでよく、マイコンの型番と前記ＣＰＵ制御関数及び前記パラメータとの対応関係を知っておく必要がない。図６には、図５に示したマイコンに対してＣＰＵ制御関数を_control87とした場合で、浮動小数点演算の丸め方向や演算精度などを設定するパラメータの例を示した。このパラメータは、ＣＰＵ２を、丸め方向（_MCW_RC）は切り捨て（_RC_CHOP）、演算精度（_MCW_PC）は３２ビット（_PC_24）に設定する。
【００２７】
Ｓ３３では、Ｓ３２で選択したＣＰＵ制御関数とパラメータに基づき、浮動小数点演算プログラム４０（図３）の検証に用いるＣＰＵ制御関数が決定される。上述の例では、図７に示すように、演算精度を３２ビットとする_control87（_PC_24, _MCW_PC）と、丸め方向を切り捨てとする_control87（_RC_CHOP, _MCW_RC）が、ＣＰＵ制御関数５０となる。そして、図８に示したように、このＣＰＵ制御関数５０とＳ３０において選択した浮動小数点演算プログラム４０とをセットしたオブジェクト２０が作成される。本発明においてオブジェクト２０とは、セットしたＣＰＵ制御関数に基づきＣＰＵ２の設定値を変更し、セットした浮動小数点演算プログラムを実行するプログラムである。従って本実施例では、このオブジェクト２０は、ＣＰＵ制御関数５０に基づきＣＰＵ２の設定値を変更し、このＣＰＵ２の設定で浮動小数点演算プログラム４０を実行するプログラムである。
【００２８】
Ｓ３４では、オブジェクト２０が実行される。これにより、ＣＰＵ制御関数５０によるＣＰＵ２の設定に基づき、浮動小数点演算プログラム４０がＰＣ１上で実行される。実行結果は、前記画面に表示したりファイルに出力して保存したりすることができる。浮動小数点演算プログラム４０は、Ｓ３１で指定したマイコンと同じ環境で実行されるので、演算精度や動作も指定したマイコン上で実行したのと同じ結果を得ることができる。従って、浮動小数点演算プログラム４０がマイコン上でどのような結果を出すかという検証を、ＰＣ１上で行うことができる。
【００２９】
なお、上記例では、ＣＰＵ制御関数としてＰＣ１にインストールされているＯＳやソフトウェアのライブラリにより提供されている関数を利用したが、ＣＰＵ制御関数には、指定したマイコンの動作に適合するものであれば、これ以外の関数を利用してもよい。また、マイコンの型番とＣＰＵ制御関数及びそのパラメータとの対応関係を示すデータや、ＣＰＵ制御関数として利用する関数及びそのパラメータは、ＣＤＲＯＭやフラッシュメモリなどの外部記憶媒体をＰＣ１に接続し、それから読み込むようにしてもよい。
【００３０】
また、マイコン１１の動作に適合するＣＰＵ制御関数とそのパラメータをユーザが分かっている場合には、マイコン１１の型番を読み込む処理であるＳ３１を省略してもよい。この場合、前記ＣＰＵ制御関数と前記パラメータを決定するには、Ｓ３２において、リストを前記画面に表示してその中からユーザが選択したり、前記画面に表示したダイアログボックスなどにユーザが入力したりする方法がある。
【００３１】
さらに、常に特定のマイコンで実行される浮動小数点演算プログラムのデバッグや検証を行いたい場合など、マイコン１１の種類を選択する必要がない場合には、あらかじめ本ＰＣ用検証プログラム中で、前記マイコンの型番や前記ＣＰＵ制御関数及び前記パラメータを指定しておいてもよい。この場合、Ｓ３１とＳ３２を省略することができる。
【００３２】
本発明に基づくＰＣ用検証プログラムを実際に作成し、発明の効果を確認した。以下、確認結果について説明する。確認方法は、図３の浮動小数点プログラム４０を10000回繰り返す演算を実行し、演算結果を比較した。比較の基準にしたのは、上記の演算を図２のマイコン１１上で実行した場合であり、図１のＰＣ１上で従来のＰＣ用検証プログラムを用いて実行した場合と本発明に基づくＰＣ用検証プログラムを用いて実行した場合とが、それぞれ前記基準とどの程度一致するかを比較した。
【００３３】
まず、上記の演算をマイコン１１上で実行した場合、演算結果は99.98148Fとなった。数値の後についているＦは、その数値が浮動小数点数（float型の数値）であることを表す。
【００３４】
次に、ＰＣ１上で従来のＰＣ用検証プログラムを用いた場合、演算結果は、100.0130Fとなった。これは、マイコン１１上で実行した場合と異なる結果である。もし、100.0Fを閾値とする分岐処理が浮動小数点プログラム４０の後段にあれば、マイコン１１上で実行した場合とＰＣ１上で実行した場合とで背反の結果や動作を示すことになる。これは、マイコン１１が、丸め方向切り捨て、演算精度３２ビットであるのに対し、ＰＣ１のＣＰＵ２の設定デフォルト値が、丸め方向近似値、演算精度８０ビットであり、このデフォルト値を変更せずに演算を実行していることに起因している。以上のように、従来のＰＣ用検証プログラムを用いては、組込みマイコン上で動作する浮動小数点演算プログラムを正しく検証することはできない。
【００３５】
最後に、ＰＣ１上で、図４の構成に従う本ＰＣ用検証プログラムを用いて上記の演算を実行した。演算結果は99.98148Fとなり、マイコン１１上で実行した場合の結果である99.98148Fと一致した。これは、図４のＳ３３においてＣＰＵ制御関数５０を図７のように設定したことにより、ＣＰＵ２の設定値が、丸め方向切り捨て、演算精度３２ビットに変更されたためである。この結果、本ＰＣ用検証プログラムを用いると、ＰＣ１でもマイコン１１と同等の結果が得られることが実証された。
【００３６】
以上のように、本発明の技術を用いれば、ＰＣ用検証プログラムを用いて、組込みマイコン上で動作する浮動小数点演算プログラムを正確に検証することができる。
【産業上の利用可能性】
【００３７】
組込みマイコン上で動作する浮動小数点演算プログラムを、ＰＣ用検証プログラムを用いて検証するには、必須の技術である。
【図面の簡単な説明】
【００３８】
【図１】浮動小数点演算プログラムのＰＣ用検証プログラムを動作させるＰＣを示す図である。
【図２】組込みマイコンを有するコントロールユニットを示す図である。
【図３】実施例で使用する浮動小数点演算プログラムを示す図である。
【図４】本発明のＰＣ用検証プログラムの処理フローチャートである。
【図５】実施例で使用するマイコンの型番を示す図である。
【図６】実施例で使用するＣＰＵ制御関数のパラメータを示す図である。
【図７】実施例で使用するＣＰＵ制御関数を示す図である。
【図８】ＰＣ用検証プログラムで実行するオブジェクトを示す図である。
【符号の説明】
【００３９】
１…ＰＣ、２…ＣＰＵ、３…ＰＣのＲＡＭ、４…ＰＣのＲＯＭ、５…ＨＤＤ、１０…コントロールユニット、１１…マイコン、１２…ＭＰＵ（Micro Processing Unit、マイクロプロセッサ）、１３…ＦＰＵ（Floating Point number processing Unit、浮動小数点演算装置）、１４…マイコンのＲＡＭ、１５…マイコンのＲＯＭ、２０…オブジェクト、４０…浮動小数点演算プログラム、５０…ＣＰＵ制御関数。
【図１】
2009193434.tif 000003
【図２】
2009193434.tif 000004
【図３】
2009193434.tif 000005
【図４】
2009193434.tif 000006
【図５】
2009193434.tif 000007
【図６】
2009193434.tif 000008
【図７】
2009193434.tif 000009
【図８】
2009193434.tif 000010