(57)【特許請求の範囲】
【請求項１】
浮動小数点数形式のデータを格納する読み取り専用記憶装置と、浮動小数点数形式のデータの演算を行う中央演算処理装置と、を有するマイクロコンピュータを備えた組込み制御装置において、
前記中央演算処理装置は、浮動小数点数形式の離散的データを前記読み取り専用記憶装置に格納するとき、浮動小数点数形式の離散的データを、浮動小数点数形式のデータの仮数部のうち下位ビットを削除した仮数部短縮型浮動小数点数形式のデータに変換してから格納し、
前記中央演算処理装置は、
前記読み取り専用記憶装置に格納された前記仮数部短縮型浮動小数点数形式の離散的データにより補間演算を行うとき、前記仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに変換してから補間演算を行い、
前記仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに変換するとき、前記削除した仮数部の下位ビットに所定値を付加し、
前記所定値は、該所定値の取り得る最大値の略半分の値である
ことを特徴とする組込み制御装置。
【請求項２】
浮動小数点数形式のデータを格納する読み取り専用記憶装置と、浮動小数点数形式のデータの演算を行う中央演算処理装置と、を有するマイクロコンピュータを備えた組込み制御装置において、
前記中央演算処理装置は、浮動小数点数形式の離散的データを前記読み取り専用記憶装置に格納するとき、浮動小数点数形式の離散的データを、浮動小数点数形式のデータの仮数部のうち下位ビットを削除した仮数部短縮型浮動小数点数形式のデータに変換してから格納し、
前記中央演算処理装置は、
前記読み取り専用記憶装置に格納された前記仮数部短縮型浮動小数点数形式の離散的データにより補間演算を行うとき、前記仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに変換してから補間演算を行い、
前記浮動小数点数形式の離散的データを、前記仮数部短縮型浮動小数点数形式のデータに変換するとき、前記浮動小数点数形式のデータの前記削除する下位ビットのうち最上位ビットが「１」であれば、前記仮数部短縮型浮動小数点数形式のデータの仮数部上位ビットに１を加算する
ことを特徴とする組み込み制御装置。
【請求項３】
浮動小数点数形式のデータを格納する読み取り専用記憶装置と、浮動小数点数形式のデータの演算を行う中央演算処理装置と、を有するマイクロコンピュータを備えた組込み制御装置において、
前記中央演算処理装置は、浮動小数点数形式の離散的データを前記読み取り専用記憶装置に格納するとき、浮動小数点数形式の離散的データを、浮動小数点数形式のデータの仮数部のうち下位ビットを削除した仮数部短縮型浮動小数点数形式のデータに変換してから格納し、
前記中央演算処理装置は、
前記読み取り専用記憶装置に格納された前記仮数部短縮型浮動小数点数形式の離散的データにより補間演算を行うとき、前記仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに変換してから補間演算を行い、
前記仮数部短縮型浮動小数点数形式の離散的データは、該仮数部短縮型浮動小数点数のバイト数を指示する識別ビットを含む
ことを特徴とする組み込み制御装置。
【請求項４】
請求項３記載の組込み制御装置において、前記識別ビットは、前記仮数部短縮型浮動小数点数形式の離散的データの先頭に配置されていることを特徴とする組み込み制御装置。
【請求項５】
請求項２から４のいずれか１項記載の組込み制御装置において、前記中央演算処理装置は、前記仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに変換するとき、前記削除した仮数部の下位ビットに所定値を付加することを特徴とする組込み制御装置。
【請求項６】
請求項５記載の組込み制御装置において、前記所定値は０であることを特徴とする組み込み制御装置。
【請求項７】
請求項３または４記載の組込み制御装置において、前記中央演算処理装置は、前記浮動小数点数形式の離散的データを、前記仮数部短縮型浮動小数点数形式のデータに変換するとき、前記浮動小数点数形式のデータの前記削除する下位ビットのうち最上位ビットが「１」であれば、前記仮数部短縮型浮動小数点数形式のデータの仮数部上位ビットに１を加算することを特徴とする組み込み制御装置。
【請求項８】
請求項１または２記載の組込み制御装置において、前記浮動小数点数形式の離散的データは、１ビットの符号部と、８ビットの指数部と、２３ビットの仮数部を含む４バイトのデータであり、前記仮数部短縮型浮動小数点数形式の離散的データは、１ビットの符号部と、８ビットの指数部と、１６ビットの仮数部を含む２バイトのデータであり、前記浮動小数点数形式のデータの仮数部の下位１６ビットが削除されたものであることを特徴とする組み込み制御装置。
【請求項９】
請求項１から４のいずれか１項記載の組込み制御装置において、前記浮動小数点数形式の離散的データは、１ビットの符号部と、８ビットの指数部と、２３ビットの仮数部を含む４バイトのデータであり、前記仮数部短縮型浮動小数点数形式の離散的データは、前記仮数部短縮型浮動小数点数のバイト数を指示する１ビットの識別ビットと、１ビットの符号部と、８ビットの指数部と、６ビットの仮数部を含む２バイトのデータであり、前記浮動小数点数形式のデータの仮数部の下位１６ビットが削除されたものであることを特徴とする組み込み制御装置。
【請求項１０】
請求項１から４のいずれか１項記載の組込み制御装置において、前記浮動小数点数形式の離散的データは、１ビットの符号部と、８ビットの指数部と、２３ビットの仮数部を含む４バイトのデータであり、前記仮数部短縮型浮動小数点数形式の離散的データは、前記仮数部短縮型浮動小数点数のバイト数を指示する１ビットの識別ビットと、１ビットの符号部と、８ビットの指数部と、１４ビットの仮数部を含む３バイトのデータであり、前記浮動小数点数形式のデータの仮数部の下位８ビットが削除されたものであることを特徴とする組み込み制御装置。
【請求項１１】
請求項１から４のいずれか１項記載の組込み制御装置において、
更に、浮動小数点数形式のデータを一時的に保存する読み書き可能な記憶装置と、前記読み書き可能な記憶装置に一時的に保存されたデータと同一の保存データを格納するバックアップメモリと、を備え、
前記中央演算処理装置は、前記読み書き可能な記憶装置に格納された浮動小数点数形式のデータを前記バックアップメモリに保存するとき、前記浮動小数点数形式のデータを前記仮数部短縮型浮動小数点数形式のデータに変換して保存することを特徴とする組み込み制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象機器に対する制御信号を生成する制御装置に関し、特に、浮動小数点数演算を行うプロセッサを備えた組込み制御装置に関する。
【背景技術】
【０００２】
近年、自動車における排気・燃費規制が強化され、要求される操安性・安全性レベルが向上している。そこで、自動車の組込み制御装置においても、制御精度の向上が求められ、浮動小数点数演算を行うプロセッサ（FPU）又はマイクロコンピュータを備えた制御コントロールユニットが採用され始めた。
【０００３】
自動車の組込み制御装置にて、マップ／テーブル／軸のデータからテーブル／マップの補間演算を行う。マップ／テーブル／軸のデータは、マップ／軸のデータ又はテーブル／軸のデータの意味である。マップ／軸のデータとは、軸と呼ばれるパラメータをＸ軸、被制御量をそれぞれＹ軸及びＺ軸とする３次元マップである。テーブル／軸のデータとは、軸と呼ばれるパラメータをＸ軸、被制御量をＹ軸とする２次元テーブルである。
【０００４】
これらのデータは離散値であり、参照値とも呼ばれる。そこで、このような離散値データから、より精度が高いデータを得る処理が補間演算である。補間演算によって得られたデータを用いて、制御対象に対して制御を行う。
【０００５】
マップ／テーブル／軸のデータは、固定小数点数によって表される。しかしながら、浮動小数点数演算用プロセッサ（FPU）又はマイクロコンピュータを用いる場合には、マップ／テーブル／軸のデータを浮動小数点数によって表す必要がある。
【０００６】
固定小数点数のデータサイズは、１バイト、２バイト、又は、４バイトである。一方、浮動小数点数のデータサイズは、単精度浮動小数点数の場合に４バイト、倍精度浮動小数点数の場合に８バイトである。そのため、浮動小数点数演算に用いるデータ量は、従来の固定小数点数演算に用いるデータ量と比較すると、おおよそ倍程度になり、プロセッサ（FPU）又はマイクロコンピュータの記憶領域が不足し始めている。
【０００７】
特許文献１に開示された技術にて、マップ／テーブル／軸のデータを、記憶装置に格納する場合には、データ容量が小さい固定小数点数によって定義する。マップ／テーブル／軸のデータからテーブル／マップの補間演算を行う場合には、固定小数点数形式のデータを浮動小数点数形式のデータに変換する。こうして、記憶装置の記憶容量の不足を回避し、同時に、演算精度を確保することができる。
【特許文献１】特開2004-225668号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の技術にて、マップ／テーブル／軸のデータを変換するとき、物理値換算データ（LSBデータとオフセットデータ）を用いる。即ち、補間演算を行うとき、固定小数点数のマップ／テーブル／軸のデータを浮動小数点数形式のデータに変換し、物理値換算データであるＬＳＢデータを乗算し、さらにオフセットデータを加算する。また、マップ／テーブル／軸のデータをバックアップメモリへ保存するとき、浮動小数点数のマップ／テーブル／軸のデータを一時的に読み書き可能な記憶装置から取り出す。次に、それを、固定小数点数の最大値及び最小値で制限する。次に、オフセットデータを減算し、ＬＳＢデータで除算する。こうして得たマップ／テーブル／軸のデータを、バックアップメモリへ保存する。そのため、演算負荷が増加する可能性がある。
【０００９】
本発明はこのような課題に鑑みてなされたものであって、その目的とするところは、浮動小数点数形式のデータによる演算精度を確保し、且つ、記憶装置の記憶領域の不足を回避することができる組み込み制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明による組込み制御装置によると、浮動小数点数形式の離散的データを読み取り専用記憶装置に格納するとき、浮動小数点数形式の離散的データを、仮数部短縮型浮動小数点数形式の離散的データに変換してから格納する。ここに、仮数部短縮型浮動小数点数とは、浮動小数点数の仮数部のうち下位ビットを削除したものである。
【００１１】
更に、離散的データから補間演算を行うとき、読み取り専用記憶装置に格納された仮数部短縮型浮動小数点数形式の離散的データを浮動小数点数形式の離散的データに戻してから、補間演算を行う。
【発明の効果】
【００１２】
本発明によると、浮動小数点数形式のデータによる演算精度を確保し、且つ、記憶装置の記憶領域の不足を回避することができる組み込み制御装置を提供する。
【発明を実施するための最良の形態】
【００１３】
以下、発明の実施の形態を説明する。本発明の実施例を図面を用いて説明する。図１を参照して、発明の組み込み制御装置の第１の例を説明する。本例の組み込み制御装置は、マイクロコンピュータを備えた制御コントロールユニット（Ｃ／Ｕ）１を有する。制御コントロールユニット（Ｃ／Ｕ）１は、中央演算処理装置（ＣＰＵ）２、読み取り専用記憶装置（ＲＯＭ）３、メモリ（ＲＡＭ）、及び、入出力装置（Ｉ／Ｏ）７を有する。読み取り専用記憶装置３には、マップ／テーブル／軸のデータ８が格納されている。
【００１４】
制御対象機器４は、センサ５とアクチュエータ６を有する。制御対象機器４に設けられたセンサ５からの信号は、制御コントロールユニット１に送られる。センサ５からの信号は、制御コントロールユニット１の入出力装置７を経由して、中央演算処理装置２に送られる。中央演算処理装置２は、センサ５からの信号と、読み取り専用記憶装置３に格納されたマップ／テーブル／軸のデータ８を用いて、補間演算を行い、制御信号を生成する。制御信号は、入出力装置７を経由して制御対象機器４のアクチュエータ６に送られる。
【００１５】
制御コントロールユニット１は車載エンジン制御コントロールユニット、制御対象機器４はガソリン噴射式内燃機関、センサ５は吸入空気量センサ及びエンジン回転数センサ、アクチュエータ６は燃料噴射弁であってよい。この場合、マップ／テーブル／軸のデータ８は、Ｘ軸を吸入空気量軸、Ｙ軸をエンジン回転数軸、Ｚ軸を燃料噴射量とする３次元マップであってよい。
【００１６】
吸入空気量センサから中央演算処理装置２へ、吸入空気量の計測値が供給され、エンジン回転数から中央演算処理装置２へ、エンジン回転数の計測値が供給される。中央演算処理装置２は、燃料噴射量マップ上にて、補間演算によって燃料噴射量を算出する。即ち、燃料噴射量マップ上の離散値から、吸入空気量及びエンジン回転数の計測値に対応する燃料噴射量を演算する。中央演算処理装置２における補間演算には、浮動小数点数形式のデータを用いる。
【００１７】
中央演算処理装置２は、補間演算によって得られた燃料噴射量に基づいて、燃料噴射弁の開弁時間を制御する信号を生成する。この信号は、ガソリン噴射式内燃機関に供給され、燃料噴射制御を行う。
【００１８】
本発明によると、制御対象機器４はガソリン噴射式内燃機関であってもよいが、他の機器、例えば、エアコンであってもよい。制御対象機器４がエアコンの場合、制御コントロールユニット１はエアコンの制御コントローラである。いずれにしても、本発明は、ハードウエアにソフトウエアが予め組み込まれた組み込み制御装置であれば、どのような制御装置にも適用できる。
【００１９】
図２を参照して、従来技術による浮動小数点数形式のデータと、本発明による仮数部短縮型浮動小数点数形式のデータの例を説明する。先ず、従来技術による浮動小数点数形式のデータ９を説明する。浮動小数点数形式のデータ９は、ＩＥＥＥ７５４規格による浮動小数点数形式のデータを示す。この浮動小数点数形式のデータ９は、符号部（１ビット）＋指数部（８ビット）＋仮数部（２３ビット）からなる合計４バイトのデータである。
【００２０】
次に、本発明において定義された仮数部短縮型浮動小数点数形式のデータ１０の例を説明する。本例の仮数部短縮型浮動小数点数形式のデータ１０は、符号部（１ビット）＋指数部（８ビット）＋仮数部（１６ビット）からなる合計２バイトのデータである。
【００２１】
本例の仮数部短縮型浮動小数点数形式のデータ１０を、ＩＥＥＥ７５４規格による浮動小数点数形式のデータ９と比較すると、本例の仮数部短縮型浮動小数点数形式のデータ１０では、仮数部の下位ビットが削除されている。ここでは、仮数部の下位１６ビットを削除した場合を示す。
【００２２】
本発明によって定義される２バイトの仮数部短縮型浮動小数点数形式のデータ１０は、４バイトの単精度浮動小数点数形式のデータ９から、仮数部の下位１６ビットを削除することによって得られる。
【００２３】
ここで、４バイトの単精度浮動小数点数形式のデータ９を用いて、２バイトの仮数部短縮型浮動小数点数形式のデータ１０を生成する例を説明したが、本発明はこれに限定されない。例えば、４バイトの単精度浮動小数点数形式のデータ９の代わりに、８バイトの倍精度浮動小数点数形式のデータを用いてもよい。２バイトの仮数部短縮型浮動小数点数形式のデータ１０の代わりに、２バイト以外の仮数部短縮型浮動小数点数形式のデータ１０を生成してもよい。以下にて、図２に示すように、４バイトの単精度浮動小数点数形式のデータ９を用いて仮数部短縮型浮動小数点数形式のデータを生成する場合を説明する。
【００２４】
図３を参照して、単精度浮動小数点数形式のデータ９を仮数部短縮型浮動小数点数形式のデータ１０に変更して、それを記憶装置へ格納する処理を説明する。この処理は中央演算処理装置（ＣＰＵ）２が行う。ステップＡ１にて、単精度浮動小数点数形式のデータ９の仮数部下位１６ビットを削除する。それによって、仮数部短縮型浮動小数点数形式のデータ１０が生成される。ステップＡ２にて、仮数部短縮型浮動小数点数形式のデータ１０によって定義されたマップ／テーブル／軸のデータ８を記憶装置３に格納する。
【００２５】
本例では、２バイトの仮数部短縮型浮動小数点数形式のデータ１０を用いるため、４バイトの単精度浮動小数点数形式のデータ９を用いる場合と比較して、５０％のデータ量が削減される。例えば、記憶装置３に格納されている単精度浮動小数点数のマップ／テーブル／軸のデータが５００バイトであると仮定する。本例の仮数部短縮型浮動小数点数形式のデータ１０を用いることにより、２５０バイトの記憶容量の削減可能となる。
【００２６】
図４を参照して、仮数部短縮型浮動小数点数形式のデータ１０を単精度浮動小数点数形式のデータ９に戻して、テーブル／マップの補間演算を行う処理を説明する。この処理は中央演算処理装置（ＣＰＵ）２が行う。ステップＢ１にて、仮数部短縮型浮動小数点数形式のデータ１０に、仮数部下位１６ビットの所定値１２を付加する。それによって、仮数部短縮型浮動小数点数形式のデータ１０は単精度浮動小数点数形式のデータ９に戻る。所定値１２はあらかじめ定めた任意の定数値である。この所定値１２は０であってよい。
【００２７】
ステップＢ２にて、単精度浮動小数点数形式のデータ９のデータを用いて、テーブル／マップの補間演算を行う。
【００２８】
図５は、仮数部短縮型浮動小数点数形式のデータ１０に、仮数部下位１６ビットの所定値１２を付加することによって、単精度浮動小数点数形式のデータ９が生成された状態を示す。図示のように、仮数部短縮型浮動小数点数形式のデータ１０を生成するとき、仮数部の下位ビットを削除した。従って、単精度浮動小数点数形式のデータ９のデータを生成するとき、仮数部の下位１６ビットの所定値１２を付加する。所定値１２については後に説明する。こうして、２バイトの仮数部短縮型浮動小数点数形式のデータ１０を、４バイトの単精度浮動小数点数形式のデータ９に変換する。
【００２９】
図６を参照して、従来技術により、固定小数点数形式のデータを用いてテーブル／マップの補間演算を行う処理を説明する。従来の技術では、マップ／テーブル／軸のデータ８は固定小数点数形式のデータで定義されて記憶装置に格納されている。従って、テーブル／マップの補間演算を行うには、固定小数点数形式のデータを単精度浮動小数点数形式のデータ９に変換する必要があり、そのための物理値換算データ（LSBデータとオフセットデータ）を定義する必要がある。
【００３０】
ステップＣ１にて、固定小数点数形式のデータを単精度浮動小数点数形式のデータに変換する。ステップＣ２にて、単精度浮動小数点数形式のデータにＬＳＢ（最下位ビット、least significant bit）データを乗算する。ステップＣ３にて、単精度浮動小数点数形式のデータにオフセットデータを加算する。ステップＢ２にて、単精度浮動小数点数形式のデータ９を用いてテーブル／マップの補間演算を行う。
【００３１】
このように従来方式では、ステップＢ２のテーブル／マップの補間演算を行うまでにステップＣ１、ステップＣ２、ステップＣ３の３ステップを要する。一方、本発明によると、図４に示すように、ステップＢ２のテーブル／マップの補間演算を行うまでにステップＢ１の１ステップのみが必要である。従って、演算負荷を低減することが可能となる。
【００３２】
図７は、仮数部短縮型浮動小数点数形式のデータ１０に、所定値１２として０を付加することによって、単精度浮動小数点数形式のデータ１３を得た場合を示す。
【００３３】
図８を参照して、図７に示した単精度浮動小数点数形式のデータ１３を得る処理を説明する。ステップＤ１にて、仮数部短縮型浮動小数点数形式のデータ１０に仮数部下位１６ビット分の０を付加する。それによって、仮数部短縮型浮動小数点数形式のデータ１０は単精度浮動小数点数形式のデータ９に変換される。ステップＢ２にて、単精度浮動小数点数形式のデータ１３を用いてテーブル／マップの補間演算を行う。
【００３４】
なお、所定値１２の０を付加する代わりに、仮数部短縮型浮動小数点数形式のデータ１０の仮数部下位１６ビットを０と見なし、それによって、テーブル／マップの補間演算を行ってもよい。このように、所定値１２を０と見なすことによって、ステップＤ１を削除することが可能となる。従って、演算負荷をさらに低減することが可能となる。所定値１２に０を付加すると、それによって復元された単精度浮動小数点数形式のデータ９に含まれる誤差が大きくなる場合がある。そこで、所定値１２に０以外の値を採用することにより、復元された単精度浮動小数点数形式のデータ９に含まれる誤差を小さくすることができる。
【００３５】
図９を参照して、仮数部短縮型浮動小数点数形式のデータ１０の仮数部下位１６ビットに付加する所定値１２の例を説明する。本例の仮数部短縮型浮動小数点数形式のデータ１４、１５では、所定値１２を、所定値１２が取り得る最大値の半分に相当する値とする。例えば、所定値１２が取り得る最大値を６５５３５とすると、その半分は３２７６７と３２７６８の２つが可能である。図９の上側の仮数部短縮型浮動小数点数形式のデータ１４では、所定値１２は３２７６７である。これを２進法で表すと、１の後に０が１５個並んだ数となり、１６進法で表すと、０ｘ８０００となる。図９の下側の仮数部短縮型浮動小数点数形式のデータ１５では、所定値１２は３２７６８である。これを２進法で表すと、０の後に１が１５個並んだ数となり、１６進法で表すと、０ｘ７ＦＦＦとなる。
【００３６】
先ず図１０を参照して説明する。ステップＥ１にて、仮数部短縮型浮動小数点数形式のデータ１０に、最上位ビットが１、その他のビットが０の仮数部下位１６ビットを付加する。それによって、仮数部短縮型浮動小数点数形式のデータ１０は、図９の単精度浮動小数点数形式のデータ１４に変換される。ステップＢ２にて、単精度浮動小数点数形式のデータ１４を用いてテーブル／マップの補間演算を行う。
【００３７】
次に図１１を参照して説明する。ステップＦ１にて、仮数部短縮型浮動小数点数形式のデータ１０に、最上位ビットが０、その他ビットが１の仮数部下位１６ビットを付加する。それによって、仮数部短縮型浮動小数点数形式のデータ１０は、図９の単精度浮動小数点数形式のデータ１５に変換される。ステップＢ２にて、単精度浮動小数点数形式のデータ１５を用いてテーブル／マップの補間演算を行う。
【００３８】
このように仮数部短縮型浮動小数点数形式のデータ１０の仮数部下位１６ビットに付加する所定値を、所定値が取り得る最大値のおおよそ半分の値にすると、復元された単精度浮動小数点数形式のデータ９に含まれる誤差が小さくなる。従って、仮数部短縮型浮動小数点数形式のデータ１０を記憶装置３に格納する際に発生する丸め誤差を正規化することが可能となる。
【００３９】
図１２を参照して、仮数部短縮型浮動小数点数形式のデータを生成する方法の他の例を説明する。本例にて、仮数部短縮型浮動小数点数形式のデータを生成するとき、仮数部の下位１６ビットを削除するが、そのとき、仮数部の下位ビット（１６ビット）の最上位ビット１８（１ビット）の値を用いて、仮数部上位ビット１７（７ビット）の値を変化させる。このときのフローチャートが図１３である。
【００４０】
図１３を参照して説明する。ステップ１９にて、単精度浮動小数点数形式のデータ９の仮数部の下位ビット（１６ビット）の最上位ビット１８（１ビット）のビット値をＸとする。次にステップ２０にて、Ｘが１であるか否かを判定する。Ｘ＝１の場合、ステップ２１へ進む。ステップ２１にて、仮数部上位ビット１７に１を加算する。
【００４１】
これは、Ｘ＝１の場合、削除する仮数部の下位１６ビットの値が比較的大きいと考えられる。一方、単精度浮動小数点数形式のデータ９に戻すとき、所定値１２として０を付加する。このとき、復元した単精度浮動小数点数形式のデータ９と元の単精度浮動小数点数形式のデータ９の間の誤差が大きくなる可能性がある。そこで、予め、仮数部上位ビット１７に１を加算して、誤差を抑制する。
【００４２】
ステップ２０にて、Ｘ≠１（Ｘ＝０）の場合は、仮数部上位ビット１６は変化させずに、この処理は終了となる。Ｘ＝０の場合、削除する仮数部の下位１６ビットの値は比較的小さいと考えられる。この場合、単精度浮動小数点数形式のデータ９に戻すとき、所定値１２として０を付加しても、復元した単精度浮動小数点数形式のデータ９と元の単精度浮動小数点数形式のデータ９の間の誤差は小さいと考えられる。そこで、仮数部上位ビット１６は変化させる必要はない。
【００４３】
図１４を参照して、発明の組み込み制御装置の第２の例を説明する。本例の組み込み制御装置は、マイクロコンピュータを備えた制御コントロールユニット（Ｃ／Ｕ）１を有する。制御コントロールユニット（Ｃ／Ｕ）１は、中央演算処理装置（ＣＰＵ）２、読み取り専用記憶装置（ＲＯＭ）３、読み書き可能な記憶装置（ＲＡＭ）２６、バックアップメモリ２４、及び、入出力装置（Ｉ／Ｏ）７を有する。読み取り専用記憶装置３には、マップ／テーブル／軸のデータ８が格納されている。読み書き可能な記憶装置（ＲＡＭ）２６には、入力信号又は演算の過程で算出したデータ２７が一時的に保存される。しかしながら、データ２７は電源ＯＦＦによって消去される。そこで、データ２７と同一の保存データ２５が、常に、バックアップメモリ２４に保存される。次回電源投入時には、バックアップメモリ２４に保存された保存データ２５が利用される。
【００４４】
尚、バックアップメモリ２４は、電源によって常時通電されたＲＡＭでもよいし、電気的に書き換え可能なＥＰＲＯＭやフラッシュメモリでもよい。
【００４５】
読み書き可能な記憶装置（ＲＡＭ）２６に保存されるデータ２７は、４バイトの単精度浮動小数点数形式のデータ９である。そこで、それを２バイトの仮数部短縮型浮動小数点数形式のデータ１０に変換して保存データ２５とする。こうして、バックアップメモリ２４には、２バイトの仮数部短縮型浮動小数点数形式のデータ１０が保存される。バックアップメモリ２４に保存された保存データ２５を読み出して、それを演算する場合には、４バイトの単精度浮動小数点数形式のデータ９に戻す。４バイトの単精度浮動小数点数形式のデータ９に戻す方法は、既に説明した。即ち、仮数部下位１６ビットに所定値１２を代入する。このときのフローチャートが図１５である。
【００４６】
以下図１５について説明する。ステップＧ１にて、読み書き可能な記憶装置２６に保存されている単精度浮動小数点数形式の算出データ２７の仮数部下位ビットを削除する。それによって、仮数部短縮型浮動小数点数形式のデータが得られる。ステップＧ２にて、仮数部短縮型浮動小数点数形式の保存データ２８をバックアップメモリ２４へ格納する。ステップＧ３にて、バックアップメモリ２４に格納されている保存データ２８の仮数部下位ビットに所定値を付加する。それによって、単精度浮動小数点数形式のデータ９が復元される。ステップＢ２にて、単精度浮動小数点数形式のデータ９を用いてテーブル／マップの補間演算を行う。
【００４７】
単精度浮動小数点数形式の保存データ２５が１００バイトの場合、バックアップメモリ２４に格納される仮数部短縮型浮動小数点数形式のデータ１０は５０バイトとなり、５０バイトの記憶容量の削減が可能となる。
【００４８】
図１６を参照して、従来技術である固定小数点数形式のデータを用いる場合を説明する。ステップＨ１にて、読み書き可能な記憶装置２６に保持されている単精度浮動小数点数形式の算出データ２７からオフセットデータを減算する。ステップＨ２にて、減算後の算出データ２７をLSBで除算する。ステップＨ３にて、減算及び除算後の算出データ２７を固定小数点数形式のデータへ変換する。ステップＧ２にて、固定小数点数形式の保存データ２５をバックアップメモリ２４へ格納する。ステップＣ１にて、バックアップメモリ２４に格納された保存データ２８を単精度浮動小数点数形式のデータへ変換する。ステップＣ２にて、単精度浮動小数点数形式のデータにLSBデータを乗算する。ステップＣ３にて、乗算後のデータにオフセットデータを加算する。ステップＢ２にて、単精度浮動小数点数形式のデータ９を用いてテーブル／マップの補間演算を行う。
【００４９】
図１６に示した従来の技術では、バックアップメモリ２４へ格納するまでに、ステップＨ１、ステップＨ２、ステップＨ３の３ステップが必要である。一方、図１５に示した本発明によると、ステップＧ１の１ステップのみが必要である。そのため、演算負荷を低減することが可能となる。また、図１６に示した従来の技術では、バックアップメモリ２４へ格納した保存データを用いてテーブル／マップの補間演算を行うまでに、ステップＣ１、ステップＣ２、ステップＣ３の３ステップが必要である。一方、本発明では、ステップＧ３の１ステップのみが必要である。従って、演算負荷を低減することが可能となる。
ある。
【００５０】
図１７を参照して本発明による仮数部短縮型浮動小数点数形式のデータの他の例を説明する。本例の仮数部短縮型浮動小数点数形式のデータ２８は、識別ビット（１ビット）＋符号部（１ビット）＋指数部（８ビット）＋仮数部上位ビット（６ビット）からなる合計２バイトのデータである。本例の仮数部短縮型浮動小数点数形式のデータ２８は、図２に示した４バイトの単精度浮動小数点数形式のデータ９の先頭に識別ビット（１ビット）を付加し、仮数部の下位１６ビットを削除することによって得られる。
【００５１】
本例の仮数部短縮型浮動小数点数形式のデータ２９は、識別ビット（１ビット）＋符号部（１ビット）＋指数部（８ビット）＋仮数部上位ビット（１４ビット）からなる合計３バイトのデータである。本例の仮数部短縮型浮動小数点数形式のデータ２９は、図２に示した４バイトの単精度浮動小数点数形式のデータ９の先頭に識別ビット（１ビット）を付加し、仮数部の下位８ビットを削除することによって得られる。
【００５２】
識別ビット（１ビット）は、仮数部短縮型浮動小数点数形式のデータの種類、即ち、バイト数を示す。例えば識別ビット３０の値が「０」のときは２バイトの仮数部短縮型浮動小数点数形式のデータ２８であることを示し、識別ビット３０の値が「１」のときは３バイトの仮数部短縮型浮動小数点数形式のデータ２９であることを示す。中央演算処理装置２は、先頭の識別ビット３０の値を読み取ることによって、２バイトの仮数部短縮型浮動小数点数形式のデータであるか、３バイトの仮数部短縮型浮動小数点数形式のデータであるかを知ることができる。
【００５３】
マップ／テーブル／軸のデータ８は、図１７に示す２種類の仮数部短縮型浮動小数点数形式のデータ２８、２９が含まれる。
【００５４】
２バイトの仮数部短縮型浮動小数点数形式のデータ２８は、データ量が比較的少ないから、読み取り専用記憶装置３の記憶容量を低減することができる。しかしながら、これを用いた演算精度は、比較的低い。一方、３バイトの仮数部短縮型浮動小数点数形式のデータ２９は、データ量が比較的大きいから、読み取り専用記憶装置３の記憶容量を低減することはできない。しかしながら、これを用いた演算精度は、比較的高い。
【００５５】
従って、読み取り専用記憶装置３の記憶容量の低減を優先する場合には、２バイトの仮数部短縮型浮動小数点数形式のデータ２８を用い、演算精度を優先する場合には、３バイトの仮数部短縮型浮動小数点数形式のデータ２９を用いる。
【００５６】
図１８を参照して、読み取り専用記憶装置３に格納されたデータをシーケンシャルアクセス方法で読み出す方法を説明する。図示のように、読み取り専用記憶装置３には、２種類の仮数部短縮型浮動小数点数形式のデータ２８、２９を含むマップ／テーブル／軸のデータ８が格納されている。このデータ配列３１によると、２バイトの仮数部短縮型浮動小数点数形式のデータ２８と、３バイトの仮数部短縮型浮動小数点数形式のデータ２９がランダムに配列されている。中央演算処理装置２は、このデータ配列３１の先頭から３バイトずつ読み出す。第１回の読み出しで、中央演算処理装置２は、３バイトのデータを読み出す。中央演算処理装置２は、３バイトのデータの先頭の識別ビットを読み出し、読み出したデータが、３バイトの仮数部短縮型浮動小数点数形式のデータ２９であると判定する。これが、１回目の使用データ３３となる。この使用データ３３は、３バイトの仮数部短縮型浮動小数点数形式のデータ２９からなる。この３バイトの使用データに、下位８ビットの所定値を付加する。この４バイト変換３４によって、４バイトのデータが得られる。
【００５７】
２回目の読み出しでは、中央演算処理装置２は、３バイトのデータを読み出す。中央演算処理装置２は、３バイトのデータの先頭の識別ビットを読み出し、読み出したデータが、２バイトの仮数部短縮型浮動小数点数形式のデータ２８であると判定する。従って、読み出した３バイトのデータには、２バイトの仮数部短縮型浮動小数点数形式のデータ２８以外に１バイトの不要データが含まれていると判定する。そこで、読み出した３バイトのデータの後部の１バイトのデータを削除する。これが、２回目の使用データ３３となる。この使用データ３３は、２バイトの仮数部短縮型浮動小数点数形式のデータ２８からなる。この２バイトの使用データに、下位１６ビットの所定値を付加する。この４バイト変換３４によって、４バイトのデータが得られる。
【００５８】
図１９を参照して、読み取り専用記憶装置３に格納されたデータをシーケンシャルアクセス方法で読み出す方法を詳細に説明する。ステップ３５にて、初期化処理を行う。即ち、データアドレスＡに、マップ／テーブル／軸のデータの先頭アドレスを代入する。ステップ３６にて、データアドレスＡが示すアドレスから３バイト分データを読み出し、それを一時変数Ｘに代入する。これが図１８の読み出しデータ３２に該当する。
【００５９】
ステップ３７にて、一時変数Ｘに含まれるデータから識別ビット３０を読み出す。識別ビット３０が「０」の場合はステップ３８へ進む。即ち、読み出したデータが、２バイトの仮数部短縮型浮動小数点数形式のデータ２８である。識別ビット３０が「１」の場合はステップ４２へ進む。即ち、読み出したデータが、３バイトの仮数部短縮型浮動小数点数形式のデータ２９である。
【００６０】
ステップ３８〜４０は、読み出したデータが、２バイトの仮数部短縮型浮動小数点数形式のデータ２８の場合の処理である。ステップ３８にて、次回の読み出し処理のためにデータアドレスＡに２を加算する。ステップ３９にて、このサブルーチンが返すデータＹに、３バイトのデータＸの先頭２バイトを代入する。これが図１８の２回目の使用データ３３に該当する。ステップ４０にて、データＹに、下位１６ビットの所定値を付加する。それによって、データＹは、４バイトのデータとなる。これが図１８の２回目の４バイト変換３４に該当する。
【００６１】
ステップ４２〜４４は、読み出したデータが、３バイトの仮数部短縮型浮動小数点数形式のデータ２９の場合の処理である。ステップ４２にて、次回の読み出し処理のためにデータアドレスＡに３を加算する。ステップ４３にて、データＹに、３バイトのデータＸを代入する。これが図１８の１回目の使用データ３３に該当する。ステップ４４にてデータＹに下位８ビットの所定値を付加する。この処理によりデータＹは、４バイトのデータとなる。これが図１８の１回目の４バイト変換３４に該当する。
【００６２】
ステップ４１にて、ループカウンタを参照し、現在のデータが目的のデータかどうかを判定する。目的のデータである場合にはステップ４５に進み、データＹを戻り値としてこのサブルーチンを終了する。ステップ４１にて、目的のデータにまだ到達していないと判定した場合にはステップ３６に戻り、以降を繰り返す。
【００６３】
図１７に示したように、マップ／テーブル／軸のデータ８を２種類の仮数部短縮型浮動小数点数形式のデータによって表すことによって、２種類の仮数部短縮型浮動小数点数形式のデータを使い分けることが可能となる。読み取り専用記憶装置３の記憶容量を削減することを優先する場合には、２バイトの仮数部短縮型浮動小数点数形式のデータ２８だけを用い、又は、主として、２バイトの仮数部短縮型浮動小数点数形式のデータ２８を用いる。計算精度を優先する場合には、３バイトの仮数部短縮型浮動小数点数形式のデータ２９だけを用い、又は、主として、３バイトの仮数部短縮型浮動小数点数形式のデータ２９を用いる。
【００６４】
ここでは、２バイトの仮数部短縮型浮動小数点数形式のデータ２８と３バイトの仮数部短縮型浮動小数点数形式のデータ２９の２種類のデータを用いる例を説明した。しかしながら、３種類以上の仮数部短縮型浮動小数点数形式のデータを用いてもよい。その場合には識別ビット３０は少なくとも２ビットとなる。
【００６５】
図１７の例では、識別ビット３０を、仮数部短縮型浮動小数点数形式のデータの先頭ビットに付加した。しかしながら、識別ビット３０を、仮数部短縮型浮動小数点数形式のデータのどこに付加してもよい。図１８の例では、中央演算処理装置２は、データ配列３１の先頭から３バイトずつ読み出す。従って、識別ビット３０は、先頭から３バイトの中に含まれていればよい。しかしながら、図１７の例のように、識別ビット３０を、仮数部短縮型浮動小数点数形式のデータの先頭に付加するのが好ましい。この場合、先頭の１バイトを読み込むだけで、データの種類を識別することが可能となる。それによって、処理を高速化することができる。
【００６６】
以上本発明の例を説明したが、本発明は上述の例に限定されるものではなく、特許請求の範囲に記載された発明の範囲にて様々な変更が可能であることは当業者によって容易に理解されよう。
【図面の簡単な説明】
【００６７】
【図１】本発明による組み込み制御装置の第１の例の構成を示すブロック図である。
【図２】従来の浮動小数点数形式のデータと本発明による仮数部短縮型浮動小数点数形式のデータを示す図である。
【図３】本発明による組み込み制御装置において、浮動小数点数形式のデータから仮数部短縮型浮動小数点数形式のデータを生成し、それを記憶装置へ格納する処理を説明するフローチャート図である。
【図４】本発明による組み込み制御装置において、浮動小数点数形式のデータから仮数部短縮型浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図５】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに所定値を代入することによって得られた浮動小数点数形式のデータを示す図である。
【図６】従来技術において、固定小数点数形式のデータから浮動小数点数形式のデータを生成し、それによってテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図７】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに０を代入することによって得られた浮動小数点数形式のデータを示す図である。
【図８】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに０を代入することによって浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図９】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに、所定値が取り得る最大値の略半分の値を代入することによって得た仮数部短縮型浮動小数点数形式のデータの例を示す図である。
【図１０】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに、所定値が取り得る最大値の略半分の値を代入することによって仮数部短縮型浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図１１】本発明による組み込み制御装置において、仮数部短縮型浮動小数点数形式のデータの仮数部下位ビットに、所定値が取り得る最大値の略半分の値を代入することによって仮数部短縮型浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行うフローチャート図である。
【図１２】本発明による仮数部短縮型浮動小数点数形式のデータの他の例を示す図である。
【図１３】本発明による組み込み制御装置において、図１２の仮数部短縮型浮動小数点数形式のデータを生成する処理を説明するフローチャート図である。
【図１４】本発明による組み込み制御装置の第２の例の構成を示すブロック図である。
【図１５】本発明による組み込み制御装置の第２の例において、バックアップメモリに格納された仮数部短縮型浮動小数点数形式のデータより、単精度浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図１６】従来技術において、バックアップメモリに格納された固定小数点数形式のデータより、単精度浮動小数点数形式のデータを生成し、それを用いてテーブル／マップの補間演算を行う処理を説明するフローチャート図である。
【図１７】本発明による仮数部短縮型浮動小数点数形式のデータの更に他の例を示す図である。
【図１８】本発明による組み込み制御装置において、バイト数が異なる複数の仮数部短縮型浮動小数点数形式のデータを、シーケンシャルアクセス方法で読み出す方法を説明する図である。
【図１９】本発明による組み込み制御装置において、バイト数が異なる複数の仮数部短縮型浮動小数点数形式のデータを、シーケンシャルアクセス方法で読み出す方法を説明するフローチャート図である。
【符号の説明】
【００６８】
１…制御コントロールユニット（Ｃ／Ｕ）、２…中央演算処理装置（ＣＰＵ）、３…読み取り専用記憶装置（ＲＯＭ）、４…制御対象機器、５…センサ、６…アクチュエータ、７…入出力装置（Ｉ／Ｏ）、２４…バックアップメモリ、２６…読み書き可能な記憶装置（ＲＡＭ）
【図１】
0004629750.tif 000002
【図２】
0004629750.tif 000003
【図３】
0004629750.tif 000004
【図４】
0004629750.tif 000005
【図５】
0004629750.tif 000006
【図６】
0004629750.tif 000007
【図７】
0004629750.tif 000008
【図８】
0004629750.tif 000009
【図９】
0004629750.tif 000010
【図１０】
0004629750.tif 000011
【図１１】
0004629750.tif 000012
【図１２】
0004629750.tif 000013
【図１３】
0004629750.tif 000014
【図１４】
0004629750.tif 000015
【図１５】
0004629750.tif 000016
【図１６】
0004629750.tif 000017
【図１７】
0004629750.tif 000018
【図１８】
0004629750.tif 000019
【図１９】
0004629750.tif 000020