(57)【要約】【課題】マップを用いた補間処理速度を、低コストで向上させる補間値演算装置等を提供する。【解決手段】ＣＰＵは、第１のセンサからの入力値と、第２のセンサからの入力値から、補間計算に必要なマップデータがどのデータであるかをマップ軸データに基づいて特定する。そして、特定されたマップデータを用いて補間計算を行い、第１のセンサからの入力値と第２のセンサからの入力値に対応する出力値を得る。このマップのうち、マップ軸データをＲＡＭ１４に格納し、マップデータをＲＯＭ１２に格納している。マップ軸データの容量は、マップデータの容量に比べ小さく、マップ軸データの参照頻度は、マップデータの参照頻度より高いので、アクセスサイクル数を削減することができ、低コストで、補間処理速度を向上させることができる。【選択図】図２
2004192028.tif 000002
【特許請求の範囲】
【請求項１】
複数の代表値と、各代表値に対応する値である対応値とを記憶する記憶手段と、
前記記憶手段に記憶された前記対応値を用いて、入力値に対応する出力値を、補間計算によって求める演算手段とを備え、
前記演算手段は、前記補間計算に用いる前記対応値を、前記入力値と前記記憶手段に記憶された代表値とに基づいて特定する
補間値演算装置であって、
前記記憶手段は、前記代表値を前記対応値よりも前記演算手段によって高速にアクセス可能な領域に記憶すること
を特徴とする補間値演算装置。
【請求項２】
請求項１に記載の補間値演算装置において、
前記記憶手段は、前記複数の代表値を複数の系列分記憶しており、前記対応値は、当該各系列からそれぞれ１の代表値を選んだ組み合わせに対して一意に対応する値としたこと
を特徴とする補間値演算装置。
【請求項３】
請求項１または２に記載の補間値演算装置において、
前記記憶手段は、前記複数の代表値を昇順または降順に整列して記憶し、前記対応値を当該整列の順に基づく順に記憶しており、
前記演算手段は、各系列別に入力値と代表値とを比較して、当該入力値を挟む２つの代表値を求め、当該２つの代表値に対応する対応値を、前記補間計算に用いる対応値として特定すること
を特徴とする補間値演算装置。
【請求項４】
請求項１〜３のいずれかに記載の補間値演算装置において、
前記記憶手段は、前記対応値をＲＯＭに記憶する一方、前記代表値を前記ＲＯＭより高速に前記演算手段がアクセス可能なＲＡＭに記憶すること
を特徴とする補間値演算装置。
【請求項５】
請求項４に記載の補間値演算装置において、
インストラクションバスに接続された前記ＲＯＭをデータバスを介して前記演算手段によって読み出し可能とするための接続手段を備え、
前記演算手段は、前記インストラクションバスを介して取得した命令を実行し、前記データバスを介して命令の実行に必要なデータを読み書きする構成であり、
前記ＲＡＭは前記データバスに接続されていること
を特徴とする補間値演算装置。
【請求項６】
請求項１〜５のいずれかに記載の補間値演算装置において、
前記演算手段は、キャッシュメモリを備え、
前記記憶手段は、前記代表値に対応する値を前記キャッシュメモリにキャッシュ不可能な領域に記憶する一方、前記代表値を前記キャッシュメモリにキャッシュ可能な領域に記憶すること
を特徴とする補間値演算装置。
【請求項７】
請求項１〜６のいずれかに記載の補間値演算装置を備え、
前記入力値を、センサから入力した値に基づいて求め、
前記出力値を用いて制御対象の制御を行うこと
を特徴とする電子制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
マップを用いて補間値を演算する補間値演算装置及び当該補間値に基づく制御を行う電子制御装置に関する。
【０００２】
【従来の技術】
従来より、組み込みシステムにおいて、代表値に対応する値（以下この値を対応値とも称する）をマップとしてＲＯＭに記憶しておき、例えばセンサ等から入力された入力値に対応する出力値を、このＲＯＭに記憶されたマップを利用した補間演算によって求める補間値演算装置や、こうして求めた補間値を用いて各種の制御を行う電子制御装置が知られている（例えば、特許文献１参照。）。
【０００３】
このマップは、代表値と、代表値（例えば所定の離散的な複数の値）に対応する値（対応値）とを予め求めて記憶したものであり、この代表値であるマップ軸データと、代表値に対応する値（対応値）であるマップデータとを含んで構成されている。
【０００４】
図３に、２つの系列の代表値と、その代表値の組に対応する値（対応値）を記憶する２次元マップの例を示す。このマップは、図３に示すように、マップ軸データとして、第１の系列として昇順に整列された第１のセンサからの入力値の代表値であるｘ１，ｘ２，ｘ３，ｘ４，ｘ５，ｘ６といったｘ軸データと、第２の系列として昇順に整列された第２のセンサからの入力値の代表値であるｙ１，ｙ２，ｙ３，ｙ４，ｙ５といったｙ軸データとを備える。そして、このｘ軸データ及びｙ軸データの組み合わせに一意に対応する値（すなわち格子点上の値，対応値）である図３に示すｚ１１〜ｚ５６をマップデータとして備える。
【０００５】
補間値演算装置を構成する組み込みシステムのマイコンのＲＯＭには、図５に示すように、このマップ軸データとマップデータとが、記憶されている。
そして、マイクロプロセッサは、例えば第１のセンサからの入力値と、第２のセンサからの入力値から、補間計算に必要なマップデータがどのデータであるかをマップ軸データに基づいて特定する。そして、特定されたマップデータ（対応値）を用いて補間計算を行い、例えば第１のセンサからの入力値と第２のセンサからの入力値に対応する出力値（補間値）を得る。
【０００６】
例えば、ｘ軸パラメータｐとして第１のセンサからの入力値としてｘ５とｘ６との間の値が入力され、ｙ軸パラメータｑとして第２のセンサからの入力値としてｙ４とｙ５との間の値が入力された場合には、次の手順で出力値ａを求める。
１．ｘ軸データに沿って、ｘ１，ｘ２，ｘ３，ｘ４，ｘ５の順で、ｘ軸データの要素とｘ軸パラメータｐとを比較し、ｘ軸パラメータｐがｘ５とｘ６の間の値であることを特定し、ｘ５とｘ６の間であることを検索結果として記憶する。
２．ｙ軸データに沿って、ｙ１，ｙ２，ｙ３，ｙ４，ｙ５の順で、ｙ軸データの要素とｙ軸パラメータｑとを比較し、ｙ軸パラメータｑがｙ４とｙ５の間の値であることを特定し、ｙ４とｙ５の間であることを検索結果として記憶する。
３．記憶された検索結果の組合わせに対応するマップデータｚ４５，ｚ４６，ｚ５５，ｚ５６の値を取り出し、ｘ軸パラメータｐ、ｙ軸パラメータｑから重心を補間計算して補間値を出力値ａとして算出する。
【０００７】
【特許文献１】
特開平１１−２１９３５０号公報
【０００８】
【発明が解決しようとする課題】
この例に示したマップへのアクセス回数は、最悪の場合、ｘ軸データの参照に６回、ｙ軸データの参照に５回が必要であり、マップデータの参照に４回のアクセスが必要となる。例えば、ＲＯＭのアクセスに３サイクルを要する場合、ＲＯＭアクセスに関する時間は、６×３＋５×３＋４×３の計４５サイクルを要する。
【０００９】
このように、ｘ軸データやｙ軸データの参照（代表値の参照）のために多くのアクセスが行われ、多くのサイクル数を要する。特に、ｘ軸データの数やｙ軸データの数が大きくなればなるほど、この傾向が顕著になる。
一方、近年のマイクロプロセッサの動作速度は、加速度的に向上しているが、こうしたマップ等を格納するＲＯＭの読み出し速度は、同等の速度を保ったままで向上せず、その速度差は、年々広がっている。すなわち、ＲＯＭへのアクセスに必要なサイクル数が増加している。
【００１０】
このため上述したようなマップを利用した補間処理を行う場合、補間処理時に発生するＲＯＭの読み出しに要する時間が、補間処理時間を規律してしまい、ＣＰＵの処理速度が向上しているにもかかわらず、マップ補間処理速度が向上しない問題がある。
【００１１】
そこで、この問題を解決するために、マップ全体を高速なＲＡＭに配置する方法が考えられるが、マップ全体をＲＡＭに配置するためには、マップの容量に相当する容量以上の高価なＲＡＭを必要とするため、コストがかかるといった問題がある。
【００１２】
また、ＲＯＭに比べＲＡＭの価格が高価なことから、制御用マイコンはＲＯＭとＲＡＭのサイズ比が２０：１〜３０：１となっているものが多く、ＲＡＭの大きさが小さいため、マップの容量が大きくなればなるほど、また、マップの数が増えれば増えるほど、制御用マイコンを用いて実際に実現することが困難となる。
【００１３】
そこで、本発明は、マップを用いた補間処理速度を、低コストで向上させることのできる補間値演算装置等を提供することを目的とする。
【００１４】
【課題を解決するための手段及び発明の効果】
上述した問題点を解決するためになされた請求項１に記載の補間値演算装置は、複数の代表値と、各代表値に対応する値である対応値とを記憶する記憶手段（すなわちマップを記憶する記憶手段）と、記憶手段に記憶された対応値を用いて、入力値に対応する出力値を、補間計算によって求める演算手段とを備え、演算手段は補間計算に用いる対応値を、入力値と記憶手段に記憶された代表値とに基づいて特定するものであって、記憶手段は、代表値を対応値よりも演算手段によって高速にアクセス可能な領域に記憶している。
【００１５】
したがって、演算手段は、代表値を対応値よりも高速に取得することができる。よって、演算手段は、入力値と記憶手段に記憶された代表値とに基づいて補間計算に用いる対応値を特定する処理を高速に行うことができる。通常、補間計算に用いる対応値を特定するために代表値を参照する回数は、特定された対応値を参照する回数よりも多くなる場合が多い。したがって、処理を効率的に高速化することができる。このように、マップ補間のアルゴリズムに注目し、アクセス回数が多くマップ補間にかかる時間を規律する軸データのみを高速メモリに配置することで計算速度の向上と高速メモリの利用効率向上をもたらすデータ配置方法をとった補間値演算装置である。
【００１６】
例えば、代表値の数と対応値の数とは１次元マップの場合では同数であるが、２次元マップであれば、代表値の数は、第１の系列の代表値の数と第２の系列の代表値の数の和に相当する数存在するのに対し、対応値の数は、第１の系列の代表値の数と第２の系列の代表値の数の積に相当する数がある。したがって、代表値を対応値よりも演算手段によって高速にアクセス可能な領域に記憶することにより、高価な高速にアクセス可能な領域の消費量を抑えることができ、効率良く処理を高速化することができる。すなわち、特に、請求項２に示すように、記憶手段が、複数の代表値を複数の系列に対して記憶しており、その複数の系列の各代表値の組み合わせに対して一意に対応する対応値を記憶しているいわゆるｎ次元マップ（ｎは２以上の整数）において、優れた効果を発揮する。
【００１７】
代表値の記憶方法や補間計算に用いる対応値の特定方法は種々の方法を取ることができる。例えば請求項３に示すように、記憶手段は、複数の代表値を昇順または降順に整列して記憶し、対応値をその整列の順に基づく順に記憶しており、演算手段は、各系列別に入力値と代表値とを比較して、この入力値を挟む２つの代表値を求め、この２つの代表値に対応する対応値を、補間計算に用いる対応値とするとよい。すなわち、例えば、代表値が昇順あるいは降順に整列されて記憶手段に記憶されており、隣接する２つの代表値間に入力値が入っているか否かを判定し、入力値がこの２つの代表値間に入っている場合に、その２つの代表値に対応する対応値を用いて補間計算を行うようにすることができる。
【００１８】
また、代表値を対応値よりも演算手段によって高速にアクセス可能にするための構成としては、種々の構成を採りうる。
例えば請求項４に示すように、対応値をＲＯＭに記憶する一方、代表値をＲＯＭより高速にアクセス可能なＲＡＭに記憶するとよい。特に、請求項５に示すように、演算手段が、インストラクションバスを介して取得した命令を実行し、データバスを介して命令の実行に必要なデータを読み書きする構成であり、インストラクションバスに接続されたＲＯＭをデータバスを介して演算手段によって読み出し可能とするための接続手段を備え、ＲＡＭはデータバスに接続されいる構成の場合に、優れた効果を発揮する。このような構成の場合、ＲＯＭに記憶されたデータを取得するためには、接続手段を介してアクセスする必要となり、接続手段の制御等や接続手段を介することによるアクセス速度の低下が起こることが多いからである。
【００１９】
また、例えば請求項６に示すように、演算手段がキャッシュメモリを備える構成の場合、記憶手段は、代表値に対応する値をキャッシュメモリにキャッシュ不可能な領域に記憶する一方、代表値をキャッシュメモリにキャッシュ可能な領域に記憶するようにするとよい。このようにすれば、代表値はキャッシュ内に納まる可能性が高くなり、低コストで補間値演算処理を高速化できる。
【００２０】
ところで、こうした補間値演算装置は、種々の装置に備えることができる。例えば、請求項７に示すように、入力値を、センサから入力した値に基づいて求め、補間計算の結果である出力値を用いて制御対象の制御を行う電子制御装置に適用できる。特に、リアルタイム制御を低コストで容易に行うことに寄与する。
【００２１】
【発明の実施の形態】
以下、本発明が適用された一実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態を採りうることは言うまでもない。
【００２２】
図１（ａ）は、本実施例の補間値演算装置１の構成を示すブロック図である。補間値演算装置１は、いわゆるハーバードアーキテクチャのマイコンであり、ＣＰＵ１０、ＲＯＭ１２、ＲＡＭ１４、バスステートコントローラ１６を備える。ＣＰＵ１０とＲＯＭ１２はインストラクションバス２１で接続されており、ＣＰＵ１０とＲＡＭ１４はデータバス２５で接続されている。そして、ＣＰＵ１０は、ＲＯＭ１２に記憶された命令を実行することで、ＲＡＭ１４に格納されたデータを読み出したり、ＲＡＭ１４にデータを格納したりする処理を行う。またＲＯＭ１６は、拡張メモリバス２３によってバスステートコントローラ１６と接続されており、バスステートコントローラ１６には、データバス２５も接続されている。そして、バスステートコントローラ１６は、ＣＰＵ１０による制御によって、図１（ｂ）に示すように、拡張メモリバス２３を介してＲＯＭ１２に記憶されたデータをデータバス２５を介してＣＰＵ１０から参照可能にする機能を備える。このバスステートコントローラ１６の機能によって、ＣＰＵ１０は、ＲＯＭ１２に格納されたデータをデータバス２５を介して取得することができる。
【００２３】
ＣＰＵ１０は、代表値に対応する値（対応値）をマップとしてＲＯＭ１２及びＲＡＭ１４に記憶しておき、例えば図示しないＩ／Ｏを介してセンサ等から入力した入力値に対応する出力値を、このＲＯＭ１２及びＲＡＭ１４に記憶されたマップを利用した補間演算によって求める補間値演算処理を行う。
【００２４】
このマップは、代表値と、代表値（例えば所定の離散的な複数の値）に対応する値（対応値）を予め求めて記憶したものであり、この代表値であるマップ軸データと、代表値に対応する値（対応値）であるマップデータとを含んで構成されている。
【００２５】
そして、図２に示すように、マップのうち、マップ軸データをＲＡＭ１４に格納（記憶）し、マップデータをＲＯＭ１２に格納（記憶）している。なお、マップ軸データは、ＲＡＭ１４を不揮発性のメモリとすることで保持するようにしてもよいし、ＲＯＭ１６にマップ軸データを記憶しておき、最初にマップを利用する処理を行う前にＲＯＭ１６からＲＡＭ１４へ転送するようにしてもよい。
【００２６】
図３に、２つ系列の代表値と、その代表値の組に対応する値（対応値）を記憶する２次元マップの例を示す。このマップは、図３に示すように、マップ軸データとして、第１の系列として昇順に整列された第１のセンサからの入力値の代表値であるｘ１，ｘ２，ｘ３，ｘ４，ｘ５，ｘ６というｘ軸データと、第２の系列として昇順に整列された第２のセンサからの入力値の代表値であるｙ１，ｙ２，ｙ３，ｙ４，ｙ５というｙ軸データとを備える。そして、このｘ軸データ及びｙ軸データの組み合わせに一意に対応する値（すなわち格子点上の値，対応値）であるｚ１１〜ｚ５６をマップデータとして備える。
【００２７】
そして、ＣＰＵ１０は、第１のセンサからの入力値と、第２のセンサからの入力値から、補間計算に必要なマップデータがどのデータであるかをマップ軸データに基づいて特定する。そして、特定されたマップデータ（対応値）を用いて補間計算を行い例えば第１のセンサからの入力値と第２のセンサからの入力値に対応する出力値を得る。
【００２８】
例えば、ｘ軸パラメータｐとして第１のセンサからの入力値としてｘ５とｘ６との間の値が入力され、ｙ軸パラメータｑとして第２のセンサからの入力値としてｙ４とｙ５との間の値が入力された場合には、次の手順で出力値ａを求める。１．ｘ軸データに沿って、ｘ１，ｘ２，ｘ３，ｘ４，ｘ５の順で、ｘ軸データの要素とｘ軸パラメータｐとを比較し、ｘ軸パラメータｐがｘ５とｘ６の間の値であることを特定し、ｘ５とｘ６の間であることを検索結果として記憶する。
２．ｙ軸データに沿って、ｙ１，ｙ２，ｙ３，ｙ４，ｙ５の順で、ｙ軸データの要素とｙ軸パラメータｑとを比較し、ｙ軸パラメータｑがｙ４とｙ５の間の値であることを特定し、ｙ４とｙ５の間であることを検索結果として記憶する。
３．記憶された検索結果の組合わせに対応するマップデータｚ４５，ｚ４６，ｚ５５，ｚ５６の値を取り出し、ｘ軸パラメータｐ、ｙ軸パラメータｑから重心を補間計算して補間値を出力値ａとして算出する。
【００２９】
このように、マップへのアクセス回数は、最悪の場合、ｘ軸データの参照に６回、ｙ軸データの参照に５回必要であり、またマップデータの参照に４回が必要である。このように、各軸のデータの検索のためのアクセスが多く行われていることがわかる。各軸のデータはＲＡＭ１４に記憶されているため、従来の図５のようにＲＯＭ１２に記憶する場合に比べ、高速にアクセスすることができる。例えば、ＣＰＵ１０のＲＯＭ１２のアクセスサイクル数を３、ＲＡＭ１４のアクセスサイクル数を１とすると、６×１＋５×１＋４×３の２３サイクルとなり、従来の４５サイクルよりも大幅に処理時間を短縮することができる。したがって、補間処理にかかる時間を短縮することができる。
【００３０】
特に、ＣＰＵ１０が高速になればなるほど、ＲＯＭ１２へのアクセスサイクル数は増加するが、ＲＡＭ１４へのアクセスサイクル数はそれほど増加しないので、ＣＰＵ１０が高速になればなるほど優れた効果を発揮する。
また、本実施例のように、ハーバードアーキテクチャのマイコンの場合には、図１（ｂ）に示す経路を経由してＲＯＭ１２内のデータを読み出すので、データバスに接続されたＲＡＭからデータを取得する場合に比べバスステートコントローラの制御にかかる時間などを要するが、マップ軸データの参照はＲＡＭ１４を参照するだけでよいので、バスステートコントローラ１６の制御に要する時間などが、マップ軸データの参照の際には不要となる。また、ＲＯＭ１２からデータを読み出す際には、インストラクションバス２１も停止してしまうためＣＰＵ１０の命令の実行速度が低下するが、マップ軸データの参照はＲＡＭ１４に対して行うので、このような命令の実行速度の低下も起こらない。
【００３１】
また、例えばマップデータも含めてマップ全体をＲＡＭ１４に記憶しようとすると、ＲＡＭ１４には、図２に示す大量のマップデータを記憶する必要があり、高価なＲＡＭを大量に消費してしまいコストがかかるという問題があるが、図２に示すように、マップ軸データの容量は、マップデータの容量に比べ小さいので、こうした問題も起こらない。
【００３２】
このように、マップ処理のアルゴリズムとＲＯＭ１２へのアクセス頻度に注目し、マップデータを効率良くＲＯＭ１２とＲＡＭ１４に配分することで、マップ補間処理の速度を向上させることができる。そして、マップを用いた補間処理において、ＣＰＵの処理速度の向上に応じた補間処理速度を低コストで得ることができる。
【００３３】
なお、本実施例ではマップ軸データは昇順に整列して記憶することとしたが、降順に整列して記憶するようにしてもよい。また検索のアルゴリズムの本実施例のものに限定されず、種々の探索アルゴリズムを用いることができる。
また、本実施例のＣＰＵ１０は補間値演算処理を行う補間値演算装置として説明したが、上述したようにして求めた補間値を用いて各種の制御を行う制御処理を行う電子制御装置としてもよい。例えば、エンジン制御を行うエンジン制御用電子制御装置とすることができる。この場合、マップは、例えばＸ軸データをエンジン回転数、Ｙ軸データをアクセル開度として、マップデータを燃料噴射量とすることができる。
【００３４】
上記実施例では、マップデータをＲＯＭ１２に記憶し、マップ軸データをＲＡＭ１４に記憶することとしたが、ＣＰＵ１０はデータキャッシュメモリを備え、図４に示すように、マップデータをＲＯＭ１２のＣＰＵ１０がキャッシュ不可能な領域に記憶し、マップ軸データをＲＯＭ１２のＣＰＵ１０がキャッシュ可能な領域に記憶するようにしてもよい。このようにすれば、データキャッシュメモリを有効に利用することができ、低コストで補間処理を高速化できる。
【図面の簡単な説明】
【図１】実施例の補間値演算装置の構成を示すブロック図である。
【図２】実施例のマップ軸データとマップデータの配置を示す説明図である。
【図３】マップ軸データ及びマップデータの例を示す説明図である。
【図４】別実施例のマップ軸データとマップデータの配置を示す説明図である。
【図５】従来のマップ軸データとマップデータの配置を示す説明図である。
【符号の説明】
１０…ＣＰＵ
１２…ＲＯＭ
１４…ＲＡＭ
１６…バスステートコントローラ
２１…インストラクションバス
２３…拡張メモリバス
２５…データバス
【図１】
2004192028.tif 000003
【図２】
2004192028.tif 000004
【図３】
2004192028.tif 000005
【図４】
2004192028.tif 000006
【図５】
2004192028.tif 000007